Большинство веб-сайтов, которыми мы пользуемся в наши дни, как правило, оценивают степень безопасности паролей, которые Вы создаете при настройке нового аккаунта, от «слабый» до «сильный». Они также советуют Вам использовать сочетание прописных и заглавных букв вместе с цифрами для создания более безопасного пароля. Впрочем, как бы ни были хороши все эти советы, они не смогут точно сказать Вам, какой должен быть порядок таких сочетаний.
По счастливой случайности, оказалось, что почти каждый из нас склонен ставить заглавные буквы в начале пароля, а цифры – в конце. Такая закономерность была установлена группой экспертов по безопасности, которые работают во французском исследовательском институте Eurecom.
Результаты их исследования, представленные на последней конференции ACM по безопасности компьютеров и коммуникаций в Денвере, показали, что мы не совсем понимаем, что представляет собой безопасный пароль, и это непонимание несет угрозу нашей конфиденциальности.
Программы, традиционно используемые кибер-преступниками для подбора паролей, обрабатывают определенные комбинации паролей до тех пор, пока не найдут подходящего пользователя.
Однако современные методы не основаны на случайных предположениях. Преступники теперь могут обучать программное обеспечение с помощью огромных списков паролей (например, как пароли 130 млн. пользователей Adobe, которые были украдены в 2013 году), что позволяет находить наиболее часто используемые комбинации. Такой метод позволяет им получить более реальный шанс успешного завершения своих атак.
Отталкиваясь от данной предпосылки, эксперты использовали программу (подобно той, что используют преступники) для анализа свыше 10 миллионов паролей. Такая работа была проделана с той целью, чтобы составить список тех паролей, которые преступники могут наиболее просто подобрать.
В отчете описываются некоторые наборы паролей, которые были слиты в интернет в недалеком прошлом и те наборы, которые будут использоваться в эксперименте (Rockyou, содержащий 32 миллиона паролей, слитый в 2009 году; Xato – 10 миллионов паролей, появившихся на сайте Xato.net в феврале этого года).
Также описываются три модели для подбора пароля (или три алгоритма взлома пароля):
1) Использование N-грамм – последовательностей из N элементов. В статье используются 1-грамма, 2-грамма, 3-грамма, 4-грамма.
2) Использование стохастической контекстно-свободной грамматики (PCFGs)
3) Дисконтная модель Катца («Backoff»)
На рисунке показана зависимость вероятности подбора пароля (ось ординат) в процентах от количества попыток (ось абсцисс) в пределах от 2^0 = 1 до 2^80 = 1208925819614629174706176 итераций. Используются три описанные выше модели. Обучение производится по набору Xato, проверка осуществляется на наборе Rockyou. Чем правее и ниже располагается график, тем хуже соответствующая модель в плане быстроты отыскания пароля.
На рисунке выше представлена сравнительная характеристика двух моделей атаки: стохастической контекстно-свободной грамматики (PCFGs) и еще одного метода подбора пароля – атака методом составления списка возможных ключей (Dictionary attack). Для данной модели используются специализированный словарь иностранных слов dic-0294 и так называемый словарь Openwall. Результаты показывают, что эффективность подбора пароля для них ниже чем у PCFGs. Обучающий набор Xato, как словарь для данного метода дает лучшие результаты в плане атаки.
На рисунке сравнительная характеристика модели атаки 1-граммы, 2-граммы, 3-граммы и 4-граммы.
На рисунке выше представлен сравнительный график модели атаки PCFGs для различных обучающих наборов (в т.ч. включающие специализированный словарь Openwall).
На рисунке показан сравнительный график результатов работы модели Катца для различных обучающих наборов: Rockyou и Xato и их же с добавлением стартового символа (стартовый символ — специфическая терминология связанная с моделью Катца).
На рисунке выше результаты атаки с помощью модели Катца при различных размерах обучающего множества. 0,1% от всего обучающего набора Xato, 1%, 10% и весь набор Xato (100%).
На рисунке представлены результаты экспериментов на дисконтной модели Катца для различных значений длины слова в обучающем множестве (верхний график): все пароли, пароли длинной >=8, пароли длинной >=10, пароли длинной >=12 и для различных сочетаний символов в паролях (нижний график): без ограничений; цифры и буквы; строчные, прописные буквы, цифры; буквы, цифры и различные символы.
Результатом такой работы стал «индекс предсказуемости», который они протестировали на других 32 миллионах паролей для подтверждения его эффективности. По данным полученных результатов, наименее распространенные пароли были наиболее безопасными. Это означает, что необходимо создавать длинный пароль, который включает в себя еще и символы, а не только заглавные и прописанные буквы.
Отныне целью пользователей должно стать создание таких паролей, которые вообще не предсказуемы, независимо от того, включают они в себя цифры, прописные или заглавные буквы. Авторы исследования заявили, что пароли следует делать длиннее, при необходимости даже добавляя несколько слов.
Данное исследование должно помочь людям быть более осведомленными по вопросам создания новых безопасных паролей, что поможет им еще лучше защитить свои аккаунты. Хотя, к сожалению, авторы не гарантируют «железный» способ создания полностью безопасных паролей, но уверяют, что описанный ими метод все же является самым безопасным на текущий момент.
С другой стороны, исследователи обращают внимание на то, что технологические компании стали меньше внимания уделять паролям, как средствам доступа к аккаунтам, и что они рассматривают альтернативные средства там, где это возможно. При этом постоянно появляются новые способы расшифровки регистрационных данных, в результате чего они становятся все менее защищенными.
Комментарии (38)
cyber-security
30.11.2015 15:28+7Nikobraz
01.12.2015 10:43А от подбора по словарю оно защитит?
ninch
01.12.2015 10:57+1Защитит. Никто не запрещает добавлять числа и имена собственные, знаки препинания, брать длинные известные фразы и менять в них пару слов. «lorem ipsum dolor, and 2 more words»
Scf
01.12.2015 11:02Вся прелесть именно в том, что получается стойкий пароль, даже если атакующий знает его формат и будет подбирать по словарю.
janatem
01.12.2015 12:13От подбора по словарю защитит, точнее всё равно даст заявленную сложность, даже если атакующий знает, что пароль сгенерирован именно так и располагает нужным словарем.
Тем не менее есть нюансы, касающиеся вариаций метода. Когда этот комикс появился, я долго размышлял над ним, предлагаемый метод не совсем очевиден и требует пояснений. Нужно взять небольшой словарь общеупотребительных слов (из приведенных в комиксе цифр можно сделать вывод, что размер словаря всего 2к слов), выбрать стохастически четыре слова из него и использовать в точности их в качестве пароля. В этом случае будет получена заявленная сложность (44 бита энтропии). Если выбирать слова для пароля более придирчиво, например, отбрасывать непонравившиеся и заменять их своими или сгенерированными заново, то полученная сложность может оказаться ниже заявленной. Впрочем, простое добавление слов и символов к сгенерированным словам не должно ухудшить сложность.
ploop
01.12.2015 12:19+3… и наткнуться на «пароль не может быть длиннее 10 символов, а так же содержать знаки препинания и пробелы» :)
ninch
01.12.2015 12:20+4Что в переводе на человеческий означает «мы храним ваш пароль в открытом виде».
ploop
01.12.2015 12:23Придётся мириться, если сервис нужен, хоть временно. Потому пока для себя нашел единственный выход — менеджер паролей (конкретно KeePassX), и генератор там есть, и удобный очень.
ninch
01.12.2015 12:29+1Я не доверяю менеджерам паролей. Себе я придумал максимально сложный мастер-пароль, подходящий под распространённые условия (точнее два его варианта, под совсем изуверские и под более-менее терпимые), и модифицирую его под конкретный ресурс по заданным правилам. Требуется помнить лишь этот мастер и правила, вместо чесания в затылке или копания в менеджере на лету генерируется нужный.
ComodoHacker
01.12.2015 13:53Если будут скомпрометированы хотя бы два из ваших паролей, шаблон станет очевидным для злоумышленника. Придется менять все. Даже если скомпрометирован только один пароль, поменять его будет проблемой. Чтобы не отказываться от метода, нужно будет поменять его на довольно похожий.
В этом слабость вашего метода, в отличие от менеджера паролей и случайной генерации.ninch
01.12.2015 14:02Нет, если набор правил сколько-нибудь сложнее «дописать первую букву домена к мастеру». Это во-первых, а во-вторых, даже с таким простейшим правилом вы в безопасности с точки зрения автоматических анализов слитых баз, то есть при типичном сценарии. А от умного хакера с индивидуальным подходом вручную вас в итоге ничего не спасёт.
А слабость вашего метода в единой точке отказа, и такие отказы с менеджерами уже случались, и это мы только про компрометацию говорим, опуская возможные технические проблемы и неудобства.ComodoHacker
01.12.2015 16:02даже с таким простейшим правилом вы в безопасности с точки зрения автоматических анализов слитых баз
Ненадолго, я полагаю. Методы анализа сейчас активно развиваются. Думаю, в будущем они будут легко находить и сопоставлять пароли, полученные из одного мастера.
А слабость вашего метода в единой точке отказа
Да, этого я не отрицал.
ComodoHacker
01.12.2015 13:48В данном случае, если не ошибаюсь, метод N-грамм будет щелкать такие пароли как орехи.
С появлением возможности анализировать миллионы слитых паролей этот комикс несколько устарел, при всем уважении к xkcd. В этом основной смысл сабжевого исследования.
shoorick
01.12.2015 19:59На каком-то известном сайте (с ходу не вспомню) я как-то попробовал шутки ради завести себе юзера с паролем correct horse battery staple — не смог. Сайт не принял пароль, сообщив что-то вроде «не следует понимать комиксы буквально».
ploop
01.12.2015 20:35не следует понимать комиксы буквально
Да, разработчики с юмором были. Однако пароль-то прочитали :) Хотя, возможно, просто хэш от этой фразы сравнивали.
toper
01.12.2015 09:47Я по привычке ждал ссылку на очередной онлайн сервис для проверки пароля на предсказуемость в конце статьи.
Scf
01.12.2015 10:58Мораль — ставьте единичку в начало пароля, а не в конец)
А если серьезно — программистам, не юзающим хеширование с солью (даешь bcrypt!), нет оправдания. Кроме доработки старой системы, но и там возможны варианты.
В качестве дешевого и сердитого варианта я использую OTTP пароли через Google Authenticator — есть и сайты, которые его поддерживают, и библиотеки для написания своего софта с совместимой авторизацией. Правда, безопасен он только для тех, кто никогда не логинится с телефона, на котором установлен Google Authenticator.vlreshet
01.12.2015 12:06По поводу хэширования без соли и bcrypt — вот смотрите, я, допустим, использую старый добрый sha1 в 2^20 раундов (пароль хэшируется 2^20 раз). Насколько я знаю — похожий принцип используют роутеры при handshake. Какие тут могут быть опасности? Радужными таблицами такое не вскроешь, а брутфорсить не получится даже обычный sha1, не говоря о 2^20 раундах.
Scf
01.12.2015 12:33+2— если у двух пользователей одинаковые пароли, то и хеши у них будут одинаковые. Т.е. если хакеры слили базу паролей, то посчитав хеши по 1000 самых популярных паролей, они сразу смогут найти пользователей, у которых такие пароли. При наличии соли каждого пользователя пришлось бы брутить индивидуально
— простой sha1 плох тем, что в современных процессорах есть аппаратная поддержка этого хеша. Т.е. на разных системах скорость расчета хеша может отличаться на порядки, что усложняет выбор количества раундов — и чтобы было безопасно, и чтобы ресурсы сервера экономить.
rtzra
01.12.2015 12:11Когда мне нужны пароли, я делаю просто:
# sudo apt-get install pwgen
# pwgen -s 25 150
и выбираю какой попадется под рукуtruekenny
01.12.2015 12:26Решетка в начале команды и так говорит, что выполнение идёт из-под root. sudo излишне.
ploop
01.12.2015 12:29Чем мне нравится pwgen, так это тем, что он не генерит рандомную строку, а составляет её из отдельных слогов или частей слов, часто в рифму. Бывают довольно прикольные строки, которые просто ради смеха на раз запоминаются.
Scf
01.12.2015 12:43+1А мне он не нравится именно этим. Т.к. в мануале не написано, сколько же бит энтропии содержат такие пароли.
Zenogears
ssh уже давно по ключикам работает.
А где не по ключику — тот ССЗБ.
Пора бы уже и сайтам генерировать ключики для пользователей…
Указал на директорию с ключами — и всё ок, по https шифруем и заходим. И нет проблем с запоминанием over 100500 криптостойких паролей на каждый сайтик.
А то такими темпами и утечками паролей, к 2038 году будет единая база с паролями, с помощью которой оный можно будет подобрать за 30 минут перебора… Ну, это учитывая вычислительные мощности будущего :)
gricom
Тогда придется иметь эту папку на всех устройствах, которую пользователи будут синхронизировать с помощью какого-нибудь сервиса, при взломе которого вы потеряете сразу все аккаунты на всех сервисах
Yaruson
В этом смысле U2F — интересное решение, жаль только что дешёвых токенов нет.
ploop
Нужно что-то аппаратное и
с блютусомбеспроводное.gricom
и кнопка
забыл парольпотерял брелокAndrii_Z
Yubico Neo, U2F c NFC
Lirein
А как же Rutoken ЭЦП BlueTooth?
Sild
С этим поможет справится список одноразовых паролей. Наподобии тех, что выдаются банкоматами. Зашёл с незнакомого устройства — вводи одноразовый пароль — получай ключик на новое устройство.
Да и к тому же… У меня всего 3 устройства, с которых я регулярно посещаю ресурсы, на которых зарегистрирован. А у вас?
semmaxim
Это ещё вопрос, что надёжнее — обычный файлик на компе или нигде не записанная последовательность символов.
Nikobraz
файлик зашифрованный нигде не записанной последовательностью символов.
semmaxim
Ну а зачем тогда вообще файлики, если можно использовать последовательность символов напрямую? Расшифровать файлы с ключами будет не сложнее, чем собственно сам пароль.
Nikobraz
Двухфакторная аутентификация. Если уйдет файл ключа, то они будут защищены паролем. Если уйдет пароль, то без ключа он бесполезен, а ключ на физическом носителе.
vlreshet
И вирусы ищущие ssh ключи повалят тоннами. Чрезвычайно упростит задачу злоумышленникам.
mjr27
> Указал директорию с ключами
Зашифрованную ключом 12345, потому что другие лень запоминать. Да и то, в случае внезапной смерти винта оно не спасёт отца русской демократии.
RSA SecurID брелки — пока лучшее из того, что я видел.