Home

How VPN works (especially site2site one)

4 Comments

Well, another one of my note that left behind, I’ll make sure this one goes to my blog as well…

Gua buat catetan ini karena banyak konfigurasi yang ga ngerti pas lagi buat VPN…

ini command buat apaaa…kenapa harus adaaa…dsb dsb…

Make sure you read my basic VPN article first

———————————————————-

VPN Networking Protocol, the basic

There are 4 main protocols:

  • PPTP (Point-to-Point Tunnel Protocol), metode agar gimana caranya client/workstation bisa konek ke VPN (kek remote VPN gitu)
  • L2TP (Layer 2 Tunnel Protocol), metode agar gimana caranya Main Office Network bisa konek ke Branch Office network via ISP tapi dengan skema IP yang sama/network yang sama (contoh: main network pake IP 10.1.1.0~10.1.1.200, nah branch network tinggal make ip sisanya sampe 10.1.1.254…seakan2 nge-LAN gituh…walaupun beda wilayah)
  • IPsec (IP Security)…metode enkripsi untuk layer 3 (IP – internet Protocol)
  • SSL (Secure Socket Layer)…metode enkripsi untuk layer 4 keatas

Like I said…VPN networking protocol (Layer 3 in OSI Layer)…

The difference? I’ll explain it to you simply in one line: PPTP < L2TP < SSL < IPsec

Yang gunain PPTP rata2 adalah Microsoft Client (using Microsoft Windows Platform) and this protocol is a weak one (but easier to use and configure), link

Yang gunain L2TP rata2 adalah ISP…kelemahannya adalah Layer 3 ga dienkripsi (untuk itu biasanya digabung sama IPsec)

Yang gunain SSL adalah remote user untuk Remove VPN, user2 hanya perlu komputer yang support “HTTPS” (clientless, ga perlu install macem2, cukup browser aja)

Yang terakhir yang paling bagus adalah IPsec (RFC 4301)…jeleknya adalah settingannya aga banyak, plus harus disetting on both side of network, that’s why SSL more preferable in common user

——————————————————————

So…IPsec huh?

IPsec is quite complex (that’s why it secure…), why?

  • Because there must be some policy how to exchange and manage the key
  • Because there must be some protocol that can authenticate traffic
  • Or, there must be a protocol that CAN both encrypt and authenticate the traffic

From seeing above image, you’ll understand what I mean…

So, dalam membangun VPN terutama site2site…settingan IPsec pasti ada…

This guy itself support 2 encryption modes:

  • Transport mode: encrypt only payload (data), header ga diutak atik

ipsec-modes-transport-tunnel-3

  • Tunnel mode: default, more secure, header packet (inget…yg CCNA, PDU layer internet apa pada TCP/IP protocol?!?) juga di enkripsi

——————————————————–

Key Management, Policy, and Negotiation

Yup…we’re talking about IKE* (Internet Key Exchange)

Yang namanya VPN pasti ada tuker2an kunci (traffic VPN kan di enkripsi…cara buka-nya gimana…validasi peering VPN-nya juga gimana)

Nah, kita membahas how IKE works…

This protocol consist of 2 phase

  • Phase 1 (ISAKMP* Phase):
    • Specify gateway addresses (local ip buat VPN gateway traffic inbound dan remote ip VPN gateway traffic outbound)
    • Specify authentication…mau pake PSK* (pre-shared-key) atau mau pake Digital Certificate* (via CA*/PKI*)
    • Specify NAT-T* (NAT Traversal)
    • Specify Transform-set*
    • Phase 1 ada 2 mode:
      • Main Mode: more secure but slower…commonly used
      • Aggressive Mode: fast without encryption…biasanya klo salah satu IP Gateway ada yang dinamis, contoh:

    • All of those parameter above is called SA*

Don’t worry…I’ll explain those Terminology used in this article on the bottom chapter

  • Phase 2 (IPsec Phase):
    • Specify what traffic/network go through VPN (Access-list anyone?!?)
    • Specify the use of PFS*
    • Specify the proposal
      • authenticate and encrypt the traffic (ESP* – Encapsulating Security Payload)
      • or authenticate only (AH – Authentication Header), better performance-less secure
      • or both of them…AH and ESP (not common anymore, everyone prefers ESP now)
    • Specify Expiry Date…for Key and Session

