Memahami OpenVPN (part 1)

Memahami OpenVPN

1. Apakah VPN itu dan apakah perbedaan antara VPN dengan software security lainnya?

  • Secara mendasar, VPN adalah sekumpulan tools yang mengijinkan jaringan yang berbeda lokasi dapat terkoneksi/berhubungan dengan aman, dimana menggunakan jaringan public sebagai transport layer (transport layer).
  • VPN menggunakan cryptography dalam memberikan layanan keamanan melawan serangan dari luar jaringan
  • VPN merupakan software yang paling umum digunakan saat ini dalam komunikasi jarak jauh dan menghubungkan  kantor-kantor cabang melalui jaringan aman WAN.

2. Jaringan WAN sebelum VPN

  • Perusahaan menghabiskan jutaan rupiah per bulan untuk membuat jaringan private ataupun dedicated circuit untuk menghubungkan kantor-kantor cabang mereka.
  • Perkembangan internet melahirkan jaringan yang murah, namun tidak aman.
  • Konsep VPN memberikan “Jaringan Pribadi” virtual, yang tersambung melalui jaringan internet dan menggunakan cryptography sebagai keamanannya.

3. Sejarah Singkat VPN

  • IPSec merupakan yang pertama yang dikembangkan sebagai standar dalam upaya menjaga keamanan dalam jaringan.
  • Versi pertama yang dihasilkan adalah pada tahun 1995
  • IPSec, seperti crypto lain yang dikembangkan menjadi terhambat karena library yang berat sumber daya yang sangat berat di routers dimana IPSec tersebut di implementasikan.
  • Beberapa komponen dari IPSec, seperti IKE masih dikembangkan hingga saat ini, sungguh proses pengembangan yang sangat lama !

4. Masalah pada IPSec

  • Kemajuan pengembangan yang sangat lamban selama tahun 90-an
  • SSL adalah salah satu bagian, yang dibuat di tingkat aplikasi, bukan di tingkat jaringan.
  • Implementasi IPSec membutuhkan pengetahuan yang mendalam tentang kernel, dan sangat susah untuk di implementasikan pada system operasi yang berbeda.
  • IPSec merupakan produk yang sangat kompleks dan relative sangat sulit di pelajari dan di kuasai, terlebih oleh para pemula.

5. Kebangkitan SSL dan user-space VPN

  • SSL lahir dan berkembang dengan sangat cepat dikarenakan pemakaian yang sangat banyak di jaringan internet.
  • SSL berjalan di level pengguna dan cendrung sederhana dalam proses pengimplementasiannya dan administrasinya.
  • Sehingga muncullah apa yang kita sebut SSL VPN yang sering di sebut dengan aplikasi web yang mencoba untuk memberikan user suatu layanan yang mereka butuhkan tanpa perlu mengimplementasikan FULL VPN

6. LINUX dan Virtual Network Interface (Antarmuka Jaringan Virtual)

  • Kematangan OS LINUX di akhir tahun 90-an melahirkan sebuah dasar atau landasan yang baik sekali sebagai untuk konsep system keamanan jaringan
  • Salah satu inovasi yang ada adalah antarmuka ‘tun’ dan ‘tap’
  • Driver tun yang pertama dalam linux di tulis oleh Maxim Krasnyansky.

7. Apakah antarmuka tun itu?

  • Antar muka tun adalah sebuah virtual network adapter yang mirip/serupa dengan perangkat keras jaringan point-to-point terhdapap system operasi, seperti T1 Line.
  • Tetapi bukan mendorong bit melewati kabel, tetapi driver akan melewatkan bit ke user space
  • Program user space dapat membuka tun sama halnya membuka file dan membaca dan menulis paket IP dari dan ke tun (virtual network adapter) tersebut.
  • tap merupakan produk yang sama dengan tun, bedanya tap adalah meng simulisaikan jaringan Ethernet bukan point-to-point seperti tun.

