14.4. DES, MD5, и шифрование
Пред. | Глава 14. Безопасность | След.

## 14.4. DES, MD5, и шифрование

Частично переписал и обновил Bill Swingle.

У каждого пользователя UNIX(R) системы есть пароль, связанный с его учётной записью. Очевидно, что эти пароли должны быть известны только пользователю и соответствующей операционной системе. Для защиты паролей они шифруются способом, известным как <<односторонний хэш>>, то есть их можно легко зашифровать, но нельзя расшифровать. Другими словами, то, что мы сказали чуть раньше было очевидно, но не совсем верно: операционной системе сам пароль неизвестен. Ей известен только пароль в зашифрованной форме. Единственный способ получить <<обычный>> пароль это простой перебор всех возможных паролей.

К сожалению, единственный способ шифрования пароля при появлении UNIX(R) был основан на DES, Data Encryption Standard. Это не было проблемой для пользователей, живущих в США, но поскольку исходный код DES нельзя было экспортировать из США, FreeBSD нашла способ одновременно не нарушать законов США и сохранить совместимость со всеми другими вариантами UNIX(R), где все еще использовался DES.

Решение было в разделении библиотек шифрования, чтобы пользователи в США могли устанавливать и использовать библиотеки DES, а у остальных пользователей был метод шифрования, разрешенный к экспорту. Так FreeBSD пришла к использованию MD5 в качестве метода шифрования по умолчанию. MD5 считается более безопасным, чем DES, поэтому установка DES рекомендуется в основном из соображений совместимости.

### 14.4.1. Определения механизма шифрования

На данный момент библиотека поддерживает хэши DES, MD5 и Blowfish. По умолчанию FreeBSD использует для шифрования паролей MD5.

Довольно легко определить какой метод шифрования используется в FreeBSD. Один из способов это проверка файла `/etc/master.passwd`. Пароли, зашифрованные в хэш MD5 длиннее, чем те, что зашифрованы с помощью DES и начинаются с символов `$1$`. Пароли, начинающиеся с символов `$2a$` зашифрованы с помощью Blowfish. Пароли, зашифрованные DES не содержат каких-то определенных идентифицирующих символов, но они короче, чем пароли MD5 и закодированы в 64-символьном алфавите, не содержащем символа `$`, поэтому относительно короткая строка, не начинающаяся с этого символа это скорее всего DES пароль.

Формат паролей, используемых для новых паролей, определяется параметром `passwd_format` в `/etc/login.conf`, которое может принимать значения `des`, `md5` или `blf`. Обратитесь к странице справочника login.conf(5) за дополнительной информацией о параметрах login.

Пред. | Наверх | След.
14.3. Защита FreeBSD | Начало | 14.5. Одноразовые пароли

Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.