Делают ли четыре случайных общих слова более надежный пароль, чем такие пароли, как «Tr0ub4dor&3»?

В комиксе xkcd #936 Рэндалл Манро утверждает, что такие пароли, как «Tr0ub4dor&3» (необычное базовое слово, заглавные буквы, распространенная замена букв цифрами и суффиксом пунктуации), имеют ~ 28 бит энтропии, при этом используя четыре случайных общих слова, таких как «правильная лошадь». Battery Staple», имеет ~44 бита энтропии и, следовательно, намного сильнее.

XKCD Mouseover: Всем, кто разбирается в теории информации и безопасности и находится в яростном споре с кем-то, кто этого не понимает (возможно, в смешанных случаях), я искренне извиняюсь.Я в замешательстве, потому что мне всегда говорили, что наличие цифр, заглавных/незаглавных букв и специальных символов необходимо для надежного пароля...

Прав ли XKCD в этом?

Я слышал то же самое в другом месте.
Я думаю, что это будет более актуально для Math.SE или Security.SE. На него нужно ответить математическим расчетом, а не эмпирическими данными.
Это будет дубликат на Security.SE .
@Brythan: Тогда даже лучше, это значит, что на него уже ответили!
Не говоря уже о том, что это вопрос с наибольшим количеством голосов по безопасности . -1 за серьезную нехватку исследовательских усилий (и низкую полезность, учитывая, насколько более качественными являются / могут быть ответы с соответствующего сайта). Вероятно, редкий случай для поддержки и этого .
Стоит отметить, что эта математика применима, если вы придерживаетесь сделанных предположений, но энтропия может быть намного выше, если включить другие распространенные привычки, например, использование выдуманных слов, имен собственных, комбинаций из двух слов, вставка дополнительных символов, а не выполнение действий. -замены и т. д. Тем не менее, основной задачей xkcd было продвижение более удобных для человека паролей.
Я голосую за то, чтобы закрыть этот вопрос — это вопрос, получивший наибольшее количество голосов на Security Stack Exchange, и все подробности были рассмотрены ведущими криптографами и специалистами по безопасности. Это должен быть канонический пост.
Есть два довольно противоречивых критерия «надежного» пароля: 1) Сложность «угадывания», используя знания о личности. 2) Сложность поиска при исчерпывающем переборе всех возможных комбинаций. Большинство «правил» для паролей стремятся усилить пароль в отношении первого критерия, но эти «правила» имеют тенденцию ослаблять его в отношении второго критерия. И в конце концов никак не предотвратить ослабление по глупости.
Проблема с таким мышлением заключается в том, что «выбор пароля» не имеет значения. Вам нужно решить задачу подбора сотен паролей, по одному на каждый сайт. Ни одна из этих систем не масштабируется (вы действительно можете вспомнить сотни фраз-паролей «правильных аккумуляторных лошадей»?)
На сайте http://explainxkcd.com/wiki/index.php/936:_Password_Strength есть интересное обсуждение этого вопроса.
Вы когда-нибудь слышали о «моделях угроз»? Этот вопрос ерунда и на него так же легко ответить, как «что тяжелее — яблоко или апельсин»? «Безопасность» не поддается количественной оценке, она абстрактна. Кстати, xkcd это сатира . Это сделано для того, чтобы высмеять подобные заблуждения.
Я не согласен с тем, что «ответ на другом сайте SE» является веской причиной для VTC — каждый сайт собирает разные ответы для разных аудиторий. многочисленные исследования, опубликованные статьи и тому подобное, включая, помимо прочего, сообщение Security.SE, и сделать вывод о точности заявления xkcd в соответствии с Туром : «Спросите о... точности публичных заявлений , сделанных в СМИ или где-либо еще»
@Robotnik: Проблема в том, что этот вопрос сводится к «Дайте мне источники, в которых 44 больше 28», и это просто элементарный математический факт. Можно было задать вопрос, верны ли расчеты энтропии, но это не так, и это по-прежнему было бы темой для теории информации, а не для скептиков. Скептики действительно лучше всего раскрывают поддерживающий аргумент, когда дается утверждение, отделяющее вывод от его аргумента. Здесь дело обстоит иначе, аргумент и вывод находятся в одном и том же контексте.
См. мой генератор Dicewords . Обратите внимание, что он может создавать более слабые пароли, полагаясь на встроенную псевдослучайность, а не на больший источник энтропии...
@Ben - Вы предполагаете, что длина пароля - это единственное, что имеет значение, но это не так. Если бы все в мире использовали 4 простых случайных слова, злоумышленники просто начали бы создавать инструменты, которые предполагают, что вы связываете вместе 4 простых случайных слова, делая ваш пароль лишь немного более надежным, чем пароль длиной в 4 символа. Дело в том, что в этой области существует множество исследований и мнений, и уж точно недостаточно просто сказать «44 > 28» .
Проголосуйте за запрос функции перекрестных вопросов, если вы заинтересованы в том, чтобы вопросы использовались на разных сайтах, а не дублировались на разных сайтах.
@Robotnik: Учитывая, что в нескольких человеческих языках есть символ для каждого понятия, которое мы бы описали как слово, пароль из 4 символов - это именно то, что есть. Но пароль из 4 китайских символов потенциально очень надежен. В любом случае, если вы собираетесь бросить вызов вычислению энтропии, вам нужно задать вопрос на сайте, посвященном теории информации.
«Мне всегда говорили, что наличие цифр, заглавных/незаглавных букв и специальных символов необходимо для надежного пароля» . Да, это вся предпосылка комикса.
@ user1643723: «Кстати, xkcd — это сатира». Нет, это не так. «Он предназначен для того, чтобы высмеивать подобные заблуждения». Нет, это не так.
Это зарабатывало флаги, утверждающие, что это дубликат вопроса Security.SE . Наша обычная практика — разрешать такие дубликаты, поскольку стандарты сообщества для ответов на разных сайтах сильно различаются. Если вы не согласны, поднимите мета-вопрос, обсуждая политику, чтобы ее можно было пересмотреть.
Почему это примечательно? Весь смысл искажений, через которые нужно пройти, чтобы создать «надежный» пароль, состоит в том, чтобы иметь что-то, что будет (А) запоминающимся для пользователя и (Б) трудно взломать/украсть/угадать/взломать. Да, четыре совершенно случайных слова, вероятно, составят очень и очень надежный пароль. Настолько сильный, что пользователь, вероятно, не сможет его запомнить, что делает его несколько бесполезным в качестве пароля.
@robotnik Средний словарный запас человека составляет 20-35 тысяч слов. Предполагая нижний предел, 64 ^ 10 > 20 000 ^ 4 > 64 ^ 9, поэтому даже в худшем случае пароль из четырех случайных слов будет иметь лучшую энтропию, чем пароль из девяти случайных символов... И, кроме того, будет значительно проще запоминать и печатать — последнее качество становится особенно полезным, когда приходится вводить пароли на сенсорном экране планшета или смартфона.
@Robotnik ... Кроме того, даже это предполагает, что злоумышленник правильно угадал , на каком языке говорит цель .