8. Bagaimana antar muka tun digunakan untuk membangun sebuah VPN ?

  • Misalnya kita memiliki interface tun di mesin A dan satu lagi di mesin B
  • Kita menulis program jaringan sederhana yang berfungsi untuk mengkopi bit dari interface tun à network socket, dan mengkopi bit dari network socket à interface tun
  • Apabila kita menjalankan aplikasi kecil ini di mesin A dan mesin B, maka kita telah membangun VPN yang sangat sederhana tanpa komponen keamanan (security component).

9. Bagaimana antar muka tun digunakan untuk membangun sebuah VPN ? (lanjutan…)

  • Dari mesin A kita dapat melakukan ping ke device tun di mesin B, dan sebaliknya.
  • Ping tersebut sebenarnya akan berjalan melalui socket connection, cth : paket ping  akan di bungkus dalam suatu paket UDP atau TCP dan saling dikirim diantara mesin A dan mesin B.
  • Masalahnya adalah program ini tidak menerapkan system keamanan, sehingga untuk contoh komunikasi seperti ini sering disebut dengan cleartext tunnel.

10. Menambah sistem keamananan pada VPN

  • Dari program sederhana yang telah dibuat sebelumnya, yaitu tunnels sebuah antarmuka jaringan virtual (virtual network interface) melalui koneksi TCP atau UDP.
  • Dengan meneruskan salah satu seperti koneksi TCP melalui tools secure port forwarding seperti SSH, kita dapat membangun sebuah jaringan VPN yang nyata (A REAL VPN).

11. Masalah pada pengembangan VPN menggunakan SSH

  • Bagaimanapun juga contoh diatas masih mengandung masalah.
  • IP yang merupakan yang dikenal dengan protokol yang “UNRELIABLE” (TIDAK DAPAT DIANDALKAN)
  • Bukan bermaksud untuk menjelekkan
  • Maksdunya adalah anggap protokol IP yang mengirimkan paket melalui jaringan fisik atau virtual dapan rusak atau hilang di perjalanan.
  • Dalam keluarga protokol IP, seperti TCP akan bekerja sangat keras dalam asumsi seperti diatas (lost or corrupted packet)

12. Protokol Reliable dan Unreliable

  • TCP adalah aplikasi yang reliable (dapat diandalkan) yang menggunakan unreliable transport layer.
  • Ini berarti Web Browser (HTTP adalah protokol TCP) mengharapkan TCP untuk menangani masalah yang terjadi dalam komunikasi koneksi diantara client dan server yang berada pada lokasi yang jauh.
  • TCP akan mengatasi masalah dengan cara mengirimkan kembali (retransmitting) paket yang hilang atau rusak selama terajalinya koneksi yang macet atau gagal.
  • TCP merupakan jembatan penghubunga yang andal antara aplikasi dengan layer jaringan fisik.

13. Ecapsulating Protocol

  • Salah satu hal yang keren di dunia jaringan adalah, kita dapat mengambil suatu protokol dan mengenkapsulisasi (membungkus) ke protokol lain.
  • Bila kita kembali ke aplikasi VPN sederhana kita sebelumnya, dapat dijelaskan bahwa kita telah membungkus IP kedalam sebuah port TCP, dan menggunakan SSH untuk mengamankan koneksi tersebut dengan remote host lain.
  • Selama pengkapsulan menjadi perhatian,kita mengkapsulisai IP (yang menyertakan Protokol TCP dan UDP) kedalam TCP.

14. Pengkapsulan TCP dalam TCP – masalah-masalahnya

  • Masalah mendasar pada proses pengkapsulan,bagaimanapun ada masalah dalam grafik perjalanan pengkapsulan
  • TCP di desain untuk berjalan di protokol jaringan yang unreliable,mendorong TCP ke dalam TCP berarti kita mengulang suatu layer yang reliable ke dalam layer lainnya, pada dasarnya kita menggandakan semuat level layer.
  • Penggandaan ini akan menangani kekurang efesiensi dan kekurang handalan dalam kondisi trafik jaringan yang padat.

