Ясно, что небезопасно
АрхивИз журнала "Компьютерра"Коллектив студентов и сотрудников исследовательской группы "Цифровая безопасность" в университете Radboud города Неймеген обнаружил серьезнейшую уязвимость в бесконтактных смарт-картах широко распространенного типа.
В первых числах марта коллектив студентов и сотрудников исследовательской группы "Цифровая безопасность" в университете Radboud города Неймеген (Нидерланды) обнаружил серьезнейшую уязвимость в бесконтактных смарт-картах широко распространенного типа. Подобные устройства, иногда называемые проксимити-картами, построены на основе RFID-чипов, то есть микросхем радиочастотной идентификации.
На сегодняшний день пластиковые и картонные карточки с запрессованным в них RFID используются в самом разном качестве: как пропуска, средства оплаты проезда, цифровые кошельки для мелких покупок, дисконтные карты в торговых сетях и т. д. и т. п. Голландцам удалось взломать защиту в чипах типа Mifare Classic, изготовляемых компанией NXP, в прошлом - полупроводниковым подразделением корпорации Philips. Чипы Mifare занимают доминирующее положение на рынке бесконтактных карт, причем на долю Mifare Classic, имеющих оптимальное соотношение цена/безопасность, приходится около 90%. Общее число проданных карт компания Mifare оценивает в 500 млн. штук (другие источники сообщают об 1–2 млрд.).
В современной жизни Голландии карты Mifare Classic занимают особое место, поскольку на их основе реализован гранд-проект OV-chipkaart - разворачиваемая ныне общенациональная система единой оплаты проезда в общественном транспорте - от метро и автобусов до железных дорог. Нечто подобное делается во многих мегаполисах планеты - Лондоне, Гонконге, Милане. Так, в Москве карточки Mifare Classic - это не только проездные в метро, но и "социальная карта москвича", перезаряжаемые карточки студентов и школьников, проездные для электричек и т. д. Но, вероятно, еще важнее, что чипы Mifare Classic широко используются по всему миру в картах пропусков для прохода в здания корпораций и правительственных учреждений.
Типы карт Mifare
Платформа Mifare до последнего времени включала в себя пять основных типов микросхем для карт с бесконтактным, двойным (чип/магнитная полоса) и тройным (чип/полоса/USB) интерфейсом. В связи с компрометацией Mifare Classic фирма NXP только что объявила о вводе до конца 2008 года нового, криптографически более сильного чипа Mifare Plus, в основе которого лежит алгоритм AES.
Самые простые, а потому самые дешевые и распространенные в реальных приложениях типы - это Ultralight (MF0 U10, U11) и Classic или Standard (MF1 S50, S70). У этих чипов нет процессора и, соответственно, операционной системы, а у Ultralight нет и никакой криптографии. Объем памяти EEPROM - от 512 байт (Ultralight) до 1 и 4 Кбайт (Classic).
Остальные три типа построены на основе процессора 80С51. Они имеют более развитую функциональность на основе Java, но и стоят существенно дороже - доллары, а не десятки центов, как Mifare Classic или копеечный Ultralight. Самый дешевый чип из числа дорогих, DESFire (MF3 D40), реализует крепкий шифр 3DES и имеет перезаписываемую память 4 Кбайт. Карта Mifare ProX (P8RF) имеет двойной интерфейс (плюс магнитная полоса), 3DES и криптографию с открытым ключом, от 32 до 64 Кбайт оперативной памяти. Самый продвинутый чип для бесконтактных карт, SmartMX (P5xD, P5CT), оснащен тройным интерфейсом (плюс USB), более вместительной памятью ROM и EEPROM, а в наборе шифров дополнен стойким современным криптостандартом AES. В приложениях, связанных с оснащением новых "электронных" паспортов технологией RFID, чипы SmartMX являются общепринятым стандартным решением.
Все это означает, что слабости в защите таких карт будут иметь очень серьезные последствия. Если карту нетрудно клонировать, то становится возможным проход посторонних лиц на охраняемые объекты. Осуществимо ли это, решили проверить "на себе" голландские исследователи из университета Radboud, в котором допуск в здания контролируется, как и повсюду в Нидерландах, с помощью Mifare Classic.
Члены группы Digital Security поставили перед собой цель отыскать слабости в собственных пропусках, а найдя их, попытаться клонировать карты. Результатом исследований стало обнаружение серьезных дефектов в механизме аутентификации Mifare Classic, позволивших:
- полностью восстановить секретную схему алгоритма шифрования Crypto-1, запечатанного в чип для защиты данных;
- отыскать относительно простой и дешевый метод для извлечения криптоключей из чипа.
В результате удалось смоделировать атаку и успешно клонировать карточку-пропуск Mifare Classic для входа в здания университета.
Технические нюансы
Бесконтактная смарт-карта Mifare Classic была разработана в середине 1990-х годов. По сути, это чип памяти с дополнительными функциями защиты содержимого. Поскольку здесь нет процессора, функциональность карты не программируется. Криптографические операции, которые способен выполнять чип, реализованы на аппаратном уровне в виде так называемого регистра сдвига с линейной обратной связью, или LFSR (linear feedback shift register), и "фильтр-функции" для усложнения генерируемой шифр-последовательности. Этот криптоалгоритм, носящий имя Crypto-1, является коммерческой тайной NXP и никогда не публиковался для независимого анализа. Таким образом, безопасность карт Mifare Classic в значительной степени опирается на то, что устройство криптоалгоритма хранится в тайне. Такой подход принято именовать "безопасность через неясность" (security by obscurity), причем среди большинства серьезных криптографов он считается в корне ошибочным и бессчетное количество раз скомпрометированным. Не стал исключением и случай с Crypto-1.
Общая криптосхема поточного шифра Crypto-1, восстановленная Нолем и Плётцем
Типичный способ применения криптографии карт Mifare Classic - в процедурах аутентификации. Цель таких процедур, как известно, состоит в том, что две связывающиеся стороны неким формальным способом доказывают друг другу, кем они являются. Делается это предъявлением какой-либо известной обеим сторонам секретной информации, так называемого разделяемого секрета (или, иначе, общего криптоключа). Обе стороны, в данном случае карта Mifare и считывающий ее прибор, выполняют определенные операции, а затем сверяют получившиеся результаты, дабы быть уверенными в легитимности оппонента.
Успешное завершение процедуры аутентификации является необходимым условием не только для открытия двери или турникета и входа на охраняемый объект, но и для обмена информацией с памятью Mifare Classic. Память чипа поделена на независимые секторы, каждый из которых защищен двумя криптографическими ключами.
Построение библиотеки стандартных вентилей для восстановления криптосхемы
Правильное управление криптографическими ключами - важная область исследований. Ошибки здесь часто приводят к серьезным последствиям для безопасности. Для случая Mifare Classic имеется два основных способа управления ключами.
- Все карты и все кардридеры, используемые в одном приложении, имеют одни и те же ключи для аутентификации. Это общепринятый подход для карт в системах контроля доступа.
- Каждая карта имеет свои собственные криптографические ключи. Для проверки ключей кардридер сначала должен определить, с какой именно картой начат обмен, а уже затем найти и вычислить связанные с нею ключи. Такая процедура именуется диверсификацией ключей и применяется в более разветвленных приложениях.
Слабости в защите Mifare Classic
Голландская группа Digital Security обнаружила серьезные дефекты в механизме аутентификации карт Mifare Classic. Во-первых, как уже сказано, это позволило сделать полное обратное восстановление схемы Crypto-1 и сконструировать собственную реализацию криптоалгоритма. Сделано это было с помощью известных в криптоанализе методов генерации сбоев. Если атакующая сторона при аутентификации не в точности следует правилам обмена, предписываемым протоколом, то в принципе - по нештатным реакциям - имеется возможность получать дополнительную информацию об устройстве неизвестной схемы. Целенаправленно манипулируя сигналами на входе и комбинируя их с ответной информацией, иногда можно выяснить, как устроен "черный ящик". Что и было сделано в данном случае.
Слои чипа Mifare, восстанавливаемые в ходе разрушающего анализа
Во-вторых, когда криптоалгоритм стал известен, стало возможным отыскать нужные секретные ключи. Например, усовершенствованным методом лобового вскрытия, то есть тотального перебора всех возможных ключевых комбинаций. Ибо длина ключа в Crypto-1 оказалась всего лишь 48 бит, так что при наличии подходящего быстрого вычислителя на полный "тупой" перебор требуется всего 9–10 часов работы. Правда, стоит такая техника недешево, однако голландским исследователям она и не понадобилась. Ибо Crypto-1, как выяснилось, имеет не только малую длину рабочего регистра (ключа), но и слабую функцию усложнения. Что позволило довольно легко отыскивать секретный ключ без лобового вскрытия. Специально подобранный вид запросов на (заведомо неудачную) аутентификацию дает в ответах некоторую информацию о битах секретного ключа. Если один раз заранее собрать результаты всех таких ответов в большую просмотровую таблицу, коль скоро устройство Crypto-1 уже известно, то атака на карту с неизвестным ключом становится быстрой и очень простой. Надо лишь загрузить ее ложными запросами, по таблице установить одну часть ключа, а затем быстрым перебором остальных бит восстановить недостающую часть и получить ключ полностью.
Чип Mifare под микроскопом
Поскольку разработанная голландцами атака предназначена лишь для подтверждения концепции, а не для реальных хищений личности через клонирование карт, при демонстрации потребовалось многократное опрашивание карты-жертвы для конструирования просмотровой таблицы. Чтобы записать результаты попыток "неудачной" аутентификации в компьютер, потребовалось несколько часов. Однако даже такой не слишком элегантный способ можно реализовать и в жизни, если незаметно расположить антенну кардридера поблизости от карты жертвы на несколько часов. Вдобавок есть все предпосылки к тому, чтобы оптимизировать атаку и радикально сократить число опросов карты-жертвы.
Эксплуатация слабостей и контрмеры
Как только секретный криптоключ извлечен из чипа карты, появляются самые разные возможности для злоупотреблений. Насколько тяжкими будут их последствия, зависит от ситуации. Если все карты доступа имеют один и тот же ключ, то вся система контроля оказывается в высшей степени уязвима. Правда, выразить эту уязвимость в цифрах не представляется возможным, поскольку открытой информации об объектах, охраняемых с помощью Mifare Classic, никто не публикует. Но следует подчеркнуть, что именно для такой ситуации голландская группа продемонстрировала реальную атаку, когда карта-пропуск одного из сотрудников университета была "незаметно" для него опрошена и клонирована с помощью портативного кардридера. Понятно, что владелец карты может даже не догадываться об этом.
Хронология взлома
Взлом Mifare Ultralight. В мае-июне 2007 года студенты Амстердамского университета Питер Зикерман и Морис ван дер Шее проанализировали защиту самой простой версии RFID-чипов Mifare - в карточках Mifare Ultralight, используемых в качестве картонных одноразовых билетов на транспорте. Студенты выявили три серьезных проблемы, что позволило им на основе всего лишь единственной карточки изготовить устройство для бесплатного проезда неограниченное число раз. Две из этих проблем решаются доработкой программы в считывателе турникета, что было вскоре и сделано голландскими транспортниками. Третья проблема решается только сменой архитектуры системы.
Германская атака на Mifare Classic. В декабре 2007 года германские исследователи Карстен Ноль и Хенрик Плётц в рамках хакерской конференции 24th Chaos Communication Congress в Берлине продемонстрировали свои результаты по обратной инженерной разработке чипа карты Mifare Classic. Они применили технически один из самых сложных методов разрушающего анализа, удаляя один слой чипа за другим и восстанавливая схематику по фотоснимкам слоев, сделанным с помощью микроскопа. Крайне трудоемкий процесс выделения и распознавания типовых элементов в схеме оказалось возможным автоматизировать с помощью специальной программы, в итоге удалось найти участок, реализующий секретный криптоалгоритм Crypto-1, и восстановить его работу в общих чертах. В марте 2008-го Карстен Ноль опубликовал в Сети статью с итогами полного восстановления схемы Crypto-1 и первичных результатов ее криптоанализа. В статье показано, что реализованный в Mifare Classic шифр имеет серьезнейшие слабости. Причем очень похоже, что схема ослаблена искусственно, дабы облегчить вскрытие тому, кто знает "секрет".
Атаки университета Радбоуд. В январе 2008-го Роэль Вердулт, студент голландского университета Radboud в Неймегене, вновь проанализировал на предмет слабостей модернизированную систему проездных билетов на основе Mifare Ultralight. И показал, что может изготовить портативное устройство клонирования ценой около 40 евро, с помощью которого одноразовая карточка позволяет ездить неограниченное число раз. Два месяца спустя исследователи того же университета, работавшие в контакте с Нолем и Плётцем, с помощью собственных, неразрушающих методов повторили полное восстановление криптосхемы Mifare Classic. При этом наглядно продемонстрировав, что знание слабостей шифра позволяет незаметно для владельца и с минимумом затрат клонировать карточки-пропуска на охраняемые объекты или долгосрочные проездные билеты.
В ситуациях, когда используются диверсифицированные ключи, простор для злоупотреблений заметно сужается. Атаки здесь более сложны, однако не невозможны. Впрочем, реальных атак в данном направлении голландцы пока не демонстрировали.
На техническом уровне никаких контрмер для данной атаки не просматривается. Экранирование карты в те моменты, когда она не используется, конечно, сокращает вероятность тайного считывания чипа. Но когда карта используется, становится возможен и перехват сигналов, если скрытая антенна расположена неподалеку от поста контроля доступа.
Устройство Ghost для клонирования проездных карт, сконструированное Вердультом
По этой причине специалисты рекомендуют усилить традиционные меры контроля. Доступ на охраняемые объекты необходимо защищать сразу несколькими способами, среди которых RFID-карта обеспечивает лишь один из механизмов контроля.
Проблемы и вопросы
Всякий раз, когда исследователи обнаруживают дыры в защите распространенных систем, неизбежно возникает вопрос - как поступать с этой информацией. Немедленная открытая публикация со всеми подробностями гарантированно вызовет рост злонамеренных атак и нанесет обществу вред. Если же надолго задержать информацию в секрете, то практически наверняка никто сам не станет предпринимать дополнительных шагов для усиления защиты. Поэтому обычно принимается компромиссное решение: подробности о дырах в защите публикуются с задержкой, предоставляющей время на исправление ошибок.
Результаты германских коллег
Когда немцы Карстен Ноль и Хенрик Плётц делали доклад на берлинской конференции 24CCC, они рассказали о своем вскрытии RFID-чипа Mifare Classic и восстановлении криптосхемы алгоритма Crypto-1 лишь в самых общих чертах. Благоразумно решив не вдаваться в подробности и не подставлять себя под обвинения о разглашении чужих коммерческих тайн и хищении интеллектуальной собственности.
Для голландских коллег из университета Radboud, к примеру, этой информации оказалось вполне достаточно, чтобы и подтвердить результаты немцев, и придумать собственную практичную атаку. Однако голландская Национальная организация прикладных научных исследований (TNO) по заказу правительства страны провела собственное изучение доклада немцев и сделала существенно иные выводы. В целом подтвердив результаты немцев, эксперты TNO в официальном заключении сделали вывод, что описанная атака не будет представлять реальной угрозы для Mifare Classic на протяжении по крайней мере еще двух лет.
Отчет TNO был опубликован в последних числах февраля. А немцы к тому времени уже не только полностью восстановили криптосхему, но и выявили в ней серьезные статистические слабости. Что позволило им почти мгновенно по ответным реакциям чипа восстанавливать 12 из 48 бит секретного ключа. Остальные биты приличный современный компьютер восстанавливает перебором за несколько минут, а специализированный вычислитель на основе FPGA, чипов с перепрограммируемой логикой, - вообще за секунды. По этой причине заключение официальной экспертизы TNO, с точки зрения немцев, выглядело как вводящая в заблуждение неправда.
Единственно правильной реакцией в таких условиях была сочтена открытая публикация результатов криптоанализа шифра Mifare Classic в Интернете. То, что онлайновая публикация этой работы ("Cryptanalysis of Crypto-1" by Karsten Nohl) практически день в день совпала с публикацией созвучных результатов, полученных в университете Radboud, скорее всего совпадение. Но совпадение очень выразительное.
В ситуации со взломом Mifare Classic и голландцы, и немцы пошли именно по этому пути - своевременно предупредив общество и заинтересованные инстанции об угрозе, но оставив при себе принципиально важные детали об устройстве слабой криптосхемы. При этом каждая из сторон, участвовавших во вскрытии, сочла необходимым в очередной раз раскритиковать пристрастие изготовителей к явно порочной концепции "безопасность через неясность". Ибо очевидно, что безусловно слабый алгоритм Crypto-1 никогда бы не попал в распространенные смарт-карты, пройди он через открытую независимую экспертизу.
Богатый опыт свидетельствует, что практически ни разу при вскрытии хакерами секретной проприетарной криптосхемы не обнаруживалось сильного алгоритма, превосходящего открытые и хорошо известные. Отсюда напрашивается вывод, что секретные схемы для того и держат в тайне, дабы их слабости были известны лишь тем, "кому надо". Но вот надо ли это обществу?