Pada soal ini kita diberikan file yang cukup banyak, tapi intinya, ada source code dari sisi client, server, dan attacker. Inti dari soal ini sendiri adalah Man in the Middle attack terhadap Diffie-Hellman.
Pada service yang diberikan, ada percakapan antara client dan server yang bisa kita tamper sebelum dikirim ke tujuannya. Untuk keseluruhan prosesnya, kira-kira urutannya sebagai berikut.
client dan server meng-establish connection dengan sama2 mengirimkan โhello!โ
client melakukan key generation
client mengirimkan parameter DH
server meng-ACC parameter DH
client mengirimkan public key
server meng-ACC public key
server mengirimkan public key
client meng-ACC public key
client dan server bertukar pesan yang terenkripsi
Kita perlu melakukan tampering pada parameter DH dan public key client supaya shared secret yang dimiliki server adalah yang di-share dengan kita. Di samping itu, kita perlu melakukan tampering pada public key server supaya mendapat ACC dari client (jadi, parameter yang datang dari client asli juga harus disimpan). Untuk meng-generate parameter2 tersebut, kita bisa menggunakan kode yang ada pada server.py dan client.py.
Langsung saja ke kode solvernya. Maaf berantakan, bikinnya buru-buru soalnya :)