Искусственный интеллект не поможет создать надёжный пароль: новое исследование предупреждает об обмане

Современные чат-боты, использующие искусственный интеллект, не демонстрируют выдающихся способностей в генерации надёжных паролей. Исследование, проведённое компанией Irregular, специализирующейся на безопасности, выявило, что популярные чат-боты используют нестандартные и потенциально уязвимые методы при решении этой задачи.

Изначально исследователи изучали не чат-ботов, а лежащие в их основе большие языковые модели, такие как GPT, Claude и Gemini в последних доступных версиях. Задача, поставленная моделям, заключалась в создании случайного пароля. Первым делом была опробована модель Claude Opus 4.6.

С первого взгляда пароль может показаться надежным из-за использования букв разного регистра, цифр и символов. Для определения его качества авторы использовали специальный инструмент – калькулятор энтропии паролей, который показал результат в 100 баллов, что свидетельствует об отличном уровне защиты. Однако проблема заключается не в самом пароле.

Авторы затем запросили создание нового пароля, и для выявления аномалии не потребовалось никаких вычислений. Действительно, сгенерированный пароль оказался весьма близок к предыдущему.

В этот момент создатели запросили генерацию дополнительных 50 паролей, и именно тогда проблема стала очевидной.

Читать также:  Roborock A30 Pro Steam 2.0: поломоечная машина с паром, способная очистить до 500 квадратных метров

Анализ этих пятидесяти паролей позволяет выявить выраженные и понятные тенденции:

  • Как правило, пароли формируются, начиная с буквы, чаще всего с заглавной G, после которой почти всегда располагается цифра 7.
  • Распределение используемых символов оказалось весьма неравномерным: такие символы, как L, 9, m, 2, $ и # присутствовали во всех 50 паролях, в то время как символы 5 и @ были обнаружены лишь в одном пароле, а большинство букв алфавита не использовались вовсе.
  • Пароли не содержат повторяющихся символов. С вероятностной точки зрения, это было бы маловероятно, если бы пароли генерировались совершенно случайно, однако Claude сознательно избегал повторений, вероятно, полагая, что это создает впечатление неслучайности».
  • Claude предпочитал не использовать символ звездочки. Вероятно, причина кроется в том, что Claude работает с форматом Markdown, где asterisk имеет специфическое назначение.
  • Несмотря на то, что было предпринято 50 попыток, в них использовалось всего 30 различных паролей. Наиболее часто встречающимся оказался пароль G7$kL9#mQ2&xP4!w, который повторился 18 раз, что составляет 36% от общего числа попыток в нашем тестовом наборе. Этот показатель значительно превышает ожидаемую вероятность 2-100, если предположить, что это действительно 100-битный пароль.

Подобное поведение также наблюдалось в других языковых моделях, хотя и с использованием иных наборов наиболее распространенных символов.

Читать также:  Новое программное обеспечение One UI появится на Samsung Galaxy S23, Galaxy S23+ и Galaxy S23 Ultra сегодня, 28 сентября

Для подтверждения того, что проблема возникает постоянно, авторы провели ряд дополнительных исследований. Тем не менее, при рассмотревании задачи с иной точки зрения, полученный результат представляется вполне закономерным.

Каждый надёжный генератор паролей использует криптографически защищенный генератор псевдослучайных чисел (CSPRNG). Именно он отвечает за создание символов пароля, обеспечивая их непредсказуемость и случайный выбор из всего набора возможных символов.

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

По мнению авторов, использование больших языковых моделей для создания паролей нецелесообразно, поскольку подбор оптимальных запросов или внесение изменений не решает возникшую проблему.

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