Comments 72
Ну так для взлома владеть видеокартой и не обязательно. Можно на чем-нибудь типа vast.ai или airgpu прикупить тот же самый час по цене около полтора доллара за риг из семи 3090. 40-я серия тоже там скоро появится.
То есть в куче слитых баз с хешами паролей этим самые хэши всё меньше хэши. Прицельная атака на какой-нибудь банковский аккаунт с известной суммой становится всё проще.
2FA на порядок усложняет возможность взлома
Перехватить симку стоит ~25 тысяч в рф если лицо не публичное.
Если публичное ~250 тысяч примерно.
Так что вопрос цены, зная пароль и будучи уверенным в "хорошей сумме"...
Ну, если в таком ключе говорить, то и в подворотне можно по голове ударить человека и забрать телефон. Было бы желание, цель и средства.
Я все же говорил про обыденные ситуации
При личной встрече начинают работать стандартные оперативные мероприятия, камеры, восстановление маршрута и т.д., спалится при физическом присутствии проще не то что в разы, а на порядки чем работая через цепочку проксей/впн (а для угона симки физическое присутствие и не требуется, ну вы хоть бы предложение изучили прежде чем говорить. Единственная "сложность" оплата криптой, всё остальное почти как заказ на али.)
Именно поэтому смс и не должно использоваться для 2FA, это максимум 1.5FA. 2FA это yubikey, и любая реализация TOTP когда код не попадает в незащищенную среду передачи (я предпочитаю реализацию в KeePassXC для этого). Все кто называют подтверждение кодом по СМС 2FA либо глупы и повторяют за другими, либо сознательно обманывают, потому что самое простое объяснение двух факторов звучит как: "Владею информацией, владею устройством". Хотел бы я посмотреть на тех аналитиков, которые владеют своим номером и могут его продать, завещать и т.д.
А кто говорит о симке? TOTP нужен.
SMS OTP is PSD2 compliant when combined with a static PIN/password or another authentication method
СМС всё так же используются. Из личного опыта, в Польше СМС используются банками как 2FA в полной мере
Перехватить симку стоит ~25 тысяч в рф если лицо не публичное.
Если публичное ~250 тысяч примерно.
А как исполнители заказа на угон симки избегают ответственности?
Но ведь помимо хеша еще нужно знать соль и некоторые подробности алгоритма соления или я не прав? А еще, например, фреймворк Django по дефолту солит и хеширует пароль 10000 раз. То есть, имея хеш для получения пароля даже зная соль надо провести операцию взлома 10000 раз и промежуточные результаты будут гораздо длиннее восьми символов.
После хеширования 10000 раз там вероятность коллизий не возрастает?
Во-первых нужен сам хэш пароля — а этим может похвастаться достаточно небольшой процент утечек.
Плюс в большинстве случаев пароль перед хэшированием хорошо «посолен», и ломать вы будете не 8 символов, а 32 например.
Другой вопрос, если вы уже внутри системы, и можете таскать хэши напрямую оттуда, зная все особенности их создания — тогда да, подобрать будет проще и быстрее с RTX 4090. Но в этом случае (когда вы уже внутри) обычно проще использовать известные (пока ещё не всем) уязвимости для достижениях целей, чем брутфорсить всё подряд.
Условно, так выглядит то, что лежит в БД (соответственно в слитых базах) - 10$qQWkVm70IlG1hTCLc5T6Y.n38Pt8PNZK1XAPxiZB8bZVLM6ey8tBu (bcrypt). Т.е. "2a" - версия bcrypt, "10" - 2^10 (1024) раз посолили, "qQWkVm70IlG1hTCLc5T6Y" - соль, "n38Pt8PNZK1XAPxiZB8bZVLM6ey8tBu" - хэш посоленного пароля.
Соль увеличивает время одной попытки подобрать пароль, в нашем варианте, на 1024 * время соления. Ну как-то не сильно надёжнее, всётаки цель соли - это уберечь от "радужных таблиц" и прочих "словарей". От тупого брутфорса не поможет. Поправьте если ошибаюсь.
От тупого брутфорса не поможет
От него в принципе ничего не поможет, т.к. он перебирает все возможные варинаты, но в реальности вряд ли кто-то будет тратить на брут больше нескольких месяцев.
Есть очень непопулярный сейчас принцип защиты информации, безопасность через неясность (security through obscurity). Но он хорошо помогает от брутфорса, если держать в тайне, как конкретно солится пароль.
Например, можно поставить в локалке выделенный сервер, который наружу совсем не смотрит и умеет делать только одно: на запрос, содержащий строку, отвечать другой строкой, единственной для каждой входящей (как вариант, путём шифрования входа приватным ключом). Солится пароль уже преобразованной строкой, причём соль можно выбрать длиной в пару-тройку сотен байт, и пока алгоритм преобразования соли не утечёт, время брутфорса будет больше ожидаемого времени существования Солнечной системы, даже если на одно хеширование тратить один квант времени. Шифровалку можно реализовать в железе так, что единственным способом узнать ключ будет физическое похищение сервера.
Правда, я сомневаюсь, что такое будут воротить для чего-то с важностью меньше, чем у ядерного чемоданчика.
Зависимость там экспоненциальная, к сожалению. 16 символов могут вам предьявить пару десятков тысяч лет на атаку полным перебором.
Если пароль разбиваются на слоги, или слова, то можно словарным перебором.
Если пароли одинаковые, то утечка в одном месте добавит ваш пароль в словари для подбора.
Более простые пароли формируются из них отбросом части символов, отбрасывать можно несколько раз. На одном выходит пара паролей 25 и 20 символов, на втором тройка 25-16-8 символов. Самый простой применяется, например, для личных кабинетов инет — магазинов или форумов, где я не завсегдатай. Более сложные на почте, банк аккаунтах, сайтах типа гитхаба, соцсетей. Если сайт требует использовать в пароле спец символ, он добавляется по некой схеме. Итого 5 паролей, если без спец символа. Отдельно ко всему идет пара особых паролей (разной длины) на аппаратные устройства типа роутера домашнего или запуск ноута. Ну и совсем не стойкие на вход в винду, например.
Наверное, это немного, но пока хватает и не требует записи на бумаге.
К счастью. Ну или мы в разных лагерях )
Да какие 100 лет, админы заставляют менять пароль каждые три месяца.
Что, кстати, снижает криптостойкость, потому что большинство меняет correcthorsebatterystaplejuly2022
на correcthorsebatterystapleoctober2022
Криптостойкость наоборот увеличивается за счет количестве символов. А вот энтропийность на вряд ли
даже не так:
lrglknvvuidfhbnkjbg
lrglknvvuidfhbnkjbg2
lrglknvvuidfhbnkjbg
lrglknvvuidfhbnkjbg2
...
Запомнить 20 символов и использовать их абсолютно везде без изменений примерно так же небезопасно, как сделать на каждый сайт/сервис собственный пароль из 6 символов.
Да, получить такой пароль сложнее. Но он будет ключом ко всей вашей цифровой жизни. Поэтому лучше использовать разные пароли для каждого ресурса.
20 символов запоминать от мастер пароля в парольному менеджеру. иметь один и тот же пароль на несколько ресурсов плохая идея. если ресурс хранит пароль как хэши md5 или sha1 то пароль будет скомпрометирован даже обладая сложностью и длиной
На 100 лет не хватит. За 100 лет вычислительная мощность вырастет на 20 порядков, эдак на 10-15 символов сделает пароль "короче".
Эта картинка основана на подборе несолёного md5, что в 2022 году уже несерьёзно и рассматривать по-моему нет смысла.
Еще чуть-чуть, и парольный доступ устареет в принципе.
а что будет взамен?
Аутентификация по ДНК.
Традиционно напомню, что если будет скомпрометирована ДНК, использующаяся для аутенфикации, то с её изменением могут быть проблемы.
Да, как и с любыми биометрическими данными.
Если серьёзно фантазировать на тему реальной, защищённой системы аутентификации, то по моему, давно пришло время выпустить специальное защищённое устройство для администрирования сертификатов и ключей доступа к ресурсам. Данное устройство должно быть полностью самошифруемо. Алгоритмы шифрования уже должны быть устойчивы к взлому квантовыми компьютерами. ОС на данном устройстве должна быть полностью изолирована и общаться с внешним миром исключительно через защищённый протокол. И конечно же ОС должна быть с открытым исходным кодом, для проведения аудита.
Вы почти придумали U2F, с той только разницей, что используемая там ECDSA к квантовым атакам не устойчива.
Всё создано людми содержит ошибки, так что "изолировать" ОС на данном устройстве не получится. Ведь даже как-то пароли на неё должны попадать, значит оно доступно на запись, ещё и обновление ПО которое тоже может быть скомпроментировано.
В общем чем больше слоёв защиты, тем больше растёт вероятность что где то будет дыра.
выпустить специальное защищённое устройство для администрирования сертификатов и ключей доступа к ресурсамА если это устройство физически попадет к злоумышленнику (кража и т.п.), то он получает сразу «ключ от всех дверей»?
По ДНК - ещё менее надёжно. С учётом текущих военных событий, в случае смерти от вражеского снаряда, ДНК-пароль будет валяться в открытом доступе, если можно так выразиться.
Замена прокладки между стулом и экраном.
Токен-ключ с датчиком отпечатка пальца например. Воткнул в USB, аппрувил запрос касанием датчика и готово.
Вот это мало вероятно. Всё-таки секретный ключ хранимый только в памяти человека надёжнее и безопаснее. Для его использования необходим, по крайней мере, живой хранитель. А вот биометрия далёко не всегда предполагает что субъект жив и находится в сознании.
Устаревают в основном способы доставки и проверки т. к. на них и рассчитаны технические средства взлома.
вот только в этом "естественном отборе" в первую очередь премию дарвина получает клиент, а не сервис. Что немного обидно, учитывая полнейшую невозможность клиента проверить безопасность хранения его данных
Так сервисам в принципе не стоит доверять ничего особо ценного. Практика показывает, что утечка данных - вопрос только времени.
А как она взламывает эти пароли?
Рассматривается система в вакуме которая не защищает от множественного неправильного ввода пароля? Мне кажется сейчас такая защита есть везде, где данные хоть немного несут ценности.
Насколько я понимаю, злоумышленник должен знать каким способом хешируются пароли в атакуемой информационной системе (например, если без солей, то достаточно будет наименования алгоритма хеширования). Далее, если злоумышленник обладает такой информацией, то ему достаточно использовать то самое СПО haschat, чтобы в комфортных для себя условиях, подобрать к вашему хешу исходный пароль. Как видите, защита от неправильного ввода пароля, в этом случае, вас не защитит.
Совсем не шарю за тему, но если из прочитанного я понял верно, то речь идет о случае, когда злоумышленнику попал в руки хэш нужного пароля и он может никуда не стучась, у себя на машине сколь угодно долго перебирать разные комбинации символов и считать их хэши до тех пор, пока не получит совпадение.
Надо просто число итераций хеширования повышать, и весь этот технологический прогресс спокойно компенсируется. Удвоилась дешевизна подбора пароля? Удвойте число итераций хеширования. Всё стало как раньше, вы великолепны! Ну и современные функции такие как PBKDF2 имеют просто параметром число итераций. Там есть нюансы, как правильно интерактивно хешировать, чтобы число коллизий не плодилось.
Пусть теперь попробуют сломать SSL-сертификат своими видеокартами.
А если серьёзно.. То действительно, парольная аутонтефикация имеет ряд проблем, и как замену ей - я сделал emerSSL, который опубликовал тут: https://habr.com/ru/post/257605/
С тех пор он кое-где использовался (в системе ~500 сертификатов), но сейчас по-моему только единственный сайт принимает аутентификацию по emerSSL - это https://enumer.bitname.ru/
Восемь RTX 4090 могут взломать обычный пароль менее чем за час