Glosarium

Apa itu Salt (Kriptografi)?

Salt kriptografi adalah nilai acak yang digabungkan dengan kata sandi atau input lain sebelum diproses oleh fungsi hash atau fungsi derivasi kunci, memastikan bahwa input yang identik menghasilkan output yang berbeda dan mengalahkan tabel serangan yang telah dihitung sebelumnya.

Juga dikenal sebagai: salt, cryptographic salt

Tanpa salt, kata sandi yang identik selalu menghasilkan hash yang identik. Penyerang dengan tabel yang telah dihitung sebelumnya yang memetakan kata sandi umum ke nilai hash-nya (rainbow table) dapat langsung mencari hash yang cocok dalam database yang dicuri. Salting mengalahkan serangan ini dengan menambahkan atau mencampurkan nilai acak unik ke setiap kata sandi sebelum hashing. Bahkan jika dua pengguna memiliki kata sandi yang sama, salt yang berbeda memastikan output hash yang berbeda.

Salt tidak perlu dirahasiakan — biasanya disimpan dalam plaintext bersama hash atau kunci turunan. Tujuannya adalah memaksa penyerang untuk menghitung setiap hash secara individual alih-alih menggunakan tabel yang telah dihitung sebelumnya. Salt acak 16-byte memberikan 2^128 variasi yang mungkin untuk setiap kata sandi, membuat pra-komputasi sepenuhnya tidak praktis.

Salt sangat penting dalam dua konteks: hashing kata sandi (di mana salt melindungi hash kata sandi yang tersimpan dalam database) dan derivasi kunci (di mana salt memastikan bahwa passphrase yang sama menghasilkan kunci turunan yang berbeda untuk operasi yang berbeda). Dalam kedua kasus, salt harus dihasilkan menggunakan generator angka acak yang aman secara kriptografi dan harus unik per operasi — tidak pernah digunakan kembali di seluruh pengguna atau operasi enkripsi.

Cara Vaulted menggunakan Salt (Kriptografi)

Saat passphrase ditambahkan ke rahasia Vaulted, salt 16-byte acak dihasilkan di sisi klien menggunakan Web Crypto API. Salt ini dimasukkan ke PBKDF2 bersama passphrase dan 100.000 iterasi untuk menurunkan kunci wrapping AES-KW. Salt kemudian disertakan dalam fragmen URL sehingga browser penerima dapat menurunkan ulang kunci wrapping yang identik dari passphrase. Setiap rahasia dengan passphrase mendapatkan salt uniknya sendiri, memastikan bahwa passphrase yang sama yang digunakan pada rahasia yang berbeda menghasilkan kunci wrapping yang berbeda.