PERBANDINGAN SSL (SECURE SOCKET LAYER) DAN IPSec (INTERNET PROTOCOL SECURITY) PADA VPN (VIRTUAL PRIVATE NETWORK) Nurkholis Madjid - NIM 13503047 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail :
[email protected]
Abstrak Teknologi remote access tradisional seperti dial-up RAS (remote access server) saat ini semakin ditinggalkan. Penyebab utamanya adalah rumitnya deployment, tingginya ongkos pulsa telepon, kurangnya implementasi keamanan, dan juga meningkatnya ongkos pemeliharaan. Oleh karena itu, trend remote access saat ini beralih kepada VPN. VPN (Virtual Private Network) adalah suatu teknologi yang memungkinkan remote user dapat mengakses sebuah jaringan private yang tertutup menggunakan jaringan publik standar seperti internet. Salah satu konsep umum yang salah mengenai VPN adalah VPN selalu dikaitkan dengan protokol IPSec (Internet Protocol Security), yaitu sebuah protokol enkripsi yang menyediakan transmisi data terenkripsi yang aman pada network layer dalam jaringan. Padahal, ada banyak sekali protokol enkripsi dan keamanan yang dapat menyediakan fungsionalitas dari VPN. SSL (Secure Socket Layer) adalah salah satu protokol tersebut, yang bekerja pada application layer dan umum digunakan pada komunikasi aman berbasis web pada internet. Protokol SSL dan IPSec memiliki kelebihan dan kekurangannya masing-masing. Makalah ini akan membandingkan SSL dan IPSec dari segi teknis untuk dapat menganalisis faktor keamanan dan performansi kedua protokol jika diterapkan pada VPN. Kata kunci: Virtual Private Network, Secure Socket Layer, Internet Protocol Security, VPN, SSL, IPSec, Kriptografi.
1. Pendahuluan Perubahan gaya bekerja, seperti beberapa perusahaan yang mendukung full-time remote worker, yaitu pekerja yang menggantikan jam bekerja di kantor dengan bekerja dengan PC (personal computer) di rumahnya, menyebabkan permintaan atas teknologi remote access semakin meningkat. Teknologi remote access tradisional seperti dial-up RAS (remote access server) saat ini semakin ditinggalkan [2]. Penyebab utamanya adalah rumitnya deployment, tingginya ongkos pulsa telepon, kurangnya implementasi keamanan, dan juga meningkatnya ongkos pemeliharaan. Protokol VPN (Virtual Private Network) merupakan alternatif solusi untuk masalah di atas. Dengan VPN, sebuah organisasi dapat memperlebar akses yang aman terhadap jaringan internalnya melalui jaringan publik standar (internet) dengan ongkos yang relatif lebih murah dari jaringan private atau komunikasi dial-up telepon. Dengan pendekatan ini, aplikasi dan data yang penting pada jaringan dapat diakses oleh pihak yang berhak tanpa memperhatikan lokasi dimana ia berada. Salah satu konsep umum yang salah mengenai VPN adalah VPN selalu dikaitkan dengan protokol IPSec (Internet Protocol Security), yaitu sebuah protokol enkripsi yang menyediakan transmisi data terenkripsi yang aman pada network layer dalam jaringan. Padahal, ada banyak sekali protokol enkripsi dan keamanan yang dapat menyediakan fungsionalitas dari VPN. SSL (Secure Socket Layer) adalah salah satu protokol tersebut, yang bekerja pada application layer dan umum digunakan pada komunikasi aman berbasis web pada internet. 2. Secure Socket Layer (SSL) SSL adalah protokol keamanan yang didesain untuk dijalankan pada TCP/IP dan dengan mudah dapat digantikan dengan API soket UNIX-style standar yang digunakan oleh hampir semua perangkat lunak jaringan [5]. Keamanan dijamin dengan menggunakan kombinasi dari kiptografi kunci publik dan kriptografi kunci simetri bersamaan dengan sebuah infrastruktur sertifikat. Sebuah sertifikat adalah sebuah kumpulan data identifikasi dalam format yang telah
distandardisasi [10]. Data tersebut digunakan dalam proses verifikasi identitas dari sebuah entitas (contohnya sebuah web server) pada internet. Sertifikat ini secara digital ditandatangani oleh sebuah Certificate Authority (CA), yaitu sebuah entitas yang dapat dipercaya yang diberikan kekuasaan untuk melakukan verfikasi sebuah perusahaan atau individu yang ingin menyediakan aplikasi yang diamankan menggunakan SSL. Client yang ingin berkomunikasi secara aman dengan entitas tersebut dapat melakukan verifikasi identitasnya dengan menanyakannya pada basis data CA. Sebuah sertifikat juga mengandung kunci publik dari pemiliknya. Kunci ini berpasangan dengan kunci privat yang hanya diketahui oleh pemiliknya. Pasangan kunci ini digunakan untuk vaifikasi identitas dari pemilik sertifikat, dan juga untuk membuat informasi rahasia dapat dipertukarkan antara pemilik sertifikat dan entitas lainnya. SSL adalah protokol keamanan yang digunakan pada hampir semua transaksi aman pada internet. SSL mengubah suatu protokol transport seperti TCP menjadi sebuah saluran komunikasi aman yang cocok untuk transaksi yang sensitif. Protokol SSL mendefinisikan metode yang digunakan untuk membangun sebuah saluran komunikasi yang aman dan tidak tergantung pada algoritma kriptografi mana yang digunakan. SSL mendukung berbagai macam algoritma kriptografi, dan berlaku sebagai sebuah framework di mana kriptografi dapat digunakan dengan cara yang tepat dan terdistribusi. Penggunaan SSL sangat luas. Aplikasi yang membutuhkan pengiriman data melalui sebuah jaringan yang tidak aman seperti internet atau intranet perusahaan adalah salah satu aplikasi yang berpotensi untuk memanfaatkan SSL. SSL menyediakan keamanan, dan yang lebih penting adalah ketenangan. Dengan menggunakan SSL, kita dapat memastikan bahwa data kita aman dari pihak-pihak yang tidak berhak mengakses. SSL didesain untuk dijalankan pada TCP/IP. Gambar 1 berikut ini menunjukkan bagaimana posisi protokol SSL pada model referensi TCP/IP.
2
Gambar 1 SSL pada model referensi TCP/IP SSL menyediakan otentikasi (pada sisi client, dan opsional pada sisi server) terhadap pihakpihak yang berkomunikasi. SSL dapat mengamankan koneksi antara dua titik, dan tidak ada pihak yang dapat melakukan hal-hal yang bersifat destruktif atau mengakses informasi yang bersifat sensitif. SSL menyediakan sebuah saluran komunikasi yang aman tanpa perlu adanya pertemuan kedua pihak yang berkomunikasi untuk melakukan proses pertukaran kunci. Fungsi SSL pada komunikasi aman sama seperti fungsi TCP pada komunikasi normal, yaitu menyediakan sebuah infrastruktur komunikasi standar di mana sebuah aplikasi dapat menggunakannya dengan mudah dan hampir tidak dapat terlihat (invisible). SSL menyediakan sebuah komponen penting pada sistem yang aman. Mekanisme otentikasi dasar seperti password Telnet dan otentikasi HTTP dasar menjadi sangat kuat ketika dieksekusi dengan SSL dibandingkan dengan TCP, di mana pada SSL password tidak lagi dikirim dalam bentuk plainteks. SSL mengenkripsi koneksi, bukan data pada kedua pihak yang berkomunikasi, dan tidak mengandung mekanisme untuk otentikasi user ataupun perlindungan password (hanya koneksi yang diotentikasi, keamanannya akan gagal jika mesin pada kedua pihak yang berkomunikasi compromised).
Implementasi SSL paling pertama dikembangkan oleh Netscape Communications Corporation pada awal tahun 1990-an untuk mengamankan HTTP, yang mengirmkan data dalam bentuk plainteks melalui internet. Peluncuran resmi pertamanya adalah versi 2.0, di mana saat itu diterima cukup luas, meskipun masih ada beberapa masalah desain pada protokol. Pada akhir tahun 1990-an, semakin terlihat dengan jelas bahwa SSL 2.0 tidaklah aman. Netscape memulai untuk membangun SSL 3.0. Dengan bantuan Netscape, Internet Engineering Task Force (IETF, badan yang mengatur untuk standar internet) memulai untuk menstandardisasi SSL, sebuah proyek yang kemudian dikenal dengan nama TLS (Transport Layer Security). SSL 3.0 tidak dikembangkan seteliti TLS, sehingga SSL 3.0 dapat dirilis lebih dahulu dan menggantikan SSL 2.0 sebagai standar industri. TLS yang akhirnya diselesaikan pada tahun 2000, menyediakan protokol terstandardisasi yang pertama untuk SSL. Walaupun SSL 3.0 masih digunakan secara luas, untuk pengembangan terbaru termasuk sudah tertinggal karena saat ini hampir semua browser modern mendukung TLS. Walaupun SSL sederhana pada teorinya (kunci dipertukarkan menggunakan kriptografi kuncipublik, dan komunikasi dilakukan dengan menggunakan kriptografi kunci simetri),
3
namun cukup kompleks pada implementasi aktualnya. Berikut ini beberapa detail dalam membangun sebuah koneksi SSL dan berkomunikasi menggunakan koneksi tersebut.
berbeda dan memberikan petunjuk bagaimana menanganinya ketika alert tersebut diterima, serta kapan waktu yang tepat untuk membangkitkan dan mengirimkannya.
3.1 Alert 3.2 Handshake Salah satu komponen terpenting dari SSL adalah sistem penanganan errornya. Error pada SSL disebut dengan alert dan merupakan epresentasi dari kemungkinan serangan-serangan. Alert adalah pesanpesan yang dikirim melalui saluran komunikasi SSL, dan kadang juga dienkripsi. Spesifikasi SSL menjelaskan secara mendetil tentang 20 alert yang
Komunikasi SSL diadakan pada sebuah SSL session. SSL ini dibangun menggunakan sebuah proses handshake yang mirip dengan TSP 3-way handshake. Keseluruhan proses handshake, termasuk pembangunan soket TCP/IP, dapat dilihat pada gambar 2.
Gambar 2 Proses SSL handshake Seperti yang dapat dilihat pada gambar, koneksi TCP/IP dibangun terlebih dahulu, kemudian proses handshake SSL dimulai. Session SSL dimulai ketika client dan server berkomunikasi menggunakan parameter dan cipher yang telah dinegosiasikan. Session SSL diakhiri ketika kedua pihak selesai mentransmisikan data aplikasi dan memberitahu mesin lainnya bahwa pengiriman data telah selesai.
3.2.1 Client Hello dan operasi kunci publik Semua session pada SSL dimulai dengan sebuah pesan Client Hello. Pesan ini dikirim oleh client kepada server yang ingin dituju untuk berkomunikasi. Pesan ini berisi versi SSL dari client, sebuah bilangan acak yang akan digunakan selanjutnya pada penurunan kunci, dan
4
juga sebuah kumpulan ciphersuite offer. Offer ini merupakan penanda yang menunjukkan cipher dan algoritma hash yang ingin digunakan oleh client.
bahwa handshake tidak terganggu. Data ini, yang dibangkitkan menggunakan TLS PRF, dikirimkan pada pesan handshake terakhir disebut Finish.
Pada saat membangun koneksi inisial, server memilih sebuah offer yang ingin digunakan, dan menyampaikan kembali offer tersebut kepada client bersama dengan certificate dan sebuah bilangan acak yang dimilikinya. Client kemudian melakukan verifikasi server menggunakan sertifikat dan mengekstraksi kunci publik server.
Jika data pada pesan finish yang dibangkitkan tidak cocok dengan data finish yang dibangkitkan secara lokal, maka akan koneksi diterminasi oleh pihak manapun yang gagal melakukan tes verifikasi.
Dengan menggunakan kunci publik, client mengenkripsi rahasia premaster, sebuah nilai acak yang akan digunakan untuk membangkitkan kunci simetri, dan mengirim pesan terenkripsi tersebut kepada server, yang kemudian mendekripsi pesan menggunakan kunci privatnya. 3.2.2 Penurunan kunci simetri Setelah server menerima rahasia premaster dari client, server dan client sama-sama membangkitkan kunci simetri yang sama menggunakan rahasia premaster dan juga membangkitkan bilangan acak yang telah dipertukarkan sebelumnya menggunakan TLS pseudorandom function (PRF), yang mengekspansi rahasia dan beberapa data menjadi sebuah blok dengab panjang tertentu. Dengan cara ini, yang hanya mengenkripsi rahasia premaster kecil menggunakan kriptografi kunci publik, membatasi kemungkinan mahalnya operasi pada performansi. 3.2.3 Finish handshake Segera setelah kunci dibangkitkan, client dan server bertukar pesan-pesan “change cipher spec” untuk mengindikasikan bahwa mereka telah memiliki kunci simetri dan komunikasi selanjutnya dapat dilaksanakan menggunakan algoritma simetri yang dipilik pada tahap inisial proses handshake. Pada tahap ini, server dan client menggunakan semua pesan-pesan handshake yang diterima dan dikirim, dan membangkitkan sebuah blok data yang digunakan untuk melakukan verifikasi
3.3 Session Ketika sebuah proses handshake selesai, client dan server mulai berkomunikasi dengan menggunakan saluran komunikasi aman yang baru. Setiap pesan di-hash, dienkripsi dan kemudian dikirim. Setiap kali ada kegagalan, baik itu pada proses dekripsi, enkripsi, hash, verifikasi, atau komunikasi, SSL alert akan dikirimkan (menggunakan enkripsi kunci simetri) oleh entitas yang mengalami kegagalan. Kebanyakan alert bersifat fatal, dan menyebabkan komunikasi harus dihentikan sesegera mungkin. 3.4 Mengakhiri session Ketika client atau server selesai berkomunikasi, sebuah alert khusus, close_notify, dikirimkan untuk memastikan semua komunikasi telah dihentikan dan koneksi dapat ditutup. Alert ini digunakan untuk mencegah pihak yang tidak bertanggung jawab melakukan sebuah serangan pemotongan, yang akan menipu server atau client agar berpikir bahwa semua data yang ingin dipertukarkan telah berhasil terkirim, padahal sebenarnya masih ada data yang masih belum terkirim (hal ini dapat menjadi masalah pada situasi seperti transaksi perbankan, di mana semua informasi harus terkirim). 3.5 Keamanan Kerumitan dan mahalnya pembangunan session SSL merupakan hasil dari pembelajaran selama bertahun-tahun terhadap berbagai serangan terhadap SSL dan protokol keamanan lainnya. Beberapa serangan menargetkan implementasi kriptografinya, serangan lainnya menargetkan PRNG.
5
Beberapa serangan dapat menggunakan pengetahuan tentang informasi yang dikirim untuk mendapatkan informasi rahasianya. Beberapa serangan bahkan menggunakan timing dari algoritma tertentu untuk mendapatkan rahasia. SSL dan TLS menangani beberapa masalah ini pada desain protokolnya. Namun yang lebih penting adalah implementasinya harus mengikuti protokol agar pengamanan dapat bekerja dengan baik. Di samping itu, implementasi juga harus memikirkan bentuk “serangan” lainnya, seperti buffer overflow.
lokal yang akan menentukan penggunaan salah satu atau lebih servis berikut: 1.
Data Confidentiality, yaitu pengirim IPSec dapat mengenkripsi paket sebelum mentransmisikannya melalui sebuah jaringan.
2.
Data Integrity, yaitu penerima IPSec dapat melakukan otentikasi paket yang dikirim oleh pengirim IPSec untuk memastikan bahwa data tidak diubah selama proses transmisi.
3.
Data Origin Authentication, yaitu penerima IPSec dapat melakukan otentikasi terhadap source dari paket IPSec yang dikirim. Servis ini tergantung pada servis Data Integrity.
4.
Anti-Replay, yaitu penerima IPSec dapat mendeteksi dan menolak paket yang dikirim berulang (replayed).
3. Internet Protocol Security (IPSec) IPSec adalah sebuah framework standar terbuka yang dikembangkan oleh Internet Engineering Task Force (IETF) [10]. IPSec menyediakan keamanan untuk transmisi informasi yang bersifat sensitif melalui jaringan yang tanpa proteksi seperti internet. IPSec dijalankan pada layer network pada jaringan, berfungsi untuk melindungi dan melakukan otentikasi paket IP antara device IPSec (“peer”). IPSec adalah sebuah standar protokol yang menyediakan servis keamanan pada komunikasi internet. IPSec melindungi keseluruhan datagram dalam mode “end-toend” di mana tidak ada node jaringan intermediate pada internet publik yang dapat mengakses atau memodifikasi informasi pada layer IP dalam sebuah paket yang dilindungi oleh IPSec. IPSec menyediakan servis jaringan keamanan berikut ini. Servis-servis berikut ini bersifat opsional. Pada umumnya, kebijakan keamanan
Dengan IPSec, data dapat ditransmisikan melalui jaringan publik tanpa khawatir akan pengamatan, modifikasi, atau pengubahan oleh pihak yang tidak berhak. Konsep fundamental dari teknologi IPSec adalah sebagai berikut. Path antara peer source dan tujuan dibagi menjadi tiga segmen, yaitu: 1.
2. 3.
segmen jaringan lokal yang dapat dipercaya dan diproteksi sebagai source (seperti LAN privat sebuah perusahaan), segmen jaringan publik yang tidak aman, dan segmen jaringan lokal yang dapat dipercaya sebagai tujuan.
Pembagian ini dapat dilihat pada gambar 3 berikut ini.
Gambar 3 Model sistem IPSec
6
Arsitektur IPSec menempatkan security gateway (dalam hal ini G1 dan G2) pada masing-masing batasan antara sebuah jaringan lokal yang aman dan sebuah jaringan publik yang tidak aman yaitu internet. Awalnya, G1 sebagai source membangun sebuah hubungan yang aman dengan G2 (tujuan), di mana hubungan tersebut melibatkan negosiasi tentang servis keamanan dan rahasia yang akan di-share. Sebelum datagram IP (dari S sampai D) dikirim melalui jaringan publik, G1 mengenkripsi dan/atau menandatangani datagram menggunakan protokol IPSec. Setelah sampai pada G2, datagram didekripsi dan/atau dicek untuk otentikasi sebelum dikirimkan ke D (tujuan). Pada beberapa kasus, kedua jaringan lokal dapat diabaikan, sehingga source dan tujuan dapat melakukan enkripsi, otentikasi dan fungsi security gateway lainnya. Arsitektur IPSec menggunakan dua protokol untuk menyediakan keamanan “lalu lintas”, yaitu AH (Authentication Header) dan ESP (Encapsulating Security Payload). AH menyediakan servis data integrity dan origin authentication tanpa data confidentiality, sedangkan ESP menyediakan servis data confidentiality dan servis lainnya namun hanya bersifat opsional. AH dan ESP mendukung dua mode yang dapat digunakan, yaitu: mode transport dan mode tunnel. Mode transport menyediakan pengamanan terutama untuk protokol layer yang lebih tinggi, sedangkan mode tunnel mengamankan keseluruhan datagram IP. Banyak pihak yang menganggap bahwa AH sebenarny tidak diperlukan, mengingat ESP dapat juga menyediakan servis yang dapat disediakan oleh AH. Namun, bagaimanapun pengamanan yang disediakan oleh AH dan ESP tidak identik. Keduanya menyediakan pengamanan integrity di atas header IP, namun AH juga menyediakan pengamanan integrity untuk beberapa field di dalam header IP. Sebenarnya kurang jelas mengapa perlu mengamankan header IP. Jika memang diperlukan, hal ini sebenarnya dapat dilakukan ESP dengan mode tunnel, di mana sebuah IP header baru dengan ESP ditambahkan pada paket awal, dan keseluruhan paket termasuk IP header dianggap sebagai payload, sehingga secara kriptografi diamankan oleh ESP. Router-router intermediate tidak dapat
menjalankan pengamanan integrity AH karena mereka tidak mengetahui kunci session, sehingga AH paling baik digunakan untuk pihak penerima dalam pengecekan header IP yang diterima merupakan kiriman dari pihak pengirim. Mungkin seorang penyerang dapat mengubah field QOS, sehingga paket mungkin telah mengalami pengubahan yang tidak diinginkan oleh pengirim, namun penerima dapat membuang sebuah paket dari pengirim yang dikirimkan melalui path yang berbeda atau penanganannya tidak sesuai dengan yang diinginkan oleh pengirim walaupun jika isinya secara kriptografi diterima. Salah satu fungsi pada AH yang tidak disediakan oleh ESP adalah dengan AH, router dan firewall mengetahui paket tidak dienkripsi, sehingga dapat membuat keputusan berdasarkan header layer 4, contohnya port. Walaupun ESP menggunakan enkripsi null, namun router tidak dapat mengetahui hal ini berdasarkan paket per paket. “Fitur” yang membuat router dan firewall dapat melihat port TCP ini hanya dapat digunakan menggunakan lalu lintas IP yang tidak dienkripsi, namun banyak pihak yang menganjurkan seharusnya IPSec dijalankan pada IP yang dienkripsi. Informasi seperti port TCP dapat membocorkan informasi yang seharusnya disembunyikan, walaupun router telah disesuaikan untuk menggunakan informasi tersebut untuk hal-hal seperti pembedaan antrian. Firewall juga merupakan dasar keputusan pada field port, tetapi user yang berniat buruk dapat mengelabui lalu lintas sehingga cocok dengan kebijakan firewall basis data, contohnya jika firewall mengijinkan HTTP, maka semua protokol dijalankan di atas HTTP. Oleh karena itu membuat port tidak terenkripsi untuk keuntungan firewall merupakan keuntungan yang tidak terlalu besar. Granularitas dari pengamanan pada arsitektur IPSec berada pada level datagram. Pengamanan ini dilakukan semua yang ada pada datagram IP setelah header IP sebagai satu kesatuan unit. Biasanya, sebuah datagram IP memiliki tiga bagian yang terurut, yaitu: 1. 2. 3.
header IP (hanya untuk keperluan routing), header protokol layer yang lebih tinggi (contohnya header TCP), dan data user (contohnya data TCP).
7
Pada mode transport, sebuah header IPSec (AH atau ESP) disisipkan setelah header IP dan sebelum header protokol layer yang lebih tinggi dan data user.
Pada kedua kasus, header protokol layer yang lebih tinggi dan data pada sebuah datagram IP dilindungi sebuah unit yang tidak dapat dipisahkan. Ilustrasinya dapat dilihat pada gambar 4 berikut ini.
Pada mode tunnel, keseluruhan datagram IP dienkapsulasi dalam sebuah paket IPSec yang baru (sebuah header IP baru yang diikuti dengan sebuah header AH atau ESP).
Gambar 4 Format protokol dari paket IPv4 (pada TCP) dengan IPSec Kunci-kunci yang digunakan pada proses enkripsi dan otentikasi hanya di-share oleh security gateway pada sisi pengirim dan penerima saja. Semua node lainnya pada jaringan publik internet, baik itu merupakan router yang sah maupun eavesdropper yang jahat, hanya dapat melihat header IP dan tidak akan bisa mendekripsi isinya, ataupun merusaknya tanpa terdeteksi. Biasanya, router intermediate hanya melakukan satu hal, yaitu mem-forward paket berdasarkan header IP (terutama field alamat tujuan). Mode “end-to-end” pada IPSec sangat cocok untuk paradigma layer seperti ini 4. Virtual Private Network (VPN) VPN adalah sebuah jaringan virtual, yang dibangun di atas sebuah jaringan fisik yang
dapat menyediakan mekanisme komunikasi yang aman untuk data dan informasi IP yang ditransmisikan antar jaringan [10]. Karena VPN dapat digunakan pada jaringan yang telah ada, seperti internet, maka VPN dapat memfasilitasi transfer data yang bersifat sensitif secara aman melalui jaringan publik. Cara ini kadang dapat menjadi lebih murah dibandingkan alternatif lain seperti jalur telekomunikasi privat yang khusus didirikan antar organisasi atau kantor cabang. VPN juga dapat menyediakan solusi yang fleksibel seperti pengamanan komunikasi antara remote user dengan server sebuah organisasi tanpa harus memikirkan di mana letak remote user tersebut. Selain itu, VPN bahkan dapat juga dibangun di dalam sebuah jaringan tunggal untuk mengamankan
8
komunikasi sensitif tertentu dari pihak lain yang tidak berhak pada jaringan tersebut. VPN dapat menggunakan kedua bentuk kriptografi, yaitu kriptografi kunci simetris dan kriptografi kunci publik. Kriptografi kunci simetris biasanya lebih efisien dan membutuhkan ongkos pemrosesan yang lebih murah bila dibandingkan dengan kriptografi kunci publik. Oleh karena itu, kriptografi kunci simetri lebih sering digunakan untuk mengenkripsi bagian terpenting dari data yang akan dikirimkan melalui VPN. Salah satu masalah dalam kriptografi kunci simetris adalah kunci harus dipertukarkan untuk memastikan confidentiality. Algoritma yang umumnya digunakan untuk mengimplementasi kriptografi kunci simetris meliputi Digital Encryption Standard (DES), Triple DES (3DES), Advanced Encryption Standard (AES), Blowfish, RC4, International Data Encryption Algorithm (IDEA), dan Hash Message Authentication Code (HMAC) varsi Message Digest 5 (MD5) dan Secure Hash Algorithm (SHA-1). Sedangkan algoritma yang umumnya digunakan untuk algoritma kunci publik adalah meliputi RSA, Digital Signature Algorithm (DSA), dan Elliptic Curve DSA (EDBSA).
yang mengimplementasikan algoritma dapat diserang oleh pihak yang tidak berhak, dan pembangkit bilangan acak yang tidak menghasilkan bilangan acak yang cukup baik juga dapat memunculkan kemungkinan serangan. Masalah lainnya adalah penyingkapan kunci. Seorang penyerang yang menemukan kunci tidak hanya dapat mengdekripsi data, tetapi juga dapat berpura-pura sebagai user yang sah. Masalah selanjutnya yang mungkin muncul adalah berkaitan dengan availability. Walaupun VPN didesain untuk mendukung confidentiality dan integrity, namun umunya tidak meningkatkan availability, yaitu kemampuan di mana user yang sah dapat mengakses sistem ketika dibutuhkan. Pada kenyataannya, banyak implementasi VPN yang justru menurunkan availability karena adanya penambahan komponen dan servis pada infrastruktur jaringan yang ada. Semua kemungkinan masalah-masalah di atas sangat bergantung pada model arsitektur VPN yang dipilih dan detil dari implementasi. Berikut ini adalah penjelasan dari tiga arsitektur utama VPN, yaitu gateway-togateway, host-to-gateway, dan host-to-host. 4.1 Arsitektur Gateway-to-Gateway
Hal yang penting untuk dipahami adalah VPN tidak menghilangkan semua resiko dari jaringan. Walaupun VPN dapat mengurangi resiko, untuk komunikasi yang dijalankan melalui jaringan publik seperti internet, VPN tidak dapat mengeliminasi semua resiko dari komunikasi seperti itu. Salah satu potensi masalah adalah kekuatan dari implementasi. Contohnya, celah-celah dalam algoritma enkripsi atau perangkat lunak
Pada arsitektur ini, traffic antara dua jaringan yang membutuhkan keamanan melalui koneksi VPN yang telah dibangun antara dua gateway VPN. Gateway VPN mungkin adalah sebuah device yang hanya melakukan fungsi VPN, atau bagian dari device lain dari jaringan seperti firewall atau router. Gambar 5 berikut ini menggambarkan arsitektur ini.
Gambar 5 Arsitektur Gateway-to-Gateway Dari gambar di atas, terlihat bahwa arsitektur gateway-to-gateway ini tidak menyediakan pengamanan secara penuh terhadap data yang melewati transit. Pada kenyataannya, model arsitektur ini hanya mengamankan data antara dua gateway, yang dinotasikan dengan garis solid. Garis
putus-putus mengindikasikan bahwa komunikasi antara client VPN dan gateway lokalnya, dan antara gateway remote dan node tujuannya tidak diamankan.
9
Arsitektur gateway-to-gateway biasanya paling banyak digunakan ketika menghubungkan dua jaringan yang aman, seperti menghubungkan sebuah kantor cabang ke pusat melalui internet. Arsitektur model ini menggantikan wide area network (WAN) privat yang relatif mahal. Model gateway-to-gateway ini merupakan yang paling mudah diimplementasikan 4.2 Arsitektur Host-to-Gateway Model arsitektur ini paing banyak digunakan untuk remote access yang aman. Masing-masing user remote
terutama dalam hal manajemen user dan host. Arsitektur ini biasanya transparan bagi user, yang tidak perlu melakukan otentikasi terpisah untuk menggunakan VPN. Selain itu, sistem user dan host target tidak harus meng-install perangkat lunak VPN client, ataupun melakukan konfigurasi ulang untuk menggunakan VPN.
membangun sebuah koneksi VPN antara komputer lokal (host) dengan gateway VPN. Gambar 6 mengilustrasikan model arsitektur ini.
Gambar 6 Arsitektur Host-to-Gateway Dari gambar di atas, terlihat bahwa arsitektur host-to-gateway ini tidak menyediakan pengamanan secara penuh terhadap data yang melewati transit. Garis putus-putus mengindikasikan bahwa komunikasi antara gateway remote dan node tujuannya tidak diamankan. Model host-to-gateway banyak digunakan ketika menghubungkan host pada jaringan yang tidak aman kepada resource pada jaringan yang aman, contohnya menghubungkan pegawai yang sedang berada di lokasi remote kepada kantor pusat melalui internet. Model ini sering digunakan untuk menggantikan modem dial-up. Arsitektur model ini relatif cukup kompleks untuk diimplementasikan terutama dalam hal manajemen user dan host. Arsitektur ini biasanya tidak transparan terhadap user karena harus
melakukan otentikasi sebelum menggunakan VPN. Selain itu, host user juga harus meng-install perangkat lunak VPN client yang telah dikonfigurasi. 4.3 Arsitektur Host-toHost Arsitektur host-to-host merupakan arsitektur VPN yng paling jarang digunakan. Biasanya digunakan hanya untuk keperluan tertentu seperti administrator sistem yang akan melakukan manajemen remote dari sebuah server. Pada kasus ini, organisasi melakukan konfigurasi server untuk menyediakan servis VPN dan administrator sistem berperan sebagai client VPN. Administrator sistem menggunakan client VPN ketika ingin membangun koneksi terenkripsi ke server remote. Gambar 7 berikut mengilustrasikan model arsitektur ini.
Gambar 7 Arsitektur Host-toHost
10
Dari gambar di atas, terlihat bahwa arsitektur host-to-host ini tidak menyediakan pengamanan secara penuh terhadap data yang melewati transit. Hal ini dapat menjadi masalah karena firewall yang berbasis jaringan, sistem pendeteksi intrusi, dan device lainnya tidak dapat digantikan untuk menginspeksi data yang didekripsi. Model ini biasa digunakan ketika sejumlah kecil user atau administrator pada sistem remote membutuhkan protokol yang tidak aman dan dapat diupdate untuk menyediakan servis VPN. Model host-to-host ini intensif terhadap resource untuk implementasi dan pemeliharaanya terkait dengan manajemen user dan host. Arsitektur ini tidak transparan terhadap user karena harus melakukan otentikasi sebelum menggunakan VPN. Selain itu, semua pihak yang terkait harus meng-install perangkat lunak VPN client yang telah dikonfigurasi.
yang akan ditransfer. Data kemudian ditransfer melalui internet dengan “wrapper” (pembungkus) IP ini, yang nantinya akan di “unwrapped” setelah sampai pada tujuannya. Traffic yang diterima oleh gateway VPN di-routing seolah-olah datang dari dalam jaringan, yang mengijinkan VPN untuk menyediakan servis “on-the-LAN”. IPSec VPN cukup ideal untuk koneksi antar kantor (office-to-office). VPN jenis ini juga dapat menjadi solusi yang akan bekerja dengan baik jika organisasi hanya memiliki sejumlah kecil anggota yang dapat dipercaya yang ingin mengakses. Namun, keterbatasan dari pendekatan untuk remote access adalah sebagai berikut: 1.
2.
5. Solusi VPN 3.
5.1 VPN dengan IPSec Solusi awal dari VPN adalah dengan dijalankan pada layer network yang menggunakan perangkat lunak negosiasi antar peer yaitu IPSec, yang di-install pada client untuk mengenkapsulasi data
Deployment, instalasi, konfigurasi, dan manajemen perangkat lunak pada setiap PC client dapat sangat tidak praktis untuk dilaksanakan. User harus menggunakan PC kosporasi untuk mengakses informasi, yang hal ini dapat cukup menyusahkan. Karena IPSec memungkinkan full LAN (atau VLAN), maka user dapat mengakses informasi internal yang bersifat sensitif.
Gambar 8 berikut ini mengilutrasikan VPN dengan IPSec.
Gambar 8 IPSec VPN 5.2 VPN dengan SSL
11
VPN dengan IPSec merupakan solusi yang baik untuk sejumlah user yang dapat dipercaya untuk mengakses LAN dari PC korporasi yang dikelola. Namun, akan semakin banyak user yang mengakses dari berbagai lokasi remote (rumah, site customer, dll), yang menggunakan device berbeda-beda (laptop, PSA, dan telepon selular yang web-enabled), dan merupakan tipe user yang berbeda (pegawai, kontraktor, partner bisnis atau customer). Dengan begitu, ketika organisasi memiliki ratusan atau bahkan ribuan user remote, atau ketika organisasi tidak dapat mengontrol desktop user (seperti partner bisnis) karena untuk menginstall perangkat lunak pada PC user remote sangatlah mahal, maka akan sangat sulit untuk dikelola dan tidak praktis.
Karena itulah, maka muncul jenis VPN baru, yaitu VPN dengan SSL. SSL VPN menggunakan protokol SSL, yang merupakan bagian dari semua web browser standar untuk menyediakan transmisi data yang aman melalui internet, dan bukan perangkat lunak individual pada client. Karena SSL VPN hanya membutuhkan sebuah web browser dan koneksi internet, maka menjadi solusi remote access yang sangat fleksibel. Walaupun sebenarnya bukan solusi yang ideal untuk koneksi antar site (site-to-site), di mana servis “onthe-LAN” merupakan faktor yang cukup penting. Gambar 9 berikut ini mengilutrasikan VPN dengan IPSec.
Gambar 9 SSL VPN 6. Perbandingan Karena VPN dirancang untuk menyediakan akses terhadap informasi internal, keamanan dan kontrol akses menjadi masalah utama. VPN dengan IPSec maupun dengan SSL menyediakan enkripsi untuk memastikan confidentiality dan integrity data pada transit di jaringan publik internet. Hal ini menjawab masalah data integrity, di mana informasi yang dikirimkan adalah sama dengan informasi yang akan diterima. Namun, hal ini tidak memperhatikan masalah lain yang lebih besar tentang identitas user pada lingkungan SSL atau IPSec.
Dengan IPSec VPN, perangkat lunak client harus diinstall pada masing-masing PC. Langkah menginstall perangkat lunak ini dapat memberi kesan bahwa IPSec VPN lebih dapat dipercaya. Kesan ini tidak sepenuhnya benar mengingat semakin banyaknya perangkat lunak client yang gratis dan mudah didownload oleh pihak-pihak yang memang berniat buruk. SSL VPN dapat menyediakan akses untuk user yang lebih luas yang membuatnya kurang begitu dikenal karena tidak butuh untuk menginstall perangkat lunak pada PC client. Kedua jenis solusi VPN ini sangat efektif untuk protokol dan metodologi pengujian field. Keduanya menawarkan performansi bandwidth dan level enkripsi yang sama. Terlebih lagi,
12
keduanya juga tidak eksklusif mutual, sehingga sering dapat dideploy dalam organisasi yang sama. Walaupun begitu, keduanya memiliki kelebihan masing-masing yang membuat keduanya akan cocok untuk situasi tertentu. Contohnya, IPSec VPN dianggap ideal untuk koneksi yang statis dan berjangka panjang antar kantor, sedangkan SSL VPN merupakan pilihan terbaik untuk menyediakan akses kepada jumlah yang besar dari user. Berikut ini akan dibahas perbandingan kedua jenis solusi tersebut dalam dua faktor pembanding, yaitu ongkos dan manajemen, dan fleksibilitas.
6.1 Ongkos dan manajemen Karena menyediakan transparansi user, maka IPSec VPN merupakan pilihan utama untuk koneksi site-to-site. IPSec VPN juga efektif untuk akses remote user, namun membutuhkan perangkat lunak yang harus diinstall dan dikonfigurasi, atau kadang juga butuh untuk di-upgrade pada masing-masing PC user. Untuk populasi yang kecil dan terbatas, seperti sejumlah pegawai remote, hal ini dapat dikelola. Namun, untuk organisasi yang butuh untuk menyediakan remote access bagi sejumlah besar user remote pada lokasi yang berbeda-beda, menginstall dan melakukan konfigurasi perangkat lunak client untuk masing-masing PC user akan sangat menyusahkan, di samping memerlukan ongkos yang juga cukup besar. Bahkan untuk menyediakan akses kepada user seperti partner bisnis atau customer, menginstall perangkat lunak merupakan hal yang sangat tidak mungkin untuk dilakukan. Untuk situasi seperti itu, di mana organisasi tidak dapat mengontrol PC user, maka SSL VPN dapat menjadi pilihan yang lebih baik. Dengan SSL VPN, user tidak perlu untuk menginstall perangkat lunak client pada PC mereka (atau PDA, atau telepon selular) untuk dapat mengakses organisasi. Dengan begitu, tidak diperlukan ongkos dan manajemen untuk masing-masing user.
Selain itu, dengan SSL VPN hubungan antara user dan resource organisasi terjadi pada level aplikasi. Hal ini menyebabkan sistem operasi SSL VPN independent. Dengan begitu, jika sistem operasi pada user diganti, maka tidak ada yang perlu dilakukan agar VPN tetap dapat dijalankan. Sedangkan untuk IPSEc VPN, perangkat lunak client harus di-upgrade dan dikonfigurasi ulang. Karena tidak adanya perangkat lunak client yang perlu dikonfigurasi ataupun dipelihara, SSL VPN secara keseluruhan dapat menawarkan ongkos yang lebih rendah untuk deployment, dan juga ongkos yang lebih rendah untuk kepemilikan (ownership) untuk organisasi yang melayani user dengan jumlah yang besar dan berbeda-beda. 6.2 Fleksibilitas Pengeliminasian kebutuhan untuk penyewaan saluran khusus dengan bantuan jaringan publik internet, IPSec VPN merepresentasikan perbaikan dalam fleksibilitas. IPSec VPN dideploy pada konfigurasi site-to-site dapat memberikan fungsi-fungsi dasar yang sama yang disediakan oleh saluran khusus, dengan ongkos yang jauh lebih murah. Untuk remote user, konektivitas IPSec VPN terbatas pada PC yang di dalamnya perangkat lunak client telah diinstall dan dikonfigurasi. Dengan begitu, jika organisasi dapat mengontrol desktop user, maka IPSec dapat menjadi solusi yang feasible, walaupun akan semakin sulit untuk dikelola ketika user semakin bertambah banyak. Ketika personel IT tidak dapat mengontrol PS, seperti partner bisnis dan customer, SSL dapat menjadi pilihan yang lebih fleksibel. Dengan SSL, “client”-nya adalah browser itu sendiri, yang terdapat di mana-mana, sehingga tidak hanya PC secara virtual, tetapi juga kios internet, PDA, dan banyak telepon selular. SSL VPN menjadi sangat scalable, menyediakan lingkungan yang fully portable, di manapun pengaksesan dilakukan.
13
Keuntungan paling utama dari SSL VPN adalah VPN jenis ini mendukung bukan hanya jenis remote user pegawai remote, tetapi juga partner bisnis dan customer, sehingga membantu menyokong produktivitas dan meningkatkan
pelayanan terhadap customer dan aktivitas lainnya. Tabel 1 berikut ini adalah tabel yang menunjukkan perbandingan IPSec dan SSL VPN untuk beberapa kriteria yang diperhitungkan.
Tabel 1 Perbandingan SSL dan IPSec VPN Kriteria Fitur pada SSL VPN Dukungan otentikasi - otentikasi satu arah - otentikasi dua arah - sertifikat digital Enkripsi - enkripsi kuat - berbasis browser Keamanan - end-to-end security - client to resource encrypted Aksesibilitas - kapanpun dan di manapun user berada Ongkos - rendah - tidak memerlukan perangkat lunak client Instalasi - plug and play - tidak memerlukan perangkat lunak atau keras tertentu Kesederhanaan bagi - user friendly user - tidak membutuhkan training Perangkat lunak yang - web browser standar dibutuhkan client Skalabilitas - scalable dan mudah dideploy User
- customer, partner, pegawai, vendor, dsb
Fitur pada IPSec VPN - otentikasi dua arah - sertifikat digital -
enkripsi kuat tergantung implementasi edge to client client to VPN gateway only encrypted terbatas pada user yang dapat dikontrol
- tinggi - butuh perangkat lunak client - kadang deployment yang lama - memerlukan perangkat lunak atau keras tertentu - sulit untuk user non-teknis - membutuhkan training - perangkat lunak client IPSec - scalable pada sisi server - kurang scalable untuk client - lebih cocok untuk internal organisasi
7. Kesimpulan
DAFTAR PUSTAKA
IPSec dan SSL VPN merupakan solusi yang efektif dan efisien dalam menyediakan akses bagi remote user [4]. Masing-masing memiliki keunggulan di situasi yang berbeda-beda, dan juga banyak organisasi yang kompleks dapat menggunakan kedua jenis solusi ini.
[1]
AbdelNasir Alshamsi, Takamichi Saito. A Technical Comparison of IPSec and SSL. Tokyo University of Technology
[2]
AccessAnywhere White Paper (2003). IPSec VPN vs SSL VPN. http://www.accessanywhere.net Tanggal akses: 8 Desember 2006 pukul 15.00 WIB
[3]
Array Nerworks White Paper. SSL VPN vs IPSec VPN. http://www.arraynetworks.net Tanggal akses: 8 Desember 2006 pukul 15.00 WIB
[4]
Aventail White Paper (2005). IPSec vs. SSL VPNs for Secure Remote Access. http://www.aventail.com Tanggal akses: 8 Desember 2006 pukul 15.00 WIB
IPSec VPN sangat ideal untuk organisasi yang memiliki jumlah remote user yang relatif kecil dan juga organisasi dapat mengontrol masingmasing user. Sedangkan untuk kondisi sebaliknya, maka SSL VPN menjadi solusi yang lebih baik. Salah satu dari IPSec dan SSL VPN tidak “lebih baik” dari yang lainnya karena keduanya ideal untuk situasi yang cocok untuk masing-masing. Karena keduanya mengamankan data ketika transmisi, maka kunci yang harus deperhatikan adalah bagaimana menyediakan otentikasi yang efektif untuk memastikan user adalah user yang valid.
14
[5]
Dynamic C Module. Secure Sockets Layer (SSL) Protocol. http://www.rabbit.com Tanggal akses: 8 Desember 2006 pukul 15.00 WIB
[6]
Netilla Nerworks White Paper (2003). A Comparison of VPN Solutions: SSL vs IPSec. http://www.netilla.com Tanggal akses: 8 Desember 2006 pukul 15.00 WIB
[7]
Niels Ferguson dan Bruce Schneier (2000) A Cryptographic Evaluation of IPSec. Counterpane Internet Security, Inc.
[8]
Radia Perlman, Charlie Kaufman. Analysis of the IPSec Key Exchange Standard. Sun Microsystem Laboratories
[9]
Rinaldi Munir (2006). Diktat Kuliah IF5054 Kriptografi. Program Studi Teknik Informatika, Institut Teknologi Bandung.
[10]
Sheila Frankel et. al. (2005) Guide to IPSec VPN. National Institute of Standards and Technology. Departemen Komersial Amerika Serikat
15