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