Tampilkan postingan dengan label Password Cracking. Tampilkan semua postingan
Tampilkan postingan dengan label Password Cracking. Tampilkan semua postingan
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.


Dictionary attack adalah sebuah teknik untuk melawan cipher atau melawan mekanisme otentikasi dengan cara menentukan kunci dekripsi dengan mencari kemungkinan kombinasi kata yang terdapat di dalam sebuah kamus.
            Pada dasarnya dictionary attack adalah pengembangan dari brute force attack, yaitu mencoba memecahkan kode dengan mencoba satu per satu kemungkinan secara berulang (exhaustive search). Akan tetapi dictionary attack bukan mencoba kombinasi satu per satu karakter yang tersedia seperti brute force, melainkan mencoba kombinasi kata yang paling mungkin berhasil dengan input sebuah “list of word” yang dapat didefinisikan (Dictionary), yang biasanya berasal dari daftar kombinasi kata-kata umum yang terdapat dalam kamus, misalnya kamus bahasa Inggris.
Dictionary attack merupakan serangan yang sangat efektif untuk memecahkan kode dan sering digunakan hacker untuk membobol sistem keamanan yang berupa password, seperti akun email, akun jejaring sosial, halaman administrator situs web, dan lain-lain. Dictionary attack dianggap efektif karena memanfaatkan psikologi manusia, yaitu kebiasaan bahwa pengguna akun akan menggunakan kata-kata yang lumrah dan mudah diingat sebagai password suatu akun tertentu, misalnya tanggal lahir, makanan kesukaan, nama orang tua, dan lain-lain. Kata-kata ini merupakan kata yang terdapat dalam kamus (karena merupakan kata yang digunakan sehari-hari) dan mudah diingat. Psikologi manusia dalam membuat password juga telah dikaji dan dibuktikan dengan penelitian.  Saat ini dictionary attack telah dikembangkan variasinya dan semakin tinggi efektivitasnya, sehingga teknik ini masih sering digunakan untuk membobol password pengguna sebuah akun.

Cara Kerja Dictionary Attack
Sistem operasi seperti Windows menyimpan password ke dalam bentuk terenkripsi yang disebut hashes. Password tidak dapat diambil (retrieved) secara langsung dari hashes. Untuk melakukan recover password diperlukan komputasi terhadap hashes dengan possible password (kata-kata yang diduga sebagai password) dan memasukkannya ke dalam list of hashes.
Hacker mengumpulkan kata-kata yang sering digunakan sebagai password ini ke dalam sebuah file yang dinamakan sebagai dictionary (kamus) dan file ini bisa didapatkan dengan mudah di Internet seperti di situs http://lastbit.com/dict.asp, atau kita juga bisa membuatnya sendiri atau menambahkannya dari file dictionary yang sudah ada
.
Gambar di bawah ini merupakan alur proses dari dictionary attack:

Program cracking akan mengubah satu persatu kata-kata yang ada di dalam kamus berdasarkan fungsi hash yang digunakan ke dalam bentuk tabel hash. Hasil perubahan ini kemudian dicocokkan dengan hash pada file password yang didapatkan. Apabila hasil hash ini cocok, artinya password sudah berhasil diketahui. Dengan teknik ini, hacker tidak perlu mencoba semua kombinasi karakter yang ada (seperti brute force attack) sehingga bisa menghemat banyak waktu dan tenaga.
Kentungan dari metode dictionary attack adalah waktu yang dibutuhkan relatif singkat. Sedangkan kelemahan dari metode ini adalah hanya dapat menebak password yang terdiri dari kombinasi kata-kata yang terdapat pada kamus (contoh: jika password pengguna menggunakan kombinasi huruf angka yang tidak terdapat dalam kamus, maka password tidak akan tertebak).
Serangan brute-force adalah sebuah teknik serangan terhadap sebuah sistem keamaman komputer 
yang menggunakan percobaan terhadap semua kunci yang mungkin. Pendekatan ini pada awalnya merujuk pada sebuah program komputer yang mengandalkan kekuatan pemrosesan komputer dibandingkan kecerdasan manusia.  Istilah brute force sendiri dipopulerkan oleh Kenneth Thompson, dengan mottonya:
"When in doubt, use brute-force" (jika ragu, gunakan brute-force).
Secara sederhana, sistem serangan brute-force adalah sistem menebak password dan mencoba semua kombinasi karakter yang mungkin.  Brute force attack digunakan untuk menjebol akses ke suatu host (server/workstation/network) atau kepada data yang terenkripsi. Metode ini dipakai para cracker untuk mendapatkan account secara tidak sah, dan sangat berguna untuk memecahkan enkripsi. Pemakaian password sembarangan, memakai password yang hanya sepanjang 3 karakter, menggunakan kata kunci yang mudah ditebak, menggunakan password yang sama, menggunakan nama, memakai nomor telepon, sudah pasti sangat tidak aman. Beberapa faktor yang menjadi keuntungan seorang hacker, bisanya disebabkan oleh kemalasan manusia itu sendiri. Namun brute force attack bisa saja memakan waktu lama bahkan sampai berbulan-bulan atau tahun tergantung dari tingkat kerumitan password dan kecepatan prosesornya.
Hal-hal yang perlu diperhatikan dalam menggunakan metode brute force attack :
a.        Asumsikan bahwa password diketik dalam huruf kecil (lower case).
Pada kasus ini, waktu yang dibutuhkan akan cenderung sama tetapi jika password mengandung huruf kapital (upper case) cara ini tidak akan berhasil.
b.       Coba semua kemungkinan.
Tujuh karakter lower case membutuhkan sekitar 4 jam untuk berhasil mendapatkan password  tetapi jika dicoba semua kemungkinan kombinasi antara karakter upper case dan lower case akan membutuhkan waktu sekitar 23 hari.
c.       Metode ketiga adalah trade-off.
Hanya kombinasi-kombinasi yang mungkin yang dimasukkan dalam pencarian, sebagai contoh “password”, “PASSWORD” dan “Password”. Kombinasi rumit seperti “pAssWOrD” tidak dimasukkan dalam proses. Dalam kasus ini, lambatnya proses dapat tertangani tetapi ada kemungkinan password tidak ditemukan.
Feasibility dari sebuah brute force attack tergantung dari panjangnya cipher yang ingin dipecahkan, dan jumlah komputasi yang tersedia untuk penyerang. Kuncinya adalah mencoba semua kemungkinan password dengan formula seperti berikut. 



L = jumlah karakter yang kita ingin definsikan
m = panjang minimum dari kunci
M = panjang maksimal dari kunci
Contohnya saat kita ingin meretas sebuah LanManager paswords (LM) dengan karakter set "ABCDEFGHIJKLMNOPQRSTUVWXYZ" dengan jumlah 26 karakter, maka brute force cracker harus mencoba  = 8353082582 kunci yang berbeda. Jika ingin meretas password yang sama dengan set karakter set "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789! @#$%^&*()-_+=~`[]{}|\:;"'<>,.?/", jumlah kunci akan dihasilkan akan naik menjadi 6823331935124. Brute Force attack melakukan perbandingan string matching antara pattern dengan text per karakter dengan pseudocode berikut :
do if (text letter == pattern letter)
compare next letter of pattern to next letter of text
else move pattern down text by one letter
while (entire pattern found or end of text)

Brute-Foce Indicator/Charactersitic
Sebuah serangan brute-force  memiliki beberapa ciri-ciri tertentu. Berikut adalah beberapa ciri-ciri indikator yang dapat menjadi parameter penulis dalam mendefinisikan sebuah paket serangan brute-force.
1. Jumlah percobaan login gagal berasal dari alamat IP yang sama
2. Melakukan percobaan login dengan beberapa/ lebih dari satu username dari alamat IP yang sama.
3. Percobaan login untuk satu account yang berasal dari banyak alamat IP yang berbeda
4. Percobaan gagal login dengan kombinasi username dan password yang terurut sesuai abjad.
5. Login dengan “password hacker” mencurigakan atau tools brute-force  yang biasa digunakan, seperti hydra, ownsyou (ownzyou), washere (wazhere), fanatik, hacksyou, dan lain-lain.



Kelebiahn dari metode brute force adalah dapat membongkar hampir semua jenis enkripsi namun memiliki kelemahan yaitu memerlukan waktu yang sangat lama untuk mendapatkan password. Walaupun sudah kuno, teknik penyerangan yang membosankan ini bisa berhasil seperti yang lebih baru dan menarik. Walaupun dianggap low-tech, brute force attack dapat menjadi sangat efektif dalam membahayakan sebuah Aplikasi Web kecuali mempunyai mekanisme defense tersendiri. Cracking dengan Brute Force akan sangat lamban jika dihadapkan pada enkripsi yang kuat,(misalnya dengan ukuran password yang lebih panjang).