LINUX.ORG.RU
Форум — Admin  

Историческая история про пароли и требования к ним...

 компьютерная безопасность


0

1

Научно доказано: дурацкие правила сложности делают систему МЕНЕЕ безопасной.

Классический пример — требование «минимум 8 знаков, заглавная, строчная, цифра, спецсимвол и менять каждые 90 дней».

Кто этот «гений»? У него есть имя.

Эту концепцию в 2003 году придумал Билл Бёрр (Bill Burr) — менеджер американского Национального института стандартов и технологий (NIST). Он написал методичку SP 800-63, из которой эти правила расползлись по всей планете.

Знаете, что самое смешное? В 2017 году 72-летний Бёрр дал интервью The Wall Street Journal и публично извинился перед всем человечеством. Он признался, что:

  1. Он не был экспертом по безопасности и написал эти правила просто «из головы», опираясь на примитивную математику 80-х годов.

  2. Он вообще не учитывал человеческую психологию.

  3. Он искренне сожалеет о том, сколько нервов испортил людям по всему миру.

Почему эти правила ДЕЛАЮТ ВСЁ ХУЖЕ?

Потому что инженер по ИБ считает, что человек — это генератор случайных чисел. А человек — это биологическое существо, которое ищет путь наименьшего сопротивления.

В теории безопасника: пароль со спецсимволом — это непредсказуемая энтропия вроде xK#9!mQ2$z.

В реальности человека: пароль превращается в Password1 или Spring2024. А когда система требует менять его каждые 3 месяца, человек просто меняет цифру. Скрипты перебора взламывают это за полсекунды.

Главный финал: когда мозг человека перегружен требованием помнить пять разных паролей с символами и случайными кнопками, он записывает их на стикер и клеит прямо на монитор. Безопасность максимальная!

Эпилог: Сам институт NIST ещё в 2017 году переписал свои стандарты: они официально запретили заставлять людей часто менять пароли, запретили требовать спецсимволы и рекомендовали просто использовать длинные понятные фразы (например, правильный-конь-батарея-скрепка).

★★★★★

Один знакомый когда-то во всеуслышание сообщил, что пароль у него «чижик-пыжик где ты был», и что мы подохнем от старости раньше, чем угадаем, какие и где там есть знаки препинания, смены регистра, умышленные ошибки и переключения раскладки. Как-то так и надо, кмк.

thesis ★★★★★
()
Ответ на: комментарий от Aceler

А вот тут уже я не понял. Что «остальное»? Кто будет форсить «обязательные» и даже «просто необходимые» пины в домофонах? Тот кто ими торгует или тот кто их покупает. Я так и написал собственно.

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

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

firkax ★★★★★
()
Ответ на: комментарий от thesis

единственный гимор от смены раскладки… иногда бывает необходимо ввести на «экранной клавитуре» и тут «креативизм программаторов» этих клавитур зашкаливает ))) А помнить «символ в символ» схему смены раскладки уже становится совсем не весело )))

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

Предложение запомнить способен любой

Запомнить может, вспомнить не всегда может :)

anc ★★★★★
()

Как зовут собаку Билла? Теперь имеем 2 ответа.

Я вот никогда не понимал эти 5 обычных слов в пароле. Они же взламываются обычным перебором на GPU за сутки (инфа из 2013).

ant1 ★
()
Ответ на: комментарий от firkax

Ну это и есть тот вариант который и написал я. Вполне хороший вариант,

а вот все фантазии «а я потеряю и мне еще бесплатно дадут» (С) кончаются совсем неожиданно )))

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

хз почему их так стали называть

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

James_Holden ★★★★★
()
Ответ на: комментарий от psv1967

иногда бывает необходимо ввести на «экранной клавитуре»

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

thesis ★★★★★
()
Ответ на: комментарий от ant1

Ты путаешь взлом хеша пароля с подбором пароля. Для второго никакие GPU не помогут, скорость ограничена скоростью работы софта, который проверяет пароль и, если это по сети, ещё и скоростью сети + айпибанами после неверных попыток.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Не понял. В каждой ситуации со взломом у тебя есть шанс делать это оффлаин по словарю (или радужным таблицам, что там в моде, я этим не занимался после 2013).

ant1 ★
()
Ответ на: комментарий от psv1967

