Comments 152
Под вечер мысли мудреные приходят, конечно. Изначально это была не защита от онлайн-брутфорса, а от дампа базы паролей и последующего локального перебора. И вот там уже на небольшой gpu ферме из тех ускорителей, которые в майнинге уже даже не нужны, порядка десятков (если не сотен) миллиардов паролей в секунду можно перебрать, если алгоритм какой-нибудь простой, вроде SHA-1.
А так ли мы уж можем доверять ресурсам, что их базу не сольют?
Для полноты, вот расчет для 5090 RTX (cтоимость аренды в облаке $0.255/hr или $6.12/day)
SHA1 .......... 70245.1 MH/s или 6069.2 TH/day
SHA2-512 ... 10048.6 MH/s или 868.2 TH/day
SHA3-512 ..... 6389.5 MH/s или 552.1 TH/day
https://gist.github.com/Chick3nman/09bac0775e6393468c2925c1e1363d5c
То есть за $1 в день вы получаете почти 1 PHash (10^15 хешей)
Для взлома вашего пароля из 10 символов за день нужно 139 GPU и $850 (а не 25 миллиардов лет)
На крупных фермах раньше было до 100 000 GPU, для взлома 12 знаков со спецсимволами потребуется 235 дней (для 13 знаков без спецсимволов 330 дней).
Там же вроде написано, что RTX 5090 считает ~27 гигахэшей в секунду. И тогда получается, что пароль длиной 10 латинских букв одного регистра на домашнем компе за полтора часа.

