Passphrase Generator: надёжные и запоминающиеся фразы
Генерируйте парольные фразы в стиле XKCD (correct horse battery staple) с разными словарями, настраиваемыми разделителями и оценкой энтропии в реальном времени.
Что такое Passphrase Generator?
Passphrase Generator собирает запоминающиеся многословные парольные фразы по методу XKCD «correct horse battery staple». Вы выбираете количество слов, один-два словаря, и инструмент тянет случайные слова из объединённого пула через crypto.getRandomValues, выводит энтропию в битах и помечает её на семиступенчатой шкале от Weak до Ludicrous. Я обращаюсь к нему, когда настраиваю новый мастер-пароль для менеджера паролей, фразу восстановления для шифрования или любую учётную запись, которую рано или поздно придётся набирать на клавиатуре телефона. Случайные строки символов сильнее в пересчёте на символ, но в этих случаях непригодны — четыре случайных слова из EFF-списка на 7 776 слов дают 51 бит энтропии и вещь, которую вы реально вспомните на третий день.
Ключевые возможности
- Несколько словарей — EFF Diceware long list (7 776 слов), Common English, Technical и Nature, плюс локализованные списки для немецкого, испанского, французского, португальского, русского, хинди, японского, китайского и корейского.
- Слайдер количества слов (3-10) — потяните, чтобы задать минимальное количество. Три слова набираются быстро, но дают только ~38 бит на маленьком списке; шесть-семь слов — реалистичный sweet spot для мастер-паролей.
- Опциональная минимальная длина — второй слайдер задаёт пол по символам (0-50). Полезно, когда сервис требует минимум 20 символов, а четырёх коротких слов не хватает.
- Пять вариантов разделителя — None (стиль camelCase), Space, Hyphen, Underscore, Period. Разделитель не добавляет энтропии, но влияет на читаемость.
- Capitalize each word — делает первую букву каждого слова заглавной. Реальной энтропии не добавляет, но удовлетворяет правилу «должна быть заглавная».
- Append random number — приклеивает число из настраиваемого диапазона (по умолчанию 1-999). Строка добавленных бит обновляется в реальном времени по диапазону.
- Расчёт энтропии в реальном времени — панель показывает суммарные биты, размер пула, биты на слово и цветной ярлык силы, обновляющийся при каждой настройке.
- Массовая генерация до 100 — потяните слайдер count, чтобы за один клик получить до 100 фраз, у каждой своё значение энтропии.
- Случайность на стороне браузера — источник —
crypto.getRandomValues, тот же CSPRNG, что использует Web Crypto API внутри, неMath.random().
Как пользоваться Passphrase Generator
Шаг 1: выберите количество слов и длину
Слайдер «Words» наверху задаёт минимальное число слов от 3 до 10. Метка обновляется в реальном времени («4 words», «7 words»). Под ним слайдер «Minimum length» задаёт пол по символам от 0 до 50; оставьте 0, если целевая система не требует конкретного минимума длины. Если зададите минимальную длину, генератор будет тянуть слова, пока не выполнятся оба порога — по словам и по символам.
Шаг 2: выберите разделитель и капитализацию
Пять радио-кнопок под «Separator» определяют, как соединяются слова: None, Space, Hyphen, Underscore, Period. Два чекбокса ниже — «Capitalize each word» и «Append random number» — переключают эти модификации. Капитализация по умолчанию включена; добавление числа выключено. Если поставить «Append random number», появится блок диапазона с полями Min/Max и живым показателем «+ X.X bits», отражающим вклад в энтропию.
Шаг 3: выберите словари
В разделе «Dictionaries» инструмент показывает списки, релевантные вашей локали — для русского это Diceware RU (Latin), Diceware RU (Cyrillic), EFF Diceware (английский) и Common English. Каждая запись показывает количество слов и одну строку описания. Можно отметить несколько; пул объединит их. Отметьте хотя бы один (инструмент блокирует снятие последнего и показывает тост). Добавление списков обычно слегка снижает биты на слово, потому что объединённый пул растёт непропорционально — панель энтропии показывает живые числа.
Шаг 4: читайте панель энтропии
Серая панель под словарями показывает три числа: общую энтропию (с цветом по уровню силы), размер пула слов и биты на слово. Уровень силы выводится из общих бит:
- Weak (красный): меньше 40 бит
- Fair (оранжевый): 40-49 бит
- Good (жёлтый): 50-59 бит
- Strong (лайм): 60-79 бит
- Very Strong (циан): 80-99 бит
- Fortress (фиолетовый): 100-149 бит
- Ludicrous (радуга): 150+ бит
Шестьдесят бит — порог для всего, что вам реально дорого. Восемьдесят бит — правильная цель для мастер-пароля.
Шаг 5: сгенерируйте и скопируйте
Установите слайдер «Generate» (1-100) и нажмите Generate. Результаты появятся в списке ниже, у каждого свой счётчик слов и энтропия. Иконка копирования рядом с каждой строкой копирует именно её; кнопка Copy All наверху копирует всё, склеив переводами строк. Clear очищает список. Если фаворита ещё не выбрали, нажмите Generate ещё раз — настройки слайдеров сохраняются, меняются только слова.
Практические примеры
Мастер-пароль для менеджера паролей
Настройки: 7 слов, список EFF Diceware, разделитель Hyphen, Capitalize включено, без числа, Generate count 5.
Вывод (один из пяти кандидатов):
Tropical-Dapper-Backboard-Skating-Roving-Reproach-Cubical
Это 90,5 бит энтропии — Very Strong. Выберите из пяти любимый, держите неделю записанным на бумаге, пока запоминаете, потом уничтожьте бумагу. Дефисы делают набор на мобильной клавиатуре в первые дни сносным.
Фраза восстановления для шифрования
Настройки: 6 слов, EFF Diceware, разделитель Space, Capitalize выключено, без числа.
Вывод:
gallant pelt anguish flagstone graveness scorch
77,5 бит, Strong. Пробелы легче читать вслух и труднее ошибиться, чем дефисы, когда диктуете фразу родным по телефону. Шесть слов — стандартная рекомендация для фраз восстановления вроде BIP39: та же идея, другой словарь.
Парольная фраза SSH-ключа для ежедневного сервера
Настройки: 5 слов, список Common English, разделитель Hyphen, Capitalize включено, Append number (1-99).
Вывод:
Brisk-Marble-Quill-Vintage-Oasis-47
Около 56 бит. Энтропии меньше, чем в примере с мастер-паролем, но для ключа, который вдобавок защищён 4096-битным RSA-ключом на диске, это правильный компромисс: достаточно короткая, чтобы набирать 30 раз в день без раздражения, и достаточно сильная, чтобы украденный id_rsa не означал немедленный конец игры. Заключительное число добавляет несколько бит и позволяет держать разные парольные фразы для разных серверов, не переписывая слова.
Советы и лучшие практики
Шестьдесят бит — пол всего, что важно. Ниже 60 бит хорошо профинансированный GPU-риг прокручивает keyspace за недели. Выше 80 даже государственные акторы теряют терпение. Метки силы соответствуют этим точкам перелома: Strong (60-79) — для большинства аккаунтов, Very Strong (80-99) — цель для мастер-пароля.
Метод XKCD выигрывает у случайных символов по запоминаемости. Случайная 12-символьная строка вроде qP$7zR!2mK#x имеет около 79 бит и не запоминается. Шесть слов EFF Diceware дают около 77 бит и проговариваются после одной репетиции. Для учётных записей, которые вы никогда не наберёте, случайные символы подходят. Для всего, что приходится набирать, выигрывают слова.
Добавляйте длину, а не сложность. Совет «используйте смешанный регистр, цифры и символы» — реликт эпохи 8-символьных паролей. С парольными фразами длина — единственная ручка, которую стоит крутить. Дополнительное слово даёт ~12,9 бит на списке в 7 776 слов, что больше всех символьных подстановок вместе взятых.
Объединение списков обычно ослабляет каждое слово. Два списка по 7 776 слов не дают 15 552 уникальных — после удаления дубликатов остаётся ~14 000. Биты на слово растут примерно на 0,8, поэтому добавить лишнее слово выгоднее, чем включать второй список. Используйте несколько списков ради эстетики (только технические, только природа), но не ради энтропии.
Используйте разные парольные фразы для каждой ценной учётной записи. Одна утечка не должна компрометировать другие аккаунты. Сгенерируйте партию из 10 и раздайте по одной менеджеру паролей, шифрованию диска, кодам восстановления и SSH-ключам.
Частые проблемы и устранение неполадок
«Please select at least one wordlist» — вы сняли все галочки в словарях. Поставьте хотя бы одну. Инструмент также блокирует снятие последней оставшейся (показывает тост).
Парольная фраза выходит короче заданной минимальной длины. Слайдер минимальной длины задаёт лишь пол по символам, не точную цель. Если минимум 30, а слова в сумме 33 символа — на выходе будет 33, а не «дополненная» до 30. Если за 100 попыток одновременно выполнить количество слов и минимальную длину не удаётся, генератор останавливается и возвращает то, что есть — выберите более реалистичную комбинацию.
Показатель энтропии падает при включении второго списка. Объединённый пул больше, поэтому биты на слово относительно общего числа меньше — это математически корректно. Биты на слово равны log2(размер пула), и пул из 14 000 слов даёт ~13,8 бит на слово против ~12,9 при 7 776. Общая энтропия всё равно растёт, просто не так, как подсказывает интуиция.
Капитализация не добавляет энтропии в панели. Делать первую букву каждого слова заглавной — предсказуемо (атакующий пробует этот паттерн первым), поэтому калькулятор считает ноль бит. Аналогично с фиксированным разделителем. В сумму энтропии вкладываются только диапазон случайного числа и розыгрыши слов.
Одно и то же слово появляется в фразе дважды. При выборе 4-7 слов из пула в 7 776 вероятность дубля по «парадоксу дней рождения» мала, но не нулевая. Дубль не делает фразу недействительной — расчёт энтропии и так предполагает независимые розыгрыши. Если внешне не нравится, нажмите Generate ещё раз.
Приватность и безопасность
Вся генерация парольных фраз идёт локально в вашем браузере через crypto.getRandomValues — криптографически стойкий генератор псевдослучайных чисел, предоставляемый Web Crypto API. Сгенерированные фразы никогда не уходят на сервер; словари упакованы в JavaScript страницы и подгружаются вместе с остальной частью инструмента. Панель истории под инструментом хранит недавние генерации только в локальной IndexedDB браузера — очистите её, когда закончите, или используйте инструмент в приватном/инкогнито-окне, если не хотите оставить локальный след.
Часто задаваемые вопросы
Что такое метод XKCD для парольной фразы?
Он происходит из стрипа XKCD 936 («Password Strength»), который доказывает, что четыре случайных распространённых слова («correct horse battery staple») сильнее и запоминающее, чем типичный «сложный» 8-символьный пароль вроде Tr0ub4dor&3. Математика: четыре слова из списка в 2 048 — это 44 бита; сложная 8-символьная строка после вычета предсказуемых паттернов подстановки — около 28 бит. Passphrase Generator реализует это напрямую.
Что такое Diceware и чем отличается список EFF?
Diceware — оригинальная схема парольной фразы Арнольда Рейнхольда (1995): бросаете пять физических кубиков, чтобы выбрать слово из списка в 7 776, и повторяете для каждого слова. EFF в 2016 году опубликовал обновлённый список того же размера, но с лучшим подбором слов — более произносимыми, без редких или оскорбительных, с минимальной длиной слова, чтобы избежать коллизий из-за опечатки в одну букву. Passphrase Generator использует список EFF как стандартный английский словарь.
Сколько слов нужно для сильной парольной фразы?
Четыре слова из списка EFF — 51,7 бит, Good, но не Strong. Шесть слов — 77,5 бит (Strong). Семь дают 90,5 бит (Very Strong), правильная цель для мастер-пароля. Меньше четырёх слов — слабее случайного 8-символьного пароля; больше семи — платите за запоминание при убывающей отдаче.
Можно ли использовать парольную фразу как мастер-пароль менеджера?
Да — это рекомендованное применение. Мастер-пароль — единственная учётная запись, которую нельзя хранить внутри менеджера, поэтому запоминаемость важна. Шесть-семь слов EFF Diceware на 77-90 бит — стандартная рекомендация.
Почему инструмент говорит, что капитализация даёт ноль бит?
Потому что паттерн капитализации фиксирован и известен. Реальный вклад в энтропию требует капитализации, которую атакующий не может предсказать. «Capitalize first letter of each word» — очевидный паттерн; атакующий пробует его в первой попытке. Считать 0 бит — это честная бухгалтерия.
Нужно ли использовать опцию «Append random number»?
Зависит от целевой системы. Если она принуждает «должна быть цифра», поставьте галочку и выберите небольшой диапазон вроде 0-99 (около 6 бит). Без такого требования энтропия эффективнее тратится на лишнее слово: 7-словная фраза имеет больше энтропии, чем 6-словная плюс трёхзначное число, и легче запоминается.
Связанные инструменты
- Генератор паролей — генерируйте плотные пароли из случайных символов для учётных записей, которые никогда не вводите вручную.
- UUID Generator — генерируйте UUID v4, когда нужен глобально уникальный идентификатор, а не парольная фраза.
- Base64 Encoder/Decoder — кодируйте произвольные двоичные данные, включая шифротекст, для безопасной передачи как текст.
- AES Encryption — шифруйте чувствительные заметки или файлы, используя только что сгенерированную фразу как пароль.
- Hash Suite — вычислите SHA-256, SHA-512 и другие хеши парольной фразы, когда нужно сохранить верификатор, а не саму фразу.
Попробуйте Passphrase Generator сейчас: Passphrase Generator