it-swarm-id.com

Apa perbedaan keamanan antara koneksi VPN dan SSL?

Saya ingin merancang aplikasi client-server di mana server ditempatkan di Internet. Saya berasumsi bahwa saya dapat mengatur koneksi client-server menggunakan VPN (apakah menggunakan IPSec?) Atau menggunakan koneksi SSL (mungkin https). Apa perbedaan antara VPN/IPsec dan SSL/https untuk mengamankan koneksi server klien melalui Internet?

65
Jonas

VPN berarti "Jaringan Privat Virtual". Ini adalah konsep umum yang menunjuk bagian dari jaringan yang lebih besar (mis. Internet pada umumnya) yang secara logis terisolasi dari jaringan yang lebih besar melalui cara-cara non-perangkat keras (itulah yang dimaksud dengan "virtual"): bukan berarti kita menggunakan perbedaan kabel dan sakelar; sebaliknya, isolasi dilakukan melalui penggunaan kriptografi.

SSL (sekarang dikenal sebagai TLS) adalah teknologi yang mengambil media transportasi dua arah dan menyediakan diamankan media dua arah. Ini membutuhkan media transportasi yang mendasarinya untuk menjadi "sebagian besar dapat diandalkan" (ketika tidak diserang, byte data ditransfer dalam urutan, tanpa kehilangan dan tidak ada pengulangan). SSL memberikan kerahasiaan, integritas (perubahan aktif terdeteksi dengan andal), dan beberapa otentikasi (biasanya otentikasi server, kemungkinan otentikasi klien-server bersama jika menggunakan sertifikat di kedua sisi).

Jadi VPN dan SSL tidak dari level yang sama. VPN implementasi memerlukan beberapa kriptografi di beberapa titik. Beberapa implementasi VPN benar-benar menggunakan SSL, menghasilkan sistem berlapis: VPN mentransfer paket IP (dari jaringan virtual) dengan membuat serial mereka pada koneksi SSL, yang dengan sendirinya menggunakan TCP sebagai media transportasi, yang dibangun di atas paket IP (pada jaringan fisik yang tidak terlindungi). IPsec adalah teknologi lain yang lebih terintegrasi dalam paket, yang menekan beberapa lapisan tersebut, dan dengan demikian sedikit lebih efisien (lebih sedikit bandwidth overhead). Sebaliknya, IPsec harus dikelola cukup dalam di dalam kode jaringan sistem operasi, sementara VPN berbasis SSL hanya perlu beberapa cara untuk membajak lalu lintas masuk dan keluar, sisanya dapat turun di perangkat lunak tingkat pengguna.

Ketika saya memahami pertanyaan Anda, Anda memiliki aplikasi di mana beberapa mesin harus berkomunikasi melalui Internet. Anda memiliki beberapa persyaratan keamanan, dan sedang memikirkan untuk menggunakan SSL (lebih dari TCP lebih dari IP) atau mungkin HTTPS (yang merupakan HTTP-over-SSL-over-TCP-over-IP), atau menyiapkan VPN antara klien dan server dan menggunakan "plain" TCP di jaringan pribadi itu (maksud dari VPN adalah memberi Anda jaringan aman di mana Anda tidak perlu lagi khawatir tentang kerahasiaan) Dengan SSL, kode koneksi Anda harus memperhatikan keamanan; dari sudut pandang pemrograman, Anda tidak membuka koneksi SSL seolah-olah itu "hanya soket". Beberapa perpustakaan membuatnya relatif sederhana, tetapi tetap saja, Anda harus mengelola keamanan di tingkat aplikasi. VPN, di sisi lain, dikonfigurasikan di tingkat sistem operasi, jadi keamanannya bukan antara aplikasi Anda di klien dan aplikasi Anda di server, tetapi antara sistem operasi klien dan sistem operasi server : itu bukan model keamanan yang sama, meskipun dalam banyak situasi perbedaannya ternyata tidak relevan.

Dalam praktiknya, VPN berarti bahwa beberapa langkah konfigurasi diperlukan pada sistem operasi klien. Ini cukup invasif. Menggunakan dua aplikasi berbasis VPN pada klien yang sama mungkin bermasalah (keamanan-bijaksana, karena klien kemudian bertindak sebagai jembatan yang menghubungkan dua VPN yang secara nominal harus diisolasi satu sama lain, dan juga dalam praktik, karena tabrakan dalam alamat ruang). Jika klien adalah pelanggan, meminta dia mengkonfigurasi VPN dengan benar tampak seperti tugas yang mustahil. Namun, VPN berarti aplikasi tidak perlu mengetahui keamanan, jadi ini membuatnya lebih mudah untuk mengintegrasikan perangkat lunak pihak ketiga dalam aplikasi Anda.

77
Thomas Pornin

Keduanya memiliki masalah keamanan jika tidak dikonfigurasi dengan benar. Tapi pertama mari kita mulai dengan beberapa definisi:

Cisco memiliki definisi VPN yang baik:

VPN dapat mengambil beberapa bentuk. VPN dapat berada di antara dua sistem ujung, atau bisa di antara dua atau lebih jaringan. VPN dapat dibangun menggunakan terowongan atau enkripsi (pada dasarnya setiap lapisan tumpukan protokol), atau keduanya, atau secara alternatif dibangun menggunakan MPLS atau salah satu metode "router virtual". VPN dapat terdiri dari jaringan yang terhubung ke jaringan penyedia layanan dengan leased line, Frame Relay, atau ATM, atau VPN dapat terdiri dari pelanggan dialup yang terhubung ke layanan terpusat atau pelanggan dialup lainnya. https://www.Cisco.com/c/en_in/products/security/vpn-endpoint-security-clients/what-is-vpn.html

Adapun SSL:

SSL (Secure Sockets Layer), juga dikenal sebagai TLS (Transport Layer Security), adalah protokol yang memungkinkan dua program untuk berkomunikasi satu sama lain dengan cara yang aman. Seperti TCP/IP, SSL memungkinkan program untuk membuat "soket", titik akhir untuk komunikasi, dan membuat koneksi di antara soket itu. Tetapi SSL, yang dibangun di atas TCP, menambah kemampuan enkripsi tambahan. http://www.boutell.com/newfaq/definitions/ssl.html

Sehubungan dengan pertanyaan Anda, perbedaan utama adalah SSL sering menggunakan browser untuk mengenkripsi data antara pengguna akhir dan server, dan umumnya digunakan untuk area situs web yang membutuhkan perlindungan kerahasiaan dan integritas data.

VPN/IPSEC memerlukan perangkat lunak Klien VPN khusus dan umumnya untuk menyediakan akses jarak jauh ke sistem atau jaringan. Juga ada opsi untuk menggunakan L2TP atau L2F daripada IPSEC.

Namun, SSL VPN menjadi lebih lazim sebagai sarana untuk menyediakan akses ke jaringan/sistem melalui browser web. Pendekatan ini memiliki banyak manfaat karena menggunakan browser web umum untuk mengaktifkan koneksi aman. Granularity dari pendekatan ini juga merupakan cara yang baik untuk mengontrol akses ke aplikasi spesifik.

Adapun masalah keamanan -

SSL -

  • Cipher keamanan yang lemah dapat mengarah pada kemampuan untuk melakukan serangan gaya man-in-the-middle terhadap pengguna akhir, yang mengakibatkan hilangnya kerahasiaan/integritas data.

    • Campuran konten HTTP/HTTPS yang tidak dikonfigurasi dengan baik juga dapat menyebabkan hilangnya kerahasiaan/integritas data.

IPSEC -

15
David Stubley

Beberapa jawaban yang sangat bagus di sini, saya tidak akan mengulangi apa yang sudah dikatakan.
Namun, satu hal yang saya temukan kurang - SSL jauh lebih mudah untuk diatur secara ad-hoc, terutama jika Anda tidak memiliki persyaratan untuk sertifikat klien.
IPsec, di sisi lain, selalu memerlukan sertifikat klien (dengan asumsi pengaturan normal dan tipikal), dan ada juga kesulitan lain dalam pengaturan awal dan distribusi.

Dengan demikian, IPsec biasanya lebih cocok untuk jaringan yang terkontrol, dan lebih sedikit dibandingkan Internet liar yang tidak dikenal. Lihat beberapa info lebih lanjut di pertanyaan lain ini: " IPsec (Internet Protocol Security) fakta ".

Dengan demikian, kembali ke pertanyaan Anda yang sebenarnya, dalam hampir semua kasus di mana Anda meletakkan server di Internet, Anda tidak akan mengharapkan pengguna Anda terhubung menggunakan VPN. (Pengecualian ada, tentu saja.)
Sebagai gantinya, cukup setel sertifikat SSL di server Anda, arahkan klien Anda di sana, dan Anda siap melakukannya (pastikan Anda secara eksplisit memvalidasi sertifikat, tergantung pada bahasa/teknologi/perpustakaan apa yang Anda miliki sedang menggunakan ...)

7
AviD

