Так как р — простое число, то существуют такое число е, что е-Q = Р. Нахождение е — вычислительно сложная задача дискретного логарифмирования на эллиптической кривой, для решения которой на сегодняшний день не существует эффективных алгоритмов. Но если предположить, что злоумышленник знает е, то получается следующая атака: Если х=ti — очередной выход генератора, и если существует такое у, что у2 = хЗ + ах + b mod р, то точка А = (х, у), лежит на кривой и для неё выполняется следующее равенство: А = ri Q. Зная число е можно вычислить: si+1 = ср(е • А) = <р(с ri • Q) =
Исследователями компании
Как можно видеть, после второго оператора if стоят две строчки goto fail, и вторая строчка выполняется всегда, независимо от результата if. Таким образом процедура проверки сертификата проходит не полностью. Злоумышленник, знающий об этой уязвимости, может легко подделать сертификат и пройти проверку подлинности. Это позволит ему организовать атаку типа
Очень многие современные криптографические алгоритмы используют при своей работе определённый набор внутренних констант. Как правило, эти константы задаются стандартом и выбираются из соображений
В качестве такого примера использования констант можно привести исследовательские работы на тему так называемого «вредоносного хэширования», где авторам удалось построить
криптографической
SHA1 — современная раундовая хэш-функция. Алгоритм хэширования следующий:
• инициализируются 32-битные значения а = hO, b = hl, с = h2, d = h3, е = h4;
• входное сообщение разбивается на блоки длиной 512 бит;
• каждый блок сообщения обрабатывается и дополняется специальным образом, по алгоритму, определённому в стандарте;
• полученный блок сообщения хэшируется в 4 этапа по 20 раундов в каждом, причём для каждого этапа используется своя константа KI, К2, КЗ или К4;
• выходом функции для каждого блока будут новые значения а, Ь, с, d, е, которые добавляются к результату: hO = hO + а, hl =hl +b,h2 = h2 + c, h3 = h3 + d, h4 = h4 + e;
• итоговым результатом хэширования будет 160-битное значение, полученное конкатенацией пяти 32-битных значений hO, hl, h2, h3, h4 после обработки последнего блока сообщения.
Целью рассматриваемой атаки является нахождение таких констант KI, К2, КЗ, К4 и таких сообщений Ml, М2, что Hash(Ml) = Hash(M2). Данная атака модифицирует только первые 512 бит (1-й блок) сообщений для которых требуется построить коллизию. Алгоритм базируется на уже известной разностной атаке на SHA1, предложенной в 2005 году и имеющей сложность порядка 269 операций, что делает её трудноосуществимой на практике. Поэтому до настоящего времени ни одной реальной коллизии для SHA1 найдено не было.
Но в случае создания вредоносного варианта SHA1 злоумышленник может варьировать нс только блоки сообщений Ml и М2, но и раундовые константы KI, К2, КЗ, К4. Согласно исследованиям, это сильно снижает сложность атаки до порядка 248 операций и делает построение таких коллизий реальной задачей, которую можно выполнить на нескольких компьютерах. Таким образом, авторам исследования удалось построить одноблоковые коллизии для многих известных типов файлов.
Пример использования вредоносного хэширования для создания бэкдоров.
С помощью описанной атаки были созданы два sh-скрипта, которые при выборе KI = 5а827999, К2 = 88е8са68, КЗ = 578059dc, К4 = 54324а39 дают одинаковую хэш-сумму SHA1, но работают по-разному.
Как можно видеть, различие между этими двумя скриптами заключается только в первых блоках по 512 бит, которые представляют из себя закоментированный мусор. Но содержимое этих блоков затем используется в условии if, следовательно, скрипты при запуске работают по-разному. Подобные файлы могут быть использованы создателем со злым умыслом.
Бэкдоры могут встраиваться не только в программное обеспечение, но и в практически любую аппаратуру. Подобные бэкдоры могут использоваться производителями аппаратной начинки для встраивания в неё вредоносных функций на этапе производства.
При этом аппаратные бэкдоры имеют ряд преимуществ над программными:
• не могут быть обнаружены
• не могут быть устранены обновлением или заменой программного обеспечения.
Примером аппаратного бэкдора может быть вредоносная прошивка
Принцип действия вредоносной прошивки кратко можно описать так: сразу после включения заражённого компьютера, ещё до загрузки операционной системы, она производит попытку установить соединение с сервером злоумышленника через интернет. Если такая попытка удалась, то производится удалённая загрузка какого-нибудь