Nah, IKE itu ada 2 versi…versi jadul yaitu IKEv1 dan versi robust and flexible one which called IKEv2

—————————————————————

IKEv1 and v2

IKEv1

  • Defined in RFC 2409
  • Use UDP port 500
  • Using “Phased” approach (ISAKMP – RFC 2408 on phase 1)

IKEv2

  • One of the document is RFC 4306 and RFC 5996
  • Same…use UDP port 500, and port 4500
  • Not backward compatible to IKEv1
  • Using Child SA instead of phase
  • Fewer exchanges data to form than IKEv1
  • Has built-in DPD*
  • Resistant to DoS attack because of cookie mechanism
  • Has built-in NAT-T
  • Can be used with EAP*

3 steps in IKEv2 exchange messages:

  • IKE_SA_INIT: tuker2 proposal SA sama peer, klo match…ke step selanjutnya (klo di IKEv1, mm-main mode alias phase 1-nya udah 4x bolak balik transaksi peering VPN)
  • IKE_AUTH & CREATE_CHILD_SA: authentikasi peers dan bikin child SA (ini kek Phase 2 di IKEv2, qm-quick mode)
    • CHILD_SA ini berguna untuk notifikasi peer mati, keepalive, authentication message, bikin key baru/rekeying dll
    • Klo ga ada child_sa, berarti balik lagi ke phase 1…repot
    • Ini artinya lebih cepet connect/reconnect-nya

IKEv2 provide better DoS prevention

Di IKE…hacker bisa ngirim SPI* (lets say peer initiation) to victim router with many spoofed IP address, hasilnya…consume CPU resources karena banyak “half open” initiation yang masuk, klo ga ada mekanisme prevention DoS…maka ketika victim router establish connection ke router peer DENGAN SPI/KEY YANG DIKASI HACKER…wassalam, ketauan semua isinya, soalnya hacker bisa generate sendiri key-nya (orang dia yang bikin) plus bisa decrypt traffic pake kunci itu

Di IKEv2, mereka pake cookies pas pertama kali peering VPN (ada semacam fingerprint lah)…jadi klo hacker ngirim SPI intended for man-in-the-middle attack…si victim router tinggal ngomong…”bener ga lu ngirim ginian?
Ke router asli-nya….karena router asli-nya punya cookie pas pertama kali peering…tinggal di cek…klo salah, di drop

Nah, di Cisco…mereka punya teknologi yang bernama FlexVPN* that relies heavily on IKEv2…

—————————————————————

Terminology

ISAKMP (Internet Security Association and Key Management Protocol): this is a framework…of protocol, kek lu mau masuk ke istana Negara…pasti ada protocol yang harus dipenuhi sebelum lu bisa masuk, nah protocol2 itu kan ga Cuma 1…pasti ada parameter2 lain yang harus dipenuhi. Kumpulan protocol2 ini di VPN dinamakan SA (security association)

Framework: i might have to explain this because I’ve used this words many times…klo protocol itu aturan, nah framework itu adalah kumpulan peraturan2

PSK (Pre-shared-key): think this as a password or key to enter a door…password being said must exactly same like password remembered by door guard (key also…must match in order to unlock the door), lawannya PSK? Digital Certificate

Digital Certificate: tired remembering all the password for site A, site B, site C, and so on…?? Or exhausted from bringing all keys in “Key-chain” to unlock all the doors?…this is the solution, it like ID Card for US…as long as You (as ID Card bearer) and Door Guard recognize the Card (who made it of course) then you ready to go…

PKI (Public Key Infrastucture): this is a framework explaining how to create digital certificate, which mentioned above

CA (Certificate Authority): ini server yang bikin digital certificate, dia yang bikin, dia juga yang verifikasi keasliannya

RA (Registration Authority): ini optional, klo lu mau CA cuma bikin sertifikat dan yang nge-cek validitasnya server lain…si RA ini untuk ngecek validitas certificate-nya

