Шифрование пароля

Для хранения секретного списка паролей на диске многие ОС используют криптографию. Система использует одностороннюю функцию, которую чрезвычайно трудно (дизайнеры надеются, что невозможно) инвертировать, но просто вычислить. Хранятся только кодированные пароли. В процессе аутентификации представленный пользователем пароль кодируется и сравнивается с хранящимися на диске. Т.о., файл паролей нет необходимости держать в секрете.

При удаленном доступе к ОС нежелательно путешествие пароля по сети в открытом виде. Одним из типовых решений является использование криптографических протоколов. В качестве примера можно рассмотреть протокол опознавания с подтверждением установления связи путем вызова - CHAP (Challenge Handshake Authentication Protocol)

Опознавание достигается за счет проверки того, что у пользователя, осуществляющего доступ к серверу, имеется секретный пароль, который уже известен серверу.

Сервер посылает пользователю запрос (вызов), состоящий из идентифицирующего кода, случайного числа и имени узла сервера или имени пользователя. При этом пользовательское оборудование в результате затребования пароля пользователя отвечает следующим ответом, зашифрованным с помощью алгоритма одностороннего хэширования, наиболее распространенным видом которого является MD5. После получения ответа сервер при помощи той же функции с теми же аргументами шифрует собственную версию пароля пользователя. В случае совпадения результатов разрешается вход в систему. Существенно, что незашифрованный пароль при этом не посылается по каналу связи.

В микротелефонных трубках используется аналогичный метод.