Apakah garam dalam cincang kata laluan Linux dan mengapa ia penting?

Kemaskini terakhir: 04/12/2025
Pengarang Ishak
  • Garam ialah rentetan rawak yang ditambahkan pada kata laluan sebelum cincang untuk mencapai cincang unik bagi setiap pengguna.
  • Linux Ia menyimpan hash, garam dan algoritma dalam /etc/shadow, mengukuhkan keselamatan terhadap serangan kamus dan jadual pelangi.
  • Amalan baik memerlukan garam yang panjang, rawak dan unik, bersama-sama dengan algoritma cincang yang teguh dan pangkalan data dilindungi dengan baik.
  • Penggaraman kata laluan harus disepadukan ke dalam dasar keselamatan yang lebih luas yang termasuk kata laluan yang kukuh, MFA dan pengurus kata laluan.

garam dalam cincang kata laluan di Linux

Jika anda bekerja dengan sistem GNU/Linux atau hanya mengambil berat tentang keselamatan akaun anda, anda mungkin pernah mendengar tentang garam dalam cincang kata laluanIa adalah salah satu konsep yang banyak disebut, tetapi selalunya hanya separuh yang difahami: ia kedengaran teknikal, tetapi pada hakikatnya ia membuat perbezaan antara sistem yang mudah dipecahkan dan yang lebih tahan terhadap serangan.

Pendek kata, garam ialah a elemen utama untuk menjadikan cincang kata laluan tidak dapat diramalkanIa berfungsi dengan menambah data rawak sebelum menggunakan algoritma cincang supaya, walaupun dua pengguna mempunyai kata laluan yang sama, hasil yang disimpan dalam pangkalan data akan berbeza. Dari situ, pelaksanaan khusus dalam Linux, hubungannya dengan /etc/shadow, alatan seperti mkpasswd, dan amalan terbaik keselamatan moden adalah seluruh dunia sendiri, yang akan kami terokai secara terperinci.

Apakah sebenarnya garam dalam cincang kata laluan?

definisi garam dalam cincang kata laluan

Dalam kriptografi, a garam (garam) ialah a rentetan aksara rawak yang dilampirkan pada kata laluan pengguna sebelum menggunakan fungsi cincang. Matlamatnya ialah agar cincangan yang terhasil menjadi unik walaupun kata laluan teks biasa adalah sama untuk berbilang pengguna.

Apabila pengguna mencipta atau menukar kata laluan mereka, sistem menjana a garam rawakIa menggabungkannya dengan kata laluan (sebelum, selepas, atau dalam format tertentu bergantung pada skema) dan menggunakan algoritma cincang pada gabungan itu, seperti SHA-256 o SHA-512Kata laluan tidak disimpan dalam pangkalan data, tetapi sebaliknya cincang (kata laluan + garam), dan dalam kebanyakan skim garam itu sendiri juga disimpan bersama cincang.

Teknik ini menjadikan banyak daripada teknik serangan berdasarkan cincang prakiraan, seperti jadual pelangi, dan sangat merumitkan kamus dan serangan kekerasan secara besar-besaran. Penyerang tidak lagi boleh mengeksploitasi fakta bahawa berbilang pengguna berkongsi kata laluan, kerana setiap satu akan mempunyai cincangan yang berbeza.

Adalah penting untuk memahami bahawa garam bukanlah rahsia itu sendiri: Ia bukan kata laluan atau kunci peribadiFungsinya adalah untuk memperkenalkan rawak dan keunikan ke dalam proses pencincangan. Keselamatan masih bergantung pada penggunaan kata laluan yang kuat y algoritma hash yang sesuai, sebaik-baiknya direka khusus untuk kata laluan (seperti bcrypt, scrypt, Argon2), walaupun banyak sistem Linux klasik menggunakan varian SHA-256 atau SHA-512.

Cara pengasinan kata laluan berfungsi langkah demi langkah

Cara pengasinan kata laluan berfungsi

Proses pengasinan boleh diringkaskan dalam satu siri langkah yang agak mudah, tetapi dengan kesan yang besar terhadap keselamatan:

  Bagaimana untuk mengesan proses berniat jahat dengan Process Explorer dan VirusTotal

Pertama, apabila pengguna mendaftar atau menukar kata laluan mereka, sistem menjana a garam yang unik dan rawak untuk kelayakan itu. Garam itu biasanya mempunyai panjang yang mencukupi (contohnya, 16 bait atau lebih) dan diperoleh daripada penjana nombor rawak yang selamat secara kriptografi.

Seterusnya, kata laluan yang dipilih oleh pengguna digabungkan dengan garam itu untuk membentuk a rantai perantaraanGabungan ini boleh semudah menggabungkan garam + kata laluan, atau ia boleh mempunyai format yang lebih kompleks yang ditakrifkan oleh skema cincang. Perkara yang penting ialah setiap pengguna berakhir dengan kombinasi yang berbeza.

