Исследование компании Irregular, занимающейся вопросами безопасности, показало, что большие языковые модели (LLM), включая GPT, Claude и Gemini, не подходят для генерации надежных паролей. Несмотря на кажущуюся сложность сгенерированных паролей, они обладают значительными уязвимостями.
Авторы исследования сосредоточились на анализе последних версий моделей GPT, Claude и Gemini. Им был задан простой запрос: сгенерировать случайный пароль. Первой была модель Claude Opus 4.6. На первый взгляд, сгенерированный ею пароль выглядел надежным – он содержал буквы разных регистров, цифры и символы. Однако при более детальном анализе с помощью калькулятора энтропии паролей стало очевидно, что проблема заключается не в отдельных паролях, а в их последовательности.
Когда исследователи попросили модель сгенерировать 50 паролей, они обнаружили четкие и повторяющиеся закономерности:
- Все пароли начинались с заглавной буквы G, за которой следовала цифра 7.
- Выбор символов был крайне неравномерным: L, 9, m, 2, $ и # встречались во всех 50 паролях, в то время как 5 и @ появлялись только один раз. Большинство букв алфавита вообще не использовались.
- В паролях отсутствовали повторяющиеся символы, что маловероятно для действительно случайных последовательностей.
- Модель избегала использования символа *, возможно, из-за специфического формата вывода Markdown.
- Из 50 сгенерированных паролей только 30 были уникальными. Наиболее часто встречавшийся пароль (G7$kL9#mQ2&xP4!w) повторялся 18 раз, что составляет 36% всех случаев.
Аналогичные проблемы обнаружились и в других языковых моделях, хотя наборы часто используемых символов могли отличаться. Исследователи подчеркнули, что эта проблема не решается правильными промптами или корректировками.
В основе любого надежного генератора паролей лежит криптографически защищенный генератор псевдослучайных чисел (CSPRNG), который обеспечивает равномерное распределение вероятностей по всем возможным символам и делает их предсказание крайне сложным. В отличие от этого, LLM-ы оптимизированы для предсказания следующего токена на основе предыдущих, что делает их вывод предсказуемым и не равномерно распределенным.
Авторы исследования утверждают, что использование больших языковых моделей для генерации паролей недопустимо. Пароли, сгенерированные LLM-ами, принципиально слабы и не могут быть улучшены с помощью подсказок или корректировок температуры вывода. Программистам и разработчикам рекомендуется использовать проверенные методы генерации паролей, такие как CSPRNG, или надежные менеджеры паролей.
Этот шаг может привести к более безопасным практикам в области управления учетными данными и уменьшению рисков, связанных с использованием слабых паролей. В будущем это также стимулирует разработчиков ИИ-систем уделить больше внимания безопасности генерации данных.