Сим-сим открылся: О проблемах безопасности SIM-карт
По давно сложившейся традиции SIM-карту принято считать наиболее надежно защищенным элементом всей системы мобильной связи GSM. Ныне же выясняется нечто иное. В реальности защита эта не просто хуже, чем могла бы быть, но и ослаблена она, похоже, умышленно...
Суть нынешних открытий вполне доходчиво передает такая цитата:
«Мы можем дистанционно (через SMS) установить программу на мобильный телефон жертвы, причем эта программа будет работать полностью независимо от телефона. Мы можем шпионить за вами. Можем добыть ваши криптоключи, используемые для шифрования телефонных звонков. Мы можем читать ваши SMS. Помимо же просто шпионажа, мы (так же через SMS) можем похищать из SIM-карты телефона критично важные данные о владельце — вашу мобильную личность — и снимать деньги с вашего счета».
Все эти малоприятные, чего уж там говорить, слова принадлежат человеку по имени Карстен Ноль (Karsten Nohl). А в профессиональных кругах компьютерной безопасности Карстен Ноль — личность весьма известная.
За последние 4–5 лет с этим именем были связаны несколько очень громких и скандальных исследований-разоблачений, демонстрирующих реальную (не)надежность защиты важных цифровых устройств, которые по умолчанию считаются достаточно безопасными. Среди наиболее известных историй такого рода можно назвать две.
В 2008 году Карстен Ноль прославился как один из ключевых участников большой и распределенной по нескольким странам исследовательской инициативы, в рамках которой была проведена обратная инженерная разработка RFID-чипов Mifare. Миллиарды таких чипов радиочастотной идентификации, можно напомнить, по всему миру являются основой проездных билетов на транспорте, цифровых кошельков, социальных карт, пропусков на предприятия и прочих подобных приложений.
Схема защиты информации в этих чипах всегда держалась в секрете, а изыскания Ноля и его коллег не только позволили восстановить криптоалгоритм, но и указать на множество слабостей системы, допускающих многочисленные злоупотребления (типа клонирования карт и хищения критично важных данных).
На следующий год, в 2009-м, Ноль и его коллеги по германскому хакерскому сообществу Chaos Computer Club создали и открыто опубликовали в интернете программный инструментарий, так называемую «радужную таблицу» (Rainbow Table) для вскрытия защиты GSM. Суть этой программы в том, что она позволяет очень быстро — примерно за минуту — отыскивать секретный ключ по умолчанию якобы сильного шифра A5/1, применяемого для засекречивания телефонных разговоров в сетях GSM.
При этом важно подчеркнуть, что речь идет не о подпольных работах какого-нибудь хакера-изгоя из компьютерного андеграунда, а об изысканиях вполне респектабельного и авторитетного исследователя. Созданная Нолем компания Security Research Labs, базирующаяся в Берлине, ныне консультирует германские и американские транснациональные корпорации по вопросам укрепления безопасности мобильной связи.
В рамках этих работ, в частности, с 2011 года фирма Security Research Labs всерьез занялась тестированием безопасности SIM-карт. То есть устройства, которое в системе GSM изначально принято считать наиболее защищенным элементом конструкции и вокруг которого выстраивается вся прочая архитектура безопасности.
Итогом этих двухлетних изысканий и стали, собственно, те неприятные открытия, о которых рассказывает ныне Ноль. Но чтобы лучше понять суть и важность исследования, для начала желательно иметь хотя бы общее представление о предмете изучения.
Устройство SIM
Аббревиатура SIM расшифровывается как Subscriber Identification Module, то есть «модуль идентификации абонента». Люди, не имеющие обыкновения вникать в мудреные технические тонкости всякого прибора, попадающего им в руки, обычно считают, что SIM-карточка — это просто что-то типа особо защищенной микросхемы для хранения информации.
Иначе говоря, о SIM-карточках нередко говорят как о запаянных в пластик микрочипах памяти, хранящих все данные, необходимые телефону или прочим устройствам мобильной связи для подсоединения и работы в сотовой сети (вроде параметров ICCID, Ki и так далее). Ну и плюс некоторое хранилище, позволяющее держать здесь особо важные для владельца телефонные номера, которые хотелось бы переносить с одного телефона на другой вместе с SIM-картой. Но в действительности же, однако, SIM-карта всякого телефона — это сам по себе небольшой компьютер, имеющий в своем составе все для него полагающееся: и память, и процессор, и даже собственную операционную систему.
Как можно видеть на иллюстрации, под золотыми контактами находится чип микрокомпьютера, располагающего процессором, постоянной памятью ROM (где хранятся операционная система и программные приложения SIM), перезаписываемой памятью EEPROM (где хранится телефонная книга владельца, установки конфигурации, программные патчи), и оперативная память RAM (для поддержания работы ОС и приложений).
Короче говоря, даже из этого краткого описания уже можно понять, что речь идет о достаточно сложном в своем устройстве компьютере на чипе. Ну а раз так, то SIM-карта, подобно всем прочим компьютерам, работающим под управлением операционной системы и приложений, может быть «хакнута» теми людьми, которые имеют профессиональный интерес к данному делу и к данному предмету.
Конкретно интересующий нас предмет — современная SIM-карта — работает под управлением довольно простой ОС, реализованной с помощью Java Card, то есть версии виртуальной машины Java для смарт-карт (ибо SIM-карта, ясное дело, является одной из специфических разновидностей этого широкого класса компьютерных устройств).
Java Card обеспечивает работу небольших Java-приложений, именуемых апплетами, а каждый такой апплет работает в отдельно выгороженном для него пространстве памяти («песочнице»), благодаря чему виртуальная машина Java VM предохраняет утечку чувствительных данных из одних приложений в другие. Так, по крайней мере, это выглядит в теории. На практике же, как обычно, все оказывается существенно иначе.
Компрометация SIM-карт
По целому ряду объективных причин, SIM-карты стали фактически главным узлом и фактором доверия, на основе которого во всем мире выстроена система безопасности мобильных устройств связи. Именно эти карты защищают «мобильную личность» абонента, связывают коммуникационные устройства с их телефонными номерами, а в последние годы — еще и в нарастающих масштабах хранят платежные реквизиты владельца. Именно так, в частности, это реализовано в телефонах с мобильными цифровыми кошельками, оснащенных технологией беспроводной связи NFC.
Согласно статистике, на сегодняшний день в мире насчитывается уже свыше семи миллиардов SIM-карт, находящихся в активном использовании. Такие масштабы делают данные устройства наиболее широко распространенным на планете «жетоном безопасности».
Причем «жетон» этот является устройством чрезвычайно гибкой функциональности, коль скоро возможности SIM-карты можно разнообразно расширять с помощью специализированного программного обеспечения на базе языка Java. И что особенно важно, перепрограммирование SIM-карт происходит дистанционно, с помощью технологии радиодоступа под названием OTA, или over-the-air (то есть «через воздух», когда в устройство отправляются особые, бинарного вида SMS).
Вообще-то принято считать, что эта расширяемость функциональности SIM-карт в реальной жизни пока что используется довольно редко. Однако Карстен Ноль, предъявляя результаты проведенных исследований, абсолютно уверен, что сам факт существования таких возможностей уже представляет собой повышенный, критически серьезный риск с точки зрения вредоносного хакинга. В самом сжатом, но все еще доступном пониманию изложении, важнейшие уязвимости SIM-карт, выявленные Нолем и его командой, выглядят следующим образом.
Вскрытие ключей обновления SIM. Команды технологии OTA, такие как инструкции по обновлению программного обеспечения, представляют собой криптографически защищенные SMS-сообщения, которые доставляются непосредственно в SIM-карту. Хотя в этой технологии имеются опции сильной криптографии, позволяющие использовать для засекречивания связи наиболее современный криптоалгоритм AES или несколько устаревший, но по-прежнему крепкий алгоритм шифрования 3DES, на деле многие (если не большинство) из SIM-карт все еще продолжают опираться на шифр DES, разработанный в 70-е годы прошлого века.
Уже очень давно было продемонстрировано, что DES безнадежно устарел и слишком слаб — с помощью кластера чипов FPGA его можно вскрыть за несколько дней. Более того, за прошедшие с той поры годы компьютерная техника продвинулась далеко вперед, так что ныне ключ DES можно отыскивать буквально за минуты — с помощью уже упоминавшихся выше просмотровых таблиц, среди хакеров именуемых rainbow tables. В конкретных условиях SIM-карты опора криптографии на DES становится фатальной ошибкой. Чтобы добыть DES-ключ, защищающий коммуникации OTA, хакеры отправляют на номер устройства-цели свой собственный бинарный SMS.
Вид правильной подписи они, естественно, поначалу не знают. Если же команда OTA не подписана правильно (что происходит на данном этапе атаки), то SIM-карта эту команду не выполняет. Но очень важно, что во множестве отмеченных исследователями случаев SIM-карта не просто игнорирует ложную команду, но отвечает на атаку собственным сообщением с кодом ошибки, несущим криптографическую подпись. И этот ответ в виде двоичного SMS отсылается обратно атакующему.
Загоняя ответ в просмотровую «радужную таблицу», хакеры получают на выходе информацию о том, какой 56-битный DES-ключ соответствует полученной от устройства сигнатуре — примерно за 2 минуты работы стандартного компьютера...
Эксплуатация вредоносных программ внутри SIM-карты. Вскрытый подобным методом ключ DES позволяет атакующему отсылать теперь уже правильно подписанный бинарный SMS, который загружает Java-приложения непосредственно в SIM-карту. Такого рода апплетам, работающим внутри SIM, разрешается — среди множества прочих заранее определен
Суть нынешних открытий вполне доходчиво передает такая цитата:
«Мы можем дистанционно (через SMS) установить программу на мобильный телефон жертвы, причем эта программа будет работать полностью независимо от телефона. Мы можем шпионить за вами. Можем добыть ваши криптоключи, используемые для шифрования телефонных звонков. Мы можем читать ваши SMS. Помимо же просто шпионажа, мы (так же через SMS) можем похищать из SIM-карты телефона критично важные данные о владельце — вашу мобильную личность — и снимать деньги с вашего счета».
Все эти малоприятные, чего уж там говорить, слова принадлежат человеку по имени Карстен Ноль (Karsten Nohl). А в профессиональных кругах компьютерной безопасности Карстен Ноль — личность весьма известная.
За последние 4–5 лет с этим именем были связаны несколько очень громких и скандальных исследований-разоблачений, демонстрирующих реальную (не)надежность защиты важных цифровых устройств, которые по умолчанию считаются достаточно безопасными. Среди наиболее известных историй такого рода можно назвать две.
В 2008 году Карстен Ноль прославился как один из ключевых участников большой и распределенной по нескольким странам исследовательской инициативы, в рамках которой была проведена обратная инженерная разработка RFID-чипов Mifare. Миллиарды таких чипов радиочастотной идентификации, можно напомнить, по всему миру являются основой проездных билетов на транспорте, цифровых кошельков, социальных карт, пропусков на предприятия и прочих подобных приложений.
Схема защиты информации в этих чипах всегда держалась в секрете, а изыскания Ноля и его коллег не только позволили восстановить криптоалгоритм, но и указать на множество слабостей системы, допускающих многочисленные злоупотребления (типа клонирования карт и хищения критично важных данных).
На следующий год, в 2009-м, Ноль и его коллеги по германскому хакерскому сообществу Chaos Computer Club создали и открыто опубликовали в интернете программный инструментарий, так называемую «радужную таблицу» (Rainbow Table) для вскрытия защиты GSM. Суть этой программы в том, что она позволяет очень быстро — примерно за минуту — отыскивать секретный ключ по умолчанию якобы сильного шифра A5/1, применяемого для засекречивания телефонных разговоров в сетях GSM.
При этом важно подчеркнуть, что речь идет не о подпольных работах какого-нибудь хакера-изгоя из компьютерного андеграунда, а об изысканиях вполне респектабельного и авторитетного исследователя. Созданная Нолем компания Security Research Labs, базирующаяся в Берлине, ныне консультирует германские и американские транснациональные корпорации по вопросам укрепления безопасности мобильной связи.
В рамках этих работ, в частности, с 2011 года фирма Security Research Labs всерьез занялась тестированием безопасности SIM-карт. То есть устройства, которое в системе GSM изначально принято считать наиболее защищенным элементом конструкции и вокруг которого выстраивается вся прочая архитектура безопасности.
Итогом этих двухлетних изысканий и стали, собственно, те неприятные открытия, о которых рассказывает ныне Ноль. Но чтобы лучше понять суть и важность исследования, для начала желательно иметь хотя бы общее представление о предмете изучения.
Устройство SIM
Аббревиатура SIM расшифровывается как Subscriber Identification Module, то есть «модуль идентификации абонента». Люди, не имеющие обыкновения вникать в мудреные технические тонкости всякого прибора, попадающего им в руки, обычно считают, что SIM-карточка — это просто что-то типа особо защищенной микросхемы для хранения информации.
Иначе говоря, о SIM-карточках нередко говорят как о запаянных в пластик микрочипах памяти, хранящих все данные, необходимые телефону или прочим устройствам мобильной связи для подсоединения и работы в сотовой сети (вроде параметров ICCID, Ki и так далее). Ну и плюс некоторое хранилище, позволяющее держать здесь особо важные для владельца телефонные номера, которые хотелось бы переносить с одного телефона на другой вместе с SIM-картой. Но в действительности же, однако, SIM-карта всякого телефона — это сам по себе небольшой компьютер, имеющий в своем составе все для него полагающееся: и память, и процессор, и даже собственную операционную систему.
Как можно видеть на иллюстрации, под золотыми контактами находится чип микрокомпьютера, располагающего процессором, постоянной памятью ROM (где хранятся операционная система и программные приложения SIM), перезаписываемой памятью EEPROM (где хранится телефонная книга владельца, установки конфигурации, программные патчи), и оперативная память RAM (для поддержания работы ОС и приложений).
Короче говоря, даже из этого краткого описания уже можно понять, что речь идет о достаточно сложном в своем устройстве компьютере на чипе. Ну а раз так, то SIM-карта, подобно всем прочим компьютерам, работающим под управлением операционной системы и приложений, может быть «хакнута» теми людьми, которые имеют профессиональный интерес к данному делу и к данному предмету.
Конкретно интересующий нас предмет — современная SIM-карта — работает под управлением довольно простой ОС, реализованной с помощью Java Card, то есть версии виртуальной машины Java для смарт-карт (ибо SIM-карта, ясное дело, является одной из специфических разновидностей этого широкого класса компьютерных устройств).
Java Card обеспечивает работу небольших Java-приложений, именуемых апплетами, а каждый такой апплет работает в отдельно выгороженном для него пространстве памяти («песочнице»), благодаря чему виртуальная машина Java VM предохраняет утечку чувствительных данных из одних приложений в другие. Так, по крайней мере, это выглядит в теории. На практике же, как обычно, все оказывается существенно иначе.
Компрометация SIM-карт
По целому ряду объективных причин, SIM-карты стали фактически главным узлом и фактором доверия, на основе которого во всем мире выстроена система безопасности мобильных устройств связи. Именно эти карты защищают «мобильную личность» абонента, связывают коммуникационные устройства с их телефонными номерами, а в последние годы — еще и в нарастающих масштабах хранят платежные реквизиты владельца. Именно так, в частности, это реализовано в телефонах с мобильными цифровыми кошельками, оснащенных технологией беспроводной связи NFC.
Согласно статистике, на сегодняшний день в мире насчитывается уже свыше семи миллиардов SIM-карт, находящихся в активном использовании. Такие масштабы делают данные устройства наиболее широко распространенным на планете «жетоном безопасности».
Причем «жетон» этот является устройством чрезвычайно гибкой функциональности, коль скоро возможности SIM-карты можно разнообразно расширять с помощью специализированного программного обеспечения на базе языка Java. И что особенно важно, перепрограммирование SIM-карт происходит дистанционно, с помощью технологии радиодоступа под названием OTA, или over-the-air (то есть «через воздух», когда в устройство отправляются особые, бинарного вида SMS).
Вообще-то принято считать, что эта расширяемость функциональности SIM-карт в реальной жизни пока что используется довольно редко. Однако Карстен Ноль, предъявляя результаты проведенных исследований, абсолютно уверен, что сам факт существования таких возможностей уже представляет собой повышенный, критически серьезный риск с точки зрения вредоносного хакинга. В самом сжатом, но все еще доступном пониманию изложении, важнейшие уязвимости SIM-карт, выявленные Нолем и его командой, выглядят следующим образом.
Вскрытие ключей обновления SIM. Команды технологии OTA, такие как инструкции по обновлению программного обеспечения, представляют собой криптографически защищенные SMS-сообщения, которые доставляются непосредственно в SIM-карту. Хотя в этой технологии имеются опции сильной криптографии, позволяющие использовать для засекречивания связи наиболее современный криптоалгоритм AES или несколько устаревший, но по-прежнему крепкий алгоритм шифрования 3DES, на деле многие (если не большинство) из SIM-карт все еще продолжают опираться на шифр DES, разработанный в 70-е годы прошлого века.
Уже очень давно было продемонстрировано, что DES безнадежно устарел и слишком слаб — с помощью кластера чипов FPGA его можно вскрыть за несколько дней. Более того, за прошедшие с той поры годы компьютерная техника продвинулась далеко вперед, так что ныне ключ DES можно отыскивать буквально за минуты — с помощью уже упоминавшихся выше просмотровых таблиц, среди хакеров именуемых rainbow tables. В конкретных условиях SIM-карты опора криптографии на DES становится фатальной ошибкой. Чтобы добыть DES-ключ, защищающий коммуникации OTA, хакеры отправляют на номер устройства-цели свой собственный бинарный SMS.
Вид правильной подписи они, естественно, поначалу не знают. Если же команда OTA не подписана правильно (что происходит на данном этапе атаки), то SIM-карта эту команду не выполняет. Но очень важно, что во множестве отмеченных исследователями случаев SIM-карта не просто игнорирует ложную команду, но отвечает на атаку собственным сообщением с кодом ошибки, несущим криптографическую подпись. И этот ответ в виде двоичного SMS отсылается обратно атакующему.
Загоняя ответ в просмотровую «радужную таблицу», хакеры получают на выходе информацию о том, какой 56-битный DES-ключ соответствует полученной от устройства сигнатуре — примерно за 2 минуты работы стандартного компьютера...
Эксплуатация вредоносных программ внутри SIM-карты. Вскрытый подобным методом ключ DES позволяет атакующему отсылать теперь уже правильно подписанный бинарный SMS, который загружает Java-приложения непосредственно в SIM-карту. Такого рода апплетам, работающим внутри SIM, разрешается — среди множества прочих заранее определен