Identifikasi Enkripsi

Anda telah mengambil hasil dump basis data dan menemukan string seperti $2y$10$... atau 5f4dcc3b5aa765d61d8327deb882cf99; Anda perlu memahami isi string tersebut sebelum mulai melakukan pemecahan atau pembalikan enkripsi. Identifier ini menerapkan pendekatan heuristik terhadap panjang, karakter set, struktur, dan prefiks untuk menduga algoritma atau metode pengkodean yang paling mungkin digunakan dalam sampel teks terenkripsi.

Cara mengidentifikasi teks sandi

  1. 1

    Tempel sampel

    Satu hash tunggal, blok teks terenkripsi, token, atau string terenkripsi.

  2. 2

    Lihat format yang cocok

    Semua format yang polanya cocok dengan sampel Anda akan tercantum di hasil.

  3. 3

    Periksa silang

    Jika ada beberapa format yang cocok, gunakan hash cracker atau decoder untuk memastikan mana yang benar.

  4. 4

    Perhatikan ketidakpastiannya

    Identifikasi dari satu sampel saja jarang bersifat pasti; jika tidak ada yang cocok, alat ini akan menyatakannya.

Pola signature yang digunakan identifier

Berdasarkan panjang (untuk hash yang dikodekan dalam format heksadesimal):

Panjang (karakter heksadesimal) Diidentifikasi sebagai
32 MD5
40 SHA-1
64 SHA-256
128 SHA-512

Panjang lainnya, seperti SHA-224 dengan 56 karakter hex atau SHA-384 dengan 96, tidak dikenali sebagai hash (string hex 56 atau 96 karakter akan dikategorikan sebagai Base64).

Berdasarkan prefiks (hanya prefiks bcrypt yang dikenali):

  • $2a$, $2b$, $2y$ bcrypt

Prefiks bergaya crypt lainnya ($1$, $5$, $6$, $argon2i$, $argon2id$, $pbkdf2$) tidak dikenali.

Berdasarkan enkoding:

  • Semua karakter dalam [A-Za-z0-9+/=] dengan panjang kelipatan 4: kemungkinan besar Base64.
  • Tiga segmen yang dipisahkan oleh ., masing-masing memakai karakter [A-Za-z0-9_-]: JWT.

Pembungkus PEM, blob OpenSSH ssh-rsa/ssh-ed25519, dan string Base64url yang mengandung - atau _ tidak terdeteksi.

Apa yang tidak dapat ditentukan oleh identifikasi

  • Algoritma yang pasti dengan kepastian 100%. String 64 karakter heksadesimal dilaporkan sebagai SHA-256, tetapi bisa juga SHA3-256 atau BLAKE2s; ketiganya tidak dapat dibedakan dari teks terenkripsinya. Hash NTLM (juga 32 karakter hex) tampak identik dengan MD5.
  • Kekuatan kunci. Hash bcrypt menampilkan faktor biaya dalam prefiksnya ($2y$10$ = biaya 10), tetapi tidak mencerminkan kekuatan kata sandi yang sebenarnya.
  • Apakah memakai salt atau tidak. Hash kata sandi modern (bcrypt, Argon2) selalu dilengkapi salt; sedangkan versi lama (MD5/SHA mentah) mungkin memakainya, mungkin juga tidak.
  • Teks asli (plaintext). Identifikasi tidak membalikkan nilai hash; pemecahan hash merupakan proses terpisah yang hanya sah pada data Anda sendiri.

Ketika identifikasi salah

  • Token dengan prefiks khusus. Terkadang aplikasi menambahkan prefiks khusus pada nilai hash; hapuslah prefiks tersebut terlebih dahulu.
  • Enkoding ganda. Heksadesimal yang dibungkus format Base64 dari nilai hash biner dapat dikenali secara keliru. Coba dekode sekali lalu jalankan kembali.
  • Panjang yang tidak biasa. Hash yang terpotong (16 karakter pertama dari SHA-256 dipakai sebagai ID) akan tampil sebagai “Base64” karena aturan karakter dan panjangnya saling tumpang tindih.
  • Format berbingkai atau terbungkus. Blok PEM, kunci OpenSSH, dan format pbkdf2_sha256$... dari Django tidak dikenali; hapus pembungkus atau prefiksnya lalu coba lagi, atau gunakan parser khusus.

Kasus Penggunaan

  • Audit keamanan: pengkatalogan jenis hash di seluruh basis kode sebelum migrasi kriptografi.
  • Tantangan CTF: evaluasi awal yang cepat terhadap objek yang tidak diketahui.
  • Respons insiden: mengidentifikasi format kredensial yang bocor.
  • Debugging framework: menentukan jenis pengkodean yang dihasilkan oleh suatu pustaka.

Pengingat Etika

Mengidentifikasi format hash merupakan bentuk penelitian pasif. Memecahkan nilai hash milik orang lain tanpa izin melanggar undang-undang penyalahgunaan komputer di sebagian besar yurisdiksi. Hanya lakukan analisis terhadap nilai hash yang dimiliki atau telah diberi wewenang untuk dianalisis.

Pertanyaan yang Sering Diajukan

Secara parsial: MD5 terdiri dari 32 karakter heksadesimal, sedangkan SHA-1 terdiri dari 40 karakter heksadesimal. Jika kedua algoritma memiliki panjang yang sama, hasil hash saja tidak dapat digunakan untuk membedakannya. Perbedaan tersebut umumnya dapat ditentukan berdasarkan konteks, seperti nama kolom basis data, pengaturan default framework, atau skema yang bocor.

Tidak. Proses ini hanya berfungsi untuk identifikasi. Untuk membalikkan nilai hash atau mendekripsi teks terenkripsi diperlukan alat khusus (serta kunci atau sumber daya komputasi yang diperlukan untuk pemecahan), dan hanya boleh dilakukan pada materi yang dimiliki secara pribadi.

Argon2id (atau bcrypt dengan faktor biaya tinggi) merupakan rekomendasi saat ini. PBKDF2-SHA256 dan scrypt masih dapat diterima. MD5 polos, SHA-1, atau SHA-256 tanpa salt tidak aman untuk penyimpanan kata sandi.

Tidak. Nilai yang Anda tempel dikirim ke server kami untuk pemeriksaan format, tetapi tidak disimpan dalam basis data apa pun dan tidak ditambahkan ke tautan halaman.

Alat Terkait

Alat ini tersedia dalam bahasa lain