Назад » » 2018 » Июнь » 29

Криптографическая хэш-функция – надежная защита от изменения кода

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

Таким образом, по данным интернет-генератора хэшей SHA-1 (помимо MD-5 и SHA-2 – это одна из наиболее часто используемых хэш-функций для расчетов) сокращение домена нашего портала Webznam.ru выглядит так: cd36afc58933160040fd3549bd7a5bf6853f22dc . Однако хэш SHA-1 для слова webznam.ru это: 7337cd0b48d6884dad09a6dd030d9b9670f729cf .

Как видно, эти два результаты полностью отличаются, несмотря на то, что разница между Webznam.ru и webznam.ru, заключается в изменении регистра одного символа.

Можно обратить внимание, что все эти хэши имеют длину 40 символов, что не удивительно, потому что в каждом случае входные данные имеют десять знаков. Однако, более удивительным является то, что, введя в калькулятор два передыдущих абзаца, я получил следующий результат: 781c07f2430be49c72cdb9b129db27d86277a7b9 . Весь текст был сведен к одному слову – длиной в 40 знаков.

Вы можете попробовать сократить с помощью SHA-1 все произведения Льва Толстого и все равно получите 40 символов. Более того, не существует два различных сообщений, которые дадут одинаковый хэш.

Сжатие информацию до хэш-суммы

Для чего используются хэш-функции

Хороший вопрос. Однако, ответ не очень конкретный: хэши используются для очень многих вещей.

Для меня и для Вас наиболее распространенным случаем будет, когда хэширование используется для управления паролями. Например, если вы забыли пароль к какому-то интернет-сайту, вероятно, Вам придётся его сбросить. Но, получить его в исходном виде не получиться, так как веб-сервисы не хранят пароли в виде открытого текста, а шифруют их значение. На самом деле, сервис не имеет понятия, каков ваш реальный пароль.

Чтобы было понятно: если вы получите свой пароль в чистом тексте, это означает, что интернет сервис не шифрует ваш пароль и его администраторы должны этого стыдиться.

Вы можете проверить это сами с помощью программы расшифровывания пароля. Если сгенерированный хэш слабого пароля (типа пароль или 123456) ввести в соответствующую программу, есть вероятность, что она распознает код.

Не так давно TechCrunch сообщал, что Dropbox – популярный сервис хранения в облаке – помешал одному из своих пользователей поделиться содержимым, защищенным Digital Millennium Copyright Act (DMCA). Этот пользователь разместил информацию в Twitter о том, что ему была заблокирована возможность предоставления доступа к содержимому, а Twitter только подогрел атмосферу. Многие пользователи решили, Dropbox просматривает контент пользователей, не выполняя соответствующих положений в своей политике конфиденциальности.

На самом деле, Dropbox не просматривал файлов пользователей. Как было отмечено в статье TechCrunch, вероятно, владелец авторских прав обнаружил скопированные файлы по хэшу. В таком случае выходное значение хэша (сорок символов) было добавлено во что-то типа черного списка материалов, защищенных авторскими правами. Когда пользователи пытаются делиться материалом с таким хэшем, автоматический сканер Dropbox блокирует распространение.

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

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



avatar