Ответы (3)

Это правда, что вам не нужны цифры, специальные символы и т. д. для надежного пароля. Если вы вместо этого увеличите длину пароля, энтропия также увеличится. См., например , эту таблицу энтропии . Чтобы получить 64-битную энтропию, у вас может быть 14-значный пароль в нижнем регистре, или у вас может быть 10-значный пароль со всеми печатными символами ASCII, или у вас может быть парольная фраза с 5 словами, случайно выбранными из списка 7776 слов (Diceware) .

Подход XKCD также называется парольной фразой или, если все сделано правильно, т. е. случайным образом выбранными словами в парольной фразе, Diceware .

Математика была проверена на сайте security.SE и примерно верна, если предположить небольшой список слов для Diceware (~2000 слов) и, что очень важно, случайно выбранные слова. Обратите внимание, что комикс XKCD предполагает случайность слов в кодовой фразе Diceware, но предполагает шаблон для пароля (что является справедливым предположением, а также смыслом комикса, поскольку никто не помнит действительно случайный 11-символьный пароль).

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

Утверждение о запоминаемости было рассмотрено в статье « Правильный основной элемент батареи лошади: изучение удобства использования назначенных системой кодовых фраз» (обратите внимание, что в документе используются правильно сгенерированные парольные фразы, а не полагаются на то, что пользователи «случайно» выбирают парольные фразы):

