Домашняя » как » Что такое SHAttered? Объясненные столкновения SHA-1, объяснение

    Что такое SHAttered? Объясненные столкновения SHA-1, объяснение

    В первый день 2016 года Mozilla прекратила поддержку ослабленной технологии безопасности под названием SHA-1 в веб-браузере Firefox. Почти сразу же они отменили свое решение, так как это ограничит доступ к некоторым старым сайтам. Но в феврале 2017 года их опасения наконец сбылись: исследователи взломали SHA-1, создав первую в мире атаку на столкновение. Вот что все это значит.

    Что такое SHA-1??

    SHA в SHA-1 означает Безопасный алгоритм хеширования, и, проще говоря, вы можете думать об этом как о математической задаче или методе, который шифрует данные, которые помещены в него. Разработанный NSA США, он является основным компонентом многих технологий, используемых для шифрования важных передач в Интернете. Распространенные методы шифрования SSL и TLS, о которых вы, возможно, слышали, могут использовать хеш-функцию, например SHA-1, для создания подписанных сертификатов, которые вы видите на панели инструментов браузера..

    Мы не будем углубляться в математику и информатику каких-либо функций SHA, но вот основная идея. «Хеш» - это уникальный код, основанный на вводе любых данных. Даже небольшая случайная строка букв, введенная в хеш-функцию, такую ​​как SHA-1, будет возвращать длинное заданное количество символов, что делает (потенциально) невозможным возврат строки символов обратно к исходным данным. Так обычно работает хранение паролей. Когда вы создаете пароль, ваш пароль хешируется и сохраняется на сервере. По возвращении, когда вы вводите пароль, он снова хэшируется. Если он совпадает с исходным хешем, можно предположить, что входные данные совпадают, и вам будет предоставлен доступ к вашим данным..

    Хэш-функции полезны прежде всего потому, что они позволяют легко определить, изменились ли входные данные, например, файл или пароль. Когда входные данные являются секретными, как и пароль, хэш почти невозможно восстановить и восстановить исходные данные (также известные как «ключ»). Это немного отличается от «шифрования», целью которого является скремблирование данных с целью последующего дескремблирования с использованием шифров и секретных ключей. Хэши просто предназначены для обеспечения целостности данных - чтобы убедиться, что все одинаково. Git, программное обеспечение для управления версиями и распространения открытого кода, использует хэши SHA-1 именно по этой причине.

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

    Как эта технология влияет на меня?

    Допустим, вам нужно посетить сайт в частном порядке. Ваш банк, ваша электронная почта, даже ваша учетная запись Facebook - все используют шифрование, чтобы сохранять данные, которые вы отправляете им, конфиденциальными. Профессиональный веб-сайт обеспечит шифрование путем получения сертификата от доверенного органа - третьей стороны, которому доверяют, чтобы гарантировать, что шифрование находится на уровне, конфиденциальном между веб-сайтом и пользователем, и не отслеживается какой-либо другой стороной. Эти отношения с третьей стороной, называемые Центры сертификации, или же Калифорния, имеет решающее значение, так как любой пользователь может создать «самозаверяющий» сертификат - вы даже можете сделать это самостоятельно на машине под управлением Linux с Open SSL. Symantec и Digicert - две широко известные компании CA, например.

    Давайте разберемся с теоретическим сценарием: How-To Geek хочет сохранять конфиденциальность зарегистрированных сеансов пользователей с помощью шифрования, поэтому он обращается к центру сертификации, подобному Symantec, с Запрос на подпись сертификата, или же КСО. Они создают открытый ключ а также закрытый ключ для шифрования и дешифрования данных, отправляемых через Интернет. Запрос CSR отправляет открытый ключ в Symantec вместе с информацией о веб-сайте. Symantec проверяет ключ на соответствие его записи, чтобы убедиться, что данные не изменены всеми сторонами, потому что любое небольшое изменение в данных делает хэш радикально другим.

    Эти открытые ключи и цифровые сертификаты подписаны хеш-функциями, потому что выходные данные этих функций легко увидеть. Публичный ключ и сертификат с проверенным хешем от Symantec (в нашем примере), авторитетного пользователя, заверяет пользователя How-To Geek, что ключ не изменен и не отправлен кем-то вредоносным.

    Поскольку хеш-код легко контролировать и его невозможно (некоторые называют «трудным») изменить, правильная, проверенная хэш-подпись означает, что сертификат и соединение могут быть доверенными, и можно согласовать отправку данных в зашифрованном виде от начала до конца. , Но что если хеш не был на самом деле уникальным?

    Что такое коллизионная атака и возможно ли это в реальном мире??

    Возможно, вы слышали о «проблеме рождения» в математике, хотя, возможно, вы не знали, как она называется. Основная идея заключается в том, что если вы соберете достаточно большую группу людей, очень высоки шансы, что у двух или более людей будет одинаковый день рождения. Выше, чем вы ожидаете, на самом деле - достаточно, чтобы это казалось странным совпадением. В группе из 23 человек есть 50% шанс, что двое будут иметь день рождения.

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

    Поиск совпадающих хэшей в двух файлах называется атака столкновения. Известно, что по крайней мере одна крупномасштабная атака столкновений уже произошла для хэшей 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 - это много, но для некоторых организаций это вполне приемлемо. Это означает, что кибервиллы в реальной жизни могут подделывать подписи цифровых документов, создавать помехи системам резервного копирования и контроля версий, таким как 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 инструмент, который может проверить вас..

    Авторы изображения: Lego Firefox, много хэша, пожалуйста, не навредите веб-сайту, неизвестный автор, Google.