Ps для интернет ресурсов увы проблема «в диком числе сервисов» и все равно понадобится менеджер паролей. В сотне сервисов запутается любой мнемотехник ((.

Для них, кмк, хорошо работает агрегатор. Какой-нибудь яндексо-вк, на остальное ходить только через него. Ну и госуслуги для официальных каналов.

Так что «не менее восьми слов» в пароле и вопрос о стойкости к перебору можно закрыть.

Все же придерусь. Почему 8, а не 9? Или 7? Идея понятна: алфавит можно оценить в 150-200 символов, тогда как словарь а 300к+ общеразговорный, плюс спец термины. Но там начнется: строчки из песен, в целом согласованность слов (выстраивание в предложения). У меня есть отдельный пункт: я просто обожаю делать опечатки, так что хрен я смогу 8 слов написать правильно не подглядывая. Иной раз и в 8 буквах ошибёшься. Я к тому, что мы вплотную подошли использованию электронных ключей, сканеров отпечатков пальцев и прочего.

bbc69
()
Ответ на: комментарий от ant1

Я вот никогда не понимал эти 5 обычных слов в пароле. Они же взламываются обычным перебором на GPU за сутки (инфа из 2013).

Это если у тебя хэш есть. Ну и, собственно, если это так (я без понятия, не проверял, сколько там в секунду), то сгенерированный пароль из 11 или 12 случайных символов — тоже взламывается на том же GPU за сутки.

Ясное дело, что пароль именно из генератора, состоящий из 32, например, случайных символов, будет надёжнее. Но проблема с этим собственно описана в ОП — юзер его тупо приклеит на монитор.

Поэтому пароль из пяти обычных слов — это неплохой компромисс. Это намного надёжнее, чем пароль из 8 случайных символов с озвученными требованиями — даже если он сгенерирован. А если пароль с этими дебильными требованиями предложено придумать самому юзеру, то там уже надёжность стремится к нулю. Вот тут и получается, что из слов лучше.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от ant1

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

firkax ★★★★★
()
Ответ на: комментарий от ant1

Не понял. В каждой ситуации со взломом у тебя есть шанс делать это оффлаин

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от bbc69

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

Предложения, в принципе, тоже можно, но они должны быть значительно длиннее.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Нифига не получается. Рандом из 8-10 знаков со спецсимволами не взламывется примерно никогда, если не брать суперкомплуктор. А 5 слов тупо по словарю за сутки уже 20 лет назад.

ant1 ★
()
Ответ на: комментарий от ant1

ну пиши меньше, будешь помнить что написал и на что тебе ответили из написанного ))

Энтропия 1 слова из словаря в 10 000: 13,3

Энтропия 1 слова из словаря в 100 000: 16,6 бита

В масштабе 5 слов:

С простыми понятными словами пароль даёт ~66 бит чистой энтропии слов.

С монстрами из полного академического словаря — ~83 бита.

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от ant1

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

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от ant1

Бред не пиши. Я выше уже посчитал. Но можешь посчитать сам для любого количества символов и слов.

Рандом из 8 знаков — это примерно 10¹⁴ различных вариантов.

4 рандомных слова из словаря в 10к слов (активный словарь нормального человека обычно больше) — это уже 10¹⁶, то есть, взломать в 100 раз сложнее. 5 рандомных слов — ещё в 10000 раз сложнее.

Количество возможных комбинаций из 5 случайных слов больше, чем из 11 случайных символов, но меньше, чем из 12 случайных символов.

Здесь очень простая математика, надо не читать непонятно где какие-то рандомные байки, а взять и посчитать.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от ant1

И какой дурак этим подбором будет заниматься?

Мотивированный?..

Много есть дураков. Очень много.

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

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

CrX ★★★★★
()
Ответ на: комментарий от ant1

ну вот и ? кто был особенно прав в нашей высокоученой дискуссии ?

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от bbc69

Что-то мне это напоминает. Ну например не использовать слова, а использовать случайные символы.

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

CrX ★★★★★
()
Ответ на: комментарий от bbc69

ага «100000 символов» например … но только которые ты действительно помнишь , потому что это «слова из словаря твоего родного языка», а не какая то «непонятная чушь» )))

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от ant1

Я конечно в этой вашей безопасности не алë, но помню, что 8 символов считалось безопасным во времена аськи. Потом было безопасно 12 символов. Сейчас и не знаю: не то 16, не то 32. А 8 сейчас должны любым современным компом ломаться.

Короче, я не прочь просветиться на этот счет. Кратенько.

bbc69
()
Ответ на: комментарий от bbc69

Короче, я не прочь просветиться на этот счет. Кратенько.

Как считать, я тебе выше уже написал. Легко же.

А дальше уже просто выясняешь, сколько конкретный GPU может проверить за секунду, и делишь одно на другое. Не rocket science вроде.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Ну вот я по памяти и выдаю: раньше компы были слабенькие и 8 символов было норм, потом стали мощные и стало не норм.

Это что же получается, я всю жизнь в обмане жил?

bbc69
()
Ответ на: комментарий от psv1967

И заодно @CrX:

А короткие последовательности случайных слов — относительно легко.