Вопреки ожиданиям, назначенные системой парольные фразы работали так же, как и назначенные системой пароли с аналогичной энтропией по метрикам удобства использования, которые мы исследовали. Парольные фразы и пароли забывались с одинаковой частотой, вызывали одинаковые уровни сложности и раздражения пользователей, и оба были записаны большинством участников. Тем не менее, для ввода парольных фраз участникам требовалось значительно больше времени, и, по-видимому, требовалось исправление ошибок, чтобы противодействовать ошибкам ввода. Удобство использования парольной фразы, по-видимому, не увеличилось, когда мы сократили словарь, из которого выбирались слова, уменьшили количество слов в парольной фразе или разрешили пользователям изменять порядок слов.

Я предполагаю, что это показывает, что самый простой способ иметь надежные индивидуальные пароли - это генерировать их случайным образом, и они быстро забывают о них и рассчитывают, что ваш менеджер паролей запомнит их для вас...
@MatthieuM. Да, менеджер паролей действительно является единственным хорошим решением для веб-паролей, но он не практичен во всех ситуациях (например, для полного шифрования диска). И вам, конечно, также нужно будет запомнить пароль для менеджера паролей, а также пароль пользователя вашей ОС (в зависимости от ваших потребностей, это может быть или не быть жизнеспособным решением, чтобы записать это).
@tim Полное шифрование диска не проблема. Учетные записи в наши дни используются совместно между устройствами, поэтому ваша база данных мастер-паролей хранится в облаке. Шифрование базы данных, а также такой сервис, как SpiderOak, защищают ее. Вам по-прежнему нужно помнить два надежных пароля, один для облачной службы и один для базы данных паролей, но это намного лучше, чем N надежных паролей. Использование менеджера паролей таким образом означает, что вы не потеряете свои пароли, если ваш диск выйдет из строя, ваше устройство будет украдено или вы не сможете расшифровать диск. И у вас всегда есть зеркало на ваших устройствах, если облако выйдет из строя.
@Schwern Я имел в виду, что это проблема, потому что вы не можете сохранить пароль для шифрования диска в диспетчере паролей. Я не вижу, как здесь помогут облачные сервисы; они просто добавят четвертый пароль, который вам нужно запомнить (пользователь ОС, диск, менеджер паролей, облачный сервис). Я думаю, вы могли бы сохранить свой пароль для шифрования диска в менеджере паролей в облаке и получить к нему доступ через другие устройства, но это добавит новые векторы атак. В качестве защиты от потери базы данных менеджера паролей могут помочь облачные сервисы, а также безопасные резервные копии.
@tim Да, вы сохраняете пароль для шифрования диска в менеджере паролей и получаете его через другое устройство, например телефон, или сохраняете резервную копию. Самые большие риски здесь не технические, а пользовательские: забыть сделать резервную копию и не использовать менеджер паролей, потому что это неудобно. Риск облака снижается за счет облачного пароля, собственного шифрования баз данных и использования облачного хранилища со сквозным шифрованием, например SpiderOak. Вы получаете возможность удобного использования диспетчера паролей для всего и не рискуете забыть о резервном копировании или сбое резервного копирования.
@tim По сути, если у вас где-то есть недавно синхронизированная резервная копия базы данных, будь то на другом устройстве или в личной резервной копии, вам нужно запомнить только один пароль: пароль для менеджера паролей. Оттуда вы можете загрузить все. Я делал это много раз.

Не существует единственно правильного ответа на вопрос, сколько энтропии имеет пароль: результат будет зависеть от предположений, которые сделает о нем злоумышленник, а они неизвестны. Об этих предположениях можно сделать более или менее разумные предположения, давая более или менее разумные значения энтропии.

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

Для справки, проверка надежности пароля показывает, что «Tr0ub4dor&3» имеет 52 бита энтропии (вместо 28 в комиксе), а «correcthorsebatterystaple» — 94 бита (вместо 44). Эта оценка предполагает, что злоумышленник будет использовать словарь сочетаний букв английского языка. Как видите, результаты совершенно разные, но утверждение, сделанное в комиксе, справедливо и для этого метода расчета — более длинный пароль из обычных слов лучше, чем более короткий пароль со специальными символами.

Как вы сказали, это зависит от предположений, которые сделает злоумышленник. Калькулятор силы zxcvbn дает «Tr0ub4dor&3» только 36 бит энтропии, в то время как «правильная скрепка лошадиной батареи» получает 66 бит.
@Mark Мне все еще кажется, что это недооценка. Например, известно , что «correcthorsebatterystaple» состоит из 4 слов. На самом деле злоумышленник, вероятно, проверит предложения из 3, 2 и 1 слова, переборит все пароли из 8 символов или менее и попробует несколько других распространенных схем паролей, прежде чем он даже начнет взламывать пароли из 4 слов.

Ваша проблема с этим предположением:

Я в замешательстве, потому что мне всегда говорили, что наличие цифр, заглавных/незаглавных букв и специальных символов необходимо для надежного пароля...

Это утверждение теоретически верно, но неверно, когда речь идет о том, как люди на самом деле создают пароли. Простая замена буквы «о» на «0» и «а» на «4» не сделает ваш пароль более надежным. В лучшем случае новый пароль имеет эквивалентную надежность. На самом деле он, вероятно, слабее, потому что эти замены настолько популярны, что злоумышленник может попробовать 0 и 4, даже не попробовав о и а. Точно так же использование заглавной буквы настолько естественно, что ничего не добавляет к безопасности. И добавление цифры в конце также является популярным выбором, который немного увеличивает сложность пароля, даже с добавлением дополнительного символа &. Даже опечатки (такие как troubador vs troubadour) не отбрасывают атаки по словарю более чем на чуть-чуть.

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

Наличие цифр и специальных символов повышает безопасность только в том случае, если вы выбираете каждый символ по отдельности случайным образом, просто потому, что злоумышленник должен угадать каждый символ среди 90 или около того символов. Если вы используете только буквы, злоумышленник должен угадать только среди 26 или 52 символов (в зависимости от того, используете ли вы сочетание верхнего и нижнего регистра).

В случае Tr0ub4dor&3 эти символы не случайны. Этот пароль, скорее всего, легко взломать с помощью атаки по словарю. У большинства людей активный словарный запас составляет около 1000 слов или около того, у образованных людей около 6000 или около того (на английском языке). Эти 6000 слов, вероятно, включают трубадура. Злоумышленник с атакой по словарю, конечно, попробует все перестановки слова. Так что это может быть 100 различных вариантов слова «трубадур».

Кроме того, злоумышленник сначала попробует наиболее вероятные перестановки.

Таким образом, злоумышленник вполне может попробовать «Tr0ub4dor», даже не попробовав базовое слово «troubadour». Это слово может иметь номер 3000 в словаре паролей, который попытается использовать злоумышленник (хотя после XCKD оно, вероятно, переместилось на номер 20), поэтому злоумышленник взломал бы ваш пароль за несколько тысяч или несколько сотен тысяч попыток, что может быть от нескольких минут до нескольких часов с приличным компьютером.