Salting Passwords: Additional Protection Techniques

sumber pexels

 

Di era digital ini , keamanan data dan akun menjadi prioritas utama. Hal ini terlepas dengan banyaknya kasus kebocoran data hingga peretasan. Salah satu teknik dasar mengamankan password adalah dengan salting. Lalu apa itu salting sebenarnya? Secara singkat salting adalah menambahkan elemen acak pada password sebelum di enkripsi menjadi bentuk hashing. Tentunya teknik ini akan mengamankan password kita dari serangan seperti : Dictionary Attack , Rainbow Table, dan lain sebagainya.



1. Pengertian

Seperti yang sudah dijelaskan di atas , salting adalah teknik mengamankan password dengan menambahkan karakter acak (salt) sebelum di enkripsi / diubah dalam bentuk hash. Ini dilakukan agar password yang sama punya hasil hash berbeda. Jika tidak menambahkan karakter sebelum hashing , maka dipastikan ouput yang dihasilkan sama dan bisa saja ditebak. Oleh karena itu salting menjadi metode keamanan tambahan yang perlu diterapkan.



2. Cara Kerja

Salting password umumnya memiliki beberapa tahapan , seperti di bawah ini:


1. Password mentah yang dimasukkan oleh pengguna.

2. Salt di-generate secara random.

3. Password dan salt digabungkan.

4. Password yang sudah di-salt ini di-hash.

Keuntungan: Dengan cara ini, meskipun dua pengguna memiliki password yang sama, hasil akhirnya akan berbeda karena salt yang berbeda.


3. Contoh Implementasi Salting

Berikut ini disajikan beberapa potongan kode dalam bahasa pemrograman python , dimana ini adalah contoh dari penerapan teknik salting. 


   import bcrypt

   #Password Asli

   password = "Passwordku".encode()

   #Generate Salt and Hash

   Salt = bcrypt.hashpw(password, salt)

   print("salt", salt)


Penjelasan :

encode() > encode adalah metode mengubah string biasa menjadi byte

import bcrypt > mengimport library bcrypt yang sudah diinstall. Dengan kita import , maka dapat kita akses semua fungsi fungsi.

gensalt() > Fungsi gensalt adalah untuk membuat salt secara otomatis.Salt adalah data acak yang ditambahkan sebelum di hash

hashpw() > Fungsi di bcrypt untuk menghash password dengan salt. Nanti digabung dengan gensalt.

checkpw() > Verifikasi password. Jadi saat user login kita bisa cek password sama / tidaknya dengan hash yang disimpan di database.


4. Kelebihan dan Kekurangan

Meskipun dinilai aman , teknik ini juga memiliki kelemahan / kekurangan. Berikut ini adalah kelebihan dan kekurangannya:


   Kelebihan

   1. Mencegah Rainbow Table 

    Salting mencegah serangan rainbow table , dimana penyerang memanfaatkan tabel pra-generate yang berisi hash password umum. Dengan salt meskipun dua password memiliki output sama , maka akan berbeda.


   2. Mengamankan Password 

    Tentunya salt mengamankan password termasuk password yang sama. Hal ini terletak pada hash yang berbeda. 


   3. Mengamankan Hash Yang Sama 

    Jika hashing algoritma yang digunakan kurang kuat, salting masih bisa menambah lapisan keamanan. Meski algoritma hashing-nya relatif lemah, penggunaan salt tetap membuat hash lebih aman.


   Kekurangan 

   1. Tidak Efektif

Salt akan menjadi sia sia jika database yang berisi hash dan salt-nya bocor sekaligus. Ini menyebabkan penyerang dapat memasuki system / akun. Meskipun begitu kabar baiknya , mereka memerlukan waktu lebih lama untuk menemukannya. Salah satu langkah yang dapat diambil yaitu dengan Brute Force Attack


   2. Membutuhkan Penyimpanan Tambahan 

Konsekuensi yang harus diambil dari penggunaan salt adalah membutuhkana penyimpanan extra. Mengapa? Jika salt digunakan pada aplikasi / skala penggunaan global tentunya harus menyimpan hash dan salt untuk mencocokkan password saat pengguna login. Pencocokan ini melibatkan password dengan hash yang tersimpan.


   3. Sangat Rentan

Pada bagian terakhir ini mustahil jika teknik ini memiliki kerentanan . Kecuali salt yang digunakan memiliki jumlah karakter pendek dan karakter yang dipakai abjad serta angka yang berurutan. Tapi ini hanyalah asumsi. Selebihnya jika kalian platform seperti google , maka google otomatis akan menyarankan saran password yang lebih sulit dan kompleks




Kesimpulan

Salting adalah teknik keamanan yang wajib diterapkan di akun / system kita , karena dengan salting memperkecil kemungkinan data mengalami kebocoran dan akses yang tidak sah. Meskipun dinilai aman , tenik ini salt juga memiliki kekurangan. Salah satu kekurangannya adalah memerlukan penyimpanan tambahan untuk menyimpan hash dan salt yang nantinya dijadikan pencocokan password saat login. Namun , ini hanya terjadi pada penggunaan global. 



Subscribe to receive free email updates:

0 Response to "Salting Passwords: Additional Protection Techniques"

Post a Comment