Dnsnet.eu.org Diffie Hellman Key Exchange

Pertukaran Kunci Diffie-Hellman


Pertukaran kunci Diffie-Hellman memungkinkan dua pihak menghasilkan rahasia bersama melalui saluran yang tidak aman.

Kamu

Partner

Rahasia Bersama


Deskripsi

Alat ini akan menghasilkan pasangan kunci untuk Anda, yang kemudian Anda dapat mengirimkan kunci publiknya ke mitra. Setelah mitra Anda mengirimi Anda kunci publiknya, tempelkan kunci tersebut ke kotak kunci publiknya. Jika berhasil dilakukan, Anda berdua seharusnya memiliki rahasia bersama yang sama. Anda dapat menggunakan rahasia bersama untuk mengenkripsi pesan satu sama lain, mungkin dengan menggunakan Alat Enkripsi dan Dekripsi String AES.

Lakukan Sendiri

OpenSSL dapat membantu Anda melakukan pertukaran kunci Diffie-Hellman, namun tidak secara langsung kompatibel dengan alat ini. Namun prinsipnya sama.

Selama proses ini, kita perlu membuat 5 elemen sebelum mendapatkan rahasia bersama:

  • Basis yang sama
  • Kunci pribadi Mitra 1
  • Kunci publik Mitra 1
  • Kunci pribadi Mitra 2
  • Kunci publik Mitra 2

Buat Basis Bersama

Gunakan perintah ini untuk menghasilkan basis umum, dhp.pem. Kunci Parameter DH ini dapat dibagikan secara publik antara kedua pihak. Ini bukan rahasia. Pustaka yang digunakan oleh Starsnet.eu.org menggunakan nilai konstan sebagai basisnya.

$ openssl genpkey -genparam -algorithm DH -out dhp.pem

Pasangan Kunci Mitra 1

Mitra 1 harus memiliki file dhp.pem, lalu mereka dapat membuat kunci pribadi dan publik, dhpriv1.pem dan dhpub1.pem , masing-masing.

$ openssl genpkey -paramfile dhp.pem -out dhpriv1.pem
$ openssl pkey -in dhpriv1.pem -pubout -out dhpub1.pem

Pasangan Kunci Mitra 2

Demikian pula, Mitra 2 harus memiliki file dhp.pem yang sama dan menghasilkan kunci pribadi dan publiknya sendiri.

$ openssl genpkey -paramfile dhp.pem -out dhpriv2.pem
$ openssl pkey -in dhpriv2.pem -pubout -out dhpub2.pem

Dapatkan Rahasia Bersama

Mitra 1 harus berbagi dhpub1.pem dengan Mitra 2, dan Mitra 2 harus berbagi dhpub2.pem dengan Mitra 1. Setelah bertukar kunci publik, mereka dapat memperoleh rahasia bersama. Salinan rahasia bersama Mitra 1 akan diberi nama shared1.bin, dan salinan Mitra 2 akan diberi nama shared2.bin.

# Mitra 1
$ openssl pkeyutl -derive -inkey dhpriv1.pem -peerkey dhpub2.pem -out shared1.bin
## Mitra 2
$ openssl pkeyutl -derive -inkey dhpriv2.pem -peerkey dhpub1.pem -keluar shared2.bin

Isi file shared1.bin dan shared2.bin harus sama persis. Karena ini adalah file biner dan tidak mudah dibaca oleh manusia, Anda dapat memverifikasi bahwa keduanya sama seperti ini:

$ sha256sum shared*.bin