Сторонний разработчик (не Cisco) выпустил программу для дешифрования паролей пользователей (и других паролей) в файлах конфигурации Cisco. Программа не будет расшифровывать пароли, установленные с разрешением команды secret. Непредвиденная проблема, которую данная программа вызвала у пользователей Cisco, вызвала подозрения, что многие пользователи полагаются на шифрование пароля Cisco как на средство большей безопасности, чем это было предусмотрено. В этом документе поясняется модель безопасности, на которой строится технология шифрования паролей Cisco, и особенности этого шифрования, ограничивающие безопасность.
Примечание. Cisco рекомендует внедрить модель безопасности AAA (аутентификация, авторизация и учет) на всех устройствах Cisco IOS. В модели AAA может использоваться локальная база данных, RADIUS и TACACS+.
Для этого документа отсутствуют особые требования.
Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.
Пароли пользователя и большая часть других паролей (не enable secrets) в файлах конфигурации Cisco IOS шифруются с помощью схемы, которая не отвечает всем требованиям современных криптографических стандартов.
Несмотря на то что Cisco не распространяет программу расшифровки, как минимум две другие программы для расшифровки паролей Cisco IOS имеются в открытом доступе в Интернете; первая общедоступная версия такой программы, известная Cisco, появилась в начале 1995 г. Мы ожидали, что любой криптограф-непрофессионал будет в состоянии создать новую программу, приложив небольшие усилия.
Схема, используемая Cisco IOS для пользовательских паролей, не предназначена для сопротивления намеренной, хорошо спланированной атаке. Схема шифрования была создана для предотвращения кражи паролей с помощью отслеживания или прослушивания. Защита от действий по взлому пароля в файле конфигурации никогда не предполагалась.
Из-за слабого алгоритма шифрования позиция Cisco всегда заключалась в том, что клиенты должны рассматривать любой файл конфигурации, содержащий пароли, как уязвимые данные — так же, как список паролей открытым текстом.
Команду enable password больше не следует использовать. Используйте разблокированную шифрованную команду для более высокой безопасности. Единственный экземпляр, в котором можно протестировать команду enable password, — когда устройство работает в режиме загрузки, который не поддерживает команду enable secret.
Команда еnable secret хешируется при помощи алгоритма MD5. Насколько известно в Cisco, невозможно восстановить включенный секретный пароль по содержимому файла конфигурации (кроме известного способа подбора пароля по словарю).
Примечание. Это применимо только к паролям, заданным командой enable secret, а не к паролям, заданным командой enable password. Действительно, надежность используемого шифрования является единственным существенным различием между этими двумя командами.
Воспользовавшись командой show version в обычном рабочем режиме, просмотрите загрузочный образ (полный образ Cisco IOS), чтобы выяснить, поддерживает ли этот загрузочный образ разрешающую секретную команду. Если имеется команда enable password, удалите ее. Если загрузочный образ не поддерживает включение секретного пароля, необходимо учесть следующие предупреждения:
Установка команды enable password может быть ненужной при наличии физических мер безопасности, чтобы никто не мог перезагрузить устройство загрузочным образом.
Физический доступ к устройству позволяет нарушить его безопасность, не обращаясь к загрузочному образу.
При установке значения enable password равным значению enable secret степень уязвимости значения enable secret к атаке становится такой же, как у значения enable password.
Если параметр enable password имеет другое значение, т. к. загрузочный образ не поддерживает команду enable secret, администраторы должны будут запомнить новый пароль, который редко используется на ROM без поддержки команды enable secret. При наличии отдельной команды enable password администраторы могут не помнить пароль, когда они переводят систему в режим простоя для обновления программного обеспечения, что является единственной причиной для входа в режим загрузки.
Почти все пароли и другие строки аутентификации в файлах конфигурации Cisco IOS шифруются с помощью слабой, обратимой схемы, используемой для паролей пользователей.
Чтобы определить, какая схема была использована для шифрования конкретного пароля, проверьте цифру, предшествующую зашифрованной строке в файле конфигурации. Если данная цифра – 7, это означает, что пароль был зашифрован с помощью слабого алгоритма. Если же это 5, значит пароль был хэширован с помощью более сильного алгоритма MD5.
Например, в команде настройки:
enable secret 5 $1$iUjJ$cDZ03KKGh7mHfX2RSbDqP.
Хэширование команды enable secret осуществляется с помощью MD5, тогда как для команды:
username jdoe password 7 07362E590E1B1C041B1E124C0A2F2E206832752E1A01134D
Пароль зашифрован с использованием слабого обратимого алгоритма.
Перед передачей сведений о конфигурации в сообщении электронной почты необходимо удалить из конфигурации пароли типа 7. Можно использовать команду show tech-support, которая по умолчанию изымает секретные данные. Пример вывода команды show tech-support показан ниже.
... hostname routerA ! aaa new-model aaa authentication login default local aaa authentication ppp default if-needed local enable secret 5 <removed> ! username jdoe password 7 <removed> username headquarters password 7 <removed> username hacker password 7 <removed> ...
При сохранении файлов конфигурации на сервер простейшего протокола передачи файлов (TFTP) измените полномочия на эти файлы, если они не используются, или защитите их межсетевым экраном.
Cisco не имеет планов в обозримом будущем поддерживать стойкий алгоритм шифрования для паролей пользователей Cisco IOS. Если Cisco примет решение внедрить такую функцию в будущем, эта функция определенно наложит дополнительную административную нагрузку на пользователей, которые решат ею воспользоваться.
В общем случае невозможно переключить пароли пользователей на алгоритм на основе MD5, используемый в команде enable secret, поскольку MD5 является однонаправленным хешированием и пароль вообще нельзя восстановить из зашифрованных данных. Для поддержки определенных протоколов аутентификации (особенно CHAP) системе требуется доступ к открытому тексту паролей пользователей, и поэтому она должна хранить их с использованием обратимого алгоритма.
Из-за сложностей с управлением ключами переход на использование более сильного обратимого алгоритма, например DES, может оказаться непростой задачей. Несмотря на то что было бы легко модифицировать Cisco IOS и использовать для шифрования паролей алгоритм DES, это не дало бы преимущества в безопасности, если бы во всех системах Cisco IOS использовался один и тот же ключ DES. Если бы разные ключи использовались разными системами, административная нагрузка была бы введена для всех сетевых администраторов Cisco IOS, и совместимость файлов конфигурации при переносе с одной системы на другую была бы нарушена. Потребность заказчиков в более серьезном обратимом шифровании пароля была небольшой.