Да, наверное. Звучит логично: человеку запомнить легко, а машине проверять сложно.

bbc69
()
Ответ на: комментарий от bbc69

Оно считается «в энтропии». Иначе за кадром остается размер алфавита для букв или словаря для слов. Для слова log2(размер словаря).

Стандарт говорит что стойкий пароль это начиная с 70 бит.

Одинаковый разделитель + базовый словарь (10k слов) – 10000^5 * 33=3,3 * 10^21 что около 71.5 бит

Разные разделители + базовый словарь (10k слов) — около 86 бит

Разные разделители + большой словарь (60k слов) – около 99 бит

Если взламывается старый быстрый хэш (например, NTLM или MD5) на ферме из мощных видеокарт (перебор со скоростью 10^12 комбинаций в секунду):

Сценарий 1 (минимальный): перебор займет ~104 года непрерывной работы.

Сценарий 2: перебор займет ~3,7 миллиона лет

Сценарий 3 практического интереса совсем не представляет )))

PS Практически увы кривые либы могут обрезать пароль на 72 байта для его уникод представления.

psv1967 ★★★★★
() автор топика
Последнее исправление: psv1967 (всего исправлений: 1)
Ответ на: комментарий от bbc69

Нет, почему, всё так.

Ну давай прикинем. Возьмём sha256 и RTX 5070 или 5080. Они могут посчитать примерно 10 миллиардов, 10¹⁰ хэшей в секунду (по порядку величины округляем, там на 5070 что-то типа 7 миллиардов, а на 5080 что-то тип 12 миллиардов, возьмём среднее и круглое, чисто порядки считаем). 8 символов — это 10¹⁴ по порядку величины. То есть, время взлома по порядку величины — 10⁴ aka десятки тысяч секунд. То есть от 3 до 30 часов — адекватное время, не норм, не безопасно.

11 символов — это чуть меньше, чем 10²⁰ по порядку величины. Соответственно, взламывать надо будет 10¹⁰ секунд. Или 316 лет. Столько же и пароль из 5 случайных слов (это тоже 10²⁰).

12 символов — это уже 10²¹ по порядку величины. То есть, взламывать надо будет 10¹¹ секунд (опять же, по порядку величины), что составляет около 3000 лет.

То есть да, ты правильно слышал, что когда компы были слабенькими, 8 символов было достаточно безопасно, а теперь уже нет. 11+ символов или 5 случайный слов — безопасно от взлома на отдельном обычном GPU, но от взлома мощностями какого-нибудь гугла или яндекса уже не спасёт (другое дело, что нахер ты им не сдался, столько ресурсов на тебя тратить, но просто для понимания).

CrX ★★★★★
()
Ответ на: комментарий от bbc69

Возьмем KeePassXC и его генератор паролей, умеющий оценивать сложность.

  • !&HaMpV9d,?t6;WPN,SB#_w7_U!A%O.0 = 198,73 bit.

  • жопа-жопа, жоппа жооооопа! = 256.67 bit.

thesis ★★★★★
()
Ответ на: комментарий от bbc69

Опечатки это ничто по сравнению со «сдохшим» ключом в недра которого остались секреты )))

ЗЫ

их даже покупают по уму «только парами», ибо иного бекапа у них нет по принципу «все секретное только внутри ключа без возможности извлечения» ))

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

psv1967 ★★★★★
() автор топика
Последнее исправление: psv1967 (всего исправлений: 1)
Ответ на: комментарий от ant1

И какой дурак этим подбором будет заниматься?

Да любой дурак! Что ты городишь то, посмотри логи любого доступного тебе vps сервера. Там по ssh будет чуть ли не N в секунду попыток подбора пароля по словарю. Без всякого хеша. Какие в попу хеши. Выйди из сумрака в реальный мир, и посмотри что тут.

James_Holden ★★★★★
()
Ответ на: комментарий от bbc69

Все же придерусь. Почему 8, а не 9? Или 7? Идея понятна: алфавит можно оценить в 150-200 символов, тогда как словарь а 300к+ общеразговорный, плюс спец термины.

Да можно и 9 или 7.

Но, если что, во всех рассчётах выше я исходил из того, что слово берётся из словаря всего в 10к слов. Если брать из 300к — ну прибавляй везде по два порядка на каждое слово. Но мне кажется, всё же лучше в сложную и редкоупотребимую лексику не лезть, а то потом будешь вспоминать, каким там был сюрстрёмминг — рибонуклеиновым или дезоксирибонуклеиновым… Проще добавить лишнее слово, но из словаря простых общеупотребимых. Впрочем, можно взять и не 10к и не 300к, а где-то по серединке — это всё уже на усмотрение.