Kemudian, a algoritma cincang sehalaHasilnya ialah rentetan yang kelihatan rawak, cincang, dengan panjang tetap, yang akan disimpan dalam pangkalan data bersama dengan garam. Dalam sistem moden, algoritma sedang dicari yang menghasilkan jalan keluar yang panjang dan kompleksIni meningkatkan ruang carian dan menjadikan serangan kekerasan lebih mahal.

Akhirnya, apabila pengguna log masuk, sistem sekali lagi mengambil kata laluan yang dimasukkan. garam yang berkaitan Daripada pangkalan data, ia mengulangi proses penggabungan dan pencincangan yang sama dan membandingkan hasilnya dengan cincang yang disimpan. Jika ia sepadan, ia tahu kata laluan itu betul tanpa perlu mengetahui plaintext.

Mekanisme ini memastikan bahawa walaupun pangkalan data dibocorkan, penyerang hanya akan melihat hash individu dengan garam mereka sendiriDaripada satu set cincang yang setanding, menghentikan serangan bukanlah perkara ajaib, tetapi ia menjadi jauh lebih mahal dari segi pengiraan.

Kelebihan menggunakan garam dalam cincang kata laluan

Kelebihan menggunakan garam dalam kata laluan

Sebab utama untuk menggunakan pengasinan ialah mengukuhkan keselamatan kata laluan yang disimpan terhadap pelbagai jenis serangan. Tetapi ia patut memperincikan faedah khusus.

Pertama, pengasinan menyediakan penentangan terhadap serangan kamusTanpa garam, penyerang boleh menyediakan senarai besar kata laluan biasa dan cincang mereka, dan hanya membandingkannya dengan pangkalan data yang dicuri. Dengan garam unik bagi setiap pengguna, cincang prakiraan tersebut menjadi tidak berguna, kerana setiap gabungan kata laluan + garam menjana nilai yang berbeza.

Kedua, penggunaan garam merosakkan keberkesanan meja pelangiIni hanyalah pangkalan data cincang yang telah diprakira untuk kata laluan popular untuk mempercepatkan pemulihan. Sekali lagi, kerana hasilnya bergantung pada garam tertentu, jadual ini direka untuk cincang tanpa garam menjadi tidak berguna atau, sekurang-kurangnya, sangat tidak cekap.

Satu lagi kelebihan yang jelas ialah ia meningkatkan privasi sekiranya berlaku kebocoranWalaupun penceroboh mendapat akses kepada jadual pengguna dengan cincang dan garamnya, mereka tidak akan dapat mengenal pasti dengan cepat siapa yang mempunyai kata laluan yang sama seperti orang lain atau melancarkan serangan besar-besaran dengan mudah. Setiap akaun memerlukan perhatian individu, yang biasanya tidak praktikal pada skala besar.

  Makluman untuk penipuan WhatsApp baharu: Bizum dan panggilan video untuk mencuri akaun dan wang

Tambahan pula, pengasinan menambah kerumitan kepada serangan kekerasanDaripada dapat menguji kata laluan calon terhadap semua cincang sekaligus, penyerang terpaksa mempertimbangkan garam setiap pengguna, mendarabkan jumlah beban kerja. Jika ini digabungkan dengan algoritma pencincangan yang perlahan dan boleh parameterizable (seperti bcrypt atau Argon2), kos serangan meningkat lebih jauh.

Akhir sekali, pengasinan ialah teknik yang menyesuaikan diri dengan evolusi teknologi. Walaupun peralatan komputer bertambah baik dan serangan baru muncul, gabungan hash teguh dan garam unik Ia mengekalkan tahap kesukaran yang tinggi dan berskala: anda boleh menambah panjang garam, menguatkan algoritma, meningkatkan kos pengiraan, dsb.

Bagaimana Linux melaksanakan pengasinan kata laluan (/etc/shadow)

Dalam sistem Linux dan varian *NIX lain, kata laluan pengguna tidak disimpan dalam /etc/passwd, tetapi dalam fail / etc / bayanganFail ini, hanya boleh diakses oleh pengguna super, menyimpan cincang kata laluan bersama dengan maklumat tambahan, dan di sinilah penggunaan garam dan algoritma cincang dapat dilihat dengan jelas.

Garis dalam /etc/shadow mempunyai struktur yang serupa dengan:

pengguna:$id$sal$hash:additional_fields…

Simbol itu $ Pisahkan bahagian yang berbeza. Bahagian pertama selepas nama pengguna menunjukkan jenis algoritma digunakan. Sebagai contoh, $ 1 $ biasanya mewakili MD5, $ 5 $ SHA-256 dan $ 6 $ SHA-512, yang merupakan algoritma yang paling biasa dalam pengedaran moden kerana ia menawarkan keselamatan yang lebih besar daripada skim lama berdasarkan DES atau MD5.

Selepas pengecam algoritma muncul garamdan kemudiannya hash yang terhasilSemua ini adalah dalam bidang yang sama. Apabila kata laluan disahkan, sistem membaca pengecam itu, garam, menggunakan algoritma yang sepadan dengan kata laluan yang dimasukkan dan membandingkan cincang yang dikira dengan yang disimpan.