15. Fixing the Problem (Pemecahan Masalah)

  • Solusei yang lebih baik dalam menangani masalah ini adalah membungkus TCP kedalam UDP.
  • UDP adalah “Keluarga yang unreliable” dari TCP, UDP menghilangkan semua keandalan (reliability) dari TCP,dan menyerahkan tanggungjawab kepada aplikasi untuk paket yang akan dikirimkan ataupun paket yang diterima yang tidak berurutan sesuai dengan bagaimana paket tersebut dikirim.

16. Mengapa UDP lebih baik dalam hal Pengkapsulan IP ?

  • Alasan mendasar bahwa IP di desain melewati jalur kabel, fiber, maupun wireless, yang mana kesemuanya jalur ini adalah media fisik yang unreliable terhadap jalur yang sibuk.
  • Karena UDP sendiri merupakan protokol yang unreliable, maka UDP memberikan IP suatu transmisi medium yang merupakan sedapat-dapat tertutup terhadap lingkungan asli UDP berjalan(its natvie environtment).
  • Pengkapsulan IP dalam UDP merupakan pilihan yang ideal.

17. VPN dan UDP

  • VPN yang modern,portability,mudah dalam konfigurasi,user-space memiliki properti-properti dasar.
  • Paket IP dari adapter jaringan virtual (virtual network adapter) di enkripsikan dan dibungkus (encapsulated), kedalam suatu koneksi jaringan UDP, dan dikirim melalui jaringa internet ke suatu remote host.
  • Dilain pihak remote host penerima akan melakukan deckripsi,melakukan authentifikas, mendekapsulisasi paket tersebut ke dalam virtual adapter tun atau tap di remote host tersebut.

18. VPN invisible terhadap aplikasi yang di tunnel

  • Model VPN user-space ini pada dasarnya menghubungkan virutal adapter tun local dengan dengan virtual adapter tun remote.
  • Satu yang dapat diterapkan adalah aturan-aturan routes atau firewall pada interface virtual tun atau tap sama halnya yang kita lakukan pada ethernet interface.
  • Aplikasi yang menggunakan VPN akan tidak akan mendapati perbedaan dengan WAN yang diimplementasikan pada dedicated circuit.

19. Memasuki OpenVPN (Enter OpenVPN)

  • Saat ini ada sejumlah VPN yang Open Source yang mengikuti aturan model user-space tun atau tap
  • OpenVPN,VTun,Tinc,Cipe, dan banyak lagi yang aktif dikembangkan belakangan ini.
  • Kesemuanya dikembangkan secara betolak belakang dengan IPSec, atau dapat dikatakan dikembankan dengan cara yang berbeda dengan IPSec.

20. User-space tun/tap Vs IPSec

  • Ada sejumlah kontroversi antara pendekatan keduanya.
  • User-space lebih portability dan mudah untuk di konfigurasikan
  • IPSec lebih rumit dan menawarkan mulit vendor dalam dukungannya dan harus di dukung oleh jalur yang dedicated.
  • Kekompleksitasan dari IPSec tersebut seringkali menimbulkan kesulitan oleh vendor A dalam implementasinya dalam hubungannya yang harus dijalin dengan vendor B.

21. Bagaimana VPN melaksanakan keamanan?

  • VPN harus melindungi dari serangan yang aktif maupun pasif.
  • Penyerang yang pasif adalah penyerang yang tidak dapat melakukan interupsi atau modifikasi jalur data antara dua pihak yang saling berkomunikasi.
  • Enkripsi merupakan lawan yang ampuh untuk mengalahkan serangan pasif

22. Serangan aktif

  • Penyerang yang aktif memiliki kemampuan untuk masuk kedalam jalur komunikasi dan dapat memodifikasi, menghapus, menambah paket data yang terjalin antara dua pihak yang saling berkomunikasi.
  • Untuk alasan ini serangan yang secara umum dilakukan masuk dalam kategori serangan “penyerang menengah/sedang-sedang”

23. Serangan aktif dapat di gagalkan dengan penggunaan authentifikasi (active attack are thwarted through the use of authentication)

  • Bila banyak orang percaya bahwa VPN adalah kesemuanya tentang enkripisi,hal yang lebih besar dan lebih sulit yang harus di pecahkan adalah memcahkan masalah tentang authentifikasi.
  • Authentifikasi dalam konteks VPN melibatkan “signing” setiap paket dengan secure hash, sehingga penerima dapat membuktikan bahwa paket yang datang merupakan datang dari sumber yang sah.
  • Baik OpenVPN maupun IPSec menggunakan HMAC construction untuk mengautentifikasi paket.