CRL (Certificate Revocation List): ini serial number-nya certificate…di dalemnya ada masa berlaku ini sertifikat (expiry date)

SCEP (Simple Certificate Enrollment Protocol): Cisco punya, kek PKI Framework-nya Cisco…simple, Cuma pake HTTP untuk ngirim dan nerima request dan sertifikat

NAT-T (NAT Traversal): NAT and IPsec is not compatible each other, NAT itu kan ganti IP…jelas akan break salah satu rules dari VPN yaitu integrity (make sure data hasn’t been changed). NAT-T ini bikin header UDP di”depan”nya IPsec…jadi yang dibaca UDP NAT-nya dulu bukan IPsec-nya…both side harus aware klo mereka pake NAT-T (bahasa mudahnya…2-2nya harus dienable NAT-T klo mau pake VPN). Workaround for NAT-T? just use IP PUBLIC on your Firewall/Gateway

SA (Security Association): men-define mau pake apa enkripsinya, integritynya (hashing), bikin key sama tuker2annya mau pake apa

  • Encryption mode: aes, des, 3des
  • Hashing mode: md5 atau sha
  • Key exchange mechanism: DH = diffie-hellman, all variant
  • Expiry date untuk key-nya

Transform Set: isinya adalah metode yang akan digunakan oleh IPsec…mau pake ESP apa AH

PFS (Perfect Forward Secrecy): ensure itu VPN peer ga make key yang sama klo mau bikin session VPN baru

ESP (Encapsulation Security Payload): defined in RFC 4303 using IP Protocol* 50, isinya bagaimana caranya kita bisa authenticate dan encrypt itu traffic lewat VPN

IP Protocol: tipe2 sub-protocol didalam IP itu sendiri, contoh: 50 – ESP, 51 – AH, 46 – RVSP buat QoS, dll…(link)

AH (Authentication Header): more fast but less secure than ESP, only authenticate header with no encryption

DPD (Dead Peer Detection): teknologi untuk memastikan VPN peering kita ga down…kek IP SLA-nya VPN lah (default di IKEv2 sudah bisa setting ginian, ga perlu konfigurasi khusus kek di IKEv1)

EAP (Extensible Authentication Protocol): sebuah framework untuk extend PPP protocol yang mengatur bagaimana caranya mengauthentikasi user (bisa pake password, AAA, LEAP-nya Cisco, EAPOL-nya ethernet LAN, dll)

SPI (Security Parameter Indexes): mekanisme identifikasi SA ke packet yang datang (besarnya 32 bit)

——————–

References:

ISAKMP – https://tools.ietf.org/html/rfc2408

IKE – https://www.ietf.org/rfc/rfc2409.txt

Security Architecture for IP – https://tools.ietf.org/html/rfc4301

IPsec – https://tools.ietf.org/html/rfc4303

IKEv2 – https://tools.ietf.org/html/rfc4306

IKEv2 Updated – https://tools.ietf.org/html/rfc5996

http://www.h-online.com/security/features/A-death-blow-for-PPTP-1716768.html

https://tools.ietf.org/html/draft-ietf-ipsec-ikev2-tutorial-01

http://www.juniper.net/documentation/en_US/junos12.3×48/topics/concept/vpn-security-ikev2-understanding.html

http://security.stackexchange.com/questions/56434/understanding-the-details-of-spi-in-ike-and-ipsec

https://supportforums.cisco.com/document/21746/what-extensible-authentication-protocol

https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers

CCNP Security SIMOS powerpoint slide

VPN (Virtual Private Network)

8 Comments

What is VPN…VPN adalah suatu cara agar perusahaan dapat terhubung ke tempat lain (dalam hal ini bisa aja Branch Office) melalui public infrastructure tanpa bisa diketahui oleh orang lain yang memakai public infrastructure yang sama

Berdasarkan Geography:

  • Site-to-Site VPN
  • Remote Site VPN

Berdasarkan Service:

  • L2 VPN (Overlay VPN)
  • L3 VPN (Peer-to-Peer VPN)

 

Analogy:

