Comments 32
- Извините, ваш пароль используется уже более 30 дней, необходимо выбрать новый!
- Розы.
- Извините, в вашем новом пароле слишком мало символов!
- Розовые розы.
- Извините, пароль должен содержать хотя бы одну цифру!
- 1 розовая роза.
- Извините, не допускается использование пробелов в пароле!
- 1розоваяроза.
- Извините, необходимо использовать, как минимум, 10 различных символов в пароле!
- 1гребанаярозоваяроза.
- Извините, необходимо использовать, как минимум, одну заглавную букву в пароле!
- 1ГРЕБАНАЯрозоваяроза.
- Извините, не допускается использовать несколько заглавных букв, следующих подряд!
- 1ГребанаяРозоваяРоза.
- Извините, пароль должен состоять более чем из 20 символов!
- 1ГребанаяРозоваяРозаБудетТорчатьИзТвоейЗадницыЕслиТыНе ДашьМнеДоступПрямоБлядьСейчас!
- Извините, но этот пароль уже использует пользователь misha!
PS. Привет ВТБ! Пароль "Rock@Roll-Elvis19#75" вас чем-то не устроил, зато "elvis75" внезапно оказался "хорошим".
*Естественно это просто пример, но принцип похож. Час голову ломал, всё время выбивало ошибку, пока не попробовал сократить пароль.
Спасибо, интересная статья.
А что скажете про использование base64 для формирования общедоступных ссылок на медиафайлы пользователя, как это сделано в "национальном мессенджере"?
Это немного выходит за рамки обсуждения паролей, но обозначу свою позицию.
Base64 же не от файла, а от хеша (иначе придётся использовать только начало файла, и коллизии будут строем ходить). Ну, допустим, SHA-256, хотя я не знаю, что там на самом деле. Если так — хорошо, известных коллизий пока нет, хеш уникальный для содержимого.
Тогда владение хешем будет автоматически означать доступ к файлу. В принципе ок, учитывая уникальность хешей, но есть нюанс.
Как только хеш попал в третьи руки, или, хуже, в свободный доступ, файл могут скачать примерно все. Что и происходило не так давно. Для публичных систем вроде хостинга картинок это ровно то, что требуется. Но не для приватной переписки.
Если мы хотим создать хоть какую-то защиту, нужно при каждом запросе файла проверять, кто спрашивает. И отдавать только тому, у кого есть права. В простейшем случае чата на двоих — отправителю и получателю сообщения. Остальным — отказывать, даже если хеш правильный.
Но и это плохо, потому что к файлу имеет доступ админ сервера. Чтобы этого избежать, нужно e2e шифрование. Но если его правильно реализовать, зашифрованный файл можно таки отдавать кому угодно. Прочитает его только тот, у кого есть ключ. Тогда разграничение доступа на уровне отдачи файлов становится желательным, но не обязательным (помогает экономит трафик).
Благодарю за развернутый ответ)
Не очень понимаю контекст. Там же не все файлы доступны автоматически, только если пользователь его расшарил? Тогда это уже не частная переписка а вполне себе публичный хостинг картинок, в чем вопрос? Так же как на любом файлообменнике - есть ссылка - есть доступ. Тем более всегда есть опция удалить файл.
Я в этом вопросе не эксперт, поскольку не пользуюсь обозначенным продуктом. Но вроде были публикации, в том числе и на Хабре, в которых утверждалось, что так оно и есть — все пользовательские файлы лежат в открытом доступе.
А вот с удалением всё не так просто. Откуда вы знаете, что именно происходит при нажатии кнопки «Удалить»?
Аналогично - и не пользуюсь и лень разбираться. Но. Откуда взялось утверждение что ВСЕ пользовательские файлы лежат в открытом доступе? Кто-то подобрал хэш к нерасшаренному ранее файлу? Если так то это конечно максимально странно. Да и в целом расшаривать всё только неопределенному кругу пользователей странная идея. Зная такую особенность ей конечно можно аккуратно пользоваться, как файлообменником, но доступ с ограничением по пользователям (личный / по группам) явно нужен, с соответствующей проверкой прав. Что касается удалить - ну обычно как минимум все внешние связи рвутся, если файл и будет продолжать лежать на сервере то рядовым пользователям он должен быть определенно недоступен, по любым ссылкам?
Ну, кстати, тут я не совсем прав, скорректирую своё последнее утверждение. Разграничение доступа остаётся обязательным.
Безопасность — это не волшебная пилюля, которую принял — и сразу всё хорошо. В любом месте защиты может обнаружиться уязвимость. Настоящая безопасность строится на слоях защиты. Например, в статье я показал (если совсем коротко): защита от перебора → защита при передаче на сервер → защита базы → защита от восстановления из слитой базы.
Так же должно быть и здесь. Первый слой защиты — авторизация при отдаче файла, даже если запрашивающий знает хеш. Второй — е2е шифрование файла. Совместно получается уже два слоя, что гораздо лучше, чем один. Хотя против злоумышленника-админа по-прежнему помогает только шифрование, оно бессильно против компрометации ключа — и тогда хоть какую-то защиту даст авторизация.
Национальный месстенджер выбрал стратегию "безопасность через неясность". В этом случае неважно то, как именно была "сделана неясность" - через base64 от хэша контента или через какой-то большой идентификатор (например UUID), закодированный в base64. И так и так никакой безопасности на самом деле нет.
Здравствуйте, ЛЮДИ! Ой, не - замороченные на всю голову электронными кодами: "0" и "1"! ;-)
Сложные пароли - отличная мысль! А как их запоминать? 1) Способ ЕСТЬ: записываю в блокноте на ПК, НО... меняю ОДИН символ в пароле на ТОЛЬКО мне известное смещение, например на +3 к цифре или +3 символа влево. 2) К тому же, ставлю ограничение по числу ввода паролей в админку на создаваемых сайтах. 3) О смене адреса входа в админку просто молчу. По умолчанию ДАВНО его меняю, CMS которые этого не позволяют сменить ссылку для входа в админ панель ко мне "на стол" не попадают! 4) А..., еще блокировка по IP, но она не всегда спасает от ботов! ((( Уже не спасает.
ИМХО, самое идиотское решение - использовать любую СМС-аунтификацию. Банально потому, что мобильные операторы передают старые или долго неиспользуемые номера другим абонентам. Некоторые операторы даже СРАЗУ - вчера номер ваш, завтра уже другого человека. Помню, получил доступ к чужому аккаунту Авито просто изменив номер через мобильное приложение опсоса. С телегой та же ситуация. Плюс, тексты всех смс видит оператор.
В стать вы пугаете брутфорсом. Хорошо хоть оговорку сделали:
"Такая атака становится возможной, если сервис не ограничивает частоту и количество попыток"
И какой онлайн сервис позволит делать миллионы или миллиарды попыток ввода неправильного пароля? Наверно, даже, десктпное приложение типа менеджера паролей не позволит вам вводить пароли со скоростью их генерации.
Статья хорошая. Но местами спорно. Убедитесь, что протокол — https:// это ненадежно. Знаете Let's Encrypt или как там её, она может спокойно и бесплатно выдать сертификат. Не игнорируйте предупреждения браузера о небезопасном соединении, то же, что и первое.
Много где встречал это утверждение про цифры, буквы, спецсимволы. Формально да, все правильно.
Но давайте хоть чуть чуть подумаем - а знает ли взломщик состав пароля? С чего он вдруг решает что он будет подбирать сначала цифры?
Пароль МОЖЕТ содержать и цифры и буквы и специальные символы. И быть вменяемо большой длины. Но может и не содержать. Для взломщика это не даст никакой информации.
Думаю есть какая-то статистика использования символов, логично сперва проверять более используемые, а цифры и буквы тут явно будут популярнее всяких π©∆§
Если система разрешает чисто цифровые пароли, логично предположить, что найдётся юзер с таким паролем. А если так, то логично сначала по-быстрому перебрать, например, жалкие 10^8 паролей, а потом медленно и печально ползти по расширенному алфавиту с буквами. А спецсимволы подключать в последнюю очередь.
Ну или по-другому. При увеличении длины проверяемых строк сначала проверять все цифры, потом добавлять другие символы.
Наверняка можно найти оптимальную стратегию, но это точно не вброс полного алфавита сразу. Можно, например, сначала статистику по частоте использования символов собрать.
Это всё верно для брутфорса, разумеется. Который в таком случае перестаёт быть совсем тупым.
Грамотная статья.
Еще давно, когда я только узнал про оператор " " в гугле, позволяющий загуглить абсолютно точное вхождение строки, я развлекался гугля различные числа, комбинации букв, постепенно увеличивая количество символов в запросе Часто попадались всякие артикулы товаров, иногда я удивлялся, что именно под такой же комбинацией навроде AvG047hg8 какой-то французский сайт продает диван, а иногда удивлялся что так легко нахожу не очень длинные комбинации, которые никогда не индексировались Google (а возможно, вообще никогда никем не набирались на клавиатуре и не писались на бумаге). Затем, мне в голову пришла мысль - а что, если загуглить свой пароль... Найдется ли что-то? Ведь это была комбинация из 20 случайных символов, которые я просто заучил наизусть. В них не было абсолютно никакого смысла. Я реально гордился своим паролем и тем, что единственное место где он хранился - моя голова.
Но на самом деле, это было не так. Еще мой пароль хранился в базах сайтов, которые хранили пароли в открытом виде. С удивлением, поиск по собственному паролю, выдал множество результатов. На каких-то стремных хакерских форумах, мой пароль лежал рядом с моим логином, в базах, содержащих тысячи (иногда сотни тысяч) таких же пар. Причем опубликовано все это было годы назад - и это в публичных, бесплатных, индексируемых базах! Сколько лет пароль был в скрытой части "даркнетов", остается только догадываться.
С этого момента я и понял, зачем нужна эта неудобная двухфакторка, и почему лучше не использовать везде один и тот же пароль, каким бы сложным он не был.
Вот. Памятник этому господину, при жизни, в натуральную величину. Спасибо, что не стесняетесь делиться собственными промахами — есть шансы, что ещё кто-нибудь одумается :).
Правда, с оговоркой. Пожалуй, гуглить свои реальные пароли — всё-таки плохая идея.
Я думал об этом, прежде чем его вводить. Но потом пришел к выводу, что во-первых: это только пароль, без логина. Мало ли кто рандомные комбинации в гугл вводит. Во-вторых: гугл и так знает мой пароль, потому что он же является паролем от почты gmail. В-третьих, доходы этой корпорации так велики, что даже если бы у меня было 10 тысяч долларов в криптовалюте под ним, их бы вряд ли заинтересовала такая мелочь.
Дело не в гипотетической злонамеренности корпорации добра, а в минимизации поверхности атаки. Мы не знаем, например, в каких логах потом всплывёт строка запроса, кто и как её сможет использовать. Может быть, кто-то пылесосит интернет на предмет любых попавших в него строк и методично вносит их в радужные таблицы. Вряд ли этот пароль хешировался без соли, но пароль от какой-нибудь самописной системы — мог. Хотя мы знаем, что и у гигантов случаются конфузы.
Вывод: пароль можно вводить только в поле «Пароль» сайта или приложения, для которого он предназначен. И в менеджер паролей, если вы ему доверяете.
Случайный ввод в любое другое место, даже без «отправки» куда-либо, должен считаться компрометацией пароля и сопровождаться его немедленной сменой.
Даже использование своего пароля для входа в систему с чужого устройства — повод для размышлений (а вдруг кейлоггер).
Паранойя? Да. И она однажды спасёт ваши данные — или доступ к чему-то важному для вас.
Отличный ликбез, особенно полезен расчет зависимости длины строки и мощности алфавита. Однако, как исследователь, хочу дополнить картину важным фактором, который часто игнорируют при оценке долгосрочной безопасности — стратегией "Harvest Now, Decrypt Later".
Сегодня злоумышленники могут собирать и хранить зашифрованные базы (особенно те, что защищены быстрыми хешами), даже если не могут вскрыть их прямо сейчас. С учетом прогресса в квантовых вычислениях и ежегодного удешевления классических GPU-кластеров, актуальность пароля может закончиться гораздо раньше, чем прогнозирует чистая математика.
Поэтому переход на Argon2id — это не просто "защита от брутфорса", а критическая необходимость для увеличения "стоимости владения" украденными данными в будущем. Как вы считаете, стоит ли внедрять принудительную перегенерацию хешей с увеличенным cost-фактором при каждом входе пользователя, чтобы хотя бы частично нивелировать рост мощностей атакующих?
Отчасти согласен. Но очень трудно предсказать, какие устройства и алгоритмы появятся завтра, и что именно они порушат.
Поэтому я для себя считаю правильным в первую очередь аккуратно защищаться от известных угроз. Если это сделать, система уже будет намного более прочной, чем большинство использующихся. А значит, не будет или почти не будет страдать от нецеленаправленных атак — пока есть другие, кого взломать проще.
А для серьёзной безопасности (банки, военные, государство) нужны настоящие эксперты, а не моя доморощенная философия.
Почему ваш пароль уже взломан (и как это исправить)