24. HMAC bukan solusi yang 100% melawan serangan yang aktif.

  • Bahkan setelah menerapka HMAC, kita masih dapat rentan terhadap dua tipe serangan aktif, yaitu :
  • Replay attacks
  • Known plaintext attacks

25. Replay attacks

  • Umpamakan seorang penyerang dapat melakukan tap kedalam jalur T1 bank pada pukul 3am ketika jalur tidak sibuk.
  • Sembari mengamati bits terenkripsi yang lewat melalui jalur komunikasi dengan menggunakan tool seperti “snort”, penyerang tersebut masuk ke account pribadinya ke website bank sambil melakukan transaksi resmi dan terus mengamati paket terenkripsi melalui jalur T1.
  • Bila dia mampu, sejalan dengan analisis waktu, penyerang dapat mendapatkan akses dan mendapatkan contoh paket terenkripsi yang merepresentasikan transaksi yang dilakukannya.
  • Apa yang akan terjadi bila penyerang melakukan spam pada jalur T1 dengan paket yang sangat besar dengan sample yang dia dapatkan
  • Penyerang tidak perlu memahami atau mengetahui enkripsi, dia hanya meduplikat sample paket yang dia dapatkan dgn banyak.
  • Apabila bank hanya menggunakan enkripsi tanpa proteksi replay attacks maka bank akan kebanjiran transaksi yang sama tanpa penjelasan yang masuk akal di pagi harinya.
  • Solusi yang tepat untuk serangan seperti ini adalah dengan memasukkan ID unik dan timestamp untuk setiap paket sebelum melakukan signing
  • Penerima harus selalu mengikuti timestamp ini dan harus menolak timestamp yang sama dua kali, artinya tidak ada paket dengan timestamp yang sama.
  • Baik VPN maupun IPSec menggunakan proteksi replay attacks dengan menggunakan algotrima sliding window (sliding window algorithm)

26. Known plaintext attacks

  • Kembali ke kasus penyerang di rekening bank, anggap misalnya attacker melakukan transfer uang sebanyak 5 kali dengan jumlah yang berbeda.
  • Dengan cara menganalisis chipertext di jalur T1 si penyerang akan dapat memahami perbedaan dari offset di bit paket yang dapat dilihat berbeda di sejumlah uang yang berbeda di transfer di sample paket yang diambil.

27. OpenVPN dan crypthography

  • Cryptography merupakan suatu bidang ilmu yang khusus untuk tingkat lanjut.
  • OpenVPN mengambil langkah dengan sistem pendekatan modular untuk bidang ini.
  • Kebanyakan fungsi-fungsi crypto di turunkan pada library OpenSSL
  • OpenVPN telah di proteksi dari serangan aktif maupun serangan pasif serta serangan-serangan lain yang dikenal.

28. OpenVPN dan Keying

  • OpenVPN mencoba untuk memberikan yang terbaik dalam kinerjanya dan proses keying.
  • Statis, pre-share keying di sediakan untuk kemudahan konfigurasi.
  • Full RSA PKI, melalui library OpenSSL,di sediakan untuk full certificate dan operasi private key.
  • SSL/TLS dapat digunakan untuk inisialisai proses authentifikasi dan pertukaran symetric key
  • Konstruksi HMAC merupakan kontribusi yang tangguh dan elegan dari komunitas cryptography – tetapi dalam operasinya tetap membutuhkan share secret key pada secure connection.
  • Bagaimana dua pihak yang saling berkomunikasi melakukan “bootstrap” key mereka dalam upaya komunikasi mereka agar terhindar dari attacker?

29. Mengenal Cryptography Public Key

Advertisement

One response to this post.

  1. Posted by Surya on October 20, 2010 at 9:25 am

    Ini yang saya cari… nice info gan… Saya Tunggu Part selanjutnya….

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.