15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
21.10.2024

Парольная фраза vs. Пароль: техническое сравнение безопасности

A password — это короткая строка аутентификации, обычно 8–16 символов, сочетающая буквы, цифры и символы. A passphrase — это более длинная последовательность из нескольких слов — обычно 20–40 символов — которая получает свою надёжность за счёт длины, а не сложности символов. С точки зрения безопасности, хорошо составленная passphrase криптографически превосходит типичный password, поскольку энтропия масштабируется экспоненциально с длиной, а не с заменой символов.

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

Что такое Password?

A password — это строка символов фиксированной длины, используемая для аутентификации пользователя в системе. Традиционная модель — применяемая большинством устаревших систем — требует минимум 8 символов, включая хотя бы одну заглавную букву, одну цифру и один специальный символ.

Типичные характеристики:

  • Длина: 8–16 символов
  • Набор символов: заглавные, строчные буквы, цифры, символы (!@#$%^&*)
  • Распространённый пример: P@ssw0rd123!

Проблема этой модели носит структурный характер. Требования к сложности подталкивают пользователей к предсказуемым шаблонам замены: a становится @, o становится 0, s становится $. Злоумышленники знают об этом уже более десяти лет. Современные инструменты взлома на основе правил, такие как Hashcat, автоматически применяют эти шаблоны замены, а значит P@ssw0rd! не намного сложнее взломать, чем Password при наличии подготовленного словаря.

Энтропия типичного Password

Энтропия измеряется в битах: H = L × log2(N), где L — длина, а N — размер набора символов.

Случайный 10-символьный password, использующий набор из 95 печатаемых ASCII-символов, даёт приблизительно 65,7 бит энтропии. Это звучит надёжно — пока вы не учтёте, что пользователи не выбирают символы случайно. Реальные password’ы группируются вокруг шаблонов, которые резко снижают эффективную энтропию, нередко до менее 30 бит.

Что такое Passphrase?

A passphrase — это учётные данные аутентификации, состоящие из нескольких словарных слов, часто разделённых пробелами, дефисами или другими разделителями. Канонический пример, популяризированный исследователем безопасности Рэндаллом Манро в комиксе XKCD #936, — correct horse battery staple.

Типичные характеристики:

  • Длина: 20–40+ символов
  • Структура: 4–6 несвязанных распространённых слов
  • Пример: CorrectHorseBatteryStaple

Безопасность passphrase основана на комбинаторном взрыве при выборе слов. Если случайно выбрать 4 слова из списка в 7 776 слов (EFF Large Wordlist, разработанный для Diceware), количество возможных комбинаций составит 7 776^4 = приблизительно 3,6 триллиона. Это даёт примерно 51,7 бит энтропии — а добавление пятого слова поднимает показатель выше 64 бит, соответствуя или превосходя сложный случайный password, при этом оставаясь полностью запоминаемым для человека.

Почему длина важнее сложности

Ключевая математическая реальность такова: каждый дополнительный символ умножает пространство поиска, но множитель зависит от набора символов. Добавление ещё одного распространённого слова в passphrase (умножение на ~7 776) гораздо эффективнее, чем добавление ещё одного символа в password (умножение на ~32 для распространённых наборов символов). Длина — доминирующая переменная в устойчивости к атакам методом перебора.

Passphrase vs. Password: техническое сравнение

КритерийPasswordPassphrase
Типичная длина8–16 символов20–40+ символов
Энтропия (практическая)20–40 бит (выбранная пользователем)50–80+ бит (случайные слова)
Устойчивость к переборуНизкая или умереннаяВысокая
Устойчивость к словарным атакамНизкая (правила замены)Умеренная или высокая
ЗапоминаемостьНизкая (случайные строки)Высокая (осмысленные слова)
Скорость набораБыстраяМедленнее, улучшается с практикой
Совместимость с системамиУниверсальнаяБольшинство современных систем; некоторые устаревшие ограничения
Риск повторного использованияВысокий (сложно запомнить много)Ниже (проще создавать уникальные)
Подходит для SSH-ключейДаНастоятельно рекомендуется
Подходит для шифрования дискаДаНастоятельно рекомендуется

Векторы атак: как взламывают Password’ы и Passphrase’ы

Понимание модели угроз необходимо перед выбором формата учётных данных. Три основные категории атак ведут себя очень по-разному против password’ов и passphrase’ов.

Атаки методом перебора

Атака методом перебора перебирает все возможные комбинации символов. Против случайного 8-символьного password’а современные GPU-кластеры, использующие Hashcat, могут исчерпать всё пространство MD5-хешей менее чем за час. Против 4-словной Diceware passphrase, хешированной с помощью bcrypt (коэффициент стоимости 12), то же оборудование потребует миллионы лет — не только из-за алгоритма хеширования, но и потому что пространство поиска на порядки больше.

Практический вывод: длина password’а — единственный наиболее важный фактор при защите от офлайн-атак методом перебора на утечки баз данных учётных данных.

Словарные атаки и атаки на основе правил

Именно здесь наивные passphrase’ы могут потерпеть неудачу. Если пользователь составляет passphrase из известной цитаты (ToBeOrNotToBeThatIsTheQuestion), злоумышленники, использующие словари фраз или модели цепей Маркова, найдут её быстро. Защита — случайность при выборе слов — конкретно, использование метода Diceware, при котором слова выбираются броском физических кубиков или с помощью криптографически стойкого генератора случайных чисел, а не по личным ассоциациям.

Passphrase вроде purple elephant jumps moon, придуманная пользователем потому, что она «звучит случайно», намного слабее, чем wrist panel clam orbit, сгенерированная инструментом Diceware, поскольку человеческая интуиция в отношении случайности систематически предвзята.

Подстановка учётных данных и фишинг

Ни password’ы, ни passphrase’ы не обеспечивают никакой защиты от подстановки учётных данных (воспроизведения утечек) или фишинга (прямого перехвата учётных данных). Единственные эффективные меры защиты — уникальные учётные данные для каждого сервиса и многофакторная аутентификация (MFA). Passphrase’ы, однако, снижают проблему повторного использования, поскольку их легче запомнить уникально для каждого аккаунта, чем случайные строки символов.

Реальные контексты развёртывания

SSH-ключи с Passphrase

При создании пары SSH-ключей приватный ключ может быть зашифрован с помощью passphrase. Это один из наиболее ценных вариантов использования passphrase’ов. Если ваш файл приватного ключа когда-либо будет похищен — с взломанной рабочей станции, неправильно настроенной резервной копии или украденного ноутбука — passphrase является последней линией защиты.

ssh-keygen -t ed25519 -C "your_email@example.com"

При появлении запроса введите надёжную Diceware passphrase. Используйте ssh-agent для её кэширования, чтобы не вводить её при каждом подключении:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Для сред VPS Хостинга, где SSH является основным методом доступа, применение ключей, защищённых passphrase, и полное отключение аутентификации по password’у (PasswordAuthentication no в /etc/ssh/sshd_config) является базовым шагом по усилению безопасности.

Шифрование диска (LUKS)

LUKS (Linux Unified Key Setup) использует passphrase для получения Volume Master Key через PBKDF2 или Argon2. Количество итераций откалибровано так, чтобы занимать примерно одну секунду на целевом оборудовании, что означает, что энтропия passphrase напрямую определяет устойчивость к офлайн-атакам. 4-словная Diceware passphrase обеспечивает достаточную защиту; 6-словная passphrase практически не поддаётся взлому при нынешних технологиях.

Аутентификация в веб-приложениях

Большинство веб-приложений хешируют password’ы с помощью bcrypt, scrypt или Argon2. Рабочий коэффициент этих алгоритмов замедляет офлайн-атаки, но энтропия passphrase по-прежнему важна. Passphrase, хешированная bcrypt с 60 битами энтропии, гораздо устойчивее, чем 8-символьный password, хешированный bcrypt с 30 эффективными битами, даже при одинаковом коэффициенте стоимости.

Учётные данные серверов и инфраструктуры

На Выделенных серверах, управляющих критической инфраструктурой, учётные данные root и административных аккаунтов всегда должны быть passphrase’ами — в идеале 5+ слов из списка Diceware. Сочетайте это с политиками блокировки, применяемыми через PAM, и централизованным журналированием для обнаружения попыток перебора на уровне аутентификации.

Распространённые ошибки при использовании Passphrase’ов

Использование известных цитат или текстов песен. Злоумышленники ведут словари распространённых фраз, названий книг, цитат из фильмов и текстов песен. Passphrase, взятая из популярной культуры, намного слабее, чем предполагает количество её символов.

Предсказуемые комбинации слов. SunnyDayHappyLife использует четыре слова, но следует семантически связному, оптимистичному шаблону, который обученная языковая модель может генерировать и проверять эффективно. Требуется истинная случайность — а не «звучит случайно для меня».

Игнорирование ограничений системы на количество символов. Некоторые устаревшие корпоративные приложения, банковские порталы и встроенные системы ограничивают password’ы 16 или даже 12 символами, молча обрезая более длинные входные данные. Всегда проверяйте, что система хранит вашу passphrase полностью. Если она обрезает без предупреждения, ваша 30-символьная passphrase становится 12-символьным password’ом.

Пробелы и специальные символы в passphrase’ах. Некоторые системы отклоняют пробелы в password’ах. Использование последовательного разделителя, например - или _ между словами (correct-horse-battery-staple), сохраняет читаемость, избегая проблем совместимости.

Повторное использование passphrase на нескольких сервисах. Преимущество passphrase’ов в запоминаемости может парадоксально поощрять повторное использование. Passphrase, используемая на пяти сервисах, в пять раз чаще может быть раскрыта при утечке. Используйте менеджер password’ов для хранения уникальных passphrase’ов для каждого аккаунта.

Создание надёжной Passphrase: технический метод

Золотым стандартом генерации passphrase является метод EFF Diceware:

  1. Бросьте пять физических кубиков (или используйте эквивалент CSPRNG).
  2. Прочитайте пятизначный результат и найдите его в EFF Large Wordlist.
  3. Повторите 5–6 раз, чтобы получить 5–6 слов.
  4. При необходимости вставьте цифру или символ между словами для систем, которые этого требуют.
# Generate a Diceware-style passphrase using /dev/urandom on Linux
python3 -c "
import secrets
wordlist = open('/usr/share/dict/words').read().splitlines()
words = [secrets.choice(wordlist) for _ in range(5)]
print(' '.join(words))
"

Для производственного использования предпочтительны специализированные инструменты, такие как diceware (пакет Python) или passphraseme, которые используют официальные словари EFF и криптографически стойкий источник случайности.

Менеджеры Password’ов: преодоление разрыва в удобстве использования

Менеджер password’ов полностью устраняет ограничение запоминаемости, позволяя использовать случайно сгенерированные уникальные учётные данные длиной 20+ символов для каждого аккаунта. Мастер-password, защищающий хранилище менеджера, должен быть надёжной Diceware passphrase — это единственные учётные данные, которые необходимо запомнить, и они защищают всё остальное.

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

  • Bitwarden — открытый исходный код, прошёл аудит, возможность самостоятельного хостинга
  • KeePassXC — только локально, без зависимости от облака, отлично подходит для изолированных сред
  • 1Password — мощные корпоративные функции, архитектура Secret Key

При развёртывании VPS с cPanel или других управляемых хостинговых панелей управления храните мастер-учётные данные панели в хранилище менеджера password’ов, защищённом Diceware passphrase, и включите MFA на самой панели.

Роль многофакторной аутентификации

Ни password’ы, ни passphrase’ы не являются достаточными в отдельности для аккаунтов с высокой ценностью. MFA (многофакторная аутентификация) добавляет второй уровень проверки — TOTP-код, аппаратный ключ безопасности (FIDO2/WebAuthn) или push-уведомление — который делает украденные учётные данные бесполезными без физического доступа ко второму фактору.

Рекомендуемый стек для критических аккаунтов:

  • Фактор аутентификации 1: Надёжная Diceware passphrase (то, что вы знаете)
  • Фактор аутентификации 2: Аппаратный ключ FIDO2, например YubiKey или Google Titan (то, что у вас есть)
  • Резервный вариант: Надёжно хранящиеся коды восстановления в зашифрованном хранилище

Для аккаунтов Email Хостинга в особенности MFA является обязательным. Email — это вектор восстановления практически для каждого другого аккаунта: его компрометация приводит к полному захвату аккаунтов во всех связанных сервисах.

Нормативные и комплаенс-соображения

NIST SP 800-63B (2017, обновлён в 2024 году) явно отошёл от обязательных требований к сложности в пользу политик, основанных на длине. Ключевые рекомендации NIST теперь включают:

  • Разрешить password’ы длиной не менее 64 символов (что позволяет использовать passphrase’ы)
  • Не требовать периодической смены password’а без свидетельств компрометации
  • Проверять новые password’ы по спискам известных утечек учётных данных (например, HaveIBeenPwned API)
  • Не вводить правила составления (обязательные символы, цифры), которые снижают энтропию, поощряя предсказуемые шаблоны

Организации, по-прежнему применяющие политики minimum 8 characters with uppercase + symbol + number, действуют вопреки текущим рекомендациям NIST. Переход на политики, дружественные к passphrase’ам, с минимумом 15–20 символов и проверкой по спискам утечек, является одновременно более безопасным и более удобным.

Матрица решений: когда что использовать

СценарийРекомендуемый подход
Защита SSH приватного ключа5-словная Diceware passphrase
Шифрование диска LUKS5–6-словная Diceware passphrase
Мастер-учётные данные менеджера password’ов6-словная Diceware passphrase (запомненная)
Аккаунты веб-приложений (через менеджер)Случайная строка 20+ символов из менеджера password’ов
Устаревшая система с максимумом 12 символовСлучайная строка максимальной длины из менеджера password’ов
Root-аккаунт сервераPassphrase + MFA + предпочтительно SSH на основе ключей
Аккаунт регистратора доменовPassphrase + MFA (управляет DNS, высокоценная цель)

Для аккаунтов Регистрации доменов относитесь к учётным данным регистратора как к секрету первого уровня. Перехват DNS через скомпрометированный аккаунт регистратора может перенаправить весь трафик и email для домена, обходя все остальные средства контроля безопасности.

Практический контрольный список ключевых выводов

  • Генерируйте passphrase’ы методом Diceware с CSPRNG, а не по личным ассоциациям или известным фразам.
  • Используйте минимум 5 слов (примерно 64 бита энтропии) для любых учётных данных, защищающих конфиденциальные данные.
  • Убедитесь, что целевая система принимает и полностью хранит вашу passphrase нужной длины, прежде чем полагаться на неё.
  • Используйте менеджер password’ов (Bitwarden, KeePassXC) для всех аккаунтов, кроме мастер-учётных данных хранилища.
  • Защищайте SSH приватные ключи passphrase’ом и используйте ssh-agent для кэширования сессии.
  • Применяйте PasswordAuthentication no в /etc/ssh/sshd_config на всех производственных серверах.
  • Включайте MFA на каждом аккаунте, который его поддерживает, уделяя приоритет email, регистраторам, панелям управления хостингом и финансовым аккаунтам.
  • Проверяйте свои политики учётных данных в соответствии с NIST SP 800-63B: отмените обязательную ротацию и правила сложности, добавьте проверку по спискам утечек.
  • Никогда не используйте passphrase повторно на разных сервисах, независимо от того, насколько запоминающейся или уникальной она кажется.

Часто задаваемые вопросы

Всегда ли passphrase безопаснее password’а?

Случайно сгенерированная passphrase из 4+ слов Diceware почти всегда безопаснее, чем password, выбранный пользователем. Однако действительно случайный 20-символьный password, сгенерированный менеджером password’ов, может соответствовать или превосходить энтропию passphrase. Практическое преимущество passphrase’ов — запоминаемость при высокой энтропии, а не неотъемлемое превосходство в каждом случае.

Могут ли passphrase’ы быть взломаны ИИ или языковыми моделями?

Современные большие языковые модели могут генерировать семантически связные последовательности слов, что означает, что passphrase’ы, основанные на осмысленных предложениях или распространённых фразах, более уязвимы, чем пять лет назад. Защита — строгая случайность при выборе слов: passphrase’ы, сгенерированные Diceware без семантической связи между словами, не становятся значительно более уязвимыми к атакам с помощью LLM.

Какова минимальная длина passphrase для защиты SSH-ключей?

Для шифрования SSH приватных ключей NIST и большинство фреймворков безопасности рекомендуют не менее 128 бит энтропии для долгосрочных секретов. 5-словная Diceware passphrase обеспечивает примерно 64 бита, что считается надёжным для интерактивного использования. Для сред с высокими требованиями к безопасности используйте 6 слов (примерно 77 бит) или сочетайте passphrase с аппаратным ключом безопасности.

Делают ли менеджеры password’ов passphrase’ы устаревшими?

Нет. Менеджер password’ов генерирует и хранит высокоэнтропийные случайные учётные данные для всех ваших аккаунтов, но само хранилище должно быть защищено мастер-учётными данными, которые вы можете запомнить. Эти мастер-учётные данные должны быть надёжной Diceware passphrase. Оба инструмента дополняют друг друга, а не конкурируют.

Как мне поступать с системами, которые отклоняют длинные passphrase’ы или пробелы?

Используйте последовательный разделитель слов, который принимает большинство систем, например - или . (например, correct-horse-battery-staple). Если система устанавливает жёсткое ограничение на количество символов ниже 20, используйте максимально допустимую длину со случайной строкой, сгенерированной менеджером password’ов, и отметьте систему как несоответствующую NIST SP 800-63B для последующего исправления.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать