Jika saya, cat /etc/shadow
saya bisa mendapatkan kata sandi root dan pengguna terenkripsi.
Kata sandi ini sama (saya tahu, keamanan buruk) untuk setiap akun, tetapi di /etc/shadow
dalamnya muncul sebagai string terenkripsi yang berbeda.
Mengapa? Apakah algoritma yang berbeda digunakan untuk masing-masing?
Jawaban:
Pengguna yang terpisah berarti User ID yang terpisah, dan oleh karena itu hash yang terpisah akan terlibat dengan algoritma.
Bahkan pengguna dengan nama yang sama, kata sandi yang sama, dan dibuat pada saat yang sama akan (dengan probabilitas hampir pasti) berakhir dengan hash yang berbeda. Ada faktor-faktor lain yang membantu menciptakan enkripsi.
Jika Anda ingin melihat contoh cepat di sini mungkin menjelaskannya dengan lebih baik.
sumber
/etc/passwd
,/etc/shadow
adalah nama pengguna, bukan ID pengguna (yang bahkan tidak disebutkan dalam/etc/shadow
).Algoritmanya sama. Shadow-suite modern menggunakan modul otentikasi pluggable (PAM), dan PAM memungkinkan Anda mengkonfigurasi satu algoritma hashing. Ini semua tentang "pengasinan", yang berarti mengacak kata sandi untuk memberikan efek yang Anda tanyakan.
Penggaraman adalah serangan balasan terhadap serangan kamus, di mana penyerang dengan kamus kata sandi yang dikenal / pasangan hash mencoba untuk mencari tahu, apakah nilai hash yang diberikan untuk kata sandi yang tidak diketahui cocok dengan nilai hash untuk salah satu kata sandi yang dikenal.
Penggaraman mencegah bahwa karena nilai garam yang berbeda mengarah ke nilai hash yang berbeda, maka tidak masalah bahwa kata sandi sama. (Meskipun demikian praktik yang buruk, tetapi untuk alasan lain.) Agar serangan kamus berhasil, penyerang sekarang harus memiliki kamus untuk setiap nilai garam yang mungkin. Garam acak yang benar-benar berukuran cukup akan membuat kemungkinan keberhasilan serangan seperti itu diabaikan.
Bacaan yang disarankan: Bagaimana kata sandi disimpan di Linux (Memahami hashing dengan shadow utils)
sumber
Dalam file bayangan Anda akan melihat angka antara $$ (katakan $ 1 $ atau sesuatu seperti itu). Ini menunjukkan algoritma hashing mana yang digunakan oleh mesin Anda. Identifikasi algoritme dan lihat cara kerjanya. Misalnya, $ 6 $ adalah SHA 512 yang dirancang sedemikian rupa sehingga, bahkan jika 2 orang memiliki kata sandi yang sama, intisari hash kata sandi mereka akan berbeda.
sumber