Если пароль из 10 заглавных и строчных букв + цифр (26 * 2 + 10) — то уже нужно около года (в среднем 6 месяцев).
Если добавляем спецсимволы — тогда у нас алфавит из, условно говоря, 128 символов, и тогда 1 такая карта будет работать до 1400 лет (а 1400 видеокарт 1 год:3 )
Если говорим про весь ASCII (то есть 256 символов), то до полутора миллионов лет, а 100 000 видеокарт — всего 10 лет
Остаётся выяснить, что дороже: аренда кластера из видеокарт на год или проведение разведывательной операции (которая может длиться от 10 секунд до 10 лет и больше).
Хорошо что никто пока не придумал какую‑нибудь движуху, неявно мотивирующую помогать взламывать пароли. Ну типа помогаешь перебирать хэши и тебе за это капает вознаграждение. Типа блокч...
Ой :)
10-буквенный пароль из статьи
Статья начинается с 62-буквенного пароля (большие, маленькие буквы и цифры).
62^10 побольше почти в 6000 раз. Перебор затягивается на год.
Вы правы, я взял как пример пароль только из латинских букв одного регистра. Поправил текст. Однако год — это вполне ещё осязаемое время.
Тут есть тонкость: часто пароли из букв и цифр начинаются на буквы и заканчиваются цифрами, то есть цифры стоят только в конце. И перебор можно начинать именно с этих, наиболее вероятных вариантов. И если пароль имеет цифры только в конце, то тогда мы найдём его гораздо быстрее (предположительно, в среднем где‑то за 1 месяц).
Вообще тема глубокая. Можно найти где‑нибудь большие каталоги утекших паролей, статистически проанализировать и найти корреляции и паттерны, по которым пароли делают наиболее часто, и в первую очередь перебирать те варианты, которые соответствуют наиболее частым паттернам.
По какой-то причине это очень частая проблема при написании статей: ты пытаешься донести до людей, что страдаешь от дурацких требований, сделанных для идиотов, а тебе в ответах доказывают, что идиотов нужно заставлять делать длинные пароли потому, что они идиоты. Ты пытаешься донести, что при создании пароля не применяют даже элементарных способов выяснить, насколько он действительно сложен, и формальные требования "12 символов со спецсимволами" не имеют никакого смысла, потому что даже с этими требованиями можно сделать пароль, который будет взламываться с помощью словарей за минуты. А тебе в ответ пишут, что твой сложный пароль взломают за часы или за месяцы. Если мой пароль сломают за часы, то пароль VladimitPutin1952# сломают за секунды. И я никак не могу понять, это проблема того, что я не могу донести до читателей свою мысль достаточно понятно, или проблема понимания на стороне читателя.
представляю как люди пытаются пароль из непрописываемых знаков набрать.
а потом оно ещё и ругается. потому что хэш был не SHA1, а какой-нибудь argon2
SHA-256 это SHA-2, в исходном комменте говорили про SHA-1, для него и посчитано время. Вы можете 139 GPU использовать 1 день или 1 GPU использовать 139 дней, от перемены мест ... (ну вы поняли).
Если добавляем спецсимволы — тогда у нас алфавит из, условно говоря, ...
95 символов, а не 128, т.к. уже правильно указали 33 символа непечатаемые. А для вскрытия за 1 день вам нужно арендовать всего 9866 GPU (у вас или вашего ChatGPT где-то ошибка в расчетах), никаких 1400 лет там и в помине нет.
Если говорим про весь ASCII (то есть 256 символов)
Весь ASCII это и есть 128 символов, то что вы говорите это Extended ASCII стандарта на который вообще-то не существует, наиболее близкий к "стандарту" вариант это ISO/IEC 8859. Кириллический вариант это 8859-5, но проблема в том что с клавиатуры (особенно мобильной) вы замучаетесь набирать полный список символов, так что реалистично стоит прибавить только прописные и заглавные русские (33*2) и еще символ № (которого нет в ASCII) итого 95+67 = 162 символа. Что при наличии 100 000 GPU ломается за 20 дней 12 часов 18 минут.
Про понимание работы блокчейна я промолчу.
По ссылке есть скорости подбора с солью, разница минимальная. Тут речь уже не про скорость подбора, а про дополнительные факторы защиты. Вам в любом случае как-то нужно получить доступ к хешу пароля и узнать алгоритм хеширования, а там недалеко и до знания как солили пароли (мы же тут адекватные люди и не обсуждаем подбор пароля при логине на сайте)
По ссылке есть скорости подбора с солью, разница минимальная.
Цитату предоставьте, пожалуйста, а то я что-то ничего такого не вижу.
На примере SHA-1
Hash-Mode 100 (
SHA1)
Speed.#1.........: 70245.1 MH/s
Hash-Mode 110 (
sha1($pass.$salt))
Speed.#1.........: 69693.4 MH/s
Hash-Mode 120 (
sha1($salt.$pass))
Speed.#1.........: 53587.0 MH/s
Разница есть, но несущественная.
Соль добавляется в первую очередь для того, чтобы сделать слишком дорогим создание (и хранение) радужных таблиц. Соль не должна быть одна и та же на всём сервере — соль должна быть своя для каждого пароля.
Например (упрощённый!):
User Password Hash
------- -------- ---------------------
vasya Chapaev a34bd98:{md5(a34bd98_Chapaev)}
petya burka 34f2de0:{md5(34f2de0_burka)}
anka pulemet 723fc34:{md5(723fc34_pulemet)}Без соли нужна была бы радужная таблица на 52^7 строк — а с солью нужна уже на (52^7)*(16^7) строк.
Всё верно, я лишь ответил на вопрос про цитату.
Предлагаю сойтись на том, что выше писал @novoselov:
Тут речь уже не про скорость подбора, а про дополнительные факторы защиты
Хотя возможно это я её изначально понял неправильно, т.к. "дополнительные факторы защиты" прочитал как "защита от массового перебора всех слитых хэшей сразу".
"Разработчики, кто имеет минимальный кругозор", наверняка слышали про рекомендации OWASP и вместо SHA используют более подходящие алгоритмы.
По сравнению с вышеуказанными 6389.5 MH/s для SHA3-512, у того же scrypt 7760 H/s. Обращаю внимание на отсутствие M у значения scrypt.
вместо SHA используют более подходящие алгоритмы.
Ви так говорите, как будто одно другому мешает.
Кто вообще использует SHA функцию для хеширования паролей? bcrypt предложили в 1999, argon2 в 2015, мы в 2025. Вы всё ещё хешируете MD5/SHA?
Что-то не в ту сторону стреляем. Попытаюсь понятно для всех...
Попытка в секунду? Сейчас смысла нет перебирать пароли прямо из формы, т.к. при подозрительной активность мамкиного брутфорсера заблочат почти сразу (актуально для +-популярных платформ).
А требования к сложность - это защита от получения паролей из хешей, если злоумышленник получил к ним доступ. Скорость ограничена только количеством доступного железа/электроэнергии. А если твой пароль где-то засветился и попал в базу, то его по хешу восстановят за миллисекунды.
Спец. символы действительно значительно усложняют перебор, т.к. все известные алгоритмы сначала проверяют простые буквенный комбинации, поэтому мат.формулой сложность перебора не посчитать (только сложность самого пароля).
С текущим уровнем мощностей пароли впринцепе изжили себя, никто не будет набирать пароль в 20 символов.
Используем второй фактор везде....
Прямо на сайте пытаться подбирать пароль глупо и никто этим не занимается. Обычно получают доступ к базе хэшей паролей и с ним работают
Требовать спец символы все равно как будто почти не имеет смысла.
У атакующего будет маска пароля, по этому если требование - 8+ символов, хотя-бы 1 спец символ, то перебор начнется с 8 букв и спец символа в конце. А учитывая что (по ощущениям) большая часть пользователей (фактически все чьи пароли я знаю) - ставят спец символ в конце т.к. алгоритм придумывания такой - беру минимальный набор букв, ой тут ещё спец символ требуют, ладно пусть будет решетка, то и увеличение устойчивости пароля будет в массовом случае - небольшое. А вот бесит это сильно)
А требования к сложность - это защита от получения паролей из хешей, если злоумышленник получил к ним доступ.
Если соль подмешивать, не будет тоже самое по сути? По готовой радужной таблице уже ничего не найти. Если хеши считать, то вариантов как именно солить много.
Да, соль конечно же усложняет перебор и значительно... но, как я не раз убеждался...
Среднестатистический админ небольшого тематического сайта обычно не знает что такое хэш пароля, не говоря уже про алгоритм, соль, перец и количество итераций используемые для его создания.
Заполучив полный доступ к такому сайту на популярной CMS (на wordpress, drupal, django и т.д.), злоумышленник как правило получает всё необходимое для взлома хэшей (алгоритмы известны, соль тут же в БД, перец рядом в файлах).
пароли впринцепе изжили себя, никто не будет набирать пароль в 20 символов.
Набираю из головы мастер-пароль длиной ~70 символов за 10 секунд (осмысленная фраза), открывая доступ к базе случайно сгенерированных паролей из 32+ символов и TOTP. ЧЯДНТ?
Буду краток:
1. Забей в поисковик "утечка базы LastPass"
2. Забей в поисковик "кейлоггеры"
П.С. Не удобно же каждый раз вбивать? А на мобилке?
ЧЯДНТ?
«Брелок сущ. — маленькая штуковина, предоставляющая вам возможность потерять все ключи одновременно» ©
Спецсимволы не отличаются ничем от обычных символов для действительно случайного пароля. Для действительрно случайного пароля это просто дополнительный символ, который увеличивает длину словаря. Я пытался донести мысль, что попытки заставить идиотов сделать сложные пароли требуя бОльшую длину и использование спецсимволов, не работают - они всё равно будут делать ненадёжные пароли типа VladimirPutin1952#, которые с помощью словаря будут ломаться достаточно легко, но при этом эти требования усложняют жизнь мне, потому что мой действительно сложный пароль, не проходит их требования. В очередной раз убеждаюсь, что у меня не получается донести мысль до людей, которые меня читают.
Мысль то ясна. Но проблема спец. символов - это только крупинка в проблемах паролей.
Все эти требования к сложности, сроку действия, уникальности для разных площадок, условно-простой компрометации и т.д.
Они в-принципе изжили себя, как удобный и безопасный способ авторизации для масс. сервисов.
Поэтому нудеть по поводу требования вводить спец. символы при наличии остальных проблем, ну такое.
Примеры:
- как моей соседке-пенсионерке Марии Ивановне запомнить безопасный пароль от госуслуг (n0V&+1*7k-h) и другой пароль от ЛК горэнергосбыта (bnPfdPr0(_~q) и еще с десяток сервисов - никак
- как ей объяснить, что там 0, а не О и она неправильно записала пароль у себя в блокноте - сложно, но можно
- как донести, что надо менять свой пароль каждые 3 месяца, а не использовать один везде в течении 10 лет - все понимают, но не исполняют
- как объяснить, что пароль Маша1952 не безопасный и его не надо использовать на всех площадках - запретить такой пароль на площадке и указать на причины
Поэтому "МарияИвановна1952+" выглядит в любом случае "безопаснее", чем "Маша1952", или "МарияИвановна1952".
По мне надо вообще отказаться от этой истерии с паролями, а перейти на более удобные и надежные средства авторизации. Телеграммы и всякие Максы не просят никаких паролей.
П.С. Не рассматриваем использование паролей для спец. систем (например для доступа к СУБД внутри компании) - там всё таки специалисты (надеемся) работают и что-то слышали о безопасности.
"МарияИвановна1952+" выглядит в любом случае "безопаснее", чем "Маша1952"
Вот в этом и заключается проблема: поле для ввода пароля в огромном количестве интерфейсов искусственно ограничено по длине. Я был бы и рад избрать 40-символьный пароль — да не дают ввести!
В каком смысле пароли изжили себя? Я, при подключении к своему серверу по ssh, использую пароль. Вы хотите, чтобы вместо этого мне на телефон приходила смс? Я сразу поменяю провайдера. И буду менять до тех пор, пока в мире останется хотя бы один сервис, который оставил подключение по паролю.
Я же отметил, что для "масс. сервисов" и ниже "П.С." об этом же. Свой уютный локальный SSH к масс.сервисам не относится.
Да и если конкретно про SSH говорит, то там безопаснее ключи использовать. Как пример непровославный ГитХаб уже давно от паролей отказался при работе с репозиториями, только ключи.
я всё равно не понимаю, почему для масс. сервисов пароли себя изжили? я должен страдать только потому, что мария ивановна не может сделать себе нормальный пароль, или всё таки есть какая-то более разумная причина?
про безопасность ключей для ssh. вы когда передаёте ключ на удалённый сервер по ssh пароль вводите? или у вас есть какой-то особенный способ передачи ключа? ваш пароль к системе хранится на сервере, независимо от того, используете вы ssh ключ или нет.
далее по ssh-ключу. если я хочу подключиться к серверу с другого компа, где не установлен ключ, мне что делать? носить постоянно ключ с собой на флешке? что если флешка будет утеряна или отобрана у меня?
Мария Ивановна же тоже не должна страдать. Раскрутим ситуацию - ей надо купить билет на сайте РЖД, чтобы к внукам съездить...
Система авторизации должна быть одинаково удобна и безопасна для всех пользователей, а не только для гиков, которые способны запоминать 20-ти значные комбинации.
Про ключи SSH. Думаю не стоит в 2025-м году разводить полемику насчёт сравнения безопасности при классическом логин/пароль и ключевом доступе. При использовании ключей как минимум, мы не храним логин/пароль на клиенте, не гоняем его постоянно между клиентом и сервером и т.д.
А пароль также может быть утрачен: забыт, утеряна бумажка, стёрт файл с паролями, похерено хранилище паролей... Поэтому да, можно носить флешку, или облачный ресурс какой-нибудь использовать.
Странно, что есть какая-то священная корова типа ключей SSH, которые вдруг стало нельзя обсуждать? С чего это вдруг? Вот я хожу с ноутбуком, на котором у меня ssh ключи ко всем моим серверам. На выходе из подъезда меня встречают дяди, сажают в машину и забирают мой ноутбук. Далее они вытаскивают из него диск и быстренько получают все мои ключи и логинятся ко всем моим серверам. Всё, конец истории. Можете мне рассказать, в каком месте ssh-ключи увеличили мою безопасности?
ИТ-технологии плохо защищают от физического вмешательства, будь то силовое воздействие, либо социальная инженерия. Фантазировать можно долго, но если есть опасность, что тебя у подъезда стукнут по голове, или жгучая брюнетка с большими глазами подмешает порошок в баре, то нужно обращаться в правоохранительные органы, а не думать о шифровании, или спец-символе в пароле.
ну вот тут не правда. забрать ноут и вытащить ключи - это делается легче лёгкого. достаточно просто украсть ноутбук, даже не надо сажать в машину. а заставить меня рассказать пароль, гораздо сложнее. тут уже мы говорим о пытках.
Во‑первых, если противник опустился до того, что начал физически прессовать человека, то выдавать ему пароль бессмыссленно, потому что как теперь можно верить его слову, что «ты скажи пароль — а мы прекратим тебя мучить»? Не прекратят, даже если выдаст — а раз так, то какой смысл выдавать?
Во‑вторых, на этот случай предусматривается «подпыточный пароль» — выдаёте его, и система его «принимает» — а на деле либо показывет поддельный криптоконтейнер, либо запускает самоликвидацию.
Причём тут опустился? Вас завтра машина с мигалкой у подъезда встретит и заберут у вас ноутбук с ключами. Это совершенно реальная ситуация. Причём для многих людей намного более реальная чем то, что у их провайдера произойдёт утечка хэшей.
Причём тут опустился?
При том, что есть нормы поведения людей. Согласно которым, в частности, пытки запрещены. Следовательно, если оппонент применяет ко мне пытки, то надеяться на его честное слово («выдашь — мы прекратим тебя пытать, чесна‑чесна») может только полный идиот: не прекратят.
Вас завтра машина с мигалкой у подъезда встретит и заберут у вас ноутбук с ключами.
И именно поэтому ключи должны быть в авотхрендостанешь месте.
если тебя у подъезда стукнут по голове, или жгучая брюнетка с большими глазами подмешает порошок в баре, то
...они очевидно не смогут извлечь у меня из мозга пароль!
Далее они вытаскивают из него диск и быстренько получают все мои ключи и логинятся ко всем моим серверам. Всё, конец истории.
На ssh ключи можно навешивать свои пароли (они там зовутся passphrase), и если ваш лаптоп получили без вас, а пароль был установлен на ключе, то они ничего не смогут. А если с вами, то уже без разницы, будете вы выдавать пароли напрямую к серверу или к ключам, когда паяльник уже нагрет.
Зато, если вас утащили без лаптопа, то даже с passphrases без ключа они не доберутся.
Можете мне рассказать, в каком месте ssh-ключи увеличили мою безопасности?
Вот в этом месте и увеличили. Такой себе 2FA, хоть и полностью со стороны клиента.
На ssh ключи можно навешивать свои пароли (они там зовутся passphrase), и если ваш лаптоп получили без вас, а пароль был установлен на ключе, то они ничего не смогут
...после чего возникает вопрос: а нафейхоа в этой схеме лишняя сущность, т.е. собсно ключ?
Чтобы задавать такой вопрос в такой формулировке, нужно вначале обосновать, что эта сущность лишняя. Я не вижу, почему бы ей быть лишней.
нужно вначале обосновать, что эта сущность лишняя.
А, здравствуйте, господин Голдберг!
Картинка зачётная, но от ответа вы ушли.
от ответа вы ушли
Тут за углом дяденька Оккам стоит, бритвочкой поигрывая...
С учётом вашего соседнего комментария, где вы (пусть и неявно) предлагаете всем перейти вместо ключей на набирание 40-символьных паролей, этот дядя угрожает именно вам. Ключ с не сильно сложной защитной фразой имеет безусловные преимущества и по удобству, и по безопасности.
...после чего возникает вопрос: а нафейхоа в этой схеме лишняя сущность, т.е. собсно ключ?
Это вопрос удобства. Что бы не вводить пароль при каждом подключении. Пароль для ключа нужно ввести один раз при загрузке ключа в агента. Ну и это всё же дополнительный фактор аутентификации (не такой себе, а вполне нормальный).
Это вопрос удобства.
Про то, что «удобство vs безопасность» — это «правило рычага для информационных систем», Вы, я так понимаю, не слышали?
Ну вот и интересно, зачем вы настаиваете на жертве безопасности.
Я настаиваю на жертве удобства. Я набираю 40-символьный пароль по многу раз в день — и не облезаю.
Я набираю 40-символьный пароль по многу раз в день — и не облезаю.
Значит, вы в этом уникум и в состоянии сделать то, что всеподавляющее большинство пользователей сделать не в состоянии. Но это само по себе не было бы проблемой, все мы в чём-то уникумы. Проблема, что вы считаете, что все должны уметь такое. А вот это уже деструктивная позиция, которая не должна приниматься в расчёт при выборе подхода, приемлемого (и имеющего преимущество над остальными) хотя бы для большинства.
Проблема, что вы считаете, что все должны уметь такое.
Человек, который не умел запомнить стихотворение «Мороз и солнце, день чудесный, ещё ты дремлешь, друг прелестный, пора, красавица, проснись» (90 символов), имел крайне низкие шансы закончить школу.
И снова это показывает, насколько вы подвержены эффекту "curse of knowledge" ("curse of skills", как бы он ни назывался), абсолютно не понимая, какие проблемы могут быть у других. Именно в этом случае я знаю людей, которые, в остальном успешные "по жизни", 1) забыли напрочь после школы все стихи, и тем более другие точные цитаты из классиков, 2) при набирании подобной цитаты могут ошибиться в орфографии (дремлеш? дремлишь? прелесный? чудестный?), пропустить запятые, 3) банально опечататься раз пять при наборе этой фразы, попав в соседнюю клавишу. Про "крайне низкие шансы закончить школу" - грубая неправда. Заканчивают, и (повторюсь) успешно живут.
(Это я даже ещё не вспоминал, что если хотя бы 2% начнут цитировать одни и те же произведения из школьной программы, то уже они станут типовыми фразами для подбора пароля.)
Пожалуйста, или спуститесь на землю из своих воздушных замков из слоновой кости, или обратитесь к реальности - через научные исследования эргономики и UX.
Про то, что «удобство vs безопасность» — это «правило рычага для информационных систем», Вы, я так понимаю, не слышали?
Откуда вы это поняли? Как в данном случае страдает безопасность?
Они ведь не всегда противоречат друг другу.
Даже если не вводить ключ в агента, то мы имеем:
1) В сетевом взаимодействии ключ гарантирует неутечку рабочего секрета (приватного ключа) при знании парного публичного ключа. "Гарантирует" здесь на том уровне, что найти приватный ключ по публичному - задача на десятки порядков сложнее, чем найти пароль даже при использовании какого-нибудь yescrypt.
2) В локальном, пароль на ключе не восстанавливается кроме, опять же, сложного перебора (сложнее, чем для crypt, хотя и проще, чем вычисление приватного ключа перебором) и может регулярно меняться владельцем.
Как по мне, оба - в безусловный плюс. (Конечно, и минус есть - файл ключа надо носить с собой.)
файл ключа надо носить с собой
А пароль можно носить с собой, даже если Вы полностью голый — и его невозможно получить без Вашего ведома.
И в третий раз повторюсь - перестаньте проецировать на всех свои сверхспособности и обратитесь к реальности. Для большинства людей - а расчёт именно на них, а не на гениев типа вас - запомнить пароль можно только если есть сверхстойкая ассоциация, которая не теряет своей прочности в мозгу за годы. Но таких ассоциаций у среднего человека очень мало, или они представлены не в текстовом виде.
Стихи, как вы предлагаете рядом, такой ассоциацией не являются - даже если помнится основная конструкция, отдельные слова и целые строки забываются и их надо перечитывать.
Вам таки надо познакомиться с реальными наработками по UX.
Я правильно понимаю, что ваше утверждение состоит в следующем: к вам попал мой ноутбук с ключами к серверам. Ключи зашифрованы паролем (passphrase). Вам, имея на руках мои зашифрованные ключи, будет сложнее подобрать пароль к этим ключам, чем подобрать пароль онлайн к моему серверу. Так?
Мне тут ИИ говорит, что если злоумышленнику попал в руки ваш ключ, закрытый паролем, то подбор пароля делается на раз-два, ибо каждый вариант можно однозначно проверить на валидность. Врёт?
Мне тут ИИ говорит, что если злоумышленнику попал в руки ваш ключ, закрытый паролем, то подбор пароля делается на раз-два, ибо каждый вариант можно однозначно проверить на валидность. Врёт?
Говорит не всю правду ;) кмк проверить ключ на валидность можно только попыткой соединения с сервером. Ну, удачи тогда брутфорсить 8 символьный пароль 2 попытки в секунду ;)
Ну, я надеюсь, что openssh делали грамотные люди и в дизайне ключа нет фатального косяка, когда можно расшифровывать в 100 потоков и сразу проверять на base64 ;)
Как проверяется правильность пароля
Есть однозначный метод проверки БЕЗ подключения к серверу.
Зашифрованный приватный ключ содержит:
Зашифрованные данные ключа
Контрольную информацию для проверки правильности расшифровки
Формат OpenSSH (современный)
В файле приватного ключа есть специальная структура:
После расшифровки должна получиться валидная структура данных с определёнными полями
Внутри есть check-bytes — специальные повторяющиеся байты для проверки
Система авторизации должна быть одинаково удобна и безопасна для всех пользователей, а не только для гиков, которые способны запоминать 20-ти значные комбинации.
Вот только не говорите мне, что Мария Ивановна в школе стихотворения не учила и потому не способна запомнить «верность батареи лошадью скрепили»!
1 пароль то она запомнит. Только она будет использовать для всех сайтов. С одного из них база паролей утечет.
Ви так говорите, как будто кто-то абсолютно на каждом из 100500 сайтов использует абсолютно уникальный пароль.
А иначе стойкость 40-символьного пароля определяется механизмом хеширования на древнем сайте с Drupal 1.0.
Ну я, например. Что сложного-то в эпоху компьютеров генерить и сохранять отдельно пароль уникальный для разных сайтов?
Что сложного-то в эпоху компьютеров генерить и сохранять отдельно пароль уникальный для разных сайтов?
Но есть нюанс: сохранять где?
Никаких проблем - в отдельном запароленном файле. Если захотят ломануть конкретно меня, братки или службисты, никакими ухищрениями от них не защититься (картинка про сложный пароль и гаечный ключ). А под стандартные/нестандартные схемы угона паролей не попадает никак.
Перенос между устройствами - ручками прямо зашифрованным файлом. Не так часто оно обновляется.
картинка про сложный пароль и гаечный ключ
Ага-ага, а молодогвардейцев (которые молчали аки рыбы об лёд) выдумала советская пропаганда.
Перенос между устройствами - ручками прямо зашифрованным файлом.
Это при условии, что есть откуда переносить. Почему-то эта мысль крайне тщательно обходит стороной Ваш мыслительный аппарат.
Сарказм обнаружен. Ладно, ответим, как умному:
1) Я же написал, от братков и службистов ухищрениями не защититься. У Вас есть секреты, которые надо сохранить под пытками? Просто не записывайте их.
2)
Это при условии, что есть откуда переносить. Почему-то эта мысль крайне тщательно обходит стороной Ваш мыслительный аппарат.
Мой мыслительный аппарат не догоняет мысль, а куда оно денется, если находится примерно в 10 местах, в том числе в 2 разных облаках, и в двух-трёх физических локациях, в зашифрованном виде, разумеется? Есть некоторый лаг, конечно, но файл обновляется на 1-2 записи между репликациями, риск невелик. ЧЯДНТ, поясните нам с мыслительным аппаратом?
Я же написал, от братков и службистов ухищрениями не защититься. У Вас есть секреты, которые надо сохранить под пытками? Просто не записывайте их.
Так я об этом и талдычу: пароль нигде не записан — он у меня в голове.
2 разных облаках
«В Интернете есть всё. Но не всегда.» ©
и в двух-трёх физических локациях
Похвально редусмотрительно — но всегда ли они легко Вам доступны?
в зашифрованном виде, разумеется?
Зашифрованы он чем? Ой, паролем...
То есть в конце концов имеем уйму избыточных сущностей (дяденька Оккам нервно поигрывает бритвочкой), а заканчивается опять паролем.
Похоже, мы о чём-то разном. Не могли бы Вы сформулировать своё, а не только критиковать моё?
Не могли бы Вы сформулировать своё
Ключ как таковой предотвращает исключительно атаки перебором из Интернета. Каковые элементарно гасятся, например, запретом более N попыток логина в секунду. При локальной атаке безопасность ключа ничуть не выше безопасности пароля, его закрывающего — а тогда зачем нужна лишняя сущность (собственно ключ)?
Ясно. Возможно, тут было непонятно, но лично Вам я уже отвечал пару раз: нет смысла особо защищаться от целевой атаки. Захотят - взломают, не подбором, так гаечным ключом. Моя защита - от атаки по площадям, когда ломают всех, до кого дотянулись, а дальше тырят известные места хранения паролей и всё такое.
непровославный ГитХаб уже давно от паролей отказался при работе с репозиториями, только ключи.
Пароли там есть, но они называются токенами, имеют вид ghp_Длинна1Стр0каБуквИЦифр и их надо специально создавать. У меня такие есть, использую, где ssh ключ не подходит.
всё даже хуже - требуя в пароле обязательно разные группы символов, мы уменьшаем сложность пароля. Например, если в пароле обязательно должны быть цифры, то злоумышленнику надо перебрать только 10 вариантов в последней позиции, если предыдущие были нецифры.
Должно быть просто возможно использовать в пароле заглавные/цифры/ да хоть емодзи, тогда хакеру придется перебирать всё в каждой позиции.
С менеджерами паролей длина пароля становится неважна. А без менеджера запомнить уникальный пароль для каждого ресурса нереально.
Требование спецсимвола это не добавление 12 вариантов к каждому символу парля, а добавление восклицательного знака в конец пароля.
«Годы увещевений специалистов по безопасности о том, что юзеры выбирают слишком простые пароли, дали результат: теперь самый частый пароль — не password, а Password1!» ©
Как не вспомнить это выступление https://youtu.be/aHaBH4LqGsI
Эра password уходит, на смену ей уже идёт passphrase
А я уж надеялся что аппаратные токены(
С токенами как бы проблемы - в идеале:
ресурсы должен несколько токенов поддерживать (иначе что при утере делать)
несколько универсальных совсем токенов. Которые и на айфоне и на андроидах со всеми вариантами дырок, и с NFC лучше тоже и софт должен поддерживать весь (и все обычные браузеры и всякие вебвью и приложения)
и как то решать ситуацию когда человек принципиально не хочет токен но имеет более менее защищенное устройство
Passkeys немного в том направлении идут
Встроенные в мозг, угу.
И открываемые паролем - слепком ауры носителя (при множественных личностях нужны раздельные токены).
Лет через двести, наверно, будут.
Я не очень понимаю зачастую неадекватные стремления к сложности пароля. Ведь ни один вменяемый интерфейс не позволит перебирать пароли: он либо вводит задержки между попытками, либо блокирует учётную запись после нескольких неудачных вводов. Понятно, что я не о таких паролях говорю: admin, password и т.п.
А если злоумышленнику всё же удалось получить хеши, это зачастую означает, что у него уже есть доступ ко всем внутренним ресурсам. В таком случае подбор паролей по хешам теряет смысл — разве что в надежде использовать их на других сайтах.
Поэтому, на мой взгляд, гораздо важнее использовать не один «мегасложный» пароль, а разные пароли для каждого ресурса — вот это на мой взгляд действительно повышает безопасность.
А если злоумышленнику всё же удалось получить хеши, это зачастую означает, что у него уже есть доступ ко всем внутренним ресурсам.
Отнюдь. Конкретно в линуксах, файл /etc/passwd доступен на чтение всем пользователям. Наличие доступа любого пользователя совсем не означает доступа ко всем внутренним ресурсам. Аналогично в более сложных системах с единым каталогом пользователей: проверить пароль может ± любой хост, но доступа ко внутреннем ресурсам может и не быть.
файл /etc/passwd
Хеши хранятся в /etc/shadow же.
cat /etc/shadow
cat: /etc/shadow: Permission denied
Что дальше?
Или /etc/master.passwd на BSD системах, который доступен только руту. /etc/passwd делается из него вырезанием ряда полей.
Или /etc/tcb/$username/shadow при использовании соотв. механизма (ряд линуксовых дистрибутивов), по файлику на юзера.
Есть ещё вариант с сетевыми хранилищами, как LDAP, YP/NIS, NIS+...
В общем, да, в /etc/passwd хэшей больше нет :)
Вот только в /etc/passwd паролей давно уже нет
Зачем нам спецсимволы в паролях?
Спецсимволы в паролях применяются для того, чтобы пользователи чаще применяли шаблонизацию паролей, а также записывали их на различных носителях, и таким образом, авторы политик безопасности втихаря мстят своим компаниям, ослабляя защиту их ИТ-инфраструктуры.
Шокирующе точный ответ))
Сам вспомнил ситуацию, кода меня на первой работе достали требованиями менять пароль каждую неделю, и при этом проверкой на похожесть преидущего - перешёл на использование стороннего расширения которое снимало мою головную боль, но при этом я конечно его на секьюрность проверил гомеопатически, и фактически сильно ослабил уровень безопасности.
Похоже. У нас в офисе (компания 10000+) есть корпоративный циско-вайфай, пароль на нем меняется автоматом каждую неделю, надо выполнять небольшой ритуал на корпоративном портале, чтобы этот пароль получить. ...И есть маленький роутер, воткнутый проводом в эту циску, на котором все, в итоге, и сидят.