Di samudra yang luas (internet/ISP) terdapat banyak pulau (LAN, Office LAN, etc.), untuk menghubungkan pulau yang satu dengan yang lain dapat menggunakan Ferry (Public Infrastructure such as Cable Modem and ADSL) dimana semua orang bisa liat apa yang akan kita lakukan, kemana arah yang kita tuju, mau ngapain kesana (belum lagi penumpang Ferry nya biang gosip…wkwkwk)

Ok..Ferry out of option…berhubung pulaunya deket, kita kasih jembatan aja (Leased Line) selesai (banyak Company memakai opsi ini)

Tapi kalau jauh gimana ?? Cost nya bengkak…bikin kabel, gali tanah, pasang2 lagi aja uda berapa biayanya, belum lagi maintenance nya

Solusinya adalah kita buat Kapal Selam (VPN), nyelem dibawah laut…ga ada yang tau kita mo ngapain (ter-enkripsi dengan IPsec)…lebih murah dari bikin jembatan kan

nah…untuk bikin jalur bawah laut (tunneling) agar kapal selam kita bisa jalan, kita bisa pake GRE (generic Routing Encapsulation)

supaya jalur bawah laut itu aman (GRE ga ada fitur enkripsi) dipasangin dengan IPSec

so thats whay…GRE dan IPSec itu biasanya selalu digandeng…

kapan kita belajar GRE ?? salah satunya klo mo belajar versi lain dari OSPF Virtual-Link atau IPv6 Tunneling

kapan kita belajar IPSec ?? klo kita mo belajar konfig VPN (nanti link nya gw buat)

====================================

Yah…kira2 begitu analogi nya

Site-to-Site VPN

Site-to-Site VPN ini ya kek WAN biasa (Branch ke MainOffice), dimana alat yang jaga MainOffice dari “Serangan dunia luar” adalah Router/Firewall/ASA (Adaptive Security Appliance) – Cisco Firewall

Yang bertugas ngalirin traffic VPN nya VPN Gateway (yaitu Router/ASA/Firewall)…jadi di Gateway diencapsulasi…pas sampe target (branch misalnya) packet tersebut di decapsulasi…dengan metode IPsec

Yang membedakan Remote Access dengan Site-to-Site adalah Third Party Client nya, klo di Site-to-Site…masing2 end point (alias Router) dikasi settingan VPN (cek lagi gambar site-to-site)

Nah klo Remote End-point nya di kasi Software buat VPN (contoh Cisco EasyVPN), soalnya konek lewat broadband access kek ADSL dan Cable, ato pake Web Browser (Clientless VPN)

A VPN creates a private network over a public network infrastructure while maintaining confidentiality and security (jadi seakan2 ada tunnel gitu dan seakan2 itu Branch & Office “satu LAN”)

====================================================

Characteristic VPN

Data Confidentiality: achieved through Encapsulation (via IPsec) & Encryption (via 3DES, AES, or RSA), jadi ga bisa di baca packet nya oleh yang tidak berhak

Data Integrity: use Hashing Technique (such as MD5), Hash atau Hashing itu adalah metode untuk ensure ketika data diterima…data itu Masih ASLI, belum diMODIFIKASI, dan belum DIBACA

Salah satu dari Hashing Algoritma adalah Message Digest 5 (MD5) – Uses a 128-bit shared secret key. The message and 128-bit shared secret key are combined and run through the HMAC-MD5 (Hashed Message Authentication Code) hash algorithm. The output is a 128-bit hash. hasil hash yang 128-bit tadi ditambah ke original message and forwarded to the remote end (wokeh..silakan mencerna sendiri…hahaha)

Sebenernya adalagi sih, namanya SHA-1 (Secure Hash Algorithm 1) 160 bit, tapi gw males jelasinnya….hahaha (ga ngerti dan ga pernah make)

Authentication: ensure data come from the right person and arrive at the right person too

==========================================================

Encryption

Cara kerja enkripsi itu kira2 seperti ini

In the example, Gail wants to send a financial document to Jeremy across the Internet. Gail and Jeremy have previously agreed on a secret shared key (kita bisa bilang password lah). At Gail’s end, the VPN client software combines the document with the secret shared key and passes it through an encryption algorithm. The output is undecipherable cipher text. The cipher text is then sent through a VPN tunnel over the Internet. At the other end, the message is recombined with the same shared secret key and processed by the same encryption algorithm. The output is the original financial document, which is now readable to Jeremy.

Algoritma Enkripsi Simetris: 1 key untuk Enkripsi dan Dekripsi

Algoritma Enkripsi Asimetris: 1 Key untuk Enkripsi dan 1 Key untuk Dekripsi

Type2 Algorithm:

  • DES (Data Encryption Standard) – di develop oleh IBM (use 56 bit length key)…Symmetric Algorithm
  • 3DES – newer version than DES, Asymmetric Algorithm (digambar atas malah dia Symmetric…!!!!, ckckck)
  • AES (Advanced Encryption Standard) – di develop oleh NIST (National institute of Standards and Technology)..often use 128 bit
  • RSA (Rivest, Shamir, and Adleman) – didevelop oleh ketiga orang itu, use 256, 512, 1024, or larger key

Catatan dalam memilih Tipe Enkripsi:

Semakin Bagus Enkripsi, semakin lama dipecahkan kode nya, tetapi semakin lambat proses transfer nya

Semakin Minimal Enkripsi, semakin cepat dipecahkan kode nya, tetapi semakin cepat proses transfer nya

Ingat…dalam dunia komputer TIDAK ADA YANG 100% Secure, yang ada hanya MEMPERLAMA Penjahat dalam menjalankan aksinya

Berarti Enkripsi bisa dipecahkan donk?? Bisa…tergantung CPU komputer hacker nya…semakin bagus..semakin cepat dipecahkan

Untuk memecahkan password 9 karakter yang terdiri dari huruf kecil, besar, angka, dan spesial karakter saja yang di enkripsi 128 bit aja untuk komputer cpu i7 aja bisa butuh waktu berjam2…

Tujuan enkripsi itu simpel nya adalah untuk membuat hacker MALES nge-hack, karena kelamaan

Tapi kan bisa aja niat ?!?!

Nah itu dia…biasanya tiap 1 bulan sekali, 1 minggu sekali, bahkan 1 hari sekali…untuk data center dengan confidentialitas yang tinggi biasanya password selalu diganti (mecahin 1 kode aja uda susah , berhari2 pula…eh pas dapet passwordnya…uda diganti..hahahaha)

Gw ga jelasin gimana sih cara masing2 tipe enkripsi itu proses nya…mabok coy !!!, lo aja yang liat…gw mah males

=======================================================================

IPSec

*ESP = Encapsulation Security Payload

*AH = Authentication Header

*DH = Diffie-Hellman algorithm, memungkinkan 2 orang user yang mo exchange data untuk establish a shared secret key yang digunakan oleh encryption dan hash algorithms, for example, DES and MD5, over an insecure communications channel (insecure ini mungkin menurut gw kek kabel telepon??VSAT??i don’t know…Wi-Fi ada TKIP-AES juga untuk enkripsi kok…pokoknya untuk urusan enkrip-mengenkrip mah puyeng gw @_@

========================================

VPN implementation ada 2 tipe:

  • Overlay VPN: ISP hanya provide koneksi saja (jadi ISP menyediakan koneksi point-to-point dari HQ ke Branch)
  • Peer-to-Peer VPN: ISP juga ikut berpartisipasi dalam proses routing

Overlay VPN

Overlay VPN

benefit:

  • gampang di-implement, karena ISP ga ikut2an routing…nyediain “transport” aja

drawback:

  • klo ada additional VPN, nambah lagi link didalem ISP nya, susah di manage

Peer-to-Peer VPN

Peer-to-Peer VPN

benefit:

  • gampang di manage
  • gampang di-utak-atik optimum routing path nya

drawback:

  • harus tahu detail IP routing

ada lagi yang dinamakan Central Service VPN

Central Service VPN adalah fitur untuk multiple VPN menggunakan server yang sama (biasanya untuk data center), jadi company A,B, dan C bisa ke Server A, tapi A ga bisa ke B dan C (begitu juga sebaliknya)…mirip ke point-to-multipoint topologi, cuma ini VPN

Mudah2an Next Article gw bisa buat secara detail about how to configure VPN on Cisco Router