За последние два года большая часть цифрового мира была вынуждена перейти от ошибочного цифрового хэш-кода SHA-1 (Secure Hash Algorithm version 1) к SHA-2 (алгоритм Secure Hash Algorithm версии 2) из-за все более успешных шифровых атак , Любой, кто участвует в этих миграциях, знает много сотен часов исследований и работы, которые потребовались, чтобы успешно вывести его с минимальным операционным прерыванием. В большем количестве случаев, чем мы хотели бы признать, мы подготовили все, что могли, «бросили выключатель», а затем надеялись на лучшее.
Почему же мы не перешли на SHA-3 (Secure Hash Algorithm version 3) вместо SHA-2, так как мы знаем, что SHA- 2 имеет те же самые математические недостатки, что и SHA-1 и SHA-3? Почему мы вынуждены снова перезаписывать шифрование SHA?
Содержание статьи
Шири SHA и все более сложные атаки
SHA-1 был разработан Агентством национальной безопасности США (NSA) и опубликован Национальным институтом стандартов и технологий (NIST) в качестве федерального стандарта (FIPS Pub 180-1) в 1995 году. Он производит 160-битный дайджест сообщений, который, если криптографически совершенно безопасно, означает, что он возьмет грубую силу, угадающую атаку 2 159 пытается в среднем взломать хэш. Даже в сегодняшнем мире очень быстрых облачных компьютеров, 2 159 попытки считаются нетривиальными для создания полезной атаки. Нетривиальный термин, который используют крипторесурсы, когда они означают почти невозможное, если не невозможно, с учетом современного понимания математики и физики.
Начиная с 2005 года, несколько теоретических атак против SHA-1 были публично задокументированы. К 2012 году атаки SHA-1 теоретически уменьшили защиту SHA-1 от 159-битного максимального среднего значения до 57,5-61 бит защиты. На протяжении многих лет это была всего лишь теоретическая атака. Со временем ожидалось, что теоретика превратится в практическую, и это именно то, что произошло (хотя потребовалось еще пять лет).
Старые шифры, получившие трещины со временем, являются ожидаемым результатом для всех криптографических шифров. Соответственно, NIST (наряду с NSA) периодически проводит публичные конкурсы, где каждый может представить вновь созданные шифры для обзора и потенциального отбора. Эти конкурсы обычно занимают много лет и в них участвуют ведущие криптографы мира. В конце концов, новый стандарт шифрования выбирается и объявляется как официально требуемый шифр правительства США. Это число шифров, включая Advanced Encryption Standard (AES) и SHA-3.
Медленный переход от SHA-1 к SHA-2
Несмотря на то, что успешные атаки на SHA-1 были установлены, и SHA-2 был стандартным стандартом хэша NIST с 2011 года, большая часть мира не переместилась на SHA-2 к 2016 году. Мир реагирует быстрее всего на боли. В то время публичные хаки SHA-1 были только теоретическими.
В 2015 году большинство крупнейших в мире производителей криптообработки решили заставить своих клиентов переходить с SHA-1 на SHA-2 к 1 января, 2018, потому что теоретические перерывы в ближайшее время превратятся в настоящий перерыв. Это в основном работало. Большинство компаний недавно были вынуждены выполнять экстренные миграции в SHA-2 для любой программы или устройства, которые полагались на нее. Я написал технический документ на эту тему и несколько столбцов, включая этот.
К началу 2017 года большой процент клиентов перешел на SHA-2. Это было как раз вовремя. 23 февраля 2017 года Google объявил успешную, реальную атаку столкновения SHA-1, продемонстрировав представление двух разных PDF-файлов с одним и тем же хэшем SHA-1. Эта атака по существу полностью разрушила SHA-1.
Вы не могли бы написать лучший результат глобальной миграции. Поставщики криптографии в мире успешно переместили большую часть мира с SHA-1 на SHA-2 незадолго до того, как SHA-1 был сломан. Тот, кто еще не мигрировал, имеет гораздо более легкое время. Сотни тысяч компаний уже завершили успешные миграции, поэтому инструкции по переносу были доступны в Интернете, поставщики были готовы помочь, и большинство поставщиков программного обеспечения и устройств уже подготовили. Планирование и планирование миграции SHA-1-SHA-2 было полным успехом.
Если вы не спросили себя, почему мы не просто перешли на более безопасный SHA-3?
Зачем мигрировать в SHA-3?
]
SHA-1 и SHA-2 не были созданы конкурсами публично источников. Они были созданы NSA, а затем выпущены как патенты общего пользования. Хотя они не идентичны, они разделяют одну и ту же основную математику, которая содержит одни и те же криптографические недостатки.
Проблема с SHA-2
Хотя они значительно отличаются, SHA-1 и SHA-2 имеют одинаковые базовый алгоритм (SHA), и в конечном итоге некоторые длины хэшей подвержены тем же типам атак. В некоторых сценариях большая часть лучшей защиты SHA-2 над SHA-1 в основном связана с использованием SHA-2 больших входов и выходов.
Публичные атаки на SHA-2 происходят с 2008 года. произошло с SHA-1, нападения на SHA-2 стали все лучше и ослабевать SHA-2 с течением времени. Некоторые атаки имеют эффективную защиту SHA-2 до 2 37 . Некоторые из последних атак, публично объявленных в 2016 году, считают атаки SHA-2 уже «практичными». Звучит это знакомо? Это должно, потому что это то, что мы говорили о SHA-1 всего два или три года назад.
Опять же, ожидается, что существующие шифры будут атакованы и со временем станут слабее. Фактически, NIST выбрал SHA-3, используя публичный конкурс, явно имеющий новый стандарт хэширования, который не был получен из семейства SHA, готового к работе, когда это необходимо. Конкурс начался в 2006 году, шифр Keccak был выбран в качестве единственного финалиста в 2010 году, NIST опубликовал проекты стандартов в 2015 году, а SHA-3 стал официальным рекомендуемым стандартом 5 августа 2015 года.
Это где многие задавались вопросом, почему мы не просто перешли от SHA-1 к SHA-3. Мир был вынужден из SHA-1 с большей частью усилий по труду для перехода, который должен был состояться позднее в 2016 и 2017 годах. Официальная дата смерти для выхода из SHA-1 была 31 декабря 2017 года. Почти три года для подготовки, почему мы не сказали миру переехать в SHA-3 вместо SHA-2?
Почему мы не переехали в SHA-3?
Причина номер один в мире не перешел на SHA-3, потому что почти ни одно из программного обеспечения или оборудования в мире не поддерживало его. Даже если вы хотели переместиться на SHA-3, вы не могли бы этого сделать, если только вы не написали свой собственный код и прошивку для каждого устройства, которое вы использовали или использовали.
Кроме того, SHA-3 был родственником когда появился план миграции SHA-2. Если вы были на ранних встречах SHA-1, SHA-3 еще не был официальным стандартом. Что еще более важно, SHA-2, хотя он был несколько выведен из SHA-1, не был таким доступным, как SHA-1. Использование любой версии SHA-2 обеспечило достаточную, на время, защиту. В-третьих, SHA-3 широко воспринимался многими как намного медленнее, чем SHA-2. Итак, зачем рекомендовать что-то медленнее и не нужно?
. Большинство поставщиков SHA-2 должны были обновить свои процедуры SHA-2, чтобы исправить ошибки. Разработчикам шифров было бы так же легко писать в алгоритмах SHA-3, как и для реализации SHA-2. Производители шифров сделали бы это, если бы рекомендованный путь был SHA-1 на SHA-3 вместо того, чтобы идти на этот промежуточный шаг SHA-2.
Как насчет проблем с SHA-3?
SHA-3 работает медленнее только в программном обеспечении. В аппаратных средствах он легко удаляет SHA-1 и SHA-2.
Программное обеспечение SHA-1 в три раза быстрее, и SHA-512 в два раза быстрее, чем SHA-3 на Процессоры Intel. Хотя это не очень здорово, большинство хэш-проверок компонентов в большинстве программ и устройств настолько редко используются, что удвоение или утроение времени, необходимого для хэша или проверка хэша, не будет чрезмерно обременительным в большинстве сценариев клиентов. Поскольку наши процессоры становятся все быстрее и быстрее, это не заставит себя долго ждать, пока увеличение времени не будет заметно. Кроме того, авторы хэш-шифра, отобранные как SHA-3, сказали NSA / NIST несколько способов сделать это значительно быстрее в программном обеспечении.
. Более важно, почему быстрая хэш, если он не может быть
Как подготовиться к миграции SHA-3
Несомненно, что через несколько лет мы все будем выполнять миграцию SHA-3. Что вы можете сделать?
Во-первых, помните о предстоящей миграции SHA-3. Когда вы будете вынуждены это сделать, никто не знает. Это зависит от того, как практические атаки на SHA-2 продолжают складываться. Однажды Google или кто-то еще сообщит, что SHA-2 был сломан, и нам все нужно будет двигаться. Вам не обязательно быть одним из удивленных.
Во-вторых, сохраните свои старые планы и документы по миграции SHA-2. Миграция SHA-3 будет очень похожа на ваши усилия по миграции SHA-2. Подумайте о том, что вы сделали бы по-другому. Каковы были уроки, извлеченные из вашей миграции SHA-2? Обновите существующие документы о миграции шифрования, чтобы уроки не потерялись. Вы все еще документируете, какие программные и аппаратные продукты вы используете, какие шифры?
Наконец, помните, что миграция шифров будет нормальным, регулярным, непрерывным циклом, если вы будете работать в ИТ-мире. Вы, ваши сотрудники и ваши продавцы должны стать крипто-гибкими. Я описал концепцию криптомобильности здесь.
Эта история: «Почему мы не используем SHA-3?» был первоначально опубликован
CSO .