Total Tayangan Halaman

Entri Populer

Pengikut

Diberdayakan oleh Blogger.

Cara Kerja Protokol Pertukaran Kunci Diffie Hellman

Protocol kesepakatan kunci Diffie-Hellman (Diffie-Hellman Key Agreement) membangun kunci sesi tanpa menggunakan kunci yang dibagikan sebelumnya. Pesan-pesan yang ditukarkan antara Alice dan Bob bisa dibaca oleh siapapun yang bisa menyadap/menguping(eavesdrop) dan si penyadap tidak akan bisa mengetahui kunci sesi yang akhirnya digunakan oleh Alice dan Bob. Di sisi lain, Diffie-Hellman tidak melakukan otentikasi pada pihak-pihak yang terlibat. Salah satu dari kegunaan utama dari DIffie-Hellman adalah dalam protokol Internet Key Exchange(IKE/ Pertukaran Kunci Internet), sebuah bagian pusat dari arsitektur IP Security(IPsec).


Protokol Diffie-Hellman mempunyai dua parameter, p dan g, yang mana keduanya bersifat publik dan mungkin akan digunakan oleh semua user dalam sistem tertentu. Parameter p harus berupa bilangan prima. Bilangan-bilangan bulat mod p (singkatan dari modulo p) mempunyai jangkauan dari 0 hingga p-1, karena x mod p adalah sisa dari x dibagi p, dan membentuk apa yang para matematikawan sebut sebagai group dibawah perkalian. Parameter g (biasanya disebut sebuah generator) harus berupa sebuah akar primitive(primitive root) dari p: untuk setiap angka n dari 1 sampai p -1 pasti ada nilai k sehingga n = g^k mod p. sebagai contoh jika p adalah bilangan prima 5 (pada sistem yang sebenarnya akan digunakan angka yang jauh lebih besar), maka kita akan memilih 2 sebagai generator karena:
1 = 2^0 mod p
2 = 2^1 mod p
3 = 2^3 mod p
4 = 2^2 mod p
Misalkan Alice dan Bob ingin sepakat pada sebuah kunci simetris yang terbagi. Alice dan Bob dan orang lain sudah mengetahui nilai p dan g. Alice meng-generate sebuah nilai privat acak a dan Bob meng-generate sebuah nilai acak privat b. baik a dan b diambil dari sekumpulan integer {1,….,p-1}. Alice dan Bob menurunkan pasangan nilai publik mereka, nilai yang akan mereka kirimkan satu sama lain tanpa terenkripsi, sebagai berikut. Nilai publik dari Alice adalah
g^a mod p
dan nilai publik Bob adalah
g^b mod p
Kemudian mereka menukar nilai pubik mereka. Akhirnya, Alice menghitung
g^ab mod p = (g^b mod p)^a mod p
dan bob menghitung
g^ba mod p = (g^a mod p)^b mod p
Alice dan Bob sekarang mempunyai gab mod p = g^ba mod p sebagai kunci simetris mereka yang dibagikan satu sama lain.

Setiap penyadap akan mengetahui p, g, dan dua nilai publik g^a mod p dan g^b mod p. jika saja, penyadap bisa menentukan a atau b, dia bisa dengan mudah menghitung kunci yang dihasilkan. Namun, menetukan a atau b dari informasi publik tersebut sulit secara komputasi terutama untuk p, a, dan b yang besar, yang disebut sebagai permasalahan logaritma diskrit(discrete logarithm problem)

Disisi lain terdapat masalah terdapat kekurangan dari diffie-Hellman terhadap otentikasi. Satu serangan yang bisa mengambil keuntungan dari hal ini adalah serangan man-in-the-middle. Misalkan Mallory adalah lawan dengan kemampuan untuk menyadap(intercept) pesan-pesan. Mallory telah mengetahui p dan g karena keduanya publik,  dia membuat nilai privat acak c dan d untuk digunakan Alice dan Bob, berturut-turut. Ketika Alice dan Bob mengirimkan kunci publik satu sama lain, Mallory meng-intercept mereka dan mengirimkan nilai publiknya sendiri, seperti dalam gambar di bawah. Hasilnya adalah Alice dan Bob berakhir tanpa diketahui membagi sebuah kunci dengan  Mallory dari pada satu sama lain.

Penyadapan Oleh Mallory
Sebuah varian dari Diffie-Hellman terkadang disebut Diffie-Hellman yang sudah diperbaiki(fixed) memungkinkan otentikasi dari satu atau kedua pihak. Mekanisme ini mengandalkan pada sertifikat yang mirip seperti sertifikat kunci publik namun men-sertifikasi parameter publik Diffie-Hellman dari sebuah pihak. Sebagai contoh, sertifikat tersebut akan menyatakan bahwa parameter Diffie-Hellman publik  dari Alice adalah p, g, dan ga mod p (sebagai catanan bahwa nilai dari a akan tetap hanya diketahui Alice). Sertifikat tersebut akan meyakinkan Bob bahwa pihak lain dalam Diffie-Hellman adalah Alice atau yang pihak lain tidak akan bisa menghitung kunci rahasia, karena dia tidak tahu nilai a. jika kedua pihak mempunyai sertifikat untuk parameter Diffie-Hellman mereka, mereka bisa melakukan otentikasi satu sama lain. Jika hanya satu pihak saja yang mempunyai sebuah sertifikat, maka hanya satu yang bisa diotentikasi. Hal ini berguna untuk beberapa situasi, sebagai contoh, ketika satu pihak adalah sebuah server dan lainnya adalah sebuah client sembarang, client bisa melakukan otentikasi web server dan membangun sebuah kunci sesi untuk kerahasiaan sebelum mengirimkan sebuah nomor kartu kredit pada web server.

1 komentar: