Sha1 0x7dab2a3c что это
Опасный алгоритм SHA-1 убирают из библиотек SSH
Сложность атак на SHA-1. Стоимость указана из расчёта стоимости аренды одного GTX 1060 в 35 долларов/месяц
Об отключении SHA-1 по умолчанию одновременно объявили разработчики опенсорсных библиотек OpenSSH (release notes) и libssh (изменение кода).
Алгоритм SHA (Secure Hash Algorithm) разработан АНБ совместно с NIST. Первую версию SHA-0 представили в 1993 году, но вскоре АНБ отозвало данную версию, сославшись на обнаруженную ими ошибку, которая так и не была раскрыта.
Исправленную версию АНБ опубликовала в 1995 году, она получила название SHA-1.
Криптографическая хеш-функция SHA-1 (Secure Hash Algorithm 1) генерирует строку из 160 бит, которая называется хэш-дайджестом. Теоретически, дайджесты должны быть уникальными для каждого файла, сообщения или другого входного сигнала, подаваемого в функцию. В качестве входного значения SHA-1 принимает сообщение не более бит, то есть примерно 2 эксабайта.
Понятно, что область значений дайджеста меньше области входных значений. Но на практике дайджест-коллизии должны быть неосуществимы, учитывая возможности производительности имеющихся вычислительных ресурсов. К сожалению, SHA-1 уже не соответствует этому критерию.
В 2017 году сотрудники компании Google и Центра математики и информатики в Амстердаме представили первый способ генерации коллизий для SHA-1.
Они опубликовали и доказательство: два документа PDF с разным содержимым, но одинаковыми цифровыми подписями SHA-1.
На сайте shattered.it можно проверить любой файл на предмет того, входит ли он в пространство возможных коллизий. То есть можно ли подобрать другой набор данных (файл) с таким же хешем. Вектор атаки здесь понятен: злоумышленник может подменить «хороший» файл своим экземпляром с закладкой, вредоносным макросом или загрузчиком трояна. И этот «плохой» файл будет иметь такой же хеш или цифровую подпись.
В последние годы множество программ и сервисов перестали использовать SHA-1 после того, как исследователи продемонстрировали практические способы подделки цифровых подписей, использующих SHA-1. Единодушное мнение экспертов состоит в том, что этот алгоритм теперь не безопасен почти во всех контекстах безопасности.
Компания Google давно выразила своё недоверие SHA-1, особенно в качестве использования этой функции для подписи сертификатов TLS. Ещё в 2014 году группа разработчиков Chrome объявила о постепенном отказе от использования SHA-1.
В 2017 году исследователи использовали инфраструктуру Google, чтобы произвести вычисления и проверить теоретические выкладки, сколько займёт поиск коллизии. Разработчики говорят, что это было одно из самых крупных вычислений, которые когда-либо проводила компания Google. В общей сложности было произведено девять квинтиллионов вычислений SHA-1 (9 223 372 036 854 775 808), что потребовало 6500 процессорных лет на первой фазе и 110 лет GPU на второй фазе атаки.
Блоки сообщений с одинаковым хешем SHA-1
В 2019 году исследователи Гаэтан Лоран и Томас Пейрин продемонстрировали атаку на отыскание коллизии с выбранным префиксом (chosen-prefix), которая имеет практический смысл для подбора конкретных ключей шифрования PGP/GnuPG. Наконец, в январе 2020 года авторам удалось на порядок оптимизировать атаку и снизить её теоретическую стоимость до коммерчески приемлемой цены (см. таблицу выше и pdf). Для демонстрации они создали пару разных ключей PGP/GnuPG с одинаковыми сертификатами SHA-1.
В качестве защиты от атаки на отыскание коллизий SHA-1 рекомендуется перейти на более качественные криптографические хеш-функции SHA-256 и SHA-3.
На это исследование от января 2020 года ссылаются разработчики OpenSSH, которые написали в примечаниях к последнему релизу: «Теперь можно выполнять атаки с выбранным префиксом по алгоритму SHA-1 менее чем за 50 тысяч долларов США. По этой причине в ближайшем будущем мы будем отключать алгоритм подписи открытого ключа «ssh-rsa» по умолчанию. К сожалению, этот алгоритм всё еще широко используется. Несмотря на существование лучших альтернатив, он долгое время оставался единственным алгоритмом подписи открытого ключа, заданным оригинальными SSH RFC».
В числе лучших альтернатив разработчики OpenSSH называют алгоритмы RFC8332 RSA SHA-2 (поддерживается с версии OpenSSH 7.2 и уже используется по умолчанию, если сервер и клиент его поддерживают), ssh-ed25519 (поддерживается с версии 6.5) и RFC5656 ECDSA (с версии 5.7).
Для проверки, что сервер при генерации открытого ключа для аутентификации использует слабый алгоритм SHA-1, попробуйте подключиться к нему после удаления алгоритма ssh-rsa из списка разрешённых в ssh(1):
Если верификация не проходит и другие типа ключей недоступны, то серверное программное обеспечение следует обновить.
В будущих версиях OpenSSH по умолчанию будет включена опция UpdateHostKeys, при которой клиент будет автоматически переходить на лучшие алгоритмы. Её можно активировать вручную.
Судя по всему, полное отключение SHA-1 займёт немало времени. Гаэтан Лоран из Национального института исследований в информатике и автоматике (Франция), один из соавторов январского исследования, не ожидает, что разработчики OpenSSH быстро это сделают: «Когда они полностью отключат SHA-1, будет невозможно подключиться с новой версии OpenSSH к устройству со старым SSH-сервером, — пишет он. — Вероятно, перед этим они предпримут ряд постепенных шагов (с громкими предупреждениями). С другой стороны, во встроенных системах с SSH, которые не обновлялись в течение многих лет, вероятно, много проблем с безопасностью, так что, возможно, не так уж плохо будет нарушить их работу… Во всяком случае, я вполне доволен этим ходом, это именно то, чего мы хотели добиться :-)».
После того как OpenSSH и libssh объявили о планах отключения SHA-1, список пользователей SHA-1 стал короче, но не исчез. Функция всё еще поддерживается в последних версиях библиотеки OpenSSL, которую многие веб-сайты и интернет-службы используют для реализации HTTPS и других протоколов шифрования. Последняя версия компилятора GNU Collection, выпущенная ранее в этом месяце, подписана цифровой подписью с хешем SHA-1.
Линус Торвальдс сказал, что в репозиториях Git коллизии хеша не представляют угрозы безопасности. Он пояснил, что сть большая разница между использованием криптографического хеша для цифровых подписей в системах шифрования и для генерации «идентификации контента» в системе вроде Git. Когда все данные лежат в открытом доступе, то реальная атака практически невозможна. Авторы научной работы приводят пример атаки на документы с идентичным префиксом. Эта атака успешна, потому что сам префикс «закрыт» внутри документа, как блоб. Если же у нас открытые исходники в репозитории, то это совсем другое дело. Вряд ли можно сделать такой префикс из исходного кода (только из блоба). Другими словами, для создания идентичного префикса и последующей генерации веток кода с одинаковыми хешами SHA-1 придётся внедрить в код некие случайные данные, что сразу же будет замечено. Линус говорит, что есть места, куда можно спрятать данные, но git fsck уже вылавливает такие фокусы. Тем не менее, у Линуса есть план, как уйти от использования SHA-1, чтобы никому даже не пришлось конвертировать свои репозитории.
Что такое SHA-1 и как он используется для проверки данных?
SHA-1 (сокращение от Secure Hash Algorithm 1 ) – одна из нескольких криптографических хеш-функций.
SHA-1 чаще всего используется для проверки того, что файл не был изменен. Это делается путем создания контрольной суммы до того, как файл был передан, а затем еще раз, как только он достигнет места назначения.
История и уязвимости хэш-функции SHA
SHA-1 – это только один из четырех алгоритмов в семействе алгоритмов безопасного хэширования (SHA). Большинство из них были разработаны Агентством национальной безопасности США (NSA) и опубликованы Национальным институтом стандартов и технологий (NIST).
SHA-0 имеет 160-битный размер дайджеста сообщений (хэш-значение) и был первой версией этого алгоритма. Хэш-значения SHA-0 имеют длину 40 цифр. Он был опубликован под названием «SHA» в 1993 году, но не использовался во многих приложениях, потому что он был быстро заменен на SHA-1 в 1995 году из-за недостатка безопасности.
SHA-1 – это вторая итерация этой криптографической хеш-функции. SHA-1 также имеет дайджест сообщения в 160 битов и стремится повысить безопасность за счет устранения слабости, обнаруженной в SHA-0. Однако в 2005 году SHA-1 также оказался небезопасным.
После того, как в SHA-1 были обнаружены криптографические недостатки, NIST сделал заявление в 2006 году, призывая федеральные агентства принять использование SHA-2 к 2010 году. SHA-2 сильнее, чем SHA-1, и атаки на SHA-2 маловероятны произойти с текущей вычислительной мощностью.
Не только федеральные агентства, но даже такие компании, как Google, Mozilla и Microsoft, либо начали планы прекращения приема сертификатов SHA-1 SSL, либо уже заблокировали загрузку таких страниц.
У Google есть доказательства коллизии SHA-1, которая делает этот метод ненадежным для генерации уникальных контрольных сумм, будь то пароль, файл или любая другая часть данных. Вы можете загрузить два уникальных файла PDF из SHAttered, чтобы увидеть, как это работает. Используйте калькулятор SHA-1 в нижней части этой страницы, чтобы сгенерировать контрольную сумму для обоих, и вы обнаружите, что значение точно такое же, даже если они содержат разные данные.
SHA-2 и SHA-3
Разработанный не-NSA дизайнерами и выпущенный NIST в 2015 году, он является еще одним членом семейства Secure Hash Algorithm, который называется SHA-3 (ранее Keccak ).
SHA-3 не предназначен для замены SHA-2, как предыдущие версии предназначались для замены более ранних. Вместо этого SHA-3 был разработан как еще одна альтернатива SHA-0, SHA-1 и MD5.
Как используется SHA-1?
Один из реальных примеров использования SHA-1 – это когда вы вводите свой пароль на странице входа на веб-сайт. Хотя это происходит в фоновом режиме без вашего ведома, это может быть метод, который веб-сайт использует для надежной проверки подлинности вашего пароля.
В этом примере представьте, что вы пытаетесь войти на сайт, который вы часто посещаете. Каждый раз, когда вы запрашиваете вход в систему, вы должны ввести свое имя пользователя и пароль.
Если веб-сайт использует криптографическую хэш-функцию SHA-1, это означает, что ваш пароль превращается в контрольную сумму после ее ввода. Затем эта контрольная сумма сравнивается с контрольной суммой, которая хранится на веб-сайте и связана с вашим текущим паролем, независимо от того, не изменил свой пароль с момента регистрации или если вы только что изменили его несколько минут назад. Если они совпадают, вам предоставляется доступ; если они этого не делают, вам говорят, что пароль неверный.
Другой пример, где может использоваться хеш-функция SHA-1, – для проверки файла. Некоторые веб-сайты предоставляют контрольную сумму файла SHA-1 на странице загрузки, чтобы при загрузке файла вы могли проверить контрольную сумму самостоятельно, чтобы убедиться, что загруженный файл совпадает с тем, который вы намеревались загрузить.
Вы можете спросить, где реальное использование этого типа проверки. Рассмотрим сценарий, в котором вы знаете контрольную сумму файла SHA-1 с веб-сайта разработчика, но хотите загрузить ту же версию с другого веб-сайта. Затем вы можете сгенерировать контрольную сумму SHA-1 для вашей загрузки и сравнить ее с подлинной контрольной суммой на странице загрузки разработчика.
Если эти два значения отличаются, это означает, что содержимое файла не только идентично, но что может быть скрытой вредоносной программой в файле, данные могут быть повреждены и нанести ущерб файлам вашего компьютера, файлу. не имеет ничего общего с реальным файлом и т. д.
Однако это также может означать, что один файл представляет более старую версию программы, чем другой, поскольку даже небольшое изменение приведет к созданию уникального значения контрольной суммы.
Вы также можете проверить, идентичны ли эти два файла, если вы устанавливаете пакет обновления или какую-либо другую программу или обновление, потому что возникают проблемы, если некоторые файлы отсутствуют во время установки.
Калькуляторы контрольной суммы SHA-1
Для определения контрольной суммы файла или группы символов можно использовать специальный калькулятор.
Например, SHA1 Online и SHA1 Hash Generator – это бесплатные онлайн-инструменты, которые могут генерировать контрольную сумму SHA-1 для любой группы текста, символов и/или чисел.
Для чего нужны хеши файла MD5, SHA-1 и SHA-256 – как проверять хеш
Иногда Вы можете встретить упоминание MD5, SHA-1 или SHA-256 хешей, отображаемых вместе с вашими, но, на самом деле, не знаете, что они означают. Эти, казалось бы, случайные строки текста позволяют Вам проверить, что файлы, которые вы загрузили, не были повреждены или подделаны.
Как используют хеши для проверки данных
Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.
Взгляните на диаграмму, и вы увидите, что хеш «Fox» и «The red fox jumps over the blue dog» имеет одинаковую длину. Теперь сравните второй пример на графике с третьим, четвертым и пятым. Вы увидите, что, несмотря на незначительные изменения во входных данных, хеши сильно отличаются друг от друга. Даже если кто-то изменит очень маленький фрагмент входных данных, хэш будет резко меняться.
MD5, SHA-1 и SHA-256 – это разные алгоритмы хеш-функции. Создатели программного обеспечения часто указывают хеш для загружаемых файлов.
Таким образом, Вы можете загрузить файл, а затем сравнить опубликованный с рассчитанным для загруженного файла, чтобы подтвердить, что Вы получили оригинальный файл, и что он не был поврежден во время процесса загрузки или подделан злонамеренно.
Как мы видели выше, даже небольшое изменение в файле резко изменит хэш.
Они также могут быть полезны, если файл получен из неофициального источника, и вы хотите проверить, что это «законно». Допустим, у Вас есть Linux.iso-файл, который вы откуда-то получили, и вы хотите убедиться, что он оригинальный. Вы можете посмотреть хеш этого ISO-файла в интернете на веб-сайте дистрибутивов Linux. Затем рассчитать хеш-функцию на вашем компьютере и убедиться, что результат соответствует хеш-значению, которое вы ожидаете от него. Это подтверждает, что у вас тот же файл, который предлагается для загрузки на официальном веб-сайте дистрибутива Linux.
Сравнение хеша в любой операционной системе
Имея это в виду, давайте посмотрим, как проверить хеш файла, который вы загрузили, и сравнить его с тем, который должен быть. Вот методы для Windows, macOS и Linux. Хеши всегда будут идентичны, если вы используете одну и ту же функцию хеширования в одном файле. Не имеет значения, какую операционную систему Вы используете.
Хэш файла в Windows
Этот процесс возможен без какого-либо стороннего программного обеспечения на Windows, благодаря PowerShell.
Выполните следующую команду, заменив «C:\path\to\file.iso» путём к любому файлу, для которого вы хотите просмотреть хеш:
Для создания хеша файла потребуется некоторое время, в зависимости от размера файла, используемого алгоритма и скорости диска, на котором находится файл.
По умолчанию команда покажет хеш SHA-256 для файла. Однако, можно указать алгоритм хеширования, который необходимо использовать, если вам нужен хэш MD5, SHA-1 или другой тип.
Выполните одну из следующих команд, чтобы задать другой алгоритм хэширования:
Сравните результат хеш-функций с ожидаемым результатом. Если это то же значение, файл не был поврежден, подделан или иным образом изменен от исходного.
Хэш файла на macOS
macOS содержит команды для просмотра различных типов хэшей. Для доступа к ним запустите окно терминала. Вы найдете его в Finder → Приложения → Утилиты → Терминал.
Команда md5 показывает MD5-хеш файла:
Команда shasum показывает хеша SHA-1 по умолчанию. Это означает, что следующие команды идентичны:
Чтобы отобразить хеш файла SHA-256, выполните следующую команду:
Хэш файла в Linux
В Linux обратитесь к терминалу и выполните одну из следующих команд для просмотра хеша файла, в зависимости от типа хеша, который вы хотите посмотреть:
Хэши с криптографической подписью
Хотя хэши могут помочь вам подтвердить, что файл не был подделан, здесь остаётся возможность для атаки. Злоумышленник может получить контроль веб-сайтом с дистрибутивом Linux и изменить хеш-коды, которые отображаются на нём, или злоумышленник может изменять веб-страницу во время передачи информации, если доступ происходит по протоколу http, вместо зашифрованного протокола https.
Вот почему современные дистрибутивы Linux часто предоставляют больше, чем хеши, перечисленные на веб-страницах. Они криптографически подписывают эти хеши, чтобы помочь защититься от злоумышленников, которые могут попытаться изменить хеши. Вы можете проверить криптографическую подпись, чтобы убедиться, что хеш действительно относится к дистрибутиву Linux. Проверка криптографической подписи хеша – более сложный процесс, выходящий за рамки представленной статьи.
Прекращена поддержка конечных точек Центра обновления Windows на основе SHA-1 для устройств со старыми версиями Windows
Введение
В соответствии с политикой завершения поддержки алгоритма SHA-1 (Майкрософт) Центр обновления Windows прекращает использовать конечные точки на основе SHA-1 в конце июля 2020 г. Это означает, что устройства со старыми версиями Windows, не обновленные до SHA-2, больше не будут получать обновления через Центр обновления Windows. Ваши устройства со старыми версиями Windows могут продолжать использование Центра обновления Windows путем установки вручную определенных обновлений, включающих поддержку SHA-2.
Все остальные платформы Windows продолжат получать обновления через Центр обновления Windows, так как они подключены к конечным точкам службы SHA-2.
С чем связано это обновление?
Поддержка устаревших конечных точек службы Центра обновления Windows, использовавшихся только для старых платформ, прекращается. Это изменение вносится, из-за слабостей алгоритма хеширования SHA-1 и для обеспечения соответствия отраслевым стандартам.
Хотя конечная точка SHA-1 больше не поддерживается, устройства с новыми версиями Windows продолжат получать обновления через Центр обновления Windows, так как эти устройства используют более безопасный алгоритм SHA-2. Чтобы узнать, затрагивается ли ваше устройство, см. таблицу в разделе «Какие устройства с Windows затронуты».
Какие устройства с Windows затронуты?
Большинство пользователей не затрагиваются этим изменением. С Windows 8 для компьютеров и Windows Server 2012 подключения к конечным точкам службы Центра обновления Windows используют более современный алгоритм (SHA-256). В более ранних версиях Windows для подключения к конечным точкам службы Центра обновления Windows используется менее надежный алгоритм SHA-1.
Для большинства затронутых версий Windows обновление SHA-2 добавит поддержку, необходимую для продолжения получения обновлений через Центр обновления Windows. В таблице ниже показано влияние на различные версии Windows. Некоторые платформы больше не поддерживаются, поэтому они не будут обновлены.
Windows для рабочего стола
Устройство не поддерживается
Центры обновления Windows больше не будут поддерживаться.
64-разрядная версия Windows XP
Windows XP с пакетом обновления 3 (SP3)
Windows Vista с пакетом обновления 1 (SP1)
Windows Vista с пакетом обновления 2 (SP2)
Поддержка Центра обновления Windows будет затронута.
Проблему можно устранить путем ручной установки обновлений KB.
Windows 7 с пакетом обновления 1 (SP1)
Windows 8 и более поздние версии
Не затрагивается
Обновление не требуется
Windows 2000 Server
Устройство не поддерживается
Центры обновления Windows больше не будут поддерживаться.
Windows Server 2003
Windows Server 2003 с пакетом обновления 2 (SP2)
Windows Server 2008
Поддержка Центра обновления Windows будет затронута.
Проблему можно устранить путем ручной установки обновлений KB.
Windows Server 2008 с пакетом обновления 2 (SP2)
Windows Server 2008 R2
Windows Server 2008 R2 с пакетом обновления 1 (SP1)
Windows 2012 и более поздние версии
Не затрагивается
Обновление не требуется
Что произойдет с затронутыми устройствами?
В соответствии с предыдущей таблицей это изменение затрагивает только устройства со старыми версиями Windows, которые не обновлены до SHA-2. Затронутые устройства больше не смогут получать обновления через Центр обновления Windows, пока вы вручную не обновите их до SHA-2. Чтобы вручную обновить устройства с Windows, см. раздел «Как обновить устройства с Windows до SHA-2».
Устройство с Windows, не обновленное до SHA-2, попытается найти обновления и вернет одну из следующих ошибок:
Код ошибки 80072ee2: Устройству не удается подключиться к Центру обновления Windows.
Код ошибки 8024402c: Устройство не может найти Центр обновления Windows.
Код ошибки 80244019: Устройству не удается подключиться к Центру обновления Windows.
Некоторые проверки на наличие обновлений выполняются без непосредственного взаимодействия с пользовательским интерфейсом, например автоматические обновления, драйверы устройств, подписи антивирусной программы в Защитнике, обновления Microsoft Office и т. д. Для таких «фоновых» проверок эти сбои будут неочевидными. В таком случае вы можете проверить файл журнала Центра обновления Windows (c:\windows\windowsupdate.log) на наличие кодов сбоев: 0x8024402c, 8024402c, 0x80072ee2, 80072ee2, 0x80244019 или 80244019.
Как обновить устройства с Windows до SHA-2
Чтобы продолжать использовать Центр обновления Windows для устройств со старыми версиями Windows, вам требуется скачать и установить следующие два обновления:
Обновление 1: поддержка подписи кода SHA-2
При применении этого обновления добавляется поддержка для проверки подписей с использованием более безопасных алгоритмов хеширования SHA-2. Применяйте только обновление, подходящее для вашего устройства с Windows.
KB4474419: обновление поддержки подписи кода SHA-2
Область применения: Windows 7 SP1, Windows Server 2008 R2 SP1 и Windows Server 2008 SP2
KB4484071: поддержка SHA-2 для Windows Server Update Services
Область применения: Windows Server Update Services 3.0 SP1 и Windows Server Update Services 3.2
Примечание. Большинству пользователей следует устанавливать только обновление KB4474419. Корпоративные администраторы также могут установить обновление KB4484071.
Обновление 2: обновления стека обслуживания, связанного с SHA-2
При установке этого обновления добавляется поддержка в стек обслуживания Центра обновления Windows, чтобы проверять подписи SHA-2 и инструктировать затронутые устройства с Windows на выполнение связи с использованием современных конечных точек службы на основе SHA-2 в Центре обновления Windows. Применяйте только обновление, подходящее для вашего устройства с Windows.
KB4490628: Обновление стека обслуживания
Область применения: Windows 7 SP1 и Windows Server 2008 R2 SP1
KB4493730: обновления стека службы WU
Область применения: Windows Server 2008 SP2