Как в компьютере хранятся и передаются пароли?
Из телефонного разговора системного администратора с коммерческим директором предприятия:
– Выдвини верхний ящик.
– Он заперт.
– Там в серванте, за бутылкой виски, в стакане, ключ от стола, а в ящике футляр для очков, в нем бумажка с паролем.
© Народная мудрость в Интернет
Самый простой способ хранения пароля – это записать его в файл, откуда при обращении системы авторизации его можно прочитать и сверить с тем, который ввел человек с клавиатуры. Ведь пока на компьютере не произведен вход, никто не может прочесть этот файл. Так раньше думали многие разработчики программного обеспечения. Но преступники, которых принято называть «хакеры», смогли без входа в систему получать доступ к подобным файлам. Например, отдельно подключив жесткий диск или загрузившись с дискеты, можно скопировать файл с хранящимися паролями и прочесть его.
А что если пароль в подобном файле будет храниться в зашифрованном виде? Тогда хакер попытается его раскодировать. Но чем лучше будет закодирован пароль, тем больше сил и времени потратит преступник на его прочтение. Думаю, читатель понимает, что когда в голливудских фильмах какой-то специалист за несколько мгновений взламывает чей-то компьютер, то это всего лишь художественный спецэффект, не имеющий к жизни никакого отношения.
В современных операционных системах пароли хранятся в зашифрованных файлах и сверяются с помощью хеширования2. Это позволяет увеличить надежность сохранения данных авторизации. К примеру, большинство веб-сайтов в Интернете хранят пароли в базе данных в виде 128-битного хеша, вычисленного по алгоритму MD5, который был разработан профессором Л. Ривестом еще в 1991 году. Пароль «12345678» будет храниться в базе данных пользователей как отпечаток «25d55ad283aa400af464c76d713c07ad». Полученный при хешировании MD5 отпечаток пароля обратно в ту же запись «12345678» никак вычислить нельзя, поэтому данный способ хеширования называют необратимым.
Когда вы решите пройти авторизацию на этом веб-сайте, то введете свой логин и пароль. После нажатия кнопки «Войти» логин будет передан открытым текстом по сети, а пароль тут же превратится в вычисленный хеш, и уже значение хеша, тот длинный набор символов, будет передан на веб-сайт. Дальше ряд программ на веб-сайте начнет поиск пользователя с указанным вами логином в базе данных, а когда будет найдено совпадение, то начнется проверка хеша пароля. Если и логин и хеш пароля совпадут, то веб-сайт разрешит вам вход. Если хеш будет хоть как-то отличаться, то вам выйдет всем известная надпись: «логин или пароль указаны неверно».
Существует множество способов хранения и передачи парольной информации по компьютерным сетям. Но все эти способы объединяет один основной принцип, по которому пароль или иная информация для авторизации пользователя прячутся, шифруются, проверяются.
Данный текст является ознакомительным фрагментом.