P.S. Алфавит же в рассчётах выше оценивался в 64 символа. Это то, что реально используется в паролях — большие и маленькие буквы и всякие спецсимволы. Можно, конечно, взять 128 (ASCII целиком, включая всякие переводы строки…), но это уже изврат.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от CrX

А откуда это число 10к? Я к тому что вот если человек придумывает пароль, а не пользуется каким-то специализированным генератором, то как будто и словарь будет поменьше(есть активный и пассивный словарный запас) ну и равновероятность разных слов под вопросом

cobold ★★★★★
()
Ответ на: комментарий от CrX

Беда только в том, что если слова человек выбирает, то окажется что он делает это не из 10 000 слов, а хорошо если из пары сотен. Есть такая штука как частота употреблямости слов и там всё грустно. 70% всех слов в любом тексте это 2000 самых употребляемых слов. Ещё грустнее от того, что 70% из них будут первые 200. Я конечно сейчас цифры от балды сказал, но вообще когда-то в эпоху до БЯМ я делал модельку по автоматической сортировке документов. Получилось порядка 85% точности прям с первой попытки в лоб, что меня устраивало для задачи ранжирования. Так вот, я там строил графики частот встречаемых слов когда гипотезы проверял и там всё очень и очень чётко. Всегда выделяется ядро, которое характерно даже для конкретного человека. Т.е. если знаешь кого атакуешь и тупо собрал статстику (документы которые он написал, болтовню которую он сказал, благо сейчас аудио можно автоматически в текст перегонять, флуд в соцсетях), то окажется что перебирать надо даже не 2000 слов, а 200 или 300 любимых.

anonymous
()
Ответ на: комментарий от cobold

«Deep Dive: EFF’s New Wordlists for Random Passphrases» Joseph Bonneau

«The Usability and Security of Passphrases» Lorrie Cranor & Saranga Komanduri

Password Memorability and Security: Empirical Results от Джефф Ян, Росс Андерсон и Алан Блэквелл

PS

На всякий случай поясняю – все работы подчеркивают сохранение и увеличение суммарной стойкости при специально СОКРАЩЕННОМ словаре.

psv1967 ★★★★★
() автор топика
Последнее исправление: psv1967 (всего исправлений: 1)
Ответ на: комментарий от cobold

А откуда это число 10к?

Оценка снизу активного словаря обычного человека. Это обычно «десятки тысяч слов». Понятно, что у разных людей по-разному, но обычно всё же больше, а не меньше.

ну и равновероятность разных слов под вопросом

А вот это верно. Но тут можно воспользоваться рандомом (то есть, пароль всё же генерировать, а не выдумывать просто из головы) — запомнить всё равно будет достаточно легко. Ну или сразу закладываться на то, что словарь меньше, и тогда использовать больше слов в пароле.

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

CrX ★★★★★
()
Ответ на: комментарий от CrX

Для 11 символов есть радужные таблицы. Посчитают на кластере их 316 видеокарт за 1 год, а дальше будут ломать за пару секунд, если уведут хеш или соль+хеш.

anonymous
()
Ответ на: комментарий от anonymous

Беда только в том, что если слова человек выбирает, то окажется что он делает это не из 10 000 слов, а хорошо если из пары сотен.

Да вот как раз примерно из 10к он и будет выбирать. Пара сотен слов — это совсем ни о чём. Знает-то он несколько сотен тысяч слов. Но активно использует из них лишь несколько десятков тысяч — из них и будет выбирать. Какие-то заведомо отбросит, понятное дело. Ну и останется всё равно как раз десяток тысяч на выбор.

Всегда выделяется ядро, которое характерно даже для конкретного человека

Да. Но ты недооцениваешь его объём. Это не сотни слов, а тысячи. Понятно, что есть слова, которые будут употреблены чаще других (например то же слово «будет» полюбому очень частое) — но человек не будет выбирать именно из них. Он будет выбирать из большего пула.

В любом случае, можно просто выбирать генератором случайных чисел из упрощённого словаря.


Я как-то в одном IRC-чатике считал, кто сколько разных слов употребил. Тупо грепал по нику отправителя сообщения, затем все слова приводил в стандартную форму (существительные в единственное число и именительный падеж, глаголы в инфинитив и т.д.), и считал, кто сколько слов употребил больше 5 раз в чате. Получалось как раз 10-30к для достаточно активных участников.

Там, конечно, много недочётов было: слова не на русском языке (отсутствующие в словаре) я тупо выкидывал + делал в тупую, не учитывал контекст (например, слово «бита» будет посчитано как одно слово, а не три, если человек писал «карта бита», «бейсбольная бита» и «два бита информации» — считалось всё как существительное бита, хотя должно было считаться как три: битый, бита, бит). Но всё же порядки один хрен такие получаются.

CrX ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария