Adobe mengalami pelanggaran data yang memengaruhi setidaknya 38 juta pengguna pada Oktober 2013. Tiga juta kartu kredit pelanggan terenkripsi dan kredensial masuk untuk sejumlah pengguna yang tidak diketahui terungkap. Tautan Show
Antipola. Jangan simpan kata sandi dalam teks biasaBiasanya, kata sandi disimpan di beberapa tabel sebagai kolom atribut string. Kata sandi tidak boleh disimpan atau diteruskan melalui jaringan dalam teks yang jelas Jika penyerang dapat membaca pernyataan SQL yang Anda gunakan untuk memasukkan kata sandi, mereka dapat melihat kata sandi secara langsung. Ini juga berlaku untuk pernyataan SQL yang digunakan untuk mengubah kata sandi atau memverifikasi bahwa input pengguna cocok dengan kata sandi yang disimpan Meskipun kedengarannya konyol, ada situs web yang menyimpan kata sandi pengguna dalam teks biasa
Peretas memiliki beberapa opsi untuk mencuri kata sandi, termasuk
Mengirim Kata Sandi di Email Kata sandi disimpan dalam teks biasa di database, jadi mudah untuk mengambilnya di aplikasi Anda. Atas permintaan, aplikasi Anda dapat mengirim email ke alamat email pengguna. Mengirim kata sandi melalui email dalam teks biasa merupakan risiko keamanan yang serius. Dalam berbagai cara, peretas dapat mencegat, mencatat, dan menyimpan email Antipola. Jangan simpan kata sandi terenkripsiKedengarannya jauh lebih baik untuk mengenkripsi kata sandi. Tapi tunggu dulu. Karena algoritme dapat dibalik, karena penyerang memiliki akses ke kata sandi terenkripsi dan dengan beberapa teks biasa dan bentuk terenkripsinya, dia dapat menebak logika enkripsi dan membalikkannya. Tidak peduli seberapa rumit algoritmenya, semua kata sandi akan dibalik secepat dalam teks biasa jika berhasil Antipola. Ancaman Nyata menyimpan kata sandi yang dapat dipulihkanAplikasi yang dapat memulihkan kata sandi Anda dan mengirimkannya kepada Anda harus menyimpannya dalam teks biasa atau setidaknya dengan beberapa bentuk penyandian yang dapat dibalik. Peretas dapat membaca kata sandi secara ilegal jika aplikasi Anda dapat membaca kata sandi untuk tujuan yang sah Berikut ini adalah praktik terbaik
Mencirikan sandi
Gunakan fungsi hash kriptografi satu arah untuk menyandikan kata sandi. Fungsi hash mengubah string input menjadi string yang tidak dapat dikenali, disebut hash Karakteristik lain dari hash adalah tidak dapat dibalik. String input tidak dapat dipulihkan dari hashnya karena algoritme hashing dirancang untuk "kehilangan" beberapa informasi tentangnya. Algoritme hashing yang baik harus berusaha keras untuk memecahkannya karena mereka akan menebak inputnya dengan coba-coba
Karena hash yang dikembalikan oleh fungsi hash adalah string dengan panjang tetap, bahkan panjang string aslinya pun dikaburkan Kelemahan dari pendekatan iniBahkan jika Anda menyimpan hash alih-alih kata sandi dan penyerang mendapatkan akses ke database Anda, dia masih dapat menggunakan kekerasan untuk mencoba menebak kata sandi. Mungkin perlu waktu lama baginya untuk menebak setiap kata sandi. Namun, dia dapat membuat database hash dari kemungkinan kata sandi untuk membandingkan hash di database Anda. Itu bergantung pada tabel yang telah dihitung sebelumnya yang dikenal sebagai tabel Rainbow, yang merupakan pendekatan untuk membalikkan fungsi hash kriptografi. Bayangkan Anda adalah seorang peretas yang baru saja mencuri 38 juta hash dari Adobe. Anda dapat memeriksa hash tersebut di tabel pelangi, dan jika cocok, tabel pelangi juga akan berisi string asalnya, mengambilnya untuk Anda Antipola. Fungsi Hash UsangKata sandi sering disimpan menggunakan fungsi kriptografi usang yang tidak dapat diubah (MD5, SHA1, dll)
Direkomendasikan. Salting dan Hashing Password
Anda dapat mengalahkan "serangan kamus" semacam ini dengan memasukkan garam dalam ekspresi pengkodean kata sandi Anda. Garam adalah serangkaian byte tidak berarti yang Anda gabungkan dengan kata sandi pengguna sebelum meneruskan hasilnya ke fungsi hash. Hash yang dihasilkan oleh kata sandi asin tidak akan cocok dengan hash di basis data hash penyerang, bahkan jika pengguna memilih kata dalam kamus sebagai kata sandinya Nilai garam harus berbeda di antara kata sandi sehingga penyerang harus membuat tabel kamus hash baru untuk setiap kata sandi. Dia kemudian kembali ke titik awal Jika seorang peretas mengetahui garamnya, dapatkah dia mengambil kata sandinya? . Anda dapat meng-hash garam jika Anda mau, tetapi mengetahui garam tidak akan membahayakan kata sandi dengan cara apa pun. Anda harus membuat tabel baru untuk setiap garam jika Anda mencoba menggunakan serangan meja pelangi Gunakan hanya hash dalam kueri SQL Anda dan hitung hash dalam kode aplikasi Anda. Mencegat hash membuat penyerang sedikit baik karena dia tidak bisa membalikkannya untuk mendapatkan kata sandi Kelemahan dari pendekatan iniApakah pendekatan ini benar-benar sangat mudah? Apa solusi yang lebih baik? Paling Direkomendasikan. Salting dan Hashing dengan Hitungan IterasiHitungan iterasi pada dasarnya adalah hashing apa yang telah di-hash sebelumnya sebanyak n kali. Menggunakan kata sandi itu, sistem menghasilkan garam unik untuk pengguna itu dan menggabungkan keduanya. Ini kemudian menggabungkan hash yang dihasilkan dengan garam yang dihasilkan secara acak dan melakukan hash lagi sebanyak n kali Ini akan menambah keamanan ekstra pada teknik dasar "hashing and salting". Ini jelas akan memakan waktu lebih lama PBKDF2, yang merupakan singkatan dari Password-Based Key Derivation Function 2, adalah contoh dari teknik ini. Fungsi menerapkan fungsi pseudorandom dan nilai garam ke kata sandi masukan dan kemudian mengulangi proses n kali untuk menghasilkan kunci yang diturunkan Ini adalah bagaimana PBKDF2 didefinisikan DK = PBKDF2(PRF, Password, Salt, c, dkLen) * PRF : pseudorandom function of two parameters with output length hLen (e.g., a keyed HMAC) Teknik seperti ini jauh lebih lambat daripada fungsi hash biasa. Merupakan keuntungan jika seseorang mencoba memaksa kata sandi, tetapi harus cukup cepat sehingga pengguna tidak melihat adanya penundaan Keamanan Tambahan. Penggunaan LadaGaram dapat dikombinasikan dengan lada untuk meningkatkan perlindungan, tetapi lada umum digunakan oleh semua pengguna. Data merica ini tidak disimpan di database, tetapi di sumber aplikasi, di file konfigurasi, atau di variabel lingkungan. Setelah memahami database, penyerang harus menebak lada atau mengambilnya dengan cara lain untuk memecahkan hash Kata Sandi Dapat Direset Bukan DipulihkanTerlepas dari kenyataan bahwa kata sandi disimpan dengan cara yang lebih aman, Anda tetap perlu membantu pengguna yang lupa kata sandinya. Basis data Anda sekarang menyimpan hash alih-alih kata sandinya, jadi Anda tidak dapat memulihkannya. Hash tidak dapat dibalik lebih mudah daripada penyerang
Sebagai alternatif pertama, ketika pengguna yang lupa kata sandinya meminta bantuan, alih-alih mengirimkan kata sandinya melalui email, aplikasi dapat mengirim email berisi kata sandi sementara yang dibuat olehnya. Selain itu, aplikasi dapat kedaluwarsa kata sandi sementara setelah beberapa saat, jadi jika email dicegat, kemungkinan besar tidak akan mengizinkan akses tidak sah. Aplikasi juga harus dirancang sedemikian rupa sehingga hal pertama yang dilakukan pengguna setelah masuk adalah mengubah kata sandinya Sebagai alternatif kedua, alih-alih menyertakan kata sandi baru di email, token unik diberikan ke permintaan di tabel database. Setelah itu, token dimasukkan ke dalam email. Token juga dapat dikirim melalui pesan lain, seperti SMS, selama alamat tersebut dikaitkan dengan akun yang meminta pengaturan ulang kata sandi. Akibatnya, jika orang yang tidak berwenang meminta reset kata sandi, pemilik akun hanya akan menerima email fiktif. Jika aplikasi menerima permintaan untuk layar reset_password khusus, nilai dalam parameter token harus sesuai dengan baris dalam tabel PasswordResetRequest, dan stempel waktu kedaluwarsa masih harus mendatang Di mana hash kata sandi MySQL disimpan?Hash kata sandi disimpan di tabel pengguna database mysql . File tabel itu sendiri biasanya disimpan dalam struktur pohon di bawah /var/lib/mysql , tetapi lokasi tersebut dapat dimodifikasi dengan opsi build atau konfigurasi run-time.
Bisakah MySQL hash kata sandi?Fungsi PASSWORD MySQL digunakan untuk pembuatan kata sandi hash menggunakan string kata sandi teks biasa Ini menggunakan teknik hashing untuk menghasilkan kata sandi hash. This function is carried out by the authentication system.
Bagaimana hash kata sandi disimpan?Hash kata sandi Windows disimpan dalam file SAM ; . Jika seorang hacker dapat mengakses kedua file ini (disimpan di C. WindowsSystem32Config), maka file SYSTEM dapat digunakan untuk mendekripsi hash kata sandi yang disimpan dalam file SAM.
Bagaimana kata sandi disimpan di MySQL?Kata sandi MySQL untuk pengguna disimpan di dalam MySQL itu sendiri; . tabel pengguna . Kata sandi di-hash secara default menggunakan fungsi PASSWORD(), namun ada alternatif lain, meskipun tidak ada teks biasa. |