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 году переписал свои стандарты: они официально запретили заставлять людей часто менять пароли, запретили требовать спецсимволы и рекомендовали просто использовать длинные понятные фразы (например, правильный-конь-батарея-скрепка).

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

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

Вот он писал:

что 8 символов считалось безопасным во времена аськи

скорее всего он пишет не только про «времена» но и вообще вспоминает пароли от icq-аккаунтов, а там никакого sha256 не было, более того они вроде вообще в plaintext хранились. И те 8 символов были не для защиты от подбора хеша, а для защиты от подбора флудом запросами на логин (в комбинации с тем фактом, что юзеры обычно ставят в пароли всякую нерандомную чушь). И сейчас во многих местах plaintext, думаю, впрочем на что это влияет?

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

беглый гуглеж дает разные от оценки среднего активного словарного запаса. Где-то оценивают в 10к, где-то дают разброс 5к-20к, где-то у выпускника средней школы оценивают в 2.5-5к. А личные аккаунты и необходимость в паролях появляется лет с 10 наверное

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

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

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

Дальше, поняв, как считать (что на что умножать и делить), он уже может взять более конкретный интересующий алгоритм, более конкретный интересующий GPU, количество оных. И всё такое прочее. Если захочет. Главное понять принцип на простом примере.

Я даже не знаю, где вообще используется sha256(password) для хранения пароля, и зачем потенциальному взломщику может потребоваться его брутфорсить.

Нигде и низачем. Это, так сказать, идеальные для взломщика условия. Понятное дело, что на деле будет использован более сложный алгоритм, возможно цепочка. И много прочих условий. Но такое упрощение, опять же, позволяет оценить масштаб. Например, это позволяет понять, что пароль из 12 случайных символов или 5 случайных слов на одном потребительском GPU всё ещё не взламывается.

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

где-то у выпускника средней школы оценивают в 2.5-5к

Что-то прям сомнительно… Может это не среднее, а минимальное?

Ну то есть, я могу представить такого выпускника средней школы. Отчётливо, причём. Скорее всего тут после средней в смысле после 9-го класса выпустился, а не 11-го — и сразу в армию, а среди этих слов будут наиболее частотными такие как «лох», «гони», «очко» и тому подобное… Тогда очень может быть :)

А личные аккаунты и необходимость в паролях появляется лет с 10 наверное

Да, в 10 лет активный словарь полюбому меньше, тут не поспоришь. Ну, это решается, опять же, случайным выбором слов, а не выдумыванием из головы. Запомнить 5 (или даже 7) случайных слов из «простых» (словаря на 10к, самого базового) 10-летний сможет без затруднений (ему это даже проще, чем взрослому).

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

Понятное дело, что на деле будет использован более сложный алгоритм,

А вот и не понятное. На деле может быть plaintext. Надо сразу отделить два сценария - пароль к локальному устройству и пароль к внешнему сервису. Первый случай не так интересен, рассмотрим второй.

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

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

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

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

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

Кроме того, пароли могут хоть и храниться в базе хешированными, но при этом в каких-нить логах post-запросов (или ещё каких-то) быть plaintext.

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

Возможно, в 1990-х такое и было, но там не было нужды в регистрации. Но назови хоть один современный ресурс, хранящий пароли в открытом виде.

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

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

Зачем? Сравнить хеш нельзя?

Кроме того, пароли могут хоть и храниться в базе хешированными, но при этом в каких-нить логах post-запросов (или ещё каких-то) быть plaintext.

И на всех серверах по умолчанию включено такое логирование. КСЖ.

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

Владельцы ресурсов обычно не отчитываются общественности как они что хранят.

В 90-х такое было почти везде, в 2000-х - много где. Сейчас, вероятно, не много, но точно есть. В ширпотребных движкам, на которых почти все сайты сделаны, пароли шифруются, да.

Зачем? Сравнить хеш нельзя?

Что значит «сравнить хеш»? Представь у тебя один кусок сервиса хранит, условно, в sha1, второй в sha256. И ты хочешь иметь возможность добавить третий, в котором ты заранее не знаешь как будет храниться пароль, и при этом не заставлять юзеров что-то делать чтоб этот пароль в третьем формате сгенерировать. Лезть в код этих кусков и что-то там исправлять ты, например, не можешь (например они написаны на перле или расте, а ты знаешь только пхп, на котором пишешь общую управляющую логику и склеивание всего этого в что-то целое).

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

Если про русский язык, то слов или словоформ? Перебор по словарю подразумевает, что «ворон» и «ворону» разные слова.

в паролях появляется лет с 10 наверное

Один мой знакомый рассказывал, (ещё в СССР), что как-то они играли семьёй в угадай слово. Ну там первая, последняя буква, число букв и т.д. Никто не смог отгадать, что загадала его 8-9 летняя сестрёнка (часть автомобиля): «МОРТИЗАТОР».

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

Любой школьник уже с нулевых ставит fail2ban или подобное после 3х попыток. Какой ещё онлаин подбор паролей.. Тебе фирках своего чая налил чтоли? Не пей его, там шыза.

ant1 ★
()

Эту концепцию в 2003 году

Требование минимум 7 или 8 знаков и хотя бы одна цифра — вобще из прошлого века. И ограничение срока действия пароля тоже с незапамятных времён. Не знаю, что там Bill Burr придумал, просто конкретизировал итак существовавшие на то время правила.

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

А ограничение на длину пароля везде убрано? Фразы рекомендовали разные или на всё один пароль? ИМХО, самая большая проблема, что пользователь в кучу мест или вобще везде один пароль ставит.

официально запретили заставлять

Это «официально» какими-то законами закреплено? Штраф/тюрьма за нарушение?

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

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

Нормально запоминают при ежедневном использовании, имхо дело в нежелании запоминать.

anc ★★★★★
()

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

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

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

Да, и про парольные фразы жиза. Я хочу их использовать, но примерно каждый первый сайт подсвечивает поле ввода красным и начинает требовать те самые спецсимволы. Ненавижу.

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

при ежедневном использовании

Кто же их ежедневно использует, без выходных, отпусков, больничных?

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

Можно как-то твои сообщения сдампить? Вроде был какой-то дамп ЛОР-а у нейрослопера с его нейроябедой. Интересно реально глянуть что и как по словам у разных людей, чтоб не быть голословным.

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

Плейнтекст в облаке — очень плохая идея. Облако рано или поздно взломают через какую-то уязвимость и утащат пароли юзеров. Юзеры пароли конечно не все сменят, даже если ты им письмо напишешь, многим просто пофиг будет. А затем злоумышленник от имени какого-то юзера совершит противоправные действия, карающиеся УК. А дальше по логам всё будет хорошо — пароль верный, юзер виновен.

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

А зачем мне ежедневный пароль от самбы или даже почты? В самбе я один раз его настрою и буду без пароля заходть, правда потом устройство когда сбросится/изменится будет неприятно. В почте галку ставят помнить и тоже месяц или сколько там кука держится пароль не вводят. Проблема в том, что мест куда вводить пароли жопой жуй. У меня, дома, например: оффтпик 2 штука, линукс 1 штука, gitea, самба, пароль от андроида, пароль от самбы, пароль от роутера. И это только те пароли, что локально стоят физически у меня дома. Есть ещё от банков, от сайтов, от госуслуг, от почты, от всякого говна по работе. Пароли, пароли, кругом одни пароли. Итого их штук 50, наверное. На память я помню не больше десятка. А поскольку линуксовое хранилище паролей полное говно, то приходится их писать ручкой в тетрадку, которая лежит в условно-недоступном месте. Понятно что если ограбят, то её уведут и будет очень плохо. Спасает только то, что я никому не нужен, живу небогато, брать нечего и почти 24/7 дома, так что если и будут грабить, то скорее всего убьют и будет пофиг на последствия.

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

приходится их писать ручкой в тетрадку

Вы их хоть как-то шифруете, типа N случайных символов перед паролем, M случайных после?

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