Jangan pakai MD5

Gambar 1. Ilustrasi Hashing

Hashing adalah proses mengonversi data dengan panjang variabel menjadi nilai hash dengan panjang yang tetap. Nilai hash yang dihasilkan dari proses hashing ini berfungsi sebagai fingerprint atau sidik jari dari data yang telah di-hash.

Proses hashing dilakukan dengan menggunakan algoritma hashing. Setiap algoritma hashing memiliki karakteristik yang berbeda-beda, seperti panjang nilai hash, kecepatan proses hashing, dan keamanan.

Keuntungan dari penggunaan hashing adalah sebagai berikut:

  1. Validasi integritas data: Hashing dapat digunakan untuk memastikan bahwa data yang ditransfer atau disimpan tidak mengalami perubahan selama proses pengiriman atau penyimpanan. Hal ini dapat dilakukan dengan membandingkan nilai hash sebelum dan sesudah proses transfer atau penyimpanan. Jika nilai hash sama, maka data tersebut dapat dipastikan tidak mengalami perubahan.

  2. Keamanan data: Hashing juga dapat digunakan untuk mengenkripsi data sehingga tidak dapat dibaca oleh orang yang tidak berhak. Sebagai contoh, password dapat di-hash dan disimpan di database sebagai nilai hash, sehingga jika database tersebut di-hack, maka password tidak dapat dibaca secara langsung.

  3. Identifikasi data: Hashing dapat digunakan untuk mengidentifikasi apakah dua file atau pesan adalah sama atau tidak. Jika dua file memiliki nilai hash yang sama, maka dapat dipastikan bahwa kedua file tersebut memiliki konten yang sama.

Karena itu, proses hashing sangat penting dalam dunia komputasi, khususnya dalam pengamanan data dan validasi integritas data.

Gambar 2. Hashing-File-Transmission

MD5 (Message Digest 5) adalah salah satu algoritma hashing yang digunakan untuk menghasilkan nilai hash dari sebuah pesan atau file. Algoritma ini dikembangkan oleh Ronald Rivest pada tahun 1991. Tujuan utama dari algoritma hashing adalah untuk menghasilkan nilai hash unik dari sebuah pesan atau file, yang dapat digunakan untuk mengidentifikasi apakah pesan atau file telah berubah atau tidak.

Keuntungan dari MD5 adalah algoritma hashing ini relatif cepat dan mudah digunakan. Selain itu, nilai hash yang dihasilkan oleh MD5 memiliki panjang yang relatif pendek (128 bit), sehingga mudah disimpan dan dibandingkan dengan nilai hash dari algoritma hashing lain yang memiliki panjang nilai hash yang lebih panjang.

Namun, MD5 sudah dianggap tidak aman karena rentan terhadap serangan kolisi atau collision attack. Serangan kolisi adalah teknik di mana penyerang mencoba menemukan dua pesan yang berbeda dengan nilai hash yang sama. Oleh karena itu, sebaiknya tidak menggunakan MD5 untuk keperluan keamanan data yang sensitif. Sebagai gantinya, disarankan untuk menggunakan algoritma hashing yang lebih aman seperti SHA-256, SHA-512, atau algoritma hashing yang lebih baru dan kuat seperti Blake2 atau SHA-3.

Gambar 3. KeePass

Salah satu kasus nyata penggunaan MD5 adalah ketika MD5 digunakan sebagai algoritma hashing untuk memverifikasi integritas file yang diunduh. Pada tahun 2008, terjadi kasus di mana penyerang berhasil memanipulasi file installer aplikasi populer bernama "KeePass", yang diunduh oleh ribuan pengguna dari situs resmi. Penyerang mengganti file installer yang sah dengan versi yang telah dimodifikasi sehingga dapat memuat malware berbahaya.

Namun, karena situs resmi KeePass menggunakan MD5 sebagai algoritma hashing untuk memverifikasi integritas file, maka penyerang dapat dengan mudah memodifikasi nilai hash yang telah di-hash dengan MD5 agar cocok dengan file yang telah dimodifikasi. Dampaknya, ribuan pengguna yang mengunduh file installer tersebut tidak menyadari bahwa file yang mereka unduh telah dimodifikasi dan terinfeksi malware.

 

Kesimpulan yang dapat diambil adalah MD5 sudah dianggap tidak aman untuk penggunaan yang membutuhkan keamanan yang tinggi, seperti pengamanan password dan integritas file. Hal ini disebabkan karena MD5 sudah terbukti rentan terhadap serangan kolisi atau collision attack, di mana penyerang dapat memanipulasi nilai hash yang dihasilkan oleh MD5 untuk menghasilkan nilai hash yang sama dengan data lain yang berbeda.

Oleh karena itu, disarankan untuk tidak menggunakan MD5 untuk keperluan yang membutuhkan keamanan yang tinggi, seperti pengamanan password dan integritas file. Sebagai gantinya, disarankan untuk menggunakan algoritma hashing yang lebih aman dan kuat, seperti SHA-256, SHA-512, atau algoritma hashing yang lebih baru dan kuat seperti Blake2 atau SHA-3.

Sumber: