После прошлого сообщения о том, что шпионская программа Flame перехватывала легальные сертификаты Microsoft и распространялась под видом Windows Update, появилось большое количество вопросов: как конкретно это было реализовано? Программист подразделения Microsoft Security Research Джонатан Несс (Jonathan Ness) вчера ответил на все вопросы.
Если вкратце, то по умолчанию имеющийся в программе сертификат не должен работать в Vista или более поздних версиях Windows. Поэтому им пришлось осуществлять атаку на коллизию хеша, чтобы подделать сертификат, работающий в Vista или Windows 7. На системах до Vista такая атака возможна без коллизии хеша MD5, потому что там в сертификатах не проверяется «критическое» расширение сертификата Microsoft Hydra, в более поздних версиях злоумышленникам нужно было убрать это расширение.
Атака на коллизию хеша стала возможной благодаря тому, что Flame смог успешно предсказать содержимое сертификата X.509 по его серийному номеру. Данный тип атаки более подробно описан в научной работе за июнь 2009 года: Chosen-prefix Collisions for MD5 and Colliding X.509 Certificates for Different Identities.
Таким образом, Flame делал сертификаты без видимых расширений X.509, таких как Certificate Revocation List (CRL), Distribution Point (CDP), Authority Information Access (AIA) и Microsoft Hydra.
Сертификат Flame и все сгенерированные во время его работы сертификаты уже аннулированы с выпуском Security Advisory 2718704. Кроме того, Microsoft усилила защиту в системе Windows Update.