Jika anda ingin memeriksa dengan cepat pengguna yang telah menyulitkan kata laluan dan algoritma yang digunakan, anda boleh menggunakan arahan seperti grep '\$' /etc/shadowDalam konteks ini, tanda dolar ($) digunakan untuk mencari baris dengan cincang dalam format moden. Simbol mesti dilepaskan dengan garis miring ke belakang kerana dalam ungkapan biasa ia menandakan "akhir baris".

Akaun tanpa kata laluan atau akaun terkunci biasanya memaparkan nilai seperti ini dalam medan itu. ! o * bukannya cincang dengan dolar, menunjukkan bahawa ia tidak boleh disahkan menggunakan kata laluan standard. Struktur ini menjelaskan satu perkara: Linux menyepadukan pengasinan ke dalam formatnya penyimpanan kata laluan secara asli.

Perbezaan antara pencincangan kata laluan dan pengasinan

Adalah penting untuk membezakan dengan jelas antara dua konsep yang kadangkala bercampur-campur: hash y masinPencincangan kata laluan ialah proses di mana kata laluan diubah menjadi nilai yang tidak boleh dikenali menggunakan algoritma sehala. Pelayan tidak perlu mengetahui kata laluan asal, hanya untuk mengesahkan bahawa pengguna mengetahui kata laluan yang betul kerana ia menghasilkan cincang yang sama.

  Apa itu WINUX: Linux dengan jiwa yang bebas dan rupa dan rasa Windows

Masalahnya ialah jika dua kata laluan adalah sama, kata laluan Hash tanpa garam juga akan samaIni membolehkan penyerang membandingkan dan mengumpulkan pengguna melalui kata laluan atau menggunakan jadual yang diprakira. Tambahan pula, jika algoritma cincang adalah pantas dan direka bentuk untuk integriti data (seperti SHA-256 mudah), ia menjadi lebih terdedah kepada serangan kekerasan besar-besaran.

Pengasinan datang tepat untuk menyelesaikan kelemahan itu: ia kira-kira tambah data rawak pada kata laluan sebelum mencincangnya. Hasilnya ialah walaupun dua pengguna memilih “casa” sebagai kata laluan mereka, cincangan dalam pangkalan data akan berbeza sama sekali, kerana satu akan mempunyai, sebagai contoh, “casa+7Ko#” dan “casa8p?M” yang lain sebagai rentetan pra-cincang.

Oleh itu, hashing dan salting tidak bersaing, sebaliknya saling melengkapi. Hashing menyediakan sifat satu arah dan kemudahan pengesahan; garam menyediakan keunikan dan daya tahan terhadap serangan besar-besaranPelaksanaan storan kata laluan yang selamat menggabungkan kedua-dua teknik, sebaik-baiknya menggunakan algoritma yang direka untuk tujuan ini, dengan kos yang boleh dikonfigurasikan.

Menggunakan garam dalam Linux dengan mkpasswd

Dalam persekitaran GNU/Linux dan sistem lain UnixCara yang sangat praktikal untuk bereksperimen dengan pengasinan ialah alat mkpasswdPerintah ini digunakan untuk menjana kata laluan yang disulitkan dengan selamat, dan biasanya disepadukan ke dalam proses penciptaan pengguna, skrip pentadbiran, dsb.

Sintaks asas mkpasswd membolehkan anda menentukan kata laluan untuk disulitkan dan satu siri pilihan seperti jenis algoritma (contohnya, des, md5, sha-256, sha-512) menggunakan pilihan -mDalam sistem moden, perkara yang wajar untuk dilakukan ialah memilih SHA-512 sekurang-kurangnya, atau dengan skim yang lebih mantap jika pengedaran menyokongnya.

Pilihan yang sangat menarik dalam konteks pengasinan ialah -SYang membolehkan masukkan garam kepada kata laluan sebelum menyulitkannya. Jika tidak dinyatakan secara manual, mkpasswd boleh menjana a garam rawak dalam setiap pelaksanaansupaya walaupun menggunakan kata laluan log masuk yang sama, cincangan yang terhasil adalah berbeza setiap kali.

Ini boleh disahkan dengan mudah: jika anda menyulitkan "kata laluan123" beberapa kali dengan mkpasswd, menggunakan SHA-512 dan garam rawak, anda akan memperoleh cincangan yang berbeza sama sekali. Walau bagaimanapun, jika anda melepasi nilai garam yang sama menggunakan -S, cincang akan sentiasa sama, kerana gabungan kata laluan + garam tidak berubah.

Terima kasih kepada alat ini, ia sangat mudah Sediakan kata laluan yang disulitkan dengan garam untuk menambah pada fail konfigurasi, mengurus pengguna secara manual atau menguji tingkah laku pengasinan tanpa perlu memprogramkan apa-apa.

Apakah kebersihan digital?
artikel berkaitan:
Kebersihan digital: keselamatan, kesejahteraan dan ketenteraman dalam kehidupan dalam talian anda