Blogger Jateng

Menerapkan Pengasinan

Di era di mana ancaman keamanan siber menjadi semakin canggih, melindungi data sensitif menjadi sangat penting. Salah satu teknik yang efektif untuk memperkuat keamanan kata sandi yang tersimpan dan informasi sensitif adalah salting. Artikel ini membahas konsep salting, implementasinya, dan peran pentingnya dalam meningkatkan perlindungan data.

Apa yang dimaksud dengan Pengasinan?

Pengasinan berarti mengikatkan rangkaian karakter acak yang unik-disebut “garam”-pada setiap kata sandi atau data sensitif sebelum melakukan hashing. Hashing adalah sebuah algoritma kriptografi yang mengambil sebuah input dan mengubahnya menjadi sebuah rangkaian karakter dengan panjang tetap yang tidak dapat dibalik. Namun, data yang telah di-hash dapat rentan terhadap serangan seperti brute force dan serangan tabel pelangi. Salting mengurangi risiko ini dengan memastikan bahwa input data yang identik sekalipun menghasilkan output hash yang berbeda.

sumber: medium.com

Mengapa Pengasinan Diperlukan?

1. Pengaruh Tabel Pelangi: Tabel pelangi adalah tabel yang sudah dikomputasi sebelumnya yang berisi nilai hash untuk berbagai input. Ini adalah tabel yang digunakan penyerang untuk merekayasa balik kata sandi hash. Prinsip di balik tabel pelangi adalah bahwa hash yang sudah dikomputasi sebelumnya menghasilkan penghematan yang signifikan dalam waktu komputasi, sehingga kita dapat dengan mudah menambahkan salt unik ke setiap kata sandi, yang akan membuat tabel pelangi menjadi tidak berguna, karena penyerang akan perlu menghitung tabel terpisah untuk setiap potensi salt.

2. Garam Mencegah Tabrakan Hash: Menghasilkan keluaran hash yang sama untuk masukan yang serupa. Keseragaman seperti ini memungkinkan penyerang untuk mendeteksi pola-pola tertentu dalam data dengan lebih mudah. Salting memastikan bahwa bahkan pengguna dengan kata sandi yang sama memiliki nilai hash yang sama sekali berbeda.

3. Meningkatkan Keamanan Secara Keseluruhan: Salting memperkenalkan keacakan ke dalam proses hashing, membuatnya mahal secara komputasi bagi penyerang untuk memecahkan data hash melalui metode brute force.

Bagaimana Menerapkan Penggaraman

Menerapkan penggaraman secara efektif melibatkan beberapa langkah utama dan praktik terbaik:

Langkah 1: Buatlah Salt Unik Per Pengguna

Jika diinginkan, satu salt dapat digunakan untuk setiap kata sandi atau data sensitif. Untuk melakukan hal ini, Anda dapat menggunakan sebuah generator angka acak yang aman. Sebagian besar bahasa pemrograman memiliki pustaka atau fungsi bawaan untuk menghasilkan nilai acak yang aman secara kriptografi.

Sebagai contoh, pada bahasa pemrograman Python:

import os
salt = os.urandom(16)  # Generates a 16-byte salt

Langkah 2: Gabungkan Salt dengan Kata Sandi

Sebelum melakukan hashing, tambahkan terlebih dahulu salt dan kata sandi klien. Ini menjamin bahwa nilai hash yang dihasilkan akan unik untuk kombinasi salt dan kata sandi tersebut. Jangan gunakan pola statis atau pola yang dapat diprediksi untuk salah satu dari keduanya.

Langkah 3: Hash Nilai Gabungan

Hash kata sandi yang telah diasinkan dengan algoritma hashing kriptografi yang aman (contohnya, SHA-256 atau bcrypt). Hindari algoritma MD5 dan SHA-1, keduanya memiliki kerentanan terhadap serangan.

Contoh menggunakan hashlib dari Python: 

import hashlib

hash_object = hashlib.sha256(salt + password.encode())

hashed_password = hash_object.hexdigest()

Langkah 4: Simpan Salt dan Hash

Selanjutnya, simpan salt dengan kata sandi hash di basis data Anda. Pastikan keduanya berada di bidang yang berbeda. Akses ke salt itu buruk, tetapi tidak akan menjadi bencana jika penyerang memiliki hash dan salt; selama algoritme hash dan implementasinya baik.

Langkah 5: Verifikasi Kata Sandi

Kata sandi login yang dikirimkan akan diasinkan dengan nilai salt yang sama dengan yang Anda gunakan ketika membuat hash kata sandi dan prosesnya akan terjadi secara identik dengan hash yang lebih kuat dan lebih lambat untuk menghasilkan hash yang akan dibandingkan dengan nilai hash kata sandi yang tersimpan. Jika nilainya sama, kata sandi yang dikirimkan diverifikasi sebagai benar. 

Praktik Terbaik untuk Pengasinan

  1. Gunakan Generator Angka Acak yang Kuat: Ketika membentuk garam, nilai acak yang aman secara kriptografi sangat penting dalam membuat entropi pada kata sandi.
  2. Pilih Algoritma Hashing yang Aman: Algoritma modern seperti bcrypt, Argon2, dan PBKDF2 secara eksplisit didesain untuk meng-hash kata sandi; algoritma ini mengimplementasikan penggaraman sebagai bagian dari desain mereka.
  3. Tetapkan Panjang Garam yang Memadai: Panjang salt minimum 16 byte direkomendasikan untuk memastikan keacakan yang memadai.
  4. Hindari Penggunaan Ulang Garam: Jangan pernah menggunakan kembali salt untuk pengguna atau catatan yang berbeda. Salt yang unik akan meningkatkan keamanan dan mengurangi risiko serangan.
  5. Perbarui Praktik Keamanan Secara Teratur: Tetap terinformasi tentang kemajuan dalam kriptografi dan perbarui implementasi anda seperlunya untuk melawan ancaman yang muncul.

Kesimpulan

Salting merupakan teknik fundamental untuk meningkatkan keamanan kata sandi dan data sensitif yang tersimpan. Dengan memperkenalkan keacakan ke dalam proses hashing, salting membuatnya lebih sulit bagi penyerang untuk mengeksploitasi informasi hash. Menerapkan salting dengan benar, bersama dengan langkah-langkah keamanan lainnya, merupakan langkah penting dalam membangun sistem yang kuat dan aman. Memprioritaskan praktik terbaik dan mengikuti perkembangan tren keamanan siber akan memastikan data Anda tetap terlindungi dalam lanskap digital yang semakin kompleks.

Kembali ke>>>> Praktik Terbaik untuk Penyimpanan Kata Sandi yang Aman