Matasano Crypto Challenge 31: Implement and Break HMAC-SHA1 with an Artificial Timing Leak

Pada tulisan sebelumnya dibahas mengenai cara memecahkan MD4 MAC dengan panjang ekstensi. Untuk tulisan hari ini akan dibahas mengenai implementasi dan cara memecahkan HMAC-SHA1 dengan kecerdasan jeda.

Challenge

Pseudocode pada Wikipedia seharusnya cukup. HMAC sangatlah mudah.

Gunakan web framework yang biasa anda gunakan (Sinatra, web.py, terserah), coding sebuah aplikasi kecil yang mempunyai URL dan mengambil argumen atau parameter berisi “file” dan “signature”, seperti berikut:

localhost:9000/test?file=foo&signature=46b4ec586117154dacd49d664e5d63fdc88efb51

Server harus bisa menghasilkan sebuah kunci HMAC, dan kemudian verifikasi parameter “signature” (dengan kata lain, verifikasi HMAC dengan cara web programmer yang biasa gunakan untuk verifikasi hal tersebut)

Tulis sebuah fungsi yang memanggil “insecure_compare”, yang mengimplementasikan operasi == dengan perbandingan byte-at-a-time dengan awal akhir (misal, kembalikan nilai false pada byte pertama yang tidak sama)

Dalam pengulangan untuk “insecure_compare”, tambahkan jeda dengan sleep 50ms (artinya jeda selama 50 milisecond setiap byte)

Gunakan fungsi “insecure_compare” anda untuk memverifikasi HMAC untuk request selanjutnya, dan uji jika berjalan aneh. Kembalikan nilai 500 jika MAC invalid dan nilai 200 jika valid.

Gunakan timing leak dalam aplikasi ini, tulis program yang dapat menemukan MAC yang valid untuk setiap file.

Mengapa kecerdasan jeda?

String awal-akhir membandingkan kemungkinan sumber yang paling umum pada kriptografi timing leak, namun mereka sebenarnya tidak mudah untuk di eksploitasi. Faktanya, banyak timing leak (contoh, seperti C, C++, Ruby, Python) kemungkinan tidak bisa diekploitasi dengan WAN. Untuk bermain dengan serangan timing leak pada dunia yang sebenarnya, anda bisa memulai coding sederhana low-level timing code. Matasano menjaga sesuatu kriptografi dalam challenge ini.

 

Solved

Ini dia penampakannya :).

Implement_and_Break_HMAC-SHA1_with_an_Artificial_Timing_Leak

Mengapa hanya share screenshot saja? Alasannya bisa anda lihat pada tulisan ikhtisar MCC sebelumnya.

Sekian tulisan hari ini, semoga bermanfaat.

Keep Fun Coding šŸ˜€

[1] Unknown. (????). Implement and Break HMAC-SHA1 with an Artificial Timing Leak . Tersedia: cryptopals.com/sets/4/challenges/31/. [14 Februari 2015].

Advertisements

One thought on “Matasano Crypto Challenge 31: Implement and Break HMAC-SHA1 with an Artificial Timing Leak

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s