Хакер #305. Многошаговые SQL-инъекции
Алгоритм хеширования 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 лет.