Как Линукс знае, че нова парола е подобна на старата?
Ако някога сте получавали съобщение, че новата ви парола е твърде сходна с вашата стара, тогава може би сте любопитни как вашата Linux система „знае“, че са твърде сходни. Днешната публикация за въпроси и отговори на SuperUser осигурява поглед зад „магическата завеса“ на случващото се за любопитен читател.
Днешната сесия за въпроси и отговори идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, групирано от общността уеб сайтове за въпроси и отговори.
Снимка от любезното съдействие на marc falardeau (Flickr).
Въпроса
Читателят на SuperUser LeNoob иска да знае как системата на Linux „знае“, че паролите са твърде сходни помежду си:
Опитах се да променя потребителска парола на различни Linux машини няколко пъти и когато новата парола е много подобна на старата, операционната система казва, че те са твърде сходни.
Винаги съм се чудил, как операционната система знае това? Мислех, че паролите са запазени като хеш. Означава ли това, че когато системата може да сравни новата парола за сходство със старата, тя всъщност се запазва като обикновен текст?
Как Linux системата „знае“, че паролите са твърде сходни помежду си?
Отговорът
Спътникът на SuperUser slhck има отговор за нас:
Тъй като трябва да предоставите както стари, така и нови пароли, когато използвате passwd, те могат лесно да се сравняват в обикновен текст.
Паролата ви наистина се хешира, когато е окончателно съхранена, но докато това не се случи, инструментът, в който въвеждате паролата си, може да го достъпва директно.
Това е характеристика на PAM системата, която се използва във фонов режим на инструмента passwd. PAM се използва от съвременните дистрибуции на Linux. По-конкретно, pam_cracklib е модул за PAM, който му позволява да отхвърля пароли въз основа на сходства и слабости.
Това не са само пароли, които са твърде сходни и могат да се считат за несигурни. Изходният код има различни примери за това, което може да се провери, като например дали паролата е палиндром или какво е редактираното разстояние между две думи. Идеята е паролите да станат по-устойчиви срещу атаки от речници.
Вижте man page за pam_cracklib за повече информация.
Уверете се, че сте прочели останалата част от оживената дискусия в SuperUser чрез темата за темата, свързана по-долу.
Имате ли какво да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.