Apakah Anda melihat opsi ini untuk membuat VPN yang aman? SSL umumnya lebih mudah digunakan dan lebih didukung untuk jenis VPN desktop-ke-jaringan, seperti ketika seorang karyawan di rumah terhubung ke jaringan perusahaan. Jika Anda melakukan penyebaran yang lebih kompleks, seperti VPN terenkripsi jaringan-ke-jaringan (mis., Antara dua organisasi yang berbeda), maka IPSEC akan memberikan kontrol yang lebih baik dan lebih banyak opsi penyesuaian.

Ada yang layak kertas putih pada topik oleh Juniper Networks, meskipun mungkin condong ke kekuatan produk mereka.

5
Eugene Kogan

Nah, perbedaannya seperti perbedaan antara lingkaran dan persegi (keduanya adalah bentuk, tetapi sangat berbeda). Mereka berdua mengamankan komunikasi, tetapi melakukannya di tingkat yang berbeda dan dengan cara yang berbeda. IPSEC adalah enkripsi dan otorisasi wireline sedangkan SSL khusus untuk aplikasi.

IPSEC memiliki kontrol akses sedangkan SSL tidak.

Bisakah Anda lebih spesifik dengan apa yang Anda coba cari tahu?

2
Steve

Ini bisa menjadi jawaban yang sangat panjang, tetapi saya akan mencoba yang singkat.

Saat Anda menggunakan https, browser Anda (bertindak sebagai klien SSL) hanya akan mengenkripsi koneksi ini ke server web.

Saat Anda menggunakan VPN, Anda memerlukan klien khusus dan membangun terowongan antara klien dan server. Kemudian Anda dapat mengkonfigurasi lalu lintas mana yang melewati terowongan. Ini bisa menjadi segalanya atau hanya lalu lintas http Anda.

Ketika Anda hanya ingin mengatur aplikasi klien/server yang dapat berkomunikasi dengan http, solusi termudah adalah trafik https, ketika itu perlu dienkripsi. Jauh lebih rumit untuk mengatur VPN dan memeliharanya.

2
Christian

Ini tergantung pada model ancaman Anda, pada sifat protokol server klien yang Anda butuhkan, dan pada pelanggan Anda.

Apakah ini ditujukan untuk pengguna akhir yang tidak canggih? Kemudian gunakan SSL - pada titik ini kompleksitas VPN hanya akan mematikan banyak pengguna potensial.

Apakah Anda ingin menggunakan klien sebagai aplikasi browser (perahps dengan javascript)? Kemudian lagi https/ssl sepertinya cara untuk pergi.

Apakah server perlu memberi tahu klien secara sinkron tentang sesuatu? Maka HTTPS mungkin bukan yang Anda inginkan (meskipun dapat dibuat demikian).

Seberapa besar risiko phishing? Jika akan mudah bagi penyerang untuk memikat orang-orang kepada mereka sebagai MITM, SSL mungkin lebih baik karena itu mengotentikasi setiap server ke klien. VPN yang khas, setelah diatur, tidak membantu pengguna menghindari penyerang yang masuk ke host lain di VPN. Ini mungkin bukan risiko besar tapi sekali lagi itu tergantung pada apa yang Anda lakukan.

Jika Anda menggunakan ini di cloud (baik klien dan server), maka Anda mungkin mendapatkan semacam VPN hampir gratis yang dapat mengatasi beberapa ancaman yang sangat biasa.

2
nealmcb

Saya jauh dari pakar keamanan, tetapi saya pikir perbedaan paling penting antara keduanya bukan pada jawaban yang lain.

Dengan VPN, komunikasi berjalan seperti ini:

HTTP client <-[raw]-> VPN client
  <-[encrypted]-> 
VPN server <-[raw]-> HTTP server

Dengan HTTPs begini:

HTTP client
  <-[encrypted]-> 
HTTP server

Jadi, dengan VPN, data yang tidak dilindungi dapat melakukan perjalanan di jaringan lokal klien dan pada jaringan lokal server. Jika Anda tidak sepenuhnya mempercayai jaringan itu, maka itu ide yang bijaksana untuk menggunakan HTTPs. Ketahuilah bahwa VPN dan HTTP client-client, pasangan server-server tidak harus pada komputer yang identik, mis. router dapat dikonfigurasi untuk menjadi server VPN atau klien.

Karena teknologi ini bekerja pada tingkat yang berbeda, mereka tidak saling eksklusif, sehingga Anda dapat menggunakan keduanya jika Anda ingin lapisan perlindungan lain dan Anda tidak keberatan penurunan kinerja yang menyertainya atau Anda hanya dapat menggunakan salah satunya, yang lebih baik sesuai dengan kebutuhan Anda. Sejauh yang saya tahu kedua teknologi dianggap aman jika dikonfigurasi dengan benar.

0
inf3rno