Pengantar
Kebocoran data yang melibatkan jutaan akun pengguna masih menjadi ancaman serius di era digital. Salah satu penyebab utamanya adalah penyimpanan password yang tidak aman, misalnya dalam bentuk teks biasa (plain text) atau menggunakan algoritma hash tanpa perlindungan tambahan. Ketika database berhasil diakses oleh penyerang, password yang disimpan dengan metode yang lemah dapat dengan mudah dipulihkan menggunakan teknik seperti dictionary attack, brute force, atau rainbow table.
Untuk mengurangi risiko tersebut, para praktisi keamanan siber menerapkan berbagai teknik perlindungan, di antaranya Salting dan Peppering. Keduanya sama-sama digunakan bersama proses hashing password, tetapi memiliki fungsi dan cara kerja yang berbeda. Dengan memahami konsep ini, pengembang dapat membangun sistem autentikasi yang lebih tangguh terhadap berbagai jenis serangan.
Apa Itu Salting dan Peppering?
Pengertian Salting
Salting adalah teknik menambahkan nilai acak (salt) ke password sebelum dilakukan proses hashing. Setiap pengguna memiliki nilai salt yang berbeda sehingga meskipun dua pengguna menggunakan password yang sama, hasil hash yang dihasilkan tetap berbeda.
Menurut OWASP Password Storage Cheat Sheet, penggunaan salt yang unik untuk setiap password merupakan praktik standar yang mampu melindungi sistem dari serangan seperti rainbow table dan mempersulit upaya cracking terhadap banyak password sekaligus (dikutip dari: https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html).
Sebagai contoh:
Password: password123
Salt: X7kP9mA2
Data yang di-hash menjadi:
password123X7kP9mA2
Hasil hash tersebut akan berbeda jika nilai salt berubah, meskipun password yang digunakan tetap sama.
baca juga : DOM-Based XSS: Ancaman Cross-Site Scripting yang Bersembunyi di Sisi Browser
Pengertian Peppering
Berbeda dengan salt, Peppering adalah teknik menambahkan nilai rahasia (pepper) ke password sebelum atau sesudah proses hashing. Nilai pepper bersifat global dan digunakan untuk seluruh pengguna dalam suatu sistem.
Pepper tidak disimpan di dalam database bersama password, melainkan ditempatkan di lokasi yang lebih aman, seperti:
- Environment Variable
- Secret Management Service
- Hardware Security Module (HSM)
- Konfigurasi server yang terenkripsi
Dengan demikian, meskipun database berhasil dicuri, penyerang tetap membutuhkan nilai pepper untuk menghasilkan hash yang benar.
Mengapa Salting dan Peppering Sangat Penting?
Hash password saja tidak selalu cukup untuk melindungi data pengguna. Jika dua akun menggunakan password yang sama, hasil hash tanpa salt juga akan identik sehingga mempermudah penyerang mengenali pola.
Selain itu, berbagai database rainbow table telah dibuat untuk mencocokkan hash dari password yang umum digunakan. Dengan adanya salt, metode tersebut menjadi jauh kurang efektif karena setiap hash bersifat unik.
Peppering memberikan lapisan perlindungan tambahan. Bahkan jika penyerang memperoleh seluruh isi database, mereka masih harus mengetahui nilai pepper yang disimpan di luar database agar dapat memverifikasi hasil hash.
Perbedaan Salting dan Peppering
Walaupun sering digunakan secara bersamaan, Salting dan Peppering memiliki fungsi yang berbeda.
| Salting | Peppering |
|---|---|
| Nilainya unik untuk setiap pengguna | Nilainya sama untuk seluruh sistem |
| Disimpan bersama hash password di database | Disimpan di luar database |
| Melindungi dari rainbow table | Melindungi jika database berhasil dicuri |
| Tidak bersifat rahasia | Harus dirahasiakan |
Kombinasi keduanya memberikan perlindungan yang lebih kuat dibandingkan hanya menggunakan salah satu teknik saja.
Bagaimana Cara Kerja Salting?
Misalkan terdapat dua pengguna dengan password yang sama.
Tanpa Salt
User A
Password123
↓
Hash:
ABC123XYZ
User B
Password123
↓
Hash:
ABC123XYZ
Hasil hash yang sama menunjukkan bahwa kedua pengguna menggunakan password identik.
Dengan Salt
User A
Password123
+
Salt = H8d21
↓
Hash:
KJH45MN9
User B
Password123
+
Salt = R7Lp81
↓
Hash:
QWE98RT5
Kini hasil hash menjadi berbeda meskipun password keduanya sama.
baca juga : Code Obfuscation: Teknik Menyamarkan Kode Program untuk Mencegah Reverse Engineering
Bagaimana Cara Kerja Peppering?
Sebagai contoh:
Password:
Password123
Pepper:
MySecretPepper!
↓
Password123MySecretPepper!
Kemudian data tersebut diproses menggunakan algoritma hashing seperti Argon2id atau bcrypt.
Karena pepper tidak tersedia di database, penyerang tidak dapat langsung menghasilkan hash yang sesuai meskipun berhasil memperoleh seluruh data pengguna.
Salting dan Peppering Bukan Pengganti Hashing
Perlu dipahami bahwa Salt maupun Pepper tidak menggantikan proses hashing.
Urutan yang benar adalah:
- Pengguna memasukkan password.
- Sistem menambahkan salt.
- Sistem menambahkan pepper (bergantung pada implementasi).
- Password diproses menggunakan algoritma hashing yang kuat.
- Hash disimpan di database.
Dengan pendekatan tersebut, password asli tidak pernah disimpan dalam bentuk yang dapat dibaca.
Algoritma Hash yang Direkomendasikan
Selain menggunakan salt dan pepper, pemilihan algoritma hashing juga sangat menentukan tingkat keamanan.
Beberapa algoritma yang direkomendasikan saat ini meliputi:
- Argon2id
- bcrypt
- scrypt
- PBKDF2
Berdasarkan panduan dari National Institute of Standards and Technology (NIST), penyimpanan password sebaiknya menggunakan fungsi password hashing yang memiliki faktor kerja (work factor) untuk meningkatkan ketahanan terhadap serangan brute force (dikutip dari: https://pages.nist.gov/800-63-4/sp800-63b.html).
Sebaliknya, algoritma seperti MD5 maupun SHA-1 sudah tidak direkomendasikan untuk penyimpanan password karena dapat diproses terlalu cepat oleh perangkat keras modern.
Kesalahan yang Masih Sering Dilakukan
Dalam praktiknya, masih banyak pengembang yang melakukan kesalahan seperti:
- Menyimpan password dalam bentuk plain text.
- Menggunakan MD5 atau SHA-1 untuk hashing password.
- Menggunakan salt yang sama untuk seluruh pengguna.
- Menyimpan pepper di database yang sama dengan password.
- Tidak menggunakan algoritma hashing modern seperti Argon2id atau bcrypt.
Kesalahan-kesalahan tersebut dapat meningkatkan risiko keberhasilan serangan terhadap sistem autentikasi.
Best Practice Mengamankan Password
Beberapa praktik terbaik yang direkomendasikan adalah:
- Gunakan algoritma hashing modern seperti Argon2id atau bcrypt.
- Buat salt yang unik untuk setiap password.
- Simpan pepper di luar database.
- Terapkan work factor yang sesuai dengan kemampuan server.
- Gunakan Secret Manager atau HSM untuk menyimpan pepper.
- Lakukan pembaruan algoritma hashing jika standar keamanan berubah.
Dengan menerapkan langkah-langkah tersebut, sistem autentikasi akan lebih tahan terhadap berbagai teknik serangan modern.
baca juga : TCP Three-Way Handshake Deep Dive: Memahami Proses Koneksi TCP dari SYN hingga ACK
Kesimpulan
Salting dan Peppering merupakan dua teknik penting yang saling melengkapi dalam meningkatkan keamanan penyimpanan password. Salting memastikan setiap password menghasilkan hash yang unik sehingga efektif mencegah serangan rainbow table, sedangkan Peppering memberikan lapisan perlindungan tambahan dengan menyimpan nilai rahasia di luar database.
Namun, kedua teknik tersebut tidak akan memberikan perlindungan maksimal jika tidak dipadukan dengan algoritma hashing yang kuat seperti Argon2id atau bcrypt. Oleh karena itu, pengembang perlu menerapkan strategi keamanan berlapis yang mencakup hashing modern, salt unik untuk setiap pengguna, pepper yang tersimpan secara aman, serta pembaruan konfigurasi keamanan secara berkala agar sistem autentikasi tetap mampu menghadapi ancaman siber yang terus berkembang.











1 Comment
DNSSEC (DNS Security Extensions): Cara Kerja Teknologi yang Melindungi DNS dari Pemalsuan Data - buletinsiber.com
2 weeks ago[…] baca juga : Salting & Peppering: Dua Teknik Penting untuk Memperkuat Keamanan Password […]