December 16, 2024 • ☕️ 3 min read
Dalam konsep kriptografi, kita mengenal kunci satu arah sebagai fungsi pencacahan matematis atau istilahnya fungsi hash satu-arah, dimana melaluinya, pesan yang sudah diubah tidak dapat dikembalikan lagi atau tidak dapat dipecahkan kembali menjadi pesan semula. Bila mencoba-coba mengubah 1 bit saja, nilai hash akan berubah sangat signifikan. Namun apakah demikian?
Berikut contoh perubahan input string: “Rahasia123” setelah melewati fungsi hash
import hashlib
def generate_md5_hash(input_string):
#Buat objek an MD5 hash
md5_hash = hashlib.md5()
# Update object hash dengan input string encoded ke bentuk bytes
md5_hash.update(input_string.encode('utf-8'))
# Dapatkan hexadecimal, hasil hash
return md5_hash.hexdigest()
# Masukkan pesan string
input_string = "Rahasia123"
md5_hash_value = generate_md5_hash(input_string)
print(f"MD5 Hash of '{input_string}': {md5_hash_value}")Output:
MD5 Hash of 'Rahasia123': 33b2e7f44f3c403ba522549936ddf2f9Fungsi hash ini memang benar dirancang bersifat satu-arah, artinya sulit atau hampir tidak mungkin untuk mengembalikan nilai hash ke data aslinya. Namun dengan catatan, pesan tidak dapat di burte force, misalnya.
Karena ada beberapa teknik yang dapat digunakan untuk mencoba menemukan input asli dari nilai hash, dan teknik ini memang tidak dapat dikatakan melakukan “dekripsi”.
Coba saja copy-paste output hexadecimal dari hasil MD5 hashing diatas pada link berikut, https://www.dcode.fr/md5-hash:
33b2e7f44f3c403ba522549936ddf2f9Pada capture, ternyata bisa dipecahkan kembali menjadi pesan semula: “Rahasia123”.
Alasannya MD5 dapat di dekripsi yang dimaksud adalah tool online ini telah mencocokkan hash yang telah dihitung sebelumnya atau menggunakan cara Bruteforce, dimana prosesnya tentu lebih lama, keberhasilan mengembalikan hash tidak dijamin dalam batas waktu. Catatan di situs tersebut, tool ini menggunakan cara Bruteforce-nya telah ditingkatkan 20x lebih cepat, dan 3 juta hash yang telah dihitung ditambahkan sebelumnya dengan lebih dari 11 juta entri.
MD5 jadinya algoritma hashing yang tidak aman lagi. Di beberapa penelitian dan insiden yang pernah terjadi menunjukkan kelemahan-kelemahan algoritma ini, diantaranya;
a. Pada tahun 2004, para peneliti seperti Xiaoyun Wang dan Hongbo Yu menemukan cara untuk menghasilkan kolisi dalam MD5 dalam waktu yang sangat singkat. Penelitian mereka menunjukkan bahwa dua input yang berbeda bisa menghasilkan hash MD5 yang sama, menunjukkan kerentanan serius dalam algoritma ini. b. Ada banyak insiden di mana MD5 digunakan untuk menandatangani sertifikat SSL dan kunci digital, yang kemudian berhasil diserang oleh para penjahat siber melalui kolisi. Salah satu contoh terkenal adalah serangan pada sertifikat SSL yang dikeluarkan oleh Certificate Authorities (CA) yang menggunakan MD5, menyebabkan sertifikat palsu yang dapat digunakan untuk penipuan. c. Standard NIST dan OWASP telah lama merekomendasikan untuk tidak menggunakan MD5 untuk keperluan keamanan. Mereka menyarankan penggunaan algoritma yang lebih aman seperti SHA-256 atau SHA-3. d. Dengan kemajuan dalam komputasi modern dan ketersediaan perangkat keras yang lebih kuat, serangan brute force terhadap MD5 menjadi lebih praktis. Hal ini memungkinkan penyerang untuk mencoba sejumlah besar kombinasi dalam waktu singkat untuk menemukan input yang menghasilkan hash MD5 tertentu.
Walapun MD5 tidak direkomendasikan, pada prakteknya fitur ini masih tersedia di perangkat jaringan seperti untuk kegunaan otentikasi sesi peer BGP.
Terimakasih.
Back to Blog list • Edit on GitHub • Discuss on Twitter

Personal blog by A Rahman.
Menulis untuk mengingatnya.