Sekilas Info | Hash di Linux


Masih awam dengan istilah HASH? Kalau istilah kriptografi awam ga?

Kriptografi adalah seni menyembunyikan pesan terang (plaintext) menjadi pesan yang acak (ciphertext). Kriptografi merupakan bagian dari kriptologi. Selain kriptografi, kriptanalisis juga merupakan bagian dari kriptologi. Kriptanalisis merupakan usaha untuk mendapatkan plaintext dari suatu ciphertext tanpa mengetahui kuncinya. Kriptanalisis juga mengandung usaha untuk menemukan kelemahan dari suatu sistem kriptografi. Jadi perkembangan kriptanalisis juga semakin mendorong perkembangan kriptografi, dan sebaliknya.

Salah satu yang dipelajari dalam kriptografi adalah fungsi hash satu-arah (one-way hash function) yang selanjutnya disebut fungsi hash. Fungsi hash merupakan suatu fungsi h yang memetakan input x dengan panjang berapapun pada output h(x) dengan panjang tetap. Sebagai contoh adalah analisa file /etc/passwd sebagai berikut:

[[email protected] ~]# cat /etc/passwd

root: $1$KzJG53$UhsMoqmTDnxn60Uc0.H2gArM:0:0:root:/root:/bin/bash
addidnugroho:$1/vCc$vhbO$gXm/OXoLBzCpzQdp0.bti1:500:500:intruder:/home/addidnugroho:/bin/bash

Analisa isi file /etc/passwd:

Di dalam file tersebut, ada 2 user yaitu root dan addidnugroho. Untuk user root, memiliki password yang telah diinkripsi secara hash dengan kode “$1$KzJG53$UhsMoqmTDnxn60Uc0.H2gArM” (jumlah 34 karakter) sedangkan user addidnugroho memiliki password yang telah diinkripsi secara hash juga dengan kode “$1/vCc$vhbO$gXm/OXoLBzCpzQdp0.bti1” (jumlah 34 karakter).

User root memiliki directory home di /root/ dan memiliki akses console di /bin/bash. Sedangkan user addidnugroho memiliki directory home di /home/addidnugroho/ dan memiliki akses console di /bin/bash.

Yang perlu diperhatikan adalah nilai hash di masing-masing user. Jumlah karakter pada hash user root dan addidnugroho adalah sama, yaitu 34 karakter. Enkripsi hash memungkinkan password sejumlah berapapun dikompresi menjadi 34 karakter tersebut.

Setelah melihat analisa diatas, berarti bahwa hash memiliki fungsi untuk mengenkripsi suatu password user agar password tidak mudah dibaca oleh pengguna, sehingga kerahasiaan password dapat terjamin.

Salah proses pendeskripsiannya yaitu ketika proses login menerima data user dan password dari pengguna, fungsi hash akan secara otomatis bergerak dan membentuk kode password secara acak. Misalnya kita memakai user addidnugroho dan passwordnya adalah “rahasia”, fungsi hash berjalan dan melakukan enkripsi password “rahasia” menjadi “$1/vCc$vhbO$gXm/OXoLBzCpzQdp0.bti1“. Kode hash yang secara acak tersebut kemudian dicocokkan dengan hash yang ada di /etc/passwd. Jika cocok, maka proses login akan berhasil, sebaliknya jika tidak maka proses login ditolak.

Semoga artikel bermanfaat 😀