Apa itu Salt dan Bagaimana Cara Kerjanya dalam Cryptography?


#1

Dalam kriptografi, Salt adalah data acak yang digunakan sebagai input tambahan untuk fungsi satu arah yang digunakan untuk “hash” suatu data seperti kata sandi (password), atau data penting lainnya agar sulit di didekripsi.

Fungsi utama dari salt adalah untuk mencegah peretas mengetahui isi data suatu dokumen atau password dalam bentuk plain text yang dimana suatu file jika sudah di enkripsi maka bisa dikembalikan lagi menggunakan kamus hash jika cocok maka isi data password dapat dicocokan dengan kamus enkripsi yang digunakan,

Tapi jika menggunakan Salt maka data tersebut akan lebih sulit bahkan mustahil untuk di diskripsi dengan waktu yang singkat karena beberapa perusahaan menggunakan penambahakan karakter yang berbeda pada datanya sebelum di enkripsi menjadi salted hash.

Cara kerja Salt (Kriptografi)

Untuk lebih memahami cara kerja Salt kita bisa menggunakan contoh sebagai berikut.

Bayangkan Anda mempunyai perusahaan internet dimana semua basis data di kelola oleh Anda. Karena ingin data-data klien anda aman maka Anda menggunakan salah satu Hash Encyption misalnya AES256.

Nah setelah di enkripsi data tersebut ternyata masih bisa dilihat oleh peretas tapi masih dalam bentuk karakter yang sudah di hash. Akhirnya si peretas menggunakan kamus kriptografi untuk mencocokan karakter yang di hash menjadi plain text sehingga data dapat diketahui.

Karena si peretas sudah mendapatkan data kamu harus bertanggung jawab untuk mengatasi hal ini dan meminta para client Anda untuk mengganti password atau informasi data mereka.

Namun kali ini Anda mulai menggunakan Salt dalam enkripsi data client, Misalnya
Password dan username client:

username: username23
password: yaudahlahyah
username hash tanpa salt : 72AE25495A7981C40622D49F9A52E4F1565C90F048F59027BD9C8C8900D5C3D8
password hash tanpa salt : AD3213DDEWAEWQ95A7981C40451231565C90F048F59027BEED9C8C8900D5C3D8

Dengan menggunakan salt, maka data username dan password diatas akan di tambah menggunakan karakter acak.

Data setelah di Salt    
username: user$name$23+E1F53135E559C253
password: yaud$ahla$hyah$+84B03D034B409D4E
username sesudah salt : HD421JKH419UZ6798674Y234HUI23YO48876A76E97D6AS978EY98184YU21H3JKH32
password salt : JH24K3H2LK4H912O789037209187390721983712HJKHLKD9049027147919002129871987

Nah seperti contoh diatas kita bisa ketahui bahwa enkripsi untuk data tersebut telah berubah sehingga akan sangat sulit bagi si peretas untuk mengubahnya kembali ke dalam plain text karena kita menggunakan karakter tambahan yang tidak diketahui oleh siapapun.

Salt dihasilkan secara acak untuk setiap kata sandi. Dalam pengaturan yang khas, salt dan kata sandi digabungkan dan diproses dengan fungsi hash kriptografi, dan output yang dihasilkan (tetapi bukan kata sandi asli) disimpan dengan salt dalam basis data. Hashing memungkinkan untuk otentikasi kemudian tanpa menyimpan dan karena itu mempertaruhkan kata sandi plaintext dalam hal bahwa penyimpanan data otentikasi dikompromikan.

Kegunaan Salt

Salt digunakan untuk menjaga kata sandi dalam penyimpanan. Secara historis, kata sandi disimpan dalam bentuk plaintext pada suatu sistem, tetapi seiring waktu perlindungan tambahan dikembangkan untuk melindungi kata sandi pengguna agar tidak terbaca dari sistem.

Karena Salting dapat berbeda dalam setiap kasus, mereka juga melindungi kata sandi yang biasa digunakan, atau mereka yang menggunakan kata sandi yang sama di beberapa situs, dengan membuat semua contoh hash salt untuk kata sandi yang sama dan berbeda satu sama lain.