 |
| Kriptografi Asimetris |
Pada posting sebelumnya sudah saya jelaskan dengan (sangat) singkat apa itu
kriptografi simetris, kelebihan, serta kekurangannya.
Sedikit mengulang kembali, pada
kriptografi simetris hanya menggunakan 1 buah
kunci pada saat
enkripsi maupun
dekripsi. Hal itu tentu saja menimbulkan masalah pada saat melakukan pertukaran
kunci seperti pada kasus Alice yang ingin mengirim pesan rahasia kepada Bob. Bagaimana cara mereka menegosiasikan
kunci yang akan digunakan? apakah melalui sms, email atau telepon? bukankah itu semua bisa disadap?
Apa itu Kriptografi Asimetris?
Kriptografi Asimentris atau disebut juga Public Key Criptography (PKC), adalah kriptografi yang menggunakan 2 buah kunci (private & publik) yang masing-masing kunci tersebut hanya digunakan untuk enkripsi saja atau dekripsi saja.
Kunci public adalah kunci yang publikasikan/diberikan kepada orang lain, sedangkan kunci private harus dirahasiakan.
Apabila pesan di
-enkripsi menggunakan
kunci publik, maka
dekripsi-nya menggunakan
kunci private. Artinya, pesan hanya bisa dibuka oleh pemilik
kunci private. Hal ini biasanya digunakan untuk tujuan
confidentalily (kerahasiaan).
Sebaliknya, apabila pesan
dienkripsi menggunakan
kunci private, maka
dekripsi-nya menggunakan
kunci publik. Disini sudah jelas, berarti semua orang bisa membukanya. Ini biasa digunakan untuk melakukan
authentication.
Alice dan Bob
Jika sebelumnya Alice dan Bob kesulitan dalam melakukan pertukaran
kunci karena mereka menggunakan
kriptigrafi simetris, coba lihat apabila mereka menggunakan
kriptografi asimetris.
Saat Alice ingin mengirim pesan rahasia kepada Bob, mereka masing-masing harus sudah mempunyai kunci publik & private. Bila Alice ingin mengirim pesan kepada Bob, maka Alice mengenkripsi pesanya dengan kunci publik milik Bob (ingat, kunci publik boleh dimiliki oleh siapa saja), kemudian Bob mendekripsi pesan dari Alice menggunakan kunci private miliknya.
Terkesan lebih aman bukan? tapi tunggu, masih ada hal buruk yang dapat terjadi pada
kriptografi asimetris.
Rawan Serangan MITM
Disini saya tidak akan menjelaskan tentang
MITM, karena itu sudah pernah saya tulis pada
posting sebelumnya.
Kronologi
Sebelum
Alice mengirim pesan rahasia kepada Bob, Alice meminta
kunci publik
milik Bob. Kemudian Bob mengirim
kunci publik-nya kepada Alice.
Sebelum
kunci publik itu sampai di Alice, tanpa sepengetahuan Alice dan Bob,
kunci publik milik Bob DICATAT oleh Charlie dan DIGANTI dengan kunci
publik milik Charlie sendiri, lalu dikirimkan lagi (diteruskan) ke
Alice.
Alice tertipu, mengira bahwa kunci publik yang diterimanya adalah kunci publik milik Bob, padahal itu milik Charlie.
Setelah
selesai menuliskan pesan rahasianya, kemudian Alice meng-enkripsi
pesannya menggunakan kunci pulic milik Charlie (bukan milik Bob) dan
mengirimkannya ke Bob.
Sebelum
sampai di Bob, pesan dari Alice di-dekripsi oleh Charlie menggunakan
kunci private miliknya (karena pesan tersebut dienkripsi menggunakan
kunci publik milik Charlie).
Agar
Bob tidak curiga, pesan yang sudah di-dekripsi itu di-enkripsi kembali
menggunakan kunci publik milik Bob yang sebelumnya sudah dicatat oleh
Charlie, kemudian dikirimkan lagi ke Bob.
Bob men-dekripsi pesan itu dengan kunci private miliknya, dan pesan itu dibaca oleh Bob seperti tidak terjadi apa-apa.
Pada kasus diatas,
MITM
terjadi karena Alice tidak bisa memastikan apakah pesan berisi
kunci
publik yang diterimanya adalah benar milik Bob. Untuk bisa memastikan
pesan itu berisi
kunci publik milik Bob, maka pesan itu harus di
-enkripsi
menggunakan
kunci private milik Bob dan di
-dekripsi oleh Alice
menggunakan
kunci publik milik Bob, padahal Alice belum mengetahui
kunci publik milik Bob.
Bagaimana solusinya?
Agar serangan
MITM tidak terjadi dibutuhkan mekanisme untuk mendapatkan
kunci publik dengan benar.
Untuk
memecahkan masalah diatas, dibutuhkan bantuan pihak ke-3 sebagai pihak
penjamin yang
kunci publik-nya telah diketahui sebelumnya.
Mari
kita ilustrasikan pengembangan dari kasus
MITM sebelumnya yang
dilakukan oleh Charlie. Anggap saja pihak penjamin itu adalah Dedy,
dengan
kunci publik yang telah dikenal sebelumnya oleh Alice.
Ketika
Alice ingin mengetahui
kunci publik Bob, maka Bob sebelumnya harus
meminta Dedy untuk membuat surat jaminan yang berisi
kunci publik Bob
dan pernyataan bahwa Bob adalah orang baik dan rajin menabung. :D
Kemudian surat itu di
-enkripsi dengan
kunci private milik Dedy untuk memastikan bahwa surat itu benar dibuat oleh Dedy.
Bila
Alice bertanya pada Bob, “Hey Bob tolong kirim
kunci publik mu, aku ada
pesan rahasia untukmu”. Maka Bob akan mengirimkan surat jaminan dari
Dedy pada Alice.
Ketika surat jaminan yang dikirim Bob
tiba di Alice. Alice bisa menguji identitas pembuat surat itu dengan
cara men
-dekripsi dengan
kunci publik milik Dedy yang sudah dikenalnya.
Bila
berhasil di
-dekripsi, maka surat jaminan itu benar dibuat oleh Dedy. Di
dalam surat jaminan itu tertera juga
kunci publik milik Bob. Kini Alice siap
mengirim pesan rahasia pada Bob.
Bagaimana dengan
Charlie? Bila Charlie nekat mengganti surat jaminan Dedy dengan surat
jaminan yang dibuatnya sendiri lalu mengirimnya ke Alice. Maka Alice
dengan mudah mengetahui bahwa surat ini palsu, karena tidak bisa
di
-dekripsi dengan
kunci publik Dedy, artinya surat jaminan ini bukan
dibuat oleh Dedy.
Kesimpulan
- Kriptografi asimetris dilakukan menggunakan 2 buah kunci; kunci publik dan kunci private.
- Kunci publik adalah kunci yang publikasikan/diberikan kepada orang lain.
- Kunci private harus dirahasiakan.
Kelebihan Kriptografi Asimetris:
Kelemahan Kriptografi Asimetris:
- Proses lama
- Rawan serangan MITM