Доброе утро, дорогие читатели!
Как все мы знаем, пароли следует всегда хэшировать с помощью медленного алгоритма с использованием соли. Чаще всего применяют scrypt, bcrypt или PBKDF2, но этот пост не о том, какой алгоритм использовать. Вместо этого мы поговорим о том, что делать с хэшами дальше.
20- (или 32-) байтовые соль и хэш должны храниться в энергонезависимом, зарезервированном, надёжном хранилище, то есть обычно в реляционной базе данных. Но в каких именно таблицах их хранить? Чаще всего используется таблица со столбцами (user_id, salt, hash) или столбцы salt и hash могут быть в общей таблице Users. В обоих случаях хэш и соль находятся в отношении один-к-одному с пользователями.
Беда в том, что даже с подсоленными хэшами, хакерам слишком легко использовать словарные атаки, если они получат доступ к соли и хэшу конкретного пользователя. Допустим, что, благодаря медленному хэшированию, они могут проверить всего тысячу паролей в минуту. Вас может неприятно удивить то, какими слабыми паролями часто пользуются люди, и какой их процент можно взломать даже в этом случае.
Читать полностью »
В детстве меня завораживали детективные или приключенческие книги, в которых героям приходилось взламывать шифры и извлекать спрятанные сообщения из совершенно невинного на вид текста. Впрочем, и сейчас красивый шифр и извилистый путь, которым герой приходит к его разгадке, заставляет мое сердце биться чаще :-) Отчасти поэтому в июне я начала смотреть стенфордский онлайн-курс «Основы криптографии». Первое же практическое задание (взлом шифра одноразового блокнота, неосмотрительно использованного больше одного раза) восхитило меня и подтолкнуло на создание своего собственного zip-квеста по истории криптографии — по тем шифрам, которые ни в коем случае не используются в быту в наше время, но которые так весело взламывать вручную — или почти вручную.
Собственно, вот сам квест. Принцип тот же, что и в новогоднем квесте: на каждом уровне дается задание в виде текстового файла, решив его (то есть взломав шифр), получаем пароль к архиву, в котором лежит следующий уровень. Архив нулевого уровня (cryptoquest.zip) без пароля. В каждом случае зашифрован не только сам пароль, но и достаточно длинное осмысленное сообщение — иначе криптоанализ становится слишком трудоемким.
Читать полностью »
Здравствуйте. Примерно два года назад на Хабрахабре я из некого комментария познакомился с интересным способом хранения паролей без их сохранения. Фраза выглядит странно, но более точно описать род этой программы мне не получилось. Способ заключается в том, что для получения пароля к конкретной учетной записи на конкретном сайте необходимо загнать в хэш-функцию строку, «склеенную» из мастер-пароля, адреса сайта, и логина на сайте.
keyword+sitename+login
В данной строке keyword – это мастер-пароль, используемый для «хранения» паролей ко всем сайтам. Далее идет адрес сайта, затем логин. Загнав в хэш-функцию данную строку, мы получим на выходе строку символов, которую полностью или частично можно использовать в качестве пароля к данной учетной записи на данном сайте. Ключевое слово в начале строки обеспечивает невозможность узнать пароль, если известны адрес сайта и логин. Длина результата хэш-функции более чем предостаточна для пароля. Но надежность пароля все равно оставляет желать лучшего. Каждый символ такого пароля может принимать только одно 16-ти значений, так как результатом хэш-функции является строка чисел в шестнадцатеричном представлении.
Я попытался исправить этот недостаток. Далее расскажу как.
Читать полностью »
В то время как MtGox в очередной раз тормозит, а биткоиника перешла в коматозное состояние, биржа ICBIT без помпы запустила торговлю фьючерсами.
Для начала немного теории. Те, кто уже с ней знаком могут смело прокрутить текст до начала специфичной для биткойнов части.
Читать полностью »
В то время как MtGox в очередной раз тормозит, а биткоиника перешла в коматозное состояние, биржа ICBIT без помпы запустила торговлю фьючерсами.
Для начала немного теории. Те, кто уже с ней знаком могут смело прокрутить текст до начала специфичной для биткойнов части.
Читать полностью »
Разработчик znort987 выложил на github программу blockparser — быстрый парсер на C++ цепочки блоков с транзакциями Bitcoin. Как известно, в Bitcoin все транзакции публикуются в открытом доступе с момента основания системы по сегодняшний день: это 4,4 млн адресов, которые когда-либо получали BTC, и 17,8 млн адресов, отправлявших BTC.
Каждый адрес представляет собой хэш ripemd-160 от открытого ключа пользователя (обычно адреса переводят в формат base58 для удобства). Для каждой транзакции можно использовать новый адрес.
Парсер позволяет составить всех транзакций для любого адреса (<20 сек), определить адреса, вероятно, принадлежащие одному кошельку (20 сек), и даже вывести список всех существующих адресов с подсчитанным балансом для каждого (30 сек). В общем, очень полезная утилита.
Читать полностью »
Продолжая своеобразную неделю криптографии на Хабре, я решил поделиться своей реализацией алгоритма шифрования Anubis на PHP. Anubis представляет собой блочный алгоритм шифрования, являющийся, по-сути, модификацией алгоритма Rijndael, принятого в качестве стандарта шифрования в США. Авторами шифра являются Винсент Рэймен — один из разработчиков Rijndael и Пауло С. Л. М. Баррето — известный криптограф, один из разработчиков хэш-функции Whirlpool.
Почему я выбрал именно Anubis? Это не патентованный алгоритм, доступный для свободного использования. Anubis отвечает современным требованиям безопасности — размер блока составляет, как и в AES, 128 бит, а длина ключа может варьироваться от 128 до 320 бит. Кроме того, с момента опубликования в 2000-м году, в алгоритме Anubis не обнаружено слабых мест. Он не попал в проект NESSIE, но лишь из-за своей схожести с Rijndael.
Читать полностью »
Автор md5crypt Пол-Хеннинг Камп (Poul-Henning Kamp) опубликовал на персональном сайте призыв ко всем разработчикам прекратить использовать этот алгоритм для шифрования (скремблирования) паролей.
Камп говорит, что для своего времени md5crypt был достаточно надёжной защитой для паролей, но с момента его выхода в 1995 году прошло очень много времени. Последние тесты показывают, что на коммерчески доступном GPU можно перебирать варианты со скоростью 1 миллион в секунду, то есть MD5 сейчас уязвим перед брутфорсом точно в той же степени, в какой был уязвим основанный на DES скремблер crypt в 1995 году. Любой пароль из 8 символов можно взломать за пару дней.
«Как автор md5crypt, я умоляю всех не откладывая перейти на более надёжный скремблер паролей», — гвоорит Пол-Хеннинг Камп.
Читать полностью »
Разумная идея по выдаче бесплатных ключей ЭЦП для сдачи электронных отчетов добралась и до Украины. Налоговая инспекция, как орган наиболее заинтересованный в сокращении бумажного документооборота, выступила с инициативой по выдаче ключей ЭЦП на бесплатной основе. Для этого по всей стране были открыты специальные центры сертификации ключей. 30-го мая первые такие центры заработали в Киеве, несколькими днями позже бесплатные ключи стали давать в регионах. Я прошел процедуру получения новенькой ЭЦП одним из первых. Представляю украинским предпринимателям-хабровчанам инструкцию к действиям. Сразу успокою тех, кто имеет патологический страх перед посещением налоговой: центр сертификации ключей хоть и приписан к налоговой инспекции, но находится с ней в разных зданиях, иногда даже в разных частях города.