Rainbow table

Rainbow table adalah lookup table yang digunakan untuk mendapatkan plain text dari password yang telah dirubah menggunakan fungsi hash. Rainbow table berawal dari ide Martin Edward Hellman pada tahun 1982. Kemudian dikembangkan oleh Philippe Oechslin dengan metode Faster Time Memory Trade Off pada tahun 2003. Pada penelitian yang dilakukan Philippe Oechslin, penggunaan rainbow table dapat mempersingkat waktu penyerangan terhadap Microsoft's LAN Manager passwords sampai 99,9%, yaitu dari 101 detik hanya menjadi 13,6 detik.

Cracking password menggunakan rainbow table tidak sesulit cracking dengan cara brute force. Rainbow table membuat pssword cracking lebih cepat dibandingkan dengan metode sebelumnya, seperti brute force attack dan dictionary attack. Berdasarkan pada software password cracking yang menggunakan metode rainbow table mampu memecahkan password 14 karakter alfanumerik sekitar 160 detik.

Rainbow table dibentuk oleh fungsi hash dan fungsi reduksi. Fungsi hash merubah plaintext enjadi hash, sedangkan fungsi reduksi merubah hash menjadi plain text. Tetapi, perlu diingat bahwa fungsi reduksi bukan merupakan kebalikan dari fungsi hash. Fungsi hash dan fungsi reduksi bersifat irreversible. Jadi, apabila kita merubah sebuah hash dengan menggunakan fungsi reduksi, maka plain text yang didapat bukanlah plain text aslinya, melainkan plain text lain.
Konsep dasar pambangunan rainbow table sebagai berikut
                                                Gambar 2
                Gambar 1

                                                                             Gambar 3

                                                                                       

      
Kererangan gambar :
Gambar 1
Pembentukan hash kode dari suatu plain text dengan menggunakan fungsi hash, misalnya MD5.

Gambar 2 
Setelah plain text dirubah menjadi hash, akan dibentuk suatu palin text dengan proses reduce. Reduce merupakan suatu fungsi yang akan mereduksi hash kode menurut algoritma tertentu,  fungsi reduksi ini bukan merupakan kebalikan dari fungsi hash, karena hash sendiri merupakan fungsi satu arah. Jadi ketika suatu pain text sudah di-generate hash kodenya, maka tidak bisa dikembalikan menjadi plain text dengan fungsi yang sama.

Gambar 3
Proses yang terjadi dalam pembangunan rainbow table adalah proses hashing dan reducing berulang dan nantinya yang  akan disimpan di dalam rainbow table hanya berupa start plain text sample dan hash kode terakhir yang di-generate.   
Sebagai contoh dari proses di atas disajikan dalam tabel berikut,

Starting Point
End Point
Makalah
kriptografi
Keamanan
informasi
Informatika
telematika

Untuk proses peretasan password dapat dapat dilakukan sebagai berikut,
Misal diketahui suatu  hash code f1e2d3c4 dan akan dicari plaintext-nya. Langkah pencarian tersebut dapat dilihat pada diagram di bawah ini,

 
Penjelasan gambar :
1. Dengan menggunakan fungsi reduksi terakhir hash code f1e2d3c4, diubah menjadi plaintext. Kemudian dicek apakah password hasil fungsi reduksi terdapat pada kolom endpoint pada tabel.
2. Jika langkah 1 gagal, artinya indonesia tidak terdapat pada tabel, maka dengan menggunakan dua fungsi reduksi terakhir dibuat rantai hash. Apabila tidak terdapat password pada tahap ini, dilakukan pembuatan rantai dengan menggunakan tiga reduksi, empat reduksi, dan seterusnya sampai password ditemukan. Jika tidak terdapat password pada rantai, maka password gagal didapat.
3. Jika langkah 2 berhasil (terdapat password pada rantai), maka password didapat dengan cara membentuk rantai dimulai dari starting point dari end point yang bersangkutan. Dalam contoh ini, starting point yang dimaksud adalah telematika.
4. Pada langkah ini, dimulai dari starting point, dalam  hal ini informatika, dibuat rantai. Pembuatan rantai dilakukan dengan cara membandingkan nilai hash dari starting point dengan nilai hash yang dimaksud (f1e2d3c4). Jika tidak sesuai, lakukan fungsi reduksi dari nilai hash ini. Begitu seterusnya sampai didapat nilai hash yang dimaksud. Password yang bersesuaian adalah password sebelum dilakukan hash sehingga menghasilkan nilai hash yang dimaksud. Dalam contoh ini password dari nilai hash code f1e2d3c4 adalah kuliah.

Tidak berbeda dengan metode-metode cracking password sebelumnya, metode rainbow table juga memiliki kelebihan dan kekurangan. Kelebihan dari metode ini adalah waktu yang dibutuhkan untuk meretas password relatif cepat, adapun kekurangannya antara lain, membutuhkan komputasi dan memori yang besar, ada kemungkinan terjadi looping (kembali ke start plaintext lagi), kemungkinan terdapat dua atau lebih plaintext atau hases yang berujung sama.


1 komentar: