Database pemetaan dari teks ke hash dari banyak kasus peretasan, tersedia bebas di internet sehingga peretas bisa dengan mudah memasukkan sebuah hash dan dengan cepat akan mendapatkan teks di balik hash tersebut bila hash tersebut sudah pernah diretas sebelumnya.
Berbeda dengan peretasan luring yang bisa dilakukan tanpa koneksi ke sistem yang ditarget, peretasan daring dilakukan secara “live” dengan mencoba banyak kandidat password langsung ke layar login sistem yang ditarget.
Teknik ini jauh lebih lambat karena banyaknya kombinasi username dan password yang bisa dicoba secara live tergantung dari kecepatan jaringan dan kemungkinan adanya pembatasan sistem (contohnya mengunci user bila gagal login lebih dari N kali).
Sedangkan peretasan luring, peretas bisa mencoba milyaran kombinasi per detik tanpa terpengaruh dengan kecepatan internet dan tanpa menyentuh sistem target sama sekali.
Namun kelebihan teknik ini adalah, teknik ini bisa dicoba tanpa harus mendapatkan akses ke database terlebih dahulu. Bila peretas memiliki koneksi internet yang cepat, dan sistem tidak menerapkan pembatasan percobaan, maka teknik ini akan sangat efektif.
Sekali lagi, peretas tidak akan naif mencoba semua kemungkinan password secara acak, peretas harus lebih bijak memilih kandidat yang akan dicoba dibandingkan peretasan luring (offline) karena biaya mencoba satu kandidat secara live jauh lebih mahal dan lama.
Sudah lima bulan pandemi corona berlangsung di tanah air (dan mungkin masih akan terus berlangsung). Sudah banyak orang terhempas secara ekonomi akibat pandemi corona. Sudah banyak orang kehilangan pekerjaan dan mata pencahariannya karena tidak ada orang yang mau memakai jasanya, atau membeli barangnya, atau karena orang-orang menghindar dulu untuk berhubungan dulu dengan mereka.
9. Pegawai perusahaan ticketing daring (Traveloka, Tiket.com, Airy Room, dll sudah merumahkan sebagian karyawannya)
10. Pegawai perusahaan catering dan wedding, karena resepsi pernikahan masih belum diperbolehkan untuk tamu yang banyak.
Masih panjang lagi daftarnya, silakan diisi sendiri. Sedih melihat situasi ini, karena efek dominonya kemana-mana.
Namun bukan orang Indonesia namanya jika tidak berusaha dengan berbagai cara untuk bertahan hidup. Kang Deden misalnya, sebelum pandemi ia bekerja di sebuah perusahaan interior kantor. Namun akibat pandemi, perusahaannya melakukan rasionalisasi karena tidak ada order interior. Setelah di-PHK dari tempat kerjanya akibat badai corona, Kang Deden banting stir berjualan ikan bandeng presto keliling. Ketika lewat di depan rumah saya, dia menawarkan ikan bandeng presto. Saya pun membelinya.
Ikan bandeng presto itu memang bukan dia yang membuatnya, tetapi diambil dari majikannya, orang Semarang yang menjadi perajin bandeng presto di Bandung. Dia hanya menjualkannya saja secara keliling, lalu mengambil sedikit keuntungan dari per satuan ikan bandeng yang terjual. Satu ekor ikan bandeng presto dijualnya sembilan ribu hingga sepuluh ribu rupiah. Tidak terlalu mahal. Setelah saya goreng atau bakar, rasanya yummy. Enak.
Tentu saja orang-orang seperti Kang Deden ini banyak jumlahnya, ratusan ribu, bahkan jutaan orang. Mereka ini dulunya punya pekerjaan tetap, tetapi akibat pandemi yang luar biasa ini, pekerjaan mereka menjadi ambyar. Pekerjaan apapun dilakukan untuk mencoba bertahan. Yang penting halal.
Ada banyak sekali jenis algoritma enkripsi yang ada, mulai dari yang paling sederhana sejak jaman kaisar Romawi Caesar, sampai yang paling modern dan canggih yang digunakan di sistem pertahanan negara. Namun pertanyaannya, adakah enkripsi yang tidak bisa dipecahkan, atau bahasa kerennya “unbreakable encryption” ?
Ada beberapa asumsi dalam model serangan dalam bahasan ini, kita asumsikan penyerang memiliki kemampuan di bawah ini:
Mari kita asumsikan penyerang memiliki semua informasi tentang algoritma dan cara melakukan enkripsi dan dekripsi, artinya ini adalah algoritma terbuka, bukan algoritma yang rahasia.
Kita juga asumsikan bahwa penyerang memiliki kekuatan komputasi yang tak terbatas, komputer super yang terkuat sejagat raya ada dalam genggamannya.
Jawabannya ada, perkenalkan, One Time Pad. Ini adalah satu-satunya algoritma enkripsi yang secara matematis terbukti tidak mungkin dipecahkan, bahkan bila penyerang memiliki kemampuan komputasi tak terbatas sekalipun.
Algoritma OTP sangat sederhana, bisa diimplementasikan dengan menggunakan operasi XOR saja, jadi algoritma enkripsi dan algoritma dekripsi tidak ada bedanya, semua menggunakan operasi yang sama.
Dari tabel tersebut kita bisa melihat bahwa hasil operasi XOR bisa dikembalikan seperti semula dengan melakukan XOR yang sama sekali lagi.
Syarat utama operasi sesederhana XOR bisa menjadi algoritma enkripsi tak terkalahkan adalah penggunaan kunci rahasia yang acak sempurna (truly random), selain itu kunci harus memenuhi syarat-syarat berikut ini:
Panjang kunci harus sama dengan panjang pesan, tidak boleh kurang satu bit pun karena setiap bit dari pesan akan di-XOR dengan setiap bit dari kunci.
Kunci harus acak sempurna (truly random). Ini sangat penting, kunci harus dibuat seacak mungkin dan tidak bisa ditebak. Bila kunci bisa ditebak, walau hanya sebagian saja, keamanan pesan akan terancam.
Terakhir, tentu saja kuncinya harus benar-benar dijaga kerahasiaannya, kalau sampai bocor ya sudah selesai semua.
Dengan kunci semacam ini, walaupun penyerang mengetahui algoritma enkripsi/dekripsinya, penyerang tidak bisa mendapatkan plaintext sekalipun dengan kemampuan komputasi tak terbatas.
Mencoba semua kemungkinan kunci adalah satu-satunya hal yang bisa dilakukan penyerang, dan itu tidak akan menghasilkan apa-apa.
Pertama, mencoba semua kemungkinan kunci membutuhkan waktu yang sangat lama. Sebuah pesan pendek 16 karakter string, semisal, “HALO APA KABARMU”, panjang kuncinya adalah 16×8 = 128 bit.
Ada sebanyak 2^128 kemungkinan kunci, yaitu 2 x 2 x 2 x 2 sebanyak 128 kali = 3.4028237 x 10^38, atau kurang lebih bisa ditulis sebagai “34” diikuti dengan 37 angka 0 dibelakangnya. Ini jumlah yang sangat besar, membutuhkan milyaran tahun untuk mencoba satu per satu semuanya. Ingat ini hanya untuk pesan sangat pendek 16 karakter.
Kedua, sesuai asumsi, penyerang memiliki kemampuan komputasi tak terbatas, anggaplah penyerang dapat mencoba semua kemungkinan kunci dalam waktu sangat singkat, tidak perlu milyaran tahun, penyerang tetap tidak akan mendapatkan pesan aslinya. Lho kok bisa?
Bila menggunakan kunci yang benar “XASDVF”, kita bisa mengembalikan teks sandi tersebut menjadi teks semula yaitu “SERANG”.
Namun karena penyerang tidak mengetahui kunci yang benar, dia akan mencoba semua kemungkinan kunci, string 6 karakter. Perhatikan di bawah ini, penyerang mencoba dekripsi dengan kunci “FQOAMS”, ternyata menghasilkan pesan “MUNDUR”, padahal pesan aslinya adalah “SERANG”.
Anggaplah suatu saat setelah mencoba banyak kunci lainnya, dengan keberuntungan yang tinggi, penyerang mencoba kunci “XASDVF” (ini kunci yang benar), dan mendapatkan pesan “SERANG”.
Penyerang memang bisa mencoba semua kemungkinan kunci, tapi setiap kemungkinan kunci itu akan menghasilkan pesan dekripsi yang berbeda-beda. Ini sama saja dengan penyerang menghasilkan pesan dekripsi dari semua kemungkinan string 6 karakter termasuk “MAKAN_”, “MINUM_”, “TIDUR_” dengan segala variasi huruf besar, huruf kecil, angka dan karakter khusus.