Алгоритм хеширования SHA-1 был разработан еще в 1995 году специалистами АНБ, совместно с учеными из NIST (Национальный институт стандартов и технологий США). Первые признаки устаревания этого алгоритма, долго служившего верой и правдой, аналитики стали обнаруживать еще в 2005 году: именно тогда эксперты заговорили о потенциальной возможности взлома SHA-1 через коллизионную атаку, что в теории давало злоумышленникам возможность создать поддельный файл, с таким же SHA-1 хешем, как у настоящей версии файла.

Криптографы и эксперты давно говорят о необходимости перехода на более стойкие SHA-2 и SHA-3, и компании прислушиваются к этим советам. Так, организация Mozilla давно объявила о прекращения поддержки SHA-1, и в Firefox 52 он будет отключен. Также с января текущего года от SHA-1 отказались и разработчики Chrome. Тем не менее, до недавних пор дискуссии о ненадежности SHA-1 велись исключительно с поправкой «теоретически», так как фактически взлом алгоритма продемонстрирован не был.

Стоит отметить, что осенью 2015 года сводная группа ученых из ряда университетов мира представила доклад под названием The SHAppening.

В опубликованном исследовании, эксперты доказали, что SHA-1 уязвим к атаками, которые они назвали «freestart collision». Атака опирается на коллизии хеш-фукнций, и о том, что подобное возможно, еще в 2012 году говорил известный криптограф и писатель Брюс Шнайер (Bruce Schneier). Он полагал, что проведение подобной атаки к 2015 году будет оцениваться в $700 000, а к 2018 году в $173 000. Однако Шнайер ошибся. По данным исследователей, в 2015 году атака обошлась бы хакерам лишь в $75 000 – 120 000. Такое стало возможно, благодаря разработанной учеными технике «boomeranging», использующей GPU. Именно вскоре после публикации этого доклада Mozilla, Microsoft и Google объявили о своем решении поскорее «расстаться» с SHA-1.

Но теперь теории остались в прошлом. 23 февраля 2017 года специалисты Google, при поддержке ученых из нидерландского Centrum Wiskunde & Informatica (Центр математики и информатики), работавших и над докладом The SHAppening, представили на суд публики отчет (PDF) о первой реально осуществленной коллизионной атаке на SHA-1, получившей имя SHAttered. В качестве доказательства успеха атаки специалисты опубликовали два PDF-файла с одинаковым SHA-1 хешем (1 и 2), также был запущен отдельный сайт, посвященный взлому и ненадежности SHA-1 в целом.

Теперь, когда алгоритм SHA-1 официально повержен, единственная хорошая новость заключается в том, что инженеры Google описывают атаку как «один из наиболее массивных вычислительных процессов на все времена», то есть скоро повторить проделанную командой работу, вряд ли кому-то удастся. И хотя угроза повторения таких атак злоумышленниками пока мала, специалисты все же отложили публикацию proof-of-concept кода на стандартные 90 дней, давая компаниям три месяца на подготовку. Стоит понимать, что компьютерные вычисления становятся дешевле день ото дня, и скоро на генерацию кастомного SHA-1 хеша будут уходить месяцы или и того меньше.

Исследователи приводят интересную статистику, которая хорошо помогает понять масштаб проделанной ими работы. Так, для реализации атаки потребовалось осуществить 9 223 372 036 854 775 808 операций. Один CPU занимался бы этими вычислениями 6500 лет, а у одного GPU ушло бы 110 лет. Атака SHAttered в 100 000 раз быстрее брутфорс-атаки, полагающийся на парадокс дней рождений, то есть на брутфорс-атаку у одного GPU ушло бы около 12 000 000 лет.



2 комментария

  1. Vlад

    26.02.2017 at 15:26

    «…Атака SHAttered в 100 000 раз быстрее брутфорс-атаки, полагающийся на парадокс дней рождений, то есть на брутфорс-атаку у одного GPU ушло бы около 12 000 000 лет.»

    Как получено число 12 000 000 (лет)?

    • Мария Нефёдова

      Мария Нефёдова

      26.02.2017 at 19:31

      Число взято с официального сайта и из отчета группы:

      «The SHAttered attack is 100,000 faster than the brute force attack that relies on the birthday paradox. The brute force attack would require 12,000,000 GPU years to complete, and it is therefore impractical».

      «A brute-force search for collisions based on the so-called birthday paradox has a well understood cost of √ π/2 ⋅ 2 n/2 expected calls to the hash function».

Оставить мнение