В ходе разработки одного проекта появилась возможность исследовать современные методы авторизации, чем я с удовольствием и занялся. Задача была в том, чтобы найти наиболее простой и безопасный механизм авторизации пользователей. Статья не содержит конкретных реализаций и затрагивает исключительно теоретическую часть вопроса.
Читать полностью »
Рубрика «хэширование» - 2
Небольшое исследование на тему безопасной авторизации
2014-10-11 в 6:47, admin, рубрики: авторизация, Безопастность, Веб-разработка, хэшированиеДисковая балансировка в Nginx
2014-08-15 в 22:40, admin, рубрики: CDN, disk performance, hashing, Lua, nginx, видео, дисковая подсистема, дисковый массив, хэшированиеВ этой статье я опишу интересное решение на базе Nginx для случая, когда дисковая система становится узким местом при раздаче контента (например, видео).Читать полностью »
Некоторые методы поиска нечетких дубликатов видео
2014-07-21 в 0:47, admin, рубрики: data mining, gist, lhs, Алгоритмы, видео, обработка изображений, сравнение видео, сравнение изображений, хэшированиеСуществует достаточно широкий круг задач, где требуется анализ, аудио-визуальных моделей реальности. Это относится и к статическим изображениям, и к видео.
Ниже приведен не большой обзор некоторых существующих методов поиска и идентификации нечетких дубликатов видео,
рассмотрены их преимущества и недостатки. На основе структурного представления видео построена комбинация методов.
Обзор совсем не большой, за подробностями, лучше обращаться к первоисточникам.
Вероятность в алгоритмах. Лекция Яндекса
2014-02-01 в 13:10, admin, рубрики: Алгоритмы, Блог компании Яндекс, лекции, Малый ШАД, математика, хэширование, метки: Алгоритмы, лекции, Малый ШАД, хэшированиеМногие алгоритмы являются детерминированными – то есть последовательность их действий зависит лишь от входных данных и программы. Но что будет, если разрешить алгоритму по ходу работы использовать случайные числа?
Оказывается, тогда становятся возможны интересные результаты, которых нельзя достигнуть с помощью обычных алгоритмов. Например, можно построить хеш-функцию, для которой противник не сможет легко подобрать коллизии. Или обработать большое множество чисел и сжать его во много раз, сохранив возможность проверять принадлежность чисел исходному множеству. Можно приближенно подсчитать количество различных элементов в потоке данных, располагая лишь небольшим объёмом дополнительной памяти. В этой лекции Максим Бабенко рассказывает школьникам, как именно это происходит.
Как надо хешировать пароли и как не надо
2014-01-30 в 8:19, admin, рубрики: ONsec, аутентификация пользователей, информационная безопасность, хеш, хеш-функции, хеширование, хэш-функция, хэширование, хэширование паролей, метки: ONsec, аутентификация пользователей, хеш, хеш-функции, хеширование, хэш-функция, хэширование, хэширование паролей
В очередной раз заканчивая проводить аудит информационной безопасности веб-проекта, моя личная бочка с гневом переполнилась негодованием так, что оно перелилось через край в этот пост.
Постараюсь очень лаконично и быстро обрисовать ситуацию с хэшами.
Сразу определю какую задачу применения хешей буду рассматривать — аутентификация пользователей. Не токены восстановления паролей, не аутентификация запросов, не что-то еще. Это также не статья про защиту канала передачи данных, так что комментарии по challenge-response и SSL неуместны!
Почему Keccak настолько крут и почему его выбрали в качестве нового SHA-3
2013-02-08 в 5:57, admin, рубрики: Keccak, SHA-3, информационная безопасность, криптография, хэширование, метки: Keccak, SHA-3, криптография, хэширование Привет, %username%!
Мне, как ни разу не профессиональному математику и криптографу, редко бывает сразу понятно как устроен тот или иной алгоритм. И тем более, почему его выбирают.
Так и с новым стандартом SHA-3. Выбрали какой-то Keccak, спасибо камраду NeverWalkAloner, привел его описание. Но лично мне так и не стало понятно как он работает и в чем его фишка. Давайте разбираться.
В конце статьи будет небольшой бонус параноикам в виде информации к размышлению о стойкости SHA-2
Читать полностью »
Stripe CTF — разбор уязвимости алгоритма SHA-1
2012-09-18 в 7:52, admin, рубрики: capture the flag, sha1, Алгоритмы, информационная безопасность, уязвимости, хэширование, метки: capture the flag, sha1, информационная безопасность, уязвимости, хэшированиеКогда на хабре был опубликован пост о том, что компания Stripe проводит конкурс Capture the Flag, я незамедлительно зарегистрировался как участник.
Каждый из девяти уровней представлял собой задачу по взлому системы и получению пароля к следующему уровню. Пароли могли храниться как в базах и файлах, так и в памяти. К слову, весь код был открыт, поэтому задачи сводились к анализу кода на уязвимости, тыкаться вслепую не нужно было.
Уровни с 0-го по 6-й не представляли особого труда — стандартные SQL- и JavaScript-инъекции, загрузка на сервер PHP-скрипта вместо картинки и т.п.
А вот 7-й уровень заставить меня поломать голову…
Читать полностью »
BCrypt как замена хэширования MD5
2012-06-08 в 10:51, admin, рубрики: bcrypt, md5, sha-1, информационная безопасность, хэширование, шифрование, метки: bcrypt, MD5, sha-1, хэширование, шифрованиеЗачем вообще хэшировать пароли?
В последние дни на хабре появились сообщения о том, что базы с хэшами паролей популярных сервисов попадают в руки злоумышленников (1), (2). Становится известно, что сервис linked.in использует метод хэширования SHA-1, а last.fm использует MD5. Большинство паролей представляют собой короткие словарные слова, а значит злоумышленник, имея хэш, сможет найти исходный пароль даже без брутфорса, просто воспользовавшись радужными таблицами.
Это серьёзное нарушение безопасности, несмотря на то, что многие разработчики считают, что сохранение хэша пароля вместо самого пароля способно защитить пользователей сервиса в случае утечки базы данных. Безусловно, это гораздо лучше, чем хранить пароли в открытом виде, но, очевидно, недостаточно безопасно. Метод BCrypt, в отличие от MD5 и SHA-1 не очень известен на просторах рунета, в русскоязычной википедии даже нет статьи о нём. Что же он из себя представляет?
Читать полностью »
О подходах к сравнению версий файлов
2012-04-24 в 4:45, admin, рубрики: алгоритм, Алгоритмы, контроль версий, оптимизация, Программирование, разработка, расстояние Левенштейна, сравнение, сравнение файлов, хэширование, метки: алгоритм, Алгоритмы, контроль версий, оптимизация, расстояние Левенштейна, сравнение, сравнение файлов, хэширование Люди, использующие системы контроля версий исходного кода (SVN, Mercurial, Git и т.п.), наверняка часто пользуются возможностью сравнения версий файлов для просмотра внесенных пользователями изменений. Существует множество независимых программ сравнения версий (WinMerge, BeyondCompare и др.). При сравнении версий, как правило, две версии файла показываются рядом друг с другом таким образом, чтобы одинаковые (неизменившиеся) части документов были расположены напротив друг друга, а изменившиеся (добавленные и удаленные) выделяются соответствующим цветом.
Уверен, многим было бы интересно узнать, какие алгоритмы могут использоваться для реализации такого сравнения.
Читать полностью »
Немного о хэшах и безопасном хранении паролей
2012-03-14 в 15:06, admin, рубрики: cryptography, php, безопасность, пароли, Программирование, хэш-функция, хэши, хэширование, метки: cryptography, PHP, безопасность, пароли, Программирование, хэш-функция, хэши, хэшированиеПривет! Сегодня процессе разработки системы авторизации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:
- Хранить пароли в БД в открытом виде.
- Использовать обычные хэши crc32, md5, sha1
- Использовать функцию crypt()
- Использовать статическую «соль», конструкции вида md5(md5($pass))
- Использовать уникальную «соль» для каждого пользователя.