Витрина
Журналов

Токены и криптография №1

Комментарии
0

категория журнала | Наука и Техника

Токены и криптография №1

Аппаратные ОТР токены YubiKey и методы их взлома

Бренд: Токены и криптография

Автор: semvlad

Дата издания: 07.02.2018

YubiKey U2F: исследуем безопасность


 Что вызвало наш интерес к токенам YubiKey
В процессе того, как мы пытались разобраться с техническими и криптографическими приемами по извлечению ключей шифрования и цифровой подписи RSA непосредственно из работающих процессоров персональных компьютеров, изложенными в работах израильских криптографов (об этом расскажем чуть позднее), на глаза попалась интересная работа трех немцев, посвященная возможности взлома известных токенов YubiKey для генерации одноразовых паролей (ОТР).  Эти токены выпускает известная шведская фирма Yubico Inc. (www.yubico.com), центральный офис которой расположен в амбициозном офисном центре в самом престижном районе Стокгольма.
Токены одноразовых паролей фирмы Yubico Inc., получившие название YubiKey, стали широко известны в мире информационной безопасности (да и вообще в мире) благодаря тому, что корпорация Google в 2013 году приняла решение использовать их как средство двухфакторной аутентификации для своих электронных сервисов: (www.yubico.com/support/knowledge-base/categories/articles/how-to-use-your-yubikey-with-google)
Это сразу же привлекло внимание многих исследователей в области информационной безопасности к оценке стойкости такой системы одноразовых паролей. В частности, авторы работы (¹) задались целью оценить возможность практически «взломать» такие токены и извлечь из памяти токенов секретные ключи генерации одноразовых паролей, тем самым полностью скомпрометировав эти устройства. Авторы этой работы в свою очередь опирались на известные результаты предыдущих исследователей в данной области (²), (³), в которых были описаны схемы атаки на давно и хорошо известную систему двухфакторной аутентификации RSA SecurID.
Обе атаки основывались на слабости криптографического протокола, положенного в основу системы аутентификации.  При этом обычно атаки на реальную (аппаратную) реализацию схемы аутентификации предполагались заведомо более трудоемкими. 
_____________________________________
¹) David Oswald, Bastian Richter, and Christof Paar. Side-Channel Attacks on the Yubikey 2 One-Time Password Generator, RAID 2013, LNCS 8145, pp. 204-222, 2013 Horst Görtz Institute for IT Security Ruhr-University Bochum, Germany, david.oswald@rub.de, bastian.richter@rub.de, christof.paar@rub.de  ²) R. Bardou, R. Focardi, Y. Kawamoto, L. Simionato, G. Steel, and J.-K. Tsay. Efficient padding oracle attacks on cryptographic hardware. In R. Safavi-Naini and R. Canetti, editors, Advances in Cryptology — CRYPTO 2012, volume 7417 of LNCS, pages 608–625. Springer, 2012 ³) P. Bright. RSA finally comes clean: SecurID is compromised, June 2011.

