Рубрика «хэширование» - 2

В ходе разработки одного проекта появилась возможность исследовать современные методы авторизации, чем я с удовольствием и занялся. Задача была в том, чтобы найти наиболее простой и безопасный механизм авторизации пользователей. Статья не содержит конкретных реализаций и затрагивает исключительно теоретическую часть вопроса.
Читать полностью »

Дисковая балансировка в Nginx

В этой статье я опишу интересное решение на базе Nginx для случая, когда дисковая система становится узким местом при раздаче контента (например, видео).Читать полностью »

Существует достаточно широкий круг задач, где требуется анализ, аудио-визуальных моделей реальности. Это относится и к статическим изображениям, и к видео.

image

Ниже приведен не большой обзор некоторых существующих методов поиска и идентификации нечетких дубликатов видео,
рассмотрены их преимущества и недостатки. На основе структурного представления видео построена комбинация методов.
Обзор совсем не большой, за подробностями, лучше обращаться к первоисточникам.

Читать полностью »

Многие алгоритмы являются детерминированными – то есть последовательность их действий зависит лишь от входных данных и программы. Но что будет, если разрешить алгоритму по ходу работы использовать случайные числа?

Оказывается, тогда становятся возможны интересные результаты, которых нельзя достигнуть с помощью обычных алгоритмов. Например, можно построить хеш-функцию, для которой противник не сможет легко подобрать коллизии. Или обработать большое множество чисел и сжать его во много раз, сохранив возможность проверять принадлежность чисел исходному множеству. Можно приближенно подсчитать количество различных элементов в потоке данных, располагая лишь небольшим объёмом дополнительной памяти. В этой лекции Максим Бабенко рассказывает школьникам, как именно это происходит.

Читать полностью »

image

В очередной раз заканчивая проводить аудит информационной безопасности веб-проекта, моя личная бочка с гневом переполнилась негодованием так, что оно перелилось через край в этот пост.

Постараюсь очень лаконично и быстро обрисовать ситуацию с хэшами.

Сразу определю какую задачу применения хешей буду рассматривать — аутентификация пользователей. Не токены восстановления паролей, не аутентификация запросов, не что-то еще. Это также не статья про защиту канала передачи данных, так что комментарии по challenge-response и SSL неуместны!

Читать полностью »

Привет, %username%!
Мне, как ни разу не профессиональному математику и криптографу, редко бывает сразу понятно как устроен тот или иной алгоритм. И тем более, почему его выбирают.
Так и с новым стандартом SHA-3. Выбрали какой-то Keccak, спасибо камраду NeverWalkAloner, привел его описание. Но лично мне так и не стало понятно как он работает и в чем его фишка. Давайте разбираться.

В конце статьи будет небольшой бонус параноикам в виде информации к размышлению о стойкости SHA-2
Читать полностью »

Когда на хабре был опубликован пост о том, что компания Stripe проводит конкурс Capture the Flag, я незамедлительно зарегистрировался как участник.

Каждый из девяти уровней представлял собой задачу по взлому системы и получению пароля к следующему уровню. Пароли могли храниться как в базах и файлах, так и в памяти. К слову, весь код был открыт, поэтому задачи сводились к анализу кода на уязвимости, тыкаться вслепую не нужно было.

Уровни с 0-го по 6-й не представляли особого труда — стандартные SQL- и JavaScript-инъекции, загрузка на сервер PHP-скрипта вместо картинки и т.п.

А вот 7-й уровень заставить меня поломать голову…
Читать полностью »

Зачем вообще хэшировать пароли?

В последние дни на хабре появились сообщения о том, что базы с хэшами паролей популярных сервисов попадают в руки злоумышленников (1), (2). Становится известно, что сервис linked.in использует метод хэширования SHA-1, а last.fm использует MD5. Большинство паролей представляют собой короткие словарные слова, а значит злоумышленник, имея хэш, сможет найти исходный пароль даже без брутфорса, просто воспользовавшись радужными таблицами.
Это серьёзное нарушение безопасности, несмотря на то, что многие разработчики считают, что сохранение хэша пароля вместо самого пароля способно защитить пользователей сервиса в случае утечки базы данных. Безусловно, это гораздо лучше, чем хранить пароли в открытом виде, но, очевидно, недостаточно безопасно. Метод BCrypt, в отличие от MD5 и SHA-1 не очень известен на просторах рунета, в русскоязычной википедии даже нет статьи о нём. Что же он из себя представляет?
Читать полностью »

Люди, использующие системы контроля версий исходного кода (SVN, Mercurial, Git и т.п.), наверняка часто пользуются возможностью сравнения версий файлов для просмотра внесенных пользователями изменений. Существует множество независимых программ сравнения версий (WinMerge, BeyondCompare и др.). При сравнении версий, как правило, две версии файла показываются рядом друг с другом таким образом, чтобы одинаковые (неизменившиеся) части документов были расположены напротив друг друга, а изменившиеся (добавленные и удаленные) выделяются соответствующим цветом.
Уверен, многим было бы интересно узнать, какие алгоритмы могут использоваться для реализации такого сравнения.
Читать полностью »

Привет! Сегодня процессе разработки системы авторизации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:

  • Хранить пароли в БД в открытом виде.
  • Использовать обычные хэши crc32, md5, sha1
  • Использовать функцию crypt()
  • Использовать статическую «соль», конструкции вида md5(md5($pass))
  • Использовать уникальную «соль» для каждого пользователя.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js