Иногда мне кажется, что они просто издеваются
@ispmanager что на это скажете?
Очевидно слабый пароль: 78 повторяется два раза и это наверняка год чьего-нибудь рождения, спецсимволы только в конце, ДСТ это известное сокращение от дисплазии соединительной ткани, собака как в адресе электронной почты, о решётке и подчёркивании и говорить нечего.
1 пароль в секунду? Вы серьёзно? В rtx3090 10 000 универсальных процессоров, частота каждого 1.7 миллиарда тактов в секкнду, за такт универсальный процессор делает больше одной операции. Люди, которые пишут брутфорсеры используют очень изощренные низкоуровневые оптимизации. Вы всё ещё думаете, что ваш виртуальный миллиард лет при одной операции в секунду спасёт ваш пароль? Перемножте эти цифры и добавьте ещё множитель 1 000 000, т.к. есть сервисы совместного подбора паролей и ботнеты из милионов устройств.
Но это не всё, существуют приёмы оприрающиеся на массив предварительно расчитанных данных, всякие радужные таблицы, перебор с использованием словарей и стратегии перебора учитывающих предварительно собранную статистику о человеческом поведении при придумывании паролей, каждая из которых на порядки уменьшает время перебора.
Надежный пароль без спецсимволов, заглавных букв, цифр, знаков препинания и состоящий исключительно из словарных слов - это не 12 и не 15 символов, а, например 12 случайных слов (не стих и не осмысленный текст - это важно) как в мнемонической фразе к кошельку monero.
А если текст в мнемонической фразе состоит из не случайных слов, то вам придётся целую поэму вместо пароля вводить. Не слишком ли?
Я бы сказал, что пароль в принципе плохая защита, особенно если он повторяется га оазных сервисах. А спецсиволы, заглавные и цифры в качнстве требования к паролю служат скорее для рандомизации человеческого поведения при создании пароля и каждое требование позволяет надеяться, что пароль разумной длинны всё ещё будет безопасен.
1 пароль в секунду? Вы серьёзно? В rtx3090 10 000 универсальных процессоров, частота каждого 1.7 миллиарда тактов в секкнду, за такт универсальный процессор делает больше одной операции.
При согласии в принципе, замечу, что современные средства шифрования паролей намеренно рассчитываются на очень дорогую (и по памяти, и по операциям) проверку. Почитайте установочные документы по yescrypt, Argon2 и прочим. Например, для дефолтных параметров yescrypt имеем, на современный x86 не-мобильного типа, около 100мс и 32MB на одну проверку. То есть 10 паролей в секунду на ядро.
Про GPU, ChatGPT мне сказал такое:
Plausible range: ~3 ms → ~30 ms per hash.
A single RTX 5070 might do on the order of 10⁴–10⁵ hashes per second if you run many independent kernels in parallel and memory fits — but because each yescrypt instance needs ~32 MiB working memory, a 12 GB card can only hold ~360 instances in VRAM at once, so concurrency is limited and per-hash throughput drops if you try to run more than VRAM allows. (12 GB / 32 MiB ≈ 384.)
я не проверял, я слишком мало знаю про GPU. Но выглядит достоверно.
Итого ≈3000 в секунду. И это на весьма дорогой современной технике.
Перемножте эти цифры и добавьте ещё множитель 1 000 000, т.к. есть сервисы совместного подбора паролей и ботнеты из милионов устройств.
Эти сервисы и ботнеты будут загружены на много лет вперёд, если мы говорим про обычное использование для украденного с сайта "я и моя собака, а вот прайс на то как я пилю деревья". Если мы говорим про целевую атаку (advanced persistent threat) - да, их купят. Иначе - нет.
Согласен, автор статьи перегибает в другую сторону. Но и говорить, что всё короче, например, 16 символов будет взломано за день-два - совершенно неадекватно.
Такие пароли не выделяются полностью ни даблкликом ни тачем. Не удобно, конечно, но это может оказаться одним и альтернативных способов повышения защиты.
А кто-нибудь знает почему многие сервисы до сих пор не разрешают использовать пробел в пароле?
Для меня это совершеннейшая загадка, никакого логического объявления я найти не могу.
Потому что пробел - это и не цифра, и не буква, а скрытый спецсимвол, не являющийся частью числа или слова. Некоторые сервисы обрезают строку по пробелу или игнорируют пробелы, при двойном клике на пассфразе с пробелом выделится только часть до пробела а не вся фраза. Поэтому, чтобы избежать таких проблем - проще запретить его использовать, рекомендуя заменить нижним подчёркиванием.
Неубедительно.
Пробел - это символ, у него есть код и двоичное представление. Пароль - это не слово и не число, при чём тут это.
Некоторые сервисы обрезают строку по пробелу или игнорируют пробелы
Почему? Логин и пароль одним обработчиком обрабатывают?
И опять же, зачем? Про копирование по клику даже не смешно, половина спецсимволов ведёт себя так же.
Так что эти причины нелогичные тоже, увы.
Я понимаю, если бы, гипотетически, пробел ослаблял шифрование или там у коллизии приводил, хоть какая-то логика была бы. Так нет...
Мне кажется проблема может быть в том что пробелов на самом деле много, на википедии приведены аж 18, и это может привести к проблемам при копировании и вводе - выглядят одинаково, а символы разные. Во вторых - различимость. Строка "ААА" читается вполне очевидно, хоть при копировании, хоть при вводе с бумажки. А вот " " уже не так однозначно, а если внутри еще и разные пробелы, то вообще мрак. Пробелы(или другие нечитаемые символы типа \t) в начале или в конце могут означать ошибку при копировании или же пользователь и правда хотел вставить этот символ? Вобщем слишком слишком много краевых ситуаций при которых получается "я ввел пароль правильно, а он мне пишет что пароль введен не правильно"
Неудобно на бумажке записывать )
https://neal.fun/password-game/
вот где эталон паролей
Банки некоторые утомляют требованиями к паролям в интернет-банке: большие и маленькие буквы, спецсимволы это еще терпимо, пароль не запоминается в браузере, уже неудобно, дальше обязательная смена пароля раз в квартал, тут уже сложно запомнить, а потом еще и код из смс после пароля. По моему перестарались.
Это всё инерция устаревших рекомендаций. Когда-то NIST говорил, что пароли должны регулярно меняться, быть со спецсимволами и не меньше восьми символов. Потом прошло время; в интернет вышли вообще все люди; киберпреступность стала коммерчески выгодной (спасибо "криптовалютам"); а аренда мощностей GPU целыми стойками — доступна всем подряд за три клика мышкой. И NIST написал новые рекомендации. Но администраторы, они же тоже люди, по-этому до сих пор используют рекомендации, которыми их снабдили в ВУЗах. Но волноваться не о чем: лет через 20-30 старые рекомендации будут забыты, а пароли со спецсимволами будут таким же анахронизмом, как интернет через телефонные провода.
Судя по заявлениям организаций типа Microsoft, пароли вообще будут анахронизмом, или средством только опытных ITшников.
Судя по заявлениям майков, десятая винда была последней версией винды. Да, да, именно та, поддержка которой истекла две недели назад. Не надо верить заявлениям заинтересованных лиц.
Ну именно в случае MS у них есть достаточная сила форсировать переход на passkeys как минимум для тех групп, которые считаются ими одновременно vulnerable (каак етта паа рюски - подверженные? незащищённые?) и чей взлом будет дорого стоить - а это сотрудники крупных корпораций. Заставят накупить физических ключей (или хотя бы ставить приложения на телефоны) и авторизоваться ими, отработают подходы и далее будут делать то же с домохозяйками. В это я вполне верю.
Я не говорю, что верю (пример с W10 - да, помню, хорош), но хотя бы частично они это будут вводить. И, возможно, это даже хорошо. Не будет пароля "Маша1952" на всём подряд.
которые считаются ими одновременно vulnerable (каак етта паа рюски - подверженные? незащищённые?)
уязвимые
чей взлом будет дорого стоить - а это сотрудники крупных корпораций.
Корпорации, особенно крупные, имеют свои собственные админские и ИБ департаменты. Там всё уже защищено, как надо.
Заставят накупить физических ключей (или хотя бы ставить приложения на телефоны) и авторизоваться ими
Попытки вмешиваться в свою политику безопасности корпорации воспримут в штыки.
Кроме того, майкам трудновато будет это сделать чисто физически: главный броузер мира они не контролируют, а все эти пасскеи нужны именно для входа на сайты. Соответственно, кого-то к чему-то принудить может только гугл. Теоретически. Но, практически, они этого делать не будут, потому что зачем?
Надо отметить, в этом они почти не обманули:
>ver
Microsoft Windows [Version 10.0.26100.6899]
Просто сейчас актуальная версия Windows 10 называется Windows 11.
Напомнило старую копипасту:
—Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый!
— Розы.
— Извините, слишком мало символов в пароле!
— Розовые розы.
— Извините, пароль должен содержать хотя бы одну цифру!
— 1 розовая роза.
— Извините, не допускается использование пробелов в пароле!
— 1розоваяроза.
— Извините, необходимо использовать как минимум 10 различных символов в пароле!
— 1грёбанаярозоваяроза.
— Извините, необходимо использовать как минимум одну заглавную букву в пароле!
— 1ГРЁБАНАЯрозоваяроза.
— Извините, не допускается использование нескольких заглавных букв, следующихподряд!
— 1ГрёбанаяРозоваяРоза.
— Извините, пароль должен состоять более чем из 20 символов!
— 1ГрёбанаяРозоваяРозаБудетТорчатьУтебяИзЗадницыЕслиТыНеДашьМнеДоступПрямоБлтьСейчас!
— Извините, этот пароль уже занят.
Кулцхакеры вероятно про bcrypt в середине 21 века не слышали
Для тех кого на Гугле забанили: https://en.wikipedia.org/wiki/Bcrypt
Успехов во взломе. Его специально сделали ресурсоемким чтобы стоимость взлома поднять до небес.
А если вы для хеширования пароля используете sha , то ССЗБ.
Ваша мысль понятна, но такая надменность без упоминания, например, Yescrypt, который сейчас предпочитается массой дистрибутивов (а Bcrypt, в среднем, считается уже устарелым), или факта, что "пароль по sha-512" в юниксовом crypt это не голый SHA-512, а некий метод его применения туеву хучу тысяч раз - показывает, что и вам лучше освежить знания.
Слагал звон да не знает где он …. Вы бы прочитали документацию по Yescrypt: Technically, yescrypt is the most scalable password hashing scheme so far, providing near-optimal security from offline password cracking across the whole range from kilobytes to terabytes and beyond. However, the price for this is complexity, and we recognize that complexity is a major drawback of any software. Thus, at this time we focus on large-scale deployments, where the added complexity is relatively small compared to the total complexity of the authentication service setup. For smaller deployments, bcrypt with its simplicity and existing library support is a reasonable short-term choice (although we're making progress towards more efficient FPGA attacks on bcrypt under a separate project). We might introduce a cut-down yescrypt-lite later or/and yescrypt might become part of standard or popular libraries, making it more suitable for smaller deployments as well.
Вы не Гугл и не Яндекс. Так что для вас bcrypt будет вполне надежен.
в статье бла речь об использовании хеш-код которые не предназначены для хеширования паролей, поскольку их основное достоинство -быстрое вычисление хеша.
Вы не Гугл и не Яндекс. Так что для вас bcrypt будет вполне надежен.
Процитированное - реверанс его авторов из стандартной академической скромности. А вот умолчательное использование в дистрибутивах - уже аргумент в пользу его предпочтения. Извините за отсылку к авторитетам, но там явно думали, совещались и просили консультаций у криптографов, перед тем, как принять это решение. И ещё, за 10+ лет развития "железа", облаков и вообще IT, понятие "large-scale" поменялось.
А вот ваше "Вы не Гугл и не Яндекс" (откуда вы знаете-то? может, я как раз в одном из них работаю?) показывает, что к вопросу защиты вы относитесь достаточно наплевательски.
Вообще ни одного своего пароля не знаю (кроме мастер-пароля). 1password (или другой менеджер) решает эту проблему целиком и полностью.
Со спецсимволами в пароле есть ещё проблема: на других раскладках клавиатуры можно просто не найти, где набирается какой-нибудь '#' или '/'. И если для латиницы ещё более-менее есть шанс вспомнить считалочку QWERTYUIOP..., то для прочих символов - ой.
Статья интересная, спору нет.
Но вот так сходу я сразу вижу пару моментов:
Как уже говорили, сейчас ломают не пароли, а их хэши. И там скорости на несколько порядков выше. А если использовать связки компов с мощными видеокартами, то можно и перевалить за отметку в 100ккк паролей в секунду. И вот тут уже пароль nr75eJ2GBp (точнее хэш) ломается за несколько месяцев. Увеличим количество пк в 10 раз, и хэш ломается в течении пары тройки дней. Конечно можно тут вспомнить и соль, и криптостойкость разных хэшей. Но это уже другие расчёты.
Полностью согласен, что пароль типа VladimirPutin1952# ломается очень быстро. Можно конечно раскритиковать сайт Expedia мол а какого он его пропустил и в целом выдал вердикт, что пароль силен? Но с другой стороны, это является сильным показателем того, что ваш введенный пароль нигде не сохраняется и никак не анализируется. Было бы странно, если бы стюистема выдала, мол ваш пароль слабый, так как содержит популярные слова из словарей. Именно поэтому и требуют вводить символы. А ещё большие буквы и цифры.
Ну и в целом сейчас чистый брутфорс скорее всего не используется. Ну или используется до 8 символов. Больше шансов даёт атака по словарям. Возьмем два пароля password12345 и P@ssw0rd_123! В первом случае 13 символов, во втором только 12. При обычном брутфорсе первый пароль выглядит надежнее, чем второй. Но мы знаем, что первый взломают за минуты или часы, а вот второй уже сложнее. Хотя и он скорее всего уже есть в словарях. Но возьмем ситуацию сложнее пароль adgjzcbm26378 и пароль вида (DgjzcbM@637). Всего лишь ввели регистр и спец символы. Пришли стал даже проще к запоминанию. Но вот подобрать его по словарю практически нереально.
А для реальных паролей все намного проще - достаточно придумать себе шаблоны из символов. Шаблон для рабочих паролей, для личных, для важных (банки к примеру), для левых сайтов и т.п. Даже в теории слитие и возможная расшифровка вашего шаблона ничего не даст злоумышлинникам для доступа к важным для вас сайтам. Ну и в целом лучше использовать менеджеры паролей.
Только сейчас задумался: а почему не принято создавать пароли на кирилице? Это плюс 66 символов. И я не про смешение языков, а про то, что одни будут использовать латинские символы, а другие - кирилицу.
Есть такая проблема, угу. Частично из-за инерции. А частично из-за следующих факторов:
1) Кодировки. Ладно, в Unix мире можно обеспечить всё на utf-8. А если участвует Windows? Будет пароль перегнан в utf-16le или нет? А то, что это даст другой хэш? А раньше ещё была путаница koi8-r против cp1251 против cp866.
2) А ввод пароля при залоченном экране? Не везде можно было переключить на клавиатуру с кириллицей (кажется, только с Windows 10, если рассматриваем MS, сделали гарантию ввода).
3) Клавиатура и режим ввода. Вы садитесь за чужую машину, а там, например, ивритская клавиатура и нет режима ввода кириллицы, а менять системные настройки никто не даст.
Согласен, что для заметной части пользователей ситуация "сесть за чужую машину и залогиниться в себя" недопустима в принципе. Но те, кому это нужно и можно (корпоративная обстановка) будут влиять на среднее мнение.
Ну раз все та и я добавлю 5 комеек, создание паролей лучше использовать через генератор и никогда не запоминать их. Уж больно много людей теряют свои биткоины через эти хитрые решения. Последнее время пользуюсь https://unitbastion.com/ генератор и все железо связанное с ним ( можно на девайсы QR code вешать и искать из приложения)



Зачем нам спецсимволы в паролях?