Конечно, «классические» разрушающие атаки на токены предполагают использование весьма дорогостоящего оборудования, т.е. микрозонда и Сфокусированного Ионного Пучка (Focused Ion Beam, FIB), которые требуют и соответствующей квалификации управляющего персонала (опытного инженера-электронщика). 
Однако, за последние несколько лет разработанные атаки по побочным каналам показали реальную возможность неразрушающего извлечения секретных ключей из памяти многих встроенных криптографических процессоров.
Атаки по побочным каналам (Side-Channel-Attacks, SCA) используют информацию, которая предназначалась для разработчиков. Например, информация об электропотреблении или электромагнитном излучении (ЭМИ) устройств. Часто такие атаки не требуют дорогостоящего оборудования и могут быть реализованы не только в высокотехнологичной лаборатории.
Возникает естественный вопрос, насколько токены ОТР уязвимы по отношению к атакам этого типа. В своей работе авторы обращаются конкретно к токену модели YubiKey 2, — это USB-устройство, выпускаемое компанией Yubico Inc. (www.yubico.com).
Мотивом для такого выбора авторы называют тот факт, что одна из очень крупных компьютерных групп пользователей использует именно токены такого типа для двухфакторной аутентификации. 
Токены YubiKey 2 отличаются от большинства других ОТР токенов простотой и программной поддержкой программами с открытым кодом. Вопрос только в том, насколько относительно дешевые токены могут обеспечить надежную защиту 128-битных ключей алгоритма AES, применяемого для генерации ОТР паролей.
Компания Yubico Inc. (www.yubico.com) имеет несколько очень внимательно относящихся к вопросам безопасности информации заказчиков: Novartis, AGFA, несколько подрядчиков Пентагона.
Причем эти подрядчики Пентагона перешли на использование токенов YubiKey 2 с использования устройств аутентификации RSA SecurID, хотя токены YubiKey 2 не сертифицированы на соответствие стандартам Правительства США  (Yubico Reference Customers: Department of Defense www.yubico.com/about/reference-customers/department-defence).
____________________________________
¹) K. Paterson and N. AlFardan. On the Security of RC4 in TLS. Website, March 2013
Двухфакторная аутентификация
Привычный способ аутентификации по логину и паролю пользователя уже не считается достаточно надежной в очень многих ситуациях. Эти параметры пользователя могут быть довольно легко получены злоумышленниками методов социальной инженерии или из-за слабостей самого протокола аутентификации, например, см. (¹). Поэтому необходим дополнительный фактор безопасности.
Как признанный второй фактор безопасности аутентификации и выступает ОТР токен.  Пароли ОТР генерируются аппаратно (реже – программно) токеном и служат естественным дополнением к логину и паролю пользователя.
Токен генерирует значение ОТР, которое пригодно только однократно и часто его можно использовать только в течение короткого периода времени. В таком случае пользователь знает свой логин и пароль, а также имеет ОТР токен для генерации паролей одноразовых.  ОТР пароль обычно генерируется на основе показаний счетчика или метки времени и секретного ключа генерации одноразовых паролей, хранимого в защищенной памяти токена при помощи преобразований хэширования или шифрования соответствующих значений.
Конечно, если противник сможет физический токен и узнает логин и пароль пользователя, он сможет успешно аутентифицироваться в системе. Однако, как только токен вернется в руки законного пользователя, противник будет лишен возможности доступа к ресурсам системы.

Модель нарушителя
Предполагается, что противник имеет доступ к токену на некоторый ограниченный период времени (в пределах от нескольких часов до нескольких дней), например, когда законный пользователь оставил его на столе во время обеденного перерыва, или забыл его в верхнем ящике стола, уехав в отпуск.
Или же токен может быть украден и возвращен без обнаружения пользователем факта кражи. В свете истории с компанией Локхид Мартин, предположительно явившейся мотивировкой для проникновения в сеть RSA, такой сюжет не кажется невероятным (¹). 
Организации, специализирующиеся на промышленном шпионаже, идут на очень сложные схемы действий для преодоления систем защиты, и получение токена на ограниченное время представляется вполне реалистичным допущением.
В отличие от простой попытки использовать токен для незаконного проникновения в систему, мы сконцентрируемся на попытке получения непосредственно криптографического секрета (ключа) из памяти токена. Это позволит противнику в случае успеха изготовить неотличимые дубликаты токена, которыми можно будет пользоваться практически неограниченное время.
Кроме непосредственного доступа к токену не требуется изменять его прошивку или применять разрушающее воздействие на процессор. Описываемый ниже SCA метод основан на неинвазивном (без нарушения целостности токена) пассивном наблюдении за поведением токена и не оставляет никаких следов, которые могли бы быть обнаружены поздней.

Атаки по побочным каналам
Атака по побочным каналам обычно состоит из двух этапов. На первом противник получает физический доступ к устройству и измеряет сигналы, испускаемые устройством по побочным каналам (электрические колебания питания, или ЭМИ) во время выполнения криптографических преобразований.  Этот процесс повторяется N раз с различными входными данными дающими N разделенные по времени электромагнитные волны x(i,t), называемые следами. Для восстановления криптографического ключа следы статистически обрабатывают на этапе оценки, используя коэффициент корреляции Пирсона и выполняя Корреляционный Анализ по Питанию (²).  Например, для реализации алгоритма шифрования AES этот процесс, проделывается для каждого S-бокса отдельно, требуя при 128-битном ключе выполнения существенно меньше работы, порядка O(16*(2**8)), что существенно меньше, чем трудоемкость O(2**128 ) алгоритма полного перебора ключей.
_________________________
¹) S. Mangard, E. Oswald, and T. Popp. Power Analysis Attacks: Revealing the Secrets of Smart Cards. Springer-Verlag, 2007)


Предшествующие работы
Начиная с первой работы по дифференциальному криптографическому анализу на основе изменений питания (Differential Power Analysis, DPA) 1999 года (¹). Было опубликовано большое количество по методам SCA, например, известный метод CPA (²) или метод с использование ЭМИ вместо анализа изменений питания (³).
_______________________________________
¹) P. Kocher, J. Jaffe, and B. Jun. Differential power analysis. In Proceedings of CRYPTO 1999, pp. 388–397, 1999 ²) E. Brier, C. Clavier, and F. Olivier. Correlation power analysis with a leakage model. In CHES 2004, 2004 ³) Agrawal, B. Archambeault, J. R. Rao, and P. Rohatgi. The EM Side-Channel(s). In Cryptographic Hardware and Embedded Systems – CHES 2002, LNCS, pages 29 – 45. Springer, 2003
Достаточно полный обзор научных и практических работ в этом направлении, опубликованных до 2007 года, можно найти в работе (¹). Однако вплоть до 2008 года не было описано ни одного случая успешной практической атаки по побочным каналам на реальную систему. 
Ситуация радикально изменилась со взломом системы KeeLoq (²). Затем целый ряд широко известных систем был успешно атакован методом SCA. Например, система Mifare DESFire MF3ICD40 на бесконтакных смарткартах (³). Или поточные системы шифрования данных от Xilinx и Altera Field Programmable Gate Arrays (FPGAs): (¹¹) В работе: анализируются токены предыдущих поколений, описываются их программные и аппаратные уязвимости, но ничего не говорится об атаках по побочным каналам. 
В работе (¹²) утверждается, что токены новых поколений гораздо лучше защищены, и что так называемая «атака обеденного перерыва» кажется невозможной.  Для токенов SecurID, выпускаемых компанией RSA известны атаки каждого из этих типов (¹³), а также уязвимости на уровне протокола (²²). Однако практическая применимость этих уязвимостей не признается специалистами RSA (³¹).
Криптографическая стойкость частей протокола, который реализуется в токенах YubiKey была проанализирована в работе (³²) и никаких серьезных слабостей обнаружено не было.
Компания Yubico Inc. отмечала на своем сайте потенциальную угрозу своим токенам со стороны атаки по побочным каналам (Yubico. Yubikey Security Evaluation Version 2.0, Yubico. The YubiKey Manual. Yubico, May 2012), но никаких более глубоких аналитических исследований по этому вопросу не проводила.
___________________________________
¹) S. Mangard, E. Oswald, and T. Popp. Power Analysis Attacks: Revealing the Secrets of Smart Cards. Springer-Verlag, 2007 ²) T. Eisenbarth, T. Kasper, A. Moradi, C. Paar, M. Salmasizadeh, and M. T. M. Shalmani. On the Power of Power Analysis in the Real World: A Complete Break of the KeeLoq Code Hopping Scheme. In Advances in Cryptology – CRYPTO 2008, volume 5157 of LNCS, pages 203–220. Springer, 2008 ³) D. Oswald and C. Paar. Breaking Mifare DESFire MF3ICD40: Power Analysis and Templates in the Real World.  ¹¹) A. Moradi, A. Barenghi, T. Kasper, and C. Paar. On the vulnerability of FPGA bitstream encryption against power analysis attacks: extracting keys from Xilinx Virtex-II FPGAs. In CCS 2011, pages 111–124. ACM, 2011 ¹²) A. Moradi, M. Kasper, and C. Paar. Black-Box Side-Channel Attacks Highlight the Importance of Countermeasures — An Analysis of the Xilinx Virtex-4 and Virtex-5 Bitstream Encryption Mechanism. In CT-RSA 2012, volume 7178 of LNCS, pages 1–18. Springer, 2012 ¹³) A. Moradi, D. Oswald, C. Paar, and P. Swierczynski. Side-channel attacks on the bitstream encryption mechanism of Altera Stratix II: facilitating black-box analysis using software reverse-engineering. In Proceedings of the ACM/SIGDA international symposium on Field programmable gate arrays, FPGA ’13, pages 91–100, New York, NY, USA, 2013. ACM ²¹) Kingpin. Attacks on and Countermeasures for USB Hardware Token Devices J. Grand. Hardware Token Compromises. Presentation at Black Hat USA 2004 ²²) P. Bright. RSA finally comes clean: SecurID is compromised, June 2011 ²³) R. Bardou, R. Focardi, Y. Kawamoto, L. Simionato, G. Steel, and J.-K. Tsay. Efficient padding oracle attacks on cryptographic hardware. In R. Safavi-Naini and R. Canetti, editors, Advances in Cryptology — CRYPTO 2012, volume 7417 of LNCS, pages 608–625. Springer, 2012). ³¹) S. Curry. Don’t Believe Everything You Read… Your RSA SecurID Token is Not Cracked. blog entry, June 2012 ³²) L. Vamanu. Formal Analysis of Yubikey. Master’s thesis, INRIA, 2012
Токены YubiKey 2
Мы анализовали версию 2 токена YubiKey Standard (называя его Device Under Test, DUT) с аппаратной версией 2.2.3. Его предшественник YubiKey 1 был еще менее защищен.
Типичное использование
Токены обоих типов YubiKey 1 и YubiKey 2 представляются для компьютера пользователя как нормальная USB-клавиатура для того, чтобы была естественная возможность вводить ОТР. Преимущество такой техники состоит в том, что не требуется устанавливать дополнительные драйверы, но можно работать через драйверы клавиатуры, входящие по умолчанию в любую современную операционную систему. Кроме генерации одноразовых паролей по фирменному алгоритму Yubico Inc. (www.yubico.com) токены YubiKey 2 могут быть использованы также для защищенного хранения в памяти чипа постоянных паролей, а также могут быть использованы для генерации ОТР на основе HMAC-алгоритма (HMAC-based One Time Password, HOTP), специфицированного Международным сообществом Initiative of Open Authentication (OATH) (Yubico. ). Когда пользователь нажимает на пластинку на верней поверхности токена, токен генерирует ОТР, кодирует его в специфическом формате и вводит его, имитируя передачу импульсов от клавиатуры.  Пользователь сначала вводит свое имя и постоянный пароль и переводит указатель на поле ввода ОТР, а затем нажимает кнопку на токене. Простота и удобство использования токенов YubiKey 1 и YubiKey 2 безусловно являются весьма привлекательными свойствами для самых широких слоев простых пользователей. Кроме того, компактность и малый вес токенов делает их весьма удобным, практически «бытовым» средством цифровой аутентификации.
Структура ОТР
Одноразовый пароль (ОТР), генерируемый токенами YubiKey 2, основывается на нескольких счетчиках, случайных байтах, секретном идентификаторе пользователя (UID), и контрольной суммы, конкатенация которых составляет 16-байтное значение, которое затем зашифровывается по алгоритму AES с ключом из 128 бит.
UID – секретный идентификатор пользователя из 6-ти байт. Он может быть использован как дополнительный параметр секретности или как параметр, служащий для различения пользователей с одинаковым секретным ключом шифрования. useCtr – Энергонезависимый счетчик с регистром из 2-х байт, увеличивающийся после первой генерации ОТР по включении питания.
Дополнительно счетчик увеличивает значение, когда счетчик сессий переходит из состояния 0xff в состояние 0x00. tstp – Метка времени из 3-х байт, случайно иниализируемая при начале работы. После этого метка времени увеличивается с частотой примерно 8Hz. sessionCtr – Счетчик сессий из 1-го байта, начинает с 0x00 по включении питания и увеличивается на единицу при каждой генерации ОТР. rnd – Случайные данные из 2-х байт. crc – Двухбайтная контрольная сумма CRC16, вычисляемая от всех предыдущих полей данных. UID, useCtr, tstp, sCtr, rnd, crc соответственно (в байтах) (6, 2, 3, 1, 2, 2) Все поля данных конкатенируются и шифруются по алгоритму AES на секретном 128-битном ключе. Алгоритм запрограммирован в токене YubiKey 2. Обычно этот ключ устанавливается один раз, например, системным администратором при помощи конфигурационной утилиты перед тем, как токен передается в руки пользователя (см. Yubico. Download of personalization tool).
Результирующий шифртекст после шифрования по AES кодируется специальным кодом, называемым “Modhex”, для того, чтобы избежать проблем с различными клавиатурами. Кодировка ограничивает значения ключей клавиатуры буквенно-цифровыми символами, которые имеют одинаковую кодировку в большинстве локальных клавиатурных раскладок.  Для идентификации токенов YubiKey 2 закодированный в коде Modhex 6-ти байтный открытый идентификатор (ID) добавляется в начало шифртекста.  Для проверки ОТР на стороне сервера, например, с помощью предоставляемого компанией Yubico Inc. (www.yubico.com) программного продукта с открытым кодом, ОТР декодируется из Modhex-кодировки, устанавливается соответствующий данному пользователю (его ID) ключ AES, расшифровывается ОТР и проверяются полученные данные. 
Точнее, для верификации ОТР необходимо выполнить следующие шаги: 1. Идентифицировать токен YubiKey 2 по открытому идентификатору и извлечь соответствующий ключ AES шифрования. 2. Расшифровать ОТР на этом ключе AES. 3. Проверить CRC контрольную сумму. 4. Проверить, что расшифрованный секретный ID корректен. 5. Сравнить значения счетчиков с последними сохраненными значениями: Принять ОТР, если значение сессионного счетчика возросло, или Если значение сессионного счетчика не возросло, но возросло значение счетчика использования. Если ОТР не удовлетворяет хотя бы одному из перечисленных условий, он признается неправильным и аутентификации пользователя не происходит. Условия, накладываемые на счетчики, служат для исключения повторного использования ОТР противником.
Аппаратная база токена YubiKey 2
Токен YubiKey 2 представляет собой монолитный пластмассовый блок, тем самым герметично запечатанный. Для того, чтобы определить, какой микроконтроллер используется, пришлось растворить корпус токена в растворе азотной кислоты, чтобы получить доступ к силиконовой матрице.


От науки – к практике
Изучив внимательно эту и некоторые другие научные публикации по данному направлению мы с друзьями решили повторить подобные эксперименты на тех же самых токенах распространенной марки YubiKey 2. И действительно, воспользовавшись вполне доступным оборудованием, небольшой помощью квалифицированных консультантов и желанием проверить свой уровень в этой области, мы смогли получить вполне удовлетворительные результаты по клонированию токенов. И я уже готовил подробную статью по результатам этой работы для одного из научных журналов, но тут произошло то же, что случилось в свое время с Остапом Бендером, когда он попытался написать лирические стихи и даже сочинил великолепное четверостишие: «Я помню чудное мгновение.. .», — оказывается, это уже сделал до него А. С. Пушкин. «Какой удар состороны классика», — как говорил Остап. Оказалось, что и у нас исторя похожая, — американские хакеры показали даже чуть лучший результат. 
А именно, 30 июля на сайте Cnews появилось вот такое сообщение: «Профессиональные хакеры: как взломать 2FA аппаратные токены. 31.07.2017. Участники хакерской конференции DEF CON показывают, как могут быть имитированы / обойдены стороной токены YubiKey и RSA.
Аппаратные токены — небольшие устройства, которые генерируют код или являются подключаемыми модулями вашего компьютера, обеспечивая лучший способ дополнительной блокировки вашей учётной записи электронной почты. В то время как двухфакторная аутентификация при помощи SMS может быть перехвачена, злоумышленникам, вероятно, будет сложнее получить тот уникальный код, который генерируют эти маленькие устройства.
Но невозможного ничего нет. Два исследователя по вопросам безопасности на ежегодной хакерской конференции DEF CON в Лас-Вегасе, посвящённой по взлому компьютеров, представили несколько доказательств уязвимости популярных аппаратных токенов, в т. ч. - YubiKey.

«Устройства аппаратной безопасности — это относительная новинка. Они великолепны, они обеспечивают уровень защиты, которого не достичь иными средствами. Однако мы должны помнить о нашем оборудовании, и безоговорочно утверждать о полной безопасности – неверно», — сказал Джо Фитц Патрик, один из исследователей, стоящих за проектом.
Поэтому мы решили не терять приобретенной квалификации и попробовать аналогичный подход на каких-то из токенов, популярных на отечественном рынке. Неожиданно, результат превзошел все ожидания. Что из этого реально получилось, я расскажу в следующей публикации.

Анонс следующего выпуска

Сенсационная атака ROCA на токены компании Gemalto