Что такое SHA-1?
SHA в SHA-1 означает Алгоритм безопасного хеша, и, просто говоря, вы можете рассматривать это как своего рода математическую проблему или метод, который скремблирует данные, которые помещаются в него, Разработанный NSA Соединенных Штатов, он является основным компонентом многих технологий, используемых для шифрования важных передач в Интернете. Общие методы шифрования SSL и TLS, о которых вы, возможно, слышали, могут использовать хеш-функцию, такую как SHA-1, для создания подписанных сертификатов, которые вы видите на панели инструментов браузера.
Это много технической информации, но, проще говоря, хэш - это не то же самое, что шифрование, поскольку он используется для определения того, изменился ли файл.
Как эта технология влияет на меня?
Предположим, вам нужно посетить сайт в частном порядке. Ваш банк, ваша электронная почта, даже ваша учетная запись Facebook - все используют шифрование, чтобы сохранить данные, которые вы отправляете им конфиденциально. Профессиональный веб-сайт предоставит шифрование, получив сертификат от доверенного органа - третьего лица, которому доверяют, чтобы убедиться, что шифрование находится на уровне, закрытом между веб-сайтом и пользователем, и не отслеживается какой-либо другой стороной. Эти отношения с третьей стороной, называемые Органы сертификации, или же Калифорния, имеет решающее значение, поскольку любой пользователь может создать «самозаверяющий» сертификат - вы даже можете сделать это самостоятельно на машине под управлением Linux с Open SSL. Например, Symantec и Digicert являются двумя широко известными компаниями ЦА.
Давайте рассмотрим теоретический сценарий: How-To Geek хочет, чтобы сеансы пользователей были закрыты с помощью шифрования, поэтому он ходатайствует о CA, таком как Symantec, с Запрос на подпись сертификата, или же КСО, Они создают открытый ключ а также закрытый ключ для шифрования и дешифрования данных, отправленных через Интернет. Запрос CSR отправляет открытый ключ Symantec вместе с информацией о веб-сайте. Symantec проверяет ключ на свою запись, чтобы убедиться, что данные не изменены всеми сторонами, поскольку любое небольшое изменение в данных делает хэш радикально иным.
Поскольку хэш легко контролировать и невозможно (кто-то скажет «трудный»), наоборот, правильная, подтвержденная хеш-подпись означает, что сертификату и соединению можно доверять, и данные могут быть согласованы для отправки зашифрованных от конца до конца, Но что, если хэш фактически не был уникальным?
Что такое нападение на столкновение, и возможно ли это в реальном мире?
Возможно, вы слышали о «проблеме дня рождения» в математике, хотя вы, возможно, не знали, как это называется. Основная идея заключается в том, что, если вы соберете достаточно большую группу людей, шансы довольно высоки, и у двух или более человек будет тот же день рождения. На самом деле, выше, чем вы ожидали, достаточно, чтобы это казалось странным совпадением. В группе, насчитывающей до 23 человек, есть 50% вероятность того, что двое поделятся днем рождения.
Поиск совпадающих хэшей в двух файлах называется атака столкновения, Известно, что, по крайней мере, одна крупномасштабная атака столкновения уже произошла для хэшей MD5. Но 27 февраля 2017 года Google анонсировала SHAttered, первое в истории столкновение с SHA-1. Google смог создать PDF-файл с таким же SHA-1-хешем, что и другой файл PDF, несмотря на наличие другого контента.
SHAttered выполнялся в файле PDF. PDF-файлы - относительно свободный формат файла; можно сделать много крошечных изменений на уровне бит, не препятствуя открытию читателей или появлению каких-либо видимых различий. PDF-файлы также часто используются для доставки вредоносных программ. Хотя SHAttered может работать с другими типами файлов, такими как ISO, сертификаты жестко указаны, что делает такую атаку маловероятной.
Итак, насколько легко эта атака выполнить? SHAttered был основан на методе, обнаруженном Марком Стивенсом в 2012 году, который требовал более 2 ^ 60,3 (9,223 квинтиллиона) операций SHA-1 - ошеломляющего числа. Однако этот метод по-прежнему в 100 000 раз меньше операций, чем требуется для достижения того же результата с использованием грубой силы. Google обнаружил, что с 110 высокопроизводительными графическими картами, работающими параллельно, для создания столкновения потребуется около одного года. Аренда этого времени вычислений от Amazon AWS обойдется примерно в 110 000 долларов. Имейте в виду, что по мере снижения цен на компьютерные части, и вы можете получить больше энергии за меньшее, атаки, подобные SHAttered, становятся легче снимать.
$ 110 000 может показаться много, но это зависит от доступности для некоторых организаций, что означает, что cyberervillians в реальной жизни может подделывать подписи цифровых документов, вмешиваться в системы резервного копирования и контроля версий, такие как Git и SVN, или создавать вредоносные Linux ISO, которые выглядят законными.
К счастью, существуют смягчающие факторы, предотвращающие такие атаки. SHA-1 редко используется для цифровых подписей. Власти сертификатов больше не предоставляют сертификаты, подписанные с SHA-1, и Chrome и Firefox отказались от поддержки. Распределения Linux обычно выпускаются чаще, чем один раз в год, что делает непрактичным для злоумышленника создание вредоносной версии, а затем генерирует одно дополнение, имеющее один и тот же SHA-1 хэш.
С другой стороны, некоторые атаки, основанные на SHAttered, уже происходят в реальном мире. Система контроля версий SVN использует SHA-1 для дифференциации файлов. Загрузка двух PDF-файлов с идентичными хэшами SHA-1 в репозиторий SVN приведет к его повреждению.
Как я могу защитить себя от нападений SHA-1?
Для обычного пользователя не так много. Если вы используете контрольные суммы для сравнения файлов, вы должны использовать SHA-2 (SHA-256) или SHA-3, а не SHA-1 или MD5. Аналогично, если вы разработчик, обязательно используйте более современные алгоритмы хеширования, такие как SHA-2, SHA-3 или bcrypt. Если вы беспокоитесь о том, что SHAttered используется для того, чтобы дать двум отличным файлам одинаковый хэш, Google выпустил инструмент на сайте SHAttered, который может вас проверить.
Image Credits: Lego Firefox, много хэшей, пожалуйста, не мешайте веб-автору неизвестно, Google.