Berikut ini adalah pertanyaan dari everdoang9gmailcom pada mata pelajaran TI untuk jenjang Sekolah Dasar
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Heliosky
KOMPUTER
Algoritma Penyimpanan Password
OLEH GILANG · DIPUBLIKASIKAN 02/05/2020 · DI UPDATE 09/05/2020
Lagi-lagi ada keributan di dunia internet. UPDATE. KERIBUTANNYA BAKAL LEBIH GAWAT DARI YANG DIPERKIRAKAN:
https://twitter.com/underthebreach/status/1256686160304357382?s=20
Dari informasi tersebut disebutkan bahwa leak termasuk informasi pribadi dan password hash. Dari screencapture forum postnya disebutkan dia tidak memiliki informasi salt dari leak tersebut, dan sedang mencari tahu itu algoritma passwordnya apa. Oke coba kita analisis ya:
Apa sih Password Hash itu
Untuk menyimpan informasi identitas, suatu sistem itu tidak boleh menyimpan password dalam bentuk plaintext (text aslinya). Oleh karena itu diperlukan suatu mekanisme untuk mengaburkan informasi plaintext password tersebut, namun tetap memungkinkan pengguna dari sistem untuk membuktikan (otentikasi) dirinya menggunakan password tersebut. Untuk melakukan hal tersebut, diciptakanlah namanya: hash function.
Hash function adalah fungsi matematis yang memetakan suatu plaintext ke suatu bilangan yang acak. Bilangan acak tersebut adalah representasi hash dari plaintext kita. Fungsi hash adalah one-way function atau fungsi satu arah. Kita tidak bisa membuat fungsi invers atau kebalikan dari fungsi tersebut. Dalam kata lain, jika kita punya hashnya, kita tidak bisa mengembalikan ke plaintext semula melalui suatu fungsi inversnya.
Fungsi hash ini bersifat konsisten. Jika plaintextnya sama, maka hashnya akan selalu sama. Konsistensi inilah yang digunakan untuk membuktikan identitas kita sekaligus mengamankannya. Jadi, sistem tidak perlu menyimpan kata sandi kita secara utuh, namun cukup menyimpan hashnya saja lalu setiap kali kita mau login, kita buktikan diri kita dengan menyebutkan kata sandinya. Server akan membandingkan hash dari password yang kita berikan dengan hash yang tersimpan di database.
Banyak fungsi hash yang bermacam-macam. Macam-macamnya berupa kompleksitas dari fungsi hash tersebut. Yang paling sederhana ada namanya MD5, Secure Hash Algorithm (SHA) dan lain sebagainya. Fungsi hash ini merupakan salah satu fondasi utama dalam keamanan komputer, dan tidak hanya digunakan untuk password saja, tapi untuk otentikasi keabsahan pertukaran data, proteksi informasi, dan lain sebagainya.
Dan satu hal yang paling penting hash itu bukan enkripsi. Enkripsi adalah teknik memetakan plaintext ke ciphertext (teks yang disamarkan) dengan two-way function. Data yang terenkripsi selalu dapat dikembalikan ke data utamanya selama kita memiliki kunci enkripsinya. Untuk menyimpan password malah tidak boleh menggunakan enkripsi, karena sekali kunci enkripsinya jebol, password utuhnya akan ketahuan! Jadi teknik menyimpan password yang benar selalu menggunakan hash function.
Lalu apa maksudnya password salt?
Walaupun algoritma hash tidak punya invers fungsinya untuk membalikkan penghitungan dari nilai hash ke plaintext, algoritma hash itu selalu konsisten dan stabil. Jika plaintext kita misalnya ABCD dan hash valuenya 1234, maka setiap kali kita memasukkan ABCD ke algoritma hash yang sama, hasilnya adalah selalu 1234. Inilah yang jadi berbahaya jika digunakan begitu saja sebagai penyimpan informasi password.
Bahayanya adalah ketika kita bisa tahu suatu nilai tertentu yang merupakan nilai hash dari suatu plaintext, maka adversary (penyerang) bisa membuat kamus yang berisi plaintext dengan nilai hash yang berkaitan. Ini disebut sebagai rainbow table. Rainbow table itu paling mudah digunakan untuk membobol password-password melalui hash yang tidak dipersulit menggunakan salt. Selain itu, jika user A dan B passwordnya sama-sama ABCD, maka kedua user tersebut akan memiliki hash value yang sama yaitu 1234. Dan ini berbahaya jadi bisa ketahuan siapa saja yang pakai password ABCD dari informasi yang terbobol tersebut.
Salt itu adalah faktor pengacak yang disambungkan dengan plaintext password kita agar hash value yang dihasilkan dari fungsi hash bisa berbeda antara masing-masing pengguna yang memiliki password yang sama. Ini memastikan bahwa serangan dengan teknik rainbow table tidak bisa digunakan. Karena penyerangnya harus satu-satu mengecek password masing-masing orang menggunakan teknik bruteforce. Ini berlaku selama salt masing-masing user sangat kompleks dan berbeda-beda.
Salt itu bisa disimpan di kolom terpisah di tabel yang sama pada suatu database. Bisa juga dia di-encode di password hashnya seperti jika menggunakan algoritma bcrypt. Selain itu bisa juga salt valuenya terpisah di tabel atau sistem lainnya. Semua tergantung dari mekanisme pengamanan sistem masing-masing. Tetapi yang paling penting, salt itu harga mati untuk menyimpan password di database.
jadikan jawaban tercerdas
Semoga dengan pertanyaan yang sudah terjawab oleh vxnralee234 dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Sat, 14 Jan 23