Home

Cryptography Fundamental

Leave a comment

Kali ini gw akan bahas…apa sih enkripsi itu? Apa itu 3DES? PKI? SHA-1? MD5? Dan lain-lain

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

Cryptography pasti berkaitan dengan security, dan security pasti selalu berhubungan dengan yang namanya “C.I.A”

C.I.A: Confidentiality, Integrity, dan Authentication (juga Availability)

Confidentiality = ensure supaya data ga bisa dibaca (“tbzb hboufoh“)

Integrity = ensure data remain unchanged dari “EXPECTED USER” (“please do not accept if the seal is broken“, wah..uda pernah masuk mulut orang nih minuman haha)

Authentication = ensure data yang dikirim sampai ke “EXPECTED USER” (“please input your PIN“…lo memang punya kartu ATM-nya, tapi belum tentu lo bisa bajak uang-nya)

Availability = udah itu data ga bisa dibaca, ga bisa dirubah, dan ga punya hak…dah lah, gw matiin aja servernya (DoS alias denial of service)

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

Confidentiality

The First One…Encryption

Pasti klo bahas kriptografi…the first thing come into mind is Encryption

Enkripsi berguna untuk mencegah data kita dibaca (dengan mudah tentunya), Contoh: “tbzb hboufoh”…bisa baca ga loe??

Nah, untuk bisa meng-enkripsi dan men-dekripsi suatu data…kita perlu mekanisme, Mekanisme untuk decrypt dan encrypt disebut KEY

The Second One…Key

gw butuh kunci untuk ngebuka brankas“…analogi yang sama juga bisa diaplikasikan kedalam Network Security, kita butuh key untuk encrypt dan decrypt

Contoh gw pake algoritma “Offset 1″…jadi klo ada huruf A akan dirubah jadi B, B -> C, D -> E, dan so on…

Hasilnya adalah “tbzb hboufoh” dengan Offset Key “1” akan dibaca …*tebak sendiri wkwkw*

Data Clear Text yang sudah di-enkripsi disebut Cipher Text

Jadi pihak sender dan pihak receiver harus punya key untuk nge-buka itu Cipher text, Proses pembuatan key butuh algoritma yang rumit (karena klo gampang…ga secure data-nya ya ga?!)

Klo mo coba2 maen enkripsi…bisa ke sini

Gimana cara receiver tau, harus pake Key Algorithm yang mana? Trus gimana cara buat-nya?

The Third One…Key, The Making Of

Ada 2 Tipe Key:

  • Symmetrical Key: Both Sender and Receiver use the Same Key

Artinya mereka berdua punya “shared secret”, “cui…gw kasi message ke elu ya…offset-nya 3

Tapi jadi ga secure dong…klo ada yang bisa nangkep pesannya, kan ngasi tau secretnya juga?? Makanya…ada Pre-Shared Key (jadi sebelum tuker2an data…negosiasi dulu pake key apa)

Contohnya apa: DES, 3DES, AES, RC4, Blowfish

Tapi klo pas tuker2an Key trus kebaca gimana? There are hero called MD5/SHA and RSA (we discuss it right below)

  • Asymmetrical Key: Sender and Receiver use different Key

Artinya mereka berdua punya different key (public dan private key), lah..cara bukanya gimana klo beda key?!

Anologinya kira2 begini:

A dan B mau tuker2dan data pake Asymmetrical Key, nah…yang pertama kali mereka lakukan adalah kirim brankas dengan gembok punya dia

A: “oi B, kirim message (public key) lo ke brankas gw, nih sekalian gemboknya…klo uda selesai tolong digembok ya

B: “ok, gw juga ya….kirim brankas ke elo, nih gembok nya

Pas naro message ke brankas dan digembok, guess who have the key?? Baik A dan B ga bisa buka brankas yang uda digembok

Masing2 orang cuma ngirim gemboknya…ga ama kuncinya (Private Key) !!! cocok dipake oleh IKE (Internet Key Exchange, fundamental component of IPsec VPN), SSH, SSL dan TLS (Transport Layer Security, updated version of SSL)

Contohnya: RSA dan DH

nah, Enkripsi yang menggunakan Asymmetrical Key ini biasanya makan proses CPU dan aga lama, jadi ada tipe enkripsi yang dipake untuk enkripsi data payload, ada enkripsi yang dipake untuk enkripsi data authentikasi (contohnya ya RSA dan DH1/2/5)

The Fourth One…Cipher Method Type

Ketika data mau di Cipher…ada 2 metode untuk Ciphering, mau tiap bit di-enkripsi (stream)…ato tiap 64/128 bit baru dienkripsi (block)

  • Block Cipher: enkripsi datanya tiap 64 ato 128 bit blok (makanya namanya block cipher)
    • Contohnya: DES, 3DES, AES, RSA (bisa lebih dari 512 bit)
  • Stream Cipher: enkripsinya bit-per-bit, biasanya di GSM cell phone
    • Contohnya: DES, 3DES, RC4

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

Difference between Encryption Standard

DES = Data Encryption Standard

  • Key: 56 bit
  • Cracking the Encryption: Days
  • Resource and Speed of Encryption: Medium

Disini bisa diliat…DES gampang di crack dalam hitungan hari (itu uda pake komputer khusus hacking loh)

Nah, dibentuklah algoritma baru berdasarkan DES…yaitu 3DES

3DES = Triple DES

  • Key: 112 ato pake 168 bit
  • Cracking: ga usa dipikirin…, eh ga bisa dong..gw pengen tau!! jutaan tahun, eww…, wkwkwk
  • Resource and Speed: Medium and Low

3DES itu adalah enkripsi DES, yang hasil enkripsinya di decrypt pake DES dengan key beda, yang hasilnya itu dienkripsi lagi pake DES pake key yang bedalagi (3x enkripsi dengan algoritma yang sama)

Tapi klo kita liat…proses speed enkripsinya malah jadi lama (iyalah 3x)…jadi aga kurang favorable

AES = Advanced Encryption Standard

  • Key: 128, 192, atau 256bit
  • Cracking: ga usa dipikirin…masi mau gw sebut?? Ga bang..
    wkwkw
  • Resource and Speed: Low and High

AES inilah yang sekarang more favorable for encryption

RC = Rivest Code

DH = Diffe-Hellman

  • Key: 512, 1024, atau 2048 bit
  • Cracking: ga usa dipikirin…
  • Resource and Speed: Medium and Low

biasanya untuk authentikasi key exchange

RSA = Rivest, Shamir, and Adleman

  • Key: 512, 1024, atau 2048 bit
  • Cracking: ga usa dipikirin…
  • Resource and Speed: Low

Ini yang “katanya” paling susah di jebol,suksesornya DH…semakin susah dijebol artinya semakin lama prosesnya…semakin lama dan berat pula makan CPU nya

Biasanya RSA ini buat Enkripsi Data untuk Signature Generation di PKI (apaan ini signature generation, we’ll see below)

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

Integrity

Well…data bole bisa dibaca (sebenernya jangan sampe deh), tapi bagaimana kita memproteksi data itu agar tidak bisa dirubah KALO KEBACA…

Bayangin klo kita transfer duit 1 juta ke nyokap, dibajak paketnya, trus dirubah…kirim ke rekening pembajak…

Nah, mekanisme untuk proteksi integritas data disebut Hashing

Ada 2 metode hashing yang terkenal

  • MD5: Message Digest 5 (fast but less secure)
  • SHA-1: Secure Hashing Algorithm 1(slow to process but more secure)

Ga usa pusing tentang algoritma nya (kecuali lo mau thesis pake ini)

Sekarang gimana sih cara kita nge-cek ini paket bener apa kaga? Ada web bagus untuk liat hashing

Sekarang gw coba praktekin

Di output kita bisa liat…untuk menjaga integritas data yang berisi text “Saya Ganteng” (wkwkwk), MD5 akan melakukan algoritma dia untuk menghasilkan hashing value (dalam Hex)

Sekarang coba kita rubah Text-nya jadi “saya ganteng” (huruf kecil semua)

Take a look…different hashing value…tandanya itu text sudah dirubah

Biasanya pas kita download (torrent misalkan) pasti ada kek gini dibawah

Ato check kata2 “checksum” dalam suatu website…itu juga hashing

Nah, pas kita selesai download…coba cek hashingnya…sama ga antara file yang ada PC kita dengan Web itu (dengan catatan torrent itu pake MD5, kita juga ya..)

Tapi bisa aja kan…itu hacker ambil datanya…TRUS KASI HASHING DIA SENDIRI (pake MD5 misalkan)…toh nanti di penerima juga ga tau, si penerima kan tinggal “un-hash”…pasti sama nilai hashing-nya sma hacker…bisa dong?? Yup…

That’s when Hash Message Authentication Code (HMAC) comes into play my friend

Konsep nya gimana? Jadi selain kirim Hashing…sender juga kirim “hashing key”…jadi begitu algoritmanya hashing dan hashing Key ini digabung…dia pasti bikin value baru

So..hacker ga bisa steal data trus pake key dia sendiri dan kirim ke destination…hasil algoritma yang di proses oleh si penerima pasti beda

WOI…KEY NYA SALAH….ADA YANG HACK ENEEEH

Mau based on apa key nya?? Pake MD5, kita bisa pake HMAC-MD5…pake SHA-1, kita pake HMAC-SHA-1

Biasanya HMAC ini comes into play ketika kita develop IPsec VPN

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

Bro…masa iya gw mo kirim message aja harus di enkripsi, trus di enkripsi lagi..trus di enkripsi lagi..(ENKRIPSI-ception *yo dawg*)

Males lah gw…kelamaan prosesnya…orang mau kirim say hai doang

That’s why we need some Public Infrastucture that produce Key/Certificate…any packet that comes from this Public Infrastructure Devices is trusted

The detail is below…

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

Authentication

HMAC tadi diatas udah

Now, PKI – Public Key Infrastructure

Klo lo mau buka akun di Bank, emang bisa pake tanda tangan lo doang??

eh nih gw kasi tanda tangan gw…gw terpercaya kok” (emang siapeee loeee, pede betsss)

Tapi klo lo kasi KTP/SIM/Passport….orang pasti nerima, karena apa? Organisasi yang buat KTP/SIM/Passport ini adalah organisasi yang terpercaya oleh semua bank (Pemerintah gitu lohhh)

Nah, begitu pula dengan Computer Network…tiap Device bisa generate “his own signature”…tapi apakah device lain percaya? Engga kan??

Oleh karena itu kita perlu semacam IT Governance untuk generate Certificate Authorities (CA, semacam KTP-nya Computer lah) yang disebut Public Key Infrastructure (PKI)

Makanya kita sering liat kek gini:

Contoh PKI yang ada sekarang siapa aja? Liat dibawah

Di browser lo uda ter-install siapa2 aja PKI yang dipercaya (dipercaya oleh browser lo tentunya…belum tentu IE sama dengan Mozilla)

Nah, Certificate yang dikasi ke Router/Switch/Server/PC kita adalah Hashing yang terenkripsi

Hashing (MD5) value  Encrypted  with Private Key (RSA) = Digital Signature

Trus gimana cara User Device tau bahwa itu Digital Signature  Asli dari Hongkong *ehm* dari PKI yang ASLI? ngaku2 tanda tangan artis lagi jangan2

Nah, begitu certificate diterima…di cek hashing nya…”ok…sama2 MD5 dengan value ABCXYZ

Gw akan DECRYPT shared public key yang dikasi PKI Server ke gw…klo hasilnya sama dengan ABCXYZ…artinya ini sertifikat ASELI POENYAAA

Gimana…oke kan algoritmanya…pusing2 da loe (gw juga pusing sih gimana caranya bisa begono)..

Hash Message Authentication Code (HMAC) juga bisa dijadikan alternative for Digital Signature klo lo ga ada PKI Server

HIDUP ITU PEDIH JENDRAL” *sala…ini bukan partai PKI, tapi server PKI….

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

Tapi penting kaga sih belajar semuanya ini?? Mana banyak bener lagi standard encryption nya

Penting, terutama untuk IPsec VPN Site-to-Site

Jadi gini:

Ketika router A dan B mau building VPN antara PC1 dan PC2, mereka harus menegosiasikan semua hal

A: “oi B, gw support data encryption pake AES ama DES, pake AES bisa ga?

B: “bisa…gw malah support DES biasa

A: “ok…untuk data encryption kita pake AES

B: “cui…hashingnya pake apa? Sepakat pake SHA-1 aja yaks??

A: “siapppp

B: “deal….encryption using AES, Hashing using SHA-1

A: “trus otentikasinya pake apa? Pre-Shared Key? Ato RSA?

B: “pake RSA cui…lebih aman

A: “done…we’re using RSA…PHASE 1 DONE

B: “eh…kita mo bikin IPsec pake apa? HMAC-SHA ato HMAC-MD5?

A: “yang secure dong…HMAC-SHA-1

B: “deal…PHASE 2 DONE

Noh….ampir semuanya disetting nanti pas develop IPsec VPN (ntar kapan2 gw publish de config IPsec VPN)

Notice gw pake istilah PHASE 1 and PHASE 2? Jadi IPsec development itu terbagi jadi 2 Phase…

Phase 1 – IKE (Internet Key Exchange) Phase, most of it done with RSA / DH2 / DH5 algorithm

Phase 2 – IPsec Phase

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