Как взламывают SIM-карты и как можно этого избежать?
Обычная SIM-карта, которая установлена в наших телефонах, может на самом деле серьезно угрожать безопасности. Оказывается, этот кусочек пластика с микросхемой подвержен взлому, но в силах пользователя защитить себя, свои данные и свой смартфон.
И поскольку новые онлайн-угрозы появляются каждый день, нам стоит быть в курсе очередных прорех в сфере безопасности. Например, вы уже наверняка знаете о том, что операционная система вашего смартфона нуждается в регулярном обновлении. Ведь только так и можно предотвратить угрозы. Стоит понимать, что и SIM-карта тоже может быть источником уязвимости в выстроенной системе безопасности. В этом материале мы расскажем вам, как злоумышленники могут использовать вашу SIM-карту для доступа к различным сервисам и данным, а также дадим советы о мерах безопасности в этой области.
Simjacker
В сентябре 2019 года исследователи безопасности из AdaptiveMobile Security объявили, что обнаружили новую уязвимость. Она получила название Simjacker. Эта сложная атака нацелена на SIM-карты. На целевое устройство с помощью SMS-сообщения отправляется фрагмент кода, похожего на шпионское ПО.
Если пользователь откроет такое сообщение, то код будет активирован и хакеры смогут шпионить за звонками и сообщениями с этого телефона, а также отслеживать его местоположение.

Уязвимость работает с помощью программного обеспечения под названием S @ T Browser, которое является частью набора инструментов для SIM-карт (STK). Его многие операторы телефонной связи используют на своих SIM-картах. SIMalliance Toolbox Browser – это способ доступа в Интернет. По сути, речь идет о базовом веб-браузере, который позволяет поставщикам услуг взаимодействовать с веб-приложениями, такими, как электронная почта.
Однако сегодня большинство людей использует на своих устройствах такие браузеры, как Chrome или Firefox, браузер S @ T редко когда оказывается востребованным. Тем не менее специализированное программное обеспечение по-прежнему установлено на большом количестве устройств, что делает их уязвимыми для атаки Simjacker.
Исследователи полагают, что эта атака применялась во многих странах. Указано, что протокол S @ T «используется операторами мобильной связи как минимум в 30 странах, совокупное население которых составляет более миллиарда человек». Речь идет в основном о Ближнем Востоке, Азии, Северной Африке и Восточной Европе.
Специалисты пришли к выводу, что эксплойт был разработан и использовался конкретной частной компанией. Она сотрудничала с властями разных стран для мониторинга определенных демографических групп, таких, как журналисты и активисты.
Уязвимости подвержены все типы телефонов, включая iPhone и устройства с Android. Simjacker работает даже со встроенными SIM-картами (eSIM).
Перевыпуск SIM-карты

Еще одна проблема безопасности SIM-карты, о которой вы, возможно, слышали – это перевыпуск SIM-карты. Например, хакеры использовали разновидность этой техники, чтобы захватить личную учетную запись в Twitter генерального директора этой же компании Джека Дорси в августе 2019 года. Благодаря такому событию многие узнали о потенциальной разрушительной силе подобных атак. А в этом методе используются уловки и человеческая инженерия, а не технические уязвимости.
Чтобы выполнить перевыпуск SIM-карты, хакер сначала позвонит вашему оператору связи. Злоумышленники будут прикидываться вами и попросят заменить SIM-карту. Например, хакеры скажут, что хотят перейти на новое устройство и, следовательно, нуждаются в новой SIM-карте. В случае успеха оператор телефонной связи отправит им SIM-карту.
Так злоумышленники могут украсть ваш номер телефона и связать его со своим устройством. И все это без извлечения SIM-карты из вашего аппарата!
В результате действа проявятся два эффекта. Во-первых, ваша оригинальная SIM-карта будет деактивирована и перестанет работать. А во-вторых, у хакера теперь появится контроль над телефонными звонками, сообщениями и запросами двухфакторной аутентификации, отправляемыми на ваш номер телефона. Это означает, что у сторонних лиц теперь будет достаточно информации для доступа к вашим учетным записям, что приведет к блокировке вашего доступа к различным сервисам.
От перевыпуска SIM-карты сложно защититься, поскольку эта атака связана с социальной инженерией. Хакеру придется убедить сотрудника службы поддержки в том, кем является звонящий. Получив вашу SIM-карту, злоумышленники смогут контролировать ваш номер телефона. К сожалению, вы можете даже не знать о том, что стали мишенью, пока не станет слишком поздно.
Клонирование SIM-карты
Часто люди пытаются объединить перевыпуск SIM-карты и ее клонирование в один и тот же случай. Однако клонирование SIM-карты более практично, чем другой вариант.
При атаке с клонированием SIM-карты хакер сначала получает физический доступ к вашей SIM-карте, а затем создает копию оригинала.

Естественно, что для копирования вашей SIM-карты злоумышленники сначала физически достанут вашу SIM-карту из смартфона. Затем в дело вступает специальное программное обеспечение для копирования смарт-карт, оно скопирует уникальный идентификационный номер, присвоенный вашей SIM-карте, и перенесет его пустую SIM-карту.

После этого новая клонированная SIM-карта будет вставлена в смартфон злоумышленника. Как только этот процесс будет завершен, считайте, что ваша уникальная идентификационная информация SIM-карты практически исчезла.
Теперь хакер сможет отслеживать все сообщения, отправляемые на ваш телефон – так же, как и при перевыпуске SIM-карты. Это означает, что посторонние личности получат доступ к вашим кодам двухфакторной аутентификации, что позволит им взломать ваши учетные записи в социальных сетях, адреса электронной почты, карточные и банковские счета и многое другое.
Хакеры также могут использовать вашу украденную SIM-карту для мошенничества, когда где-то надо будет указать уникальный номер телефона.
Как сохранить вашу SIM-карту в безопасности?
Если вы хотите защитить свою SIM-карту от подобных атак, к счастью, имеются некоторые меры предосторожности, которые вы можете предпринять.
Защита от атак, спровоцированных социальными сетями
Чтобы защититься от подмены SIM-карты, сделайте так, чтобы хакерам было сложно найти информацию о вас. Злоумышленники попытаются использовать данные, которые они находят о вас в Интернете, такие, как имена друзей и членов семьи или ваш адрес. Эта информация поможет убедить сотрудника службы поддержки в том, кем является звонящий.
Попробуйте заблокировать эту информацию, установив в своем профиле Вконтакте или Facebook доступ только для друзей и ограничив общедоступную информацию, которой вы делитесь на других сайтах. Кроме того, не забудьте удалить старые учетные записи, которыми вы больше не пользуетесь, чтобы они не стали целью взлома.
Еще один способ защититься от перевыпуска SIM-карты – остерегаться фишинга. Хакеры могут попытаться обмануть вас, чтобы получить дополнительную информацию с целью ее использования для копирования вашей SIM-карты. Следите за подозрительными электронными письмами или страницами входа. Будьте осторожны при вводе данных для входа в любую используемую вами учетную запись.
Наконец, подумайте о том, какие методы двухфакторной аутентификации вы используете. Некоторые службы двухфакторной аутентификации отправляют на ваше устройство SMS-сообщение со специальным кодом. Это означает, что в случае взлома вашей SIM-карты хакеры получат доступ к вашим учетным записям, даже если у вас включена двухфакторная аутентификация.
Вместо этого воспользуйтесь другим методом аутентификации, например, приложением Google Authentication. Таким образом аутентификация становится привязанной к вашему устройству, а не к номеру телефона, что делает его более защищенным от атаки с перевыпуском SIM-карты.
Установите блокировку SIM-карты
Для защиты от атак на SIM-карту вам также следует обеспечить активировать некоторые меры защиты на вашей SIM-карте. Самая важная и простая мера безопасности, которую вы можете реализовать – это добавление PIN-кода. Таким образом, если кто-то захочет внести изменения в вашу SIM-карту, ему понадобится ввести секретный PIN-код.
Но прежде чем настраивать такую блокировку SIM-карты, убедитесь, что вы знаете PIN-код, предоставленный вам вашим оператором сети. Чтобы настроить его, на устройстве Android перейдите примерно по такому пути: Настройки → Экран блокировки и безопасность → Другие настройки безопасности → Настроить блокировку SIM-карты или Настройки → Пароли и безопасность → <Оператор> → Блокировка SIM-карты. Тут вы можете активировать ползунок блокировки SIM-карты.
На iPhone перейдите в Настройки → Сотовая связь → SIM-PIN. Затем введите существующий PIN-код для подтверждения, нажмите Готово и блокировка SIM-карты будет активирована.


Другие советы по безопасности
Как и всегда, вы должны использовать надежные и индивидуально сгенерированные пароли. Не используйте повторно старые пароли и не используйте один и тот же пароль для нескольких учетных записей.
Кроме того, убедитесь, что ваши ответы на вопросы о восстановлении пароля не являются общедоступными, например, это не девичья фамилия вашей матери, что является классикой.
Защитите свое устройство от SIM-атак
Атаки на мобильные устройства становятся все более изощренными. Но существуют доступные средства защиты от этих типов атак, такие, как сохранение в секрете вашей личной информации и установка блокировки SIM-карты.
Тем не менее, в целом телефоны становятся более безопасными, чем раньше, и вы всегда можете проверить, не был ли ваш телефон взломан. А имеющиеся в вашем распоряжении функции безопасности помогут вам защитить себя от злонамеренных действий сторонних лиц.
Как на самом деле устроена SIM-карта
Привычная нам SIM-карта, которой мы пользуемся каждый день легко переставляя её из одного телефона в другой не такой уж простой кусок пластика, как кажется на первый взгляд. Мало кто знает, что SIM-карта по сути является микрокомпьютером, на борту которого есть процессор, постоянная и оперативная память, файловая система и даже продвинутая система шифрования данных. Сегодня мы постараемся разобраться, как устроена SIM-карта и что её может заменить. Итак, давайте начинать.
Содержание

Что такое SIM-карта и как она устроена?
SIM-карта (Subscriber Identification Module) — это модуль идентификации абонента, который работает в сетях мобильной связи стандарта GSM. Главная её задача — это аутентификация пользователя в сети или говоря простыми словами, это проверка для оператора и абонента. То есть в процессе проверки сеть подтверждает, что у пользователя действительно имеется SIM-карта, а симка дает подтверждение, что абонент подключен к правильной сети. SIM-карта не привязана к определенному устройству, что дает возможность переставлять её в другие устройства по желанию.
Кроме того, SIM-карта является миниатюрным компьютером с собственным процессором, оперативной и встроенной памятью, файловой системой и даже продвинутой системой шифрования данных. В ней также имеется ряд функций, например, SIM-меню и другие приложения.
Если хорошо рассмотреть симку, то можно увидеть миниатюрный процессор, размер которого сопоставим с размером игольного ушка. Занимает он около 10 % от общей площади симки. Питается от аккумулятора в телефоне, и работает на частоте до 10 МГц.

Объем памяти SIM-карты небольшой, он может составлять 128/256 КБ. Кроме того, память играет очень важную роль занимая практически все место на симке. Память имеет несколько разделов:
- В первом разделе хранятся пользовательские данные, такие как журнал вызовов, контакты, а также сообщения. Данный раздел занимает 20% памяти;
- Во втором разделе хранятся операторские данные в зашифрованном виде. Они очень важные, поэтому на их хранение предусмотренно 60% памяти. Здесь находятся наборы ключей: IMSI — который является уникальным номером каждого пользователя, в нем зашифрована все информация о сети и стране абонента и КI — это по сути 128-битный ключ аутентификации пользователя;
- В третье разделе, под который выделено 20 % памяти хранятся файлы Java-приложений (нужны для реализации сервисов от оператора).
На поверхности SIM-карты имеются несколько контактных площадок, их расположение и количество соответствует стандарту. Несмотря на то, что всего имеется 8 контактов, в процессе работы используется всего 6 контактов. Через эти контакты питаются рабочие компоненты симки, подаются команды управления, осуществляется ввод, а также вывод необходимых данных.
- Для подачи напряжения от внешнего источника питания используется контакт «Vcc»;
- Второй контакт «Reset» используется для сигнала о необходимости перезагрузки микропроцессора;
- Для синхронизации используется контакт «Clk»;
- Этот контакт называется «NC» он никуда не подключенный и является запасным;
- Контакт земля «Gnd»;
- Vpp — предназначен для сохранения служебных данных, например, PIN-кода;
- Контакт под названием «I/O»отвечает за обмен данными;
- Это не подключенный контакт, поскольку 4 и 8 контакты являются резервными.
Как изготавливают SIM-карты?
Изначально стоимость производства одной симки составляло 1$ за штуку, но в настоящее время производство значительно подешевело, поэтому стоимость составляет всего несколько центов. Однако, в эту стоимость не входят затраты: на установку микроскопического чипа, разработку уникального дизайна, а также доставку симки.
Производство начинается с чипа, которой является главкой частью любой симки. Обычно этим занимаются известные производители, такие как: Samsung, Infineon и другие. После чип помещают на специальную подготовленную площадку, затем распаиваются контакты, а после чип заливается клеем. В итоге получается модуль, который извлекается из ленты, крепится на подготовленный пластиковую карту. А уже на финальном этапе делают прошивку симки: PIN-код, ключи и т.д
Ломаются ли SIM-карты?
Ответ на этот вопрос — конечно, да. SIM-карты, как и многое на нашей планете ломаются. Если это случится с вами, то вы узнаете об этом первым. Поскольку ваш телефон сообщит вам об этом в виде сообщения «Ваша SIM-карта не распознана». В этом случае вы не сможете пользоваться услугами мобильной связи.
Виды SIM-карт
Если вы считаете, что стандартная симка имеет огромный размер, а использовали её даже в эпоху динозавров, то вы сильно ошибаетесь. На самом деле стандартная симка — это не что иное, как MiniSIM-карта. Её габариты составляют всего 15*25 мм. Данный стандарт был утвержден в далеком 1996 году. Сейчас такая симка практически не используется, её можно вставить разве что в дешёвую кнопочную Nokia или другой очень древний телефон.
Однако, чтобы вы понимали, то до стандартной MiniSIM-карты использовались первые SIM-карты. Размер таких карт примерно был сопоставим со стандартными банковскими картами, которыми мы с вами ежедневно пользуемся. Габариты первой по-настоящему большой, особенно если сравнивать с современными форматами симки составлял 85,6*53,98 мм.
На смену стандартной MiniSIM-карты пришел формат MicroSIM, который стал использоваться с 2003 года. Габариты данной симки, конечно меньше чем в MiniSIM и составляют 12*15 мм. Однако эти две симки объединяет одинаковый интерфейс обмена и контактная пластина. Поэтому обрезав MiniSIM-карту вы получите MicroSIM-карту.
Но и этого оказалось недостаточно. Поэтому в 2012 году появился новый современный формат nanoSIM-карты с еще более компактными габаритами 8,8*12,3 мм. Кроме того, не только габариты изменились, но и толщина стала на 12% меньше, однако все контакты сохранились на прежних местах.
Что может полностью заменить SIM-карты?
Считается, что в будущем мы полностью откажемся от привычных нам SIM-карт. Главная этому причина — новая более современная технология eSIM, которая представляет собой микромодуль встроенный в устройство на этапе его изготовления. В настоящее время технологию eSIM уже используют в новых флагманских моделях смартфонов, а также планшетов. Конечно, пока рано говорить о том, что eSIM уже в ближайшие годы заменит стандартную SIM-карту, для этого понадобится гораздо больше времени.
Но вы должны понимать, что за eSIM будущее. Например, если сравнивать eSIM и SIM-карту, то в этой битве обычная симка выглядит менее привлекательной. Например, eSIM нельзя потерять, сломать или неправильно вставить в устройство, поскольку она находится в вашем телефоне еще с этапа производства. Кроме того, для ее извлечения нет необходимости в специальном металлическом ключе, который достаточно легко потерять. В eSIM есть возможность использовать сразу до 5 номер, а также пользоваться разными тарифами. Это в свою очередь решает проблему с использованием сразу нескольких симок. Стоит добавить, что eSIM достаточно сложно подделать или дублировать в отличие от обычной SIM-карты.
Вывод
Все уже давно привыкли пользоваться SIM-картами и на первый взгляд они кажутся нам просто обычным кусочком пластика, но на самом деле — это небольшой компьютер. На сегодняшний день более 7 миллиардов устройств во всем используют SIM-карты для отправки сообщений, совершения звонком и работы в интернете. Однако, с большой вероятность в будущем на замену стандартных SIM-карт, придет новая технология eSIM, которая с каждым днем все больше внедряется в наш мир. Ведь избавившись от физической SIM-карты в устройстве можно освободить место, а подключения к сети сделать намного проще и доступнее. Кроме того, eSIM практически невозможно взломать, подделать или дублировать в отличие от обычной 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 расшифровывается как 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-карты стали фактически главным узлом и фактором доверия, на основе которого во всем мире выстроена система безопасности мобильных устройств связи. Именно эти карты защищают «мобильную личность» абонента, связывают коммуникационные устройства с их телефонными номерами, а в последние годы — еще и в нарастающих масштабах хранят платежные реквизиты владельца. Именно так, в частности, это реализовано в телефонах с мобильными цифровыми кошельками, оснащенных технологией беспроводной связи 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, изменять номера голосовой почты, запрашивать место расположения телефона. Очевидно, что все эти и многие прочие возможности предоставляют раздолье для потенциальных злоупотреблений.
В принципе, как уже говорилось, виртуальная машина Java должна гарантировать, чтобы каждый из апплетов-приложений имел доступ исключительно к заранее определенным интерфейсам и не мог получать доступа к файлам других приложений. Но на самом деле конкретная реализация идеи «песочниц» (Java sandbox), осуществленная главными поставщиками SIM-карт на мировом рынке, оказывается чрезвычайно небезопасной.
Ноль и его коллеги обнаружили очень серьезный баг в реализации Java Card — по сути дела, ошибку выхода за границы массива, или out-of-bounds error. Из-за этого бага, когда происходит запрос 11-го, скажем, элемента в списке, по определению содержащем лишь 10 элементов, в ответ на такой запрос система дает приложению (вирусу) корневой доступ ко всем файлам SIM-карты. То есть фактически тут же разваливается вся эта видимость «песочниц», обеспечивающих безопасную работу виртуальной машины Java Card VM.
Иначе говоря, вредоносное Java-приложение, работающее в SIM-карте, может вырываться из своего огороженного мирка-«песочницы» и получать доступ к прочим, буквально любым файлам карты. Непосредственным следствием этого дефекта являются возможности дистанционного клонирования миллионов SIM-карт вместе со всеми важнейшими реквизитами мобильной личности (значения IMSI, Ki), а также платежными реквизитами владельцев, хранимыми в памяти карты.
Обобщая итоги их исследования, которое охватило примерно 1000 SIM-карт, работавших в разных странах и в сетях разных операторов, Ноль дает примерно такие оценки вскрывшихся рисков и угроз. Хакер-злоумышленник, решивший использовать данный метод, может начать со списка, скажем, из 100 телефонных номеров. Затравочное бинарное SMS можно легко разослать сразу всем телефонам из списка, используя программируемый сотовый телефон, подсоединенный к компьютеру.
В ответ на такой запрос, по оценкам исследователей, будет получено примерно 25 ответных SMS с криптографическими сигнатурами, однако половину из них придется проигнорировать из-за более сильного стандарта безопасности, реализованного в SIM-карте.
Но вот для остальных телефонов — в количестве 12–13 штук — Ноль и его команда могут быстро, фактически в автоматическом режиме вскрыть криптографический ключ SIM-карты. А далее — разослать по этим номерам вирус, который проламывает барьеры «песочниц» в ОС Java Card, после чего делает с SIM-картой по сути что угодно — от шпионажа до похищения всех криптоключей телефона и платежных реквизитов владельца.
Ну а далее, естественно, пора задавать главные вопросы, типа «Кто виноват?» и «Что делать?».
Карстен Ноль считает, что дефективная реализация Java-песочниц — это явный недосмотр и ляп ведущих в мире поставщиков SIM-карт (в тройке главных фирм этого ряда принято называть Gemalto, Oberthur и Giesecke-Devrier). Каким именно термином называть то, что делают данные компании, — «недосмотр», «некомпетентность» или, скажем, «умышленное ослабление защиты», — это вопрос весьма непростой. Потому что документально найти и предъявить главный источник проблемы вряд ли кому-нибудь удастся (если только опять не найдется еще один борец за правду, вроде Сноудена или Мэннинга, и не сольет соответствующие документы в Интернет).
Но как бы там ни было, выявленные ныне слабости в защите SIM-карт более разумным представляется все же рассматривать отнюдь не как случайность. Ибо куда более вероятно, что это не столько досадная оплошность, сколько результат вполне целенаправленной работы весьма влиятельных в индустрии сил. Для подтверждения же данной точки зрения достаточно привести всего три примера.
1. Из истории DES. Хотя про криптоалгоритм DES ныне знают или хотя бы наслышаны все, кто мало-мальски интересуется вопросами защиты информации, один весьма существенный нюанс этой темы имеет обыкновение ускользать. Важнейшая особенность шифра DES заключается в том, что с точки зрения криптографической стойкости он представляет собой чрезвычайно удачную и сильную конструкцию. То есть за многие десятилетия анализа этой схемы для эффективного вскрытия DES фактически так и не удалось найти способа лучше, чем лобовой перебор всех возможных вариантов ключа.
Иными словами, единственной слабостью DES была и остается его короткая длина ключа — всего 56 бит (для которых при появлении шифра в 1970-е годы прямой перебор вариантов считался невыполнимым, однако постепенно, с течением времени и ростом мощи процессоров, стал вполне решаемой задачей). Но важные факты истории таковы, что в основу конструкции DES был положен шифр Lucifer, изначально имевший длину ключа 128 бит (а это даже по нынешним меркам вполне надежный уровень защиты). Ныне давно уже не секрет, что длину ключа — то есть стойкость замечательного шифра — столь существенно уменьшили по настоянию Агентства национальной безопасности США.
Более того, известны неофициальные свидетельства и о том, что конкретная длина 56 бит была выбрана по той причине, что вычислительные возможности АНБ в 1970-е годы уже позволяли создавать под этот размер просмотровые таблицы (на магнитных лентах), обеспечивавшие отыскание ключа DES практически сразу — вызовом нужной ленты из архива. Нынешние хакеры делают фактически то же самое с помощью своих Rainbow Tables, но только гораздо быстрее — из-за терабайтных объемов памяти у нынешних накопителей.
2. Из истории криптографии в GSM. Изначально державшиеся в секрете криптосхемы GSM были восстановлены независимыми исследователями к 1999 году. Анализ этих схем академическими математиками-криптографами показал очень примечательные вещи. Изначально качественные, что называется военного уровня, криптоалгоритмы при конкретной реализации в чипах оказались явно и совершенно умышленно ослаблены — «кем-то» по сию пору как бы неизвестным, но очень хорошо знающим свое дело. Комментируя сделанные открытия, один из руководителей того вскрытия Марк Брисено, более известный в Сети как Lucky Green, сказал об этом так:
«Мой опыт работы с GSM показывает, что разведывательные службы, стоящие, как известно, за всеми криптоалгоритмами GSM, используют в своей работе весьма специфический подход. Они компрометируют любой и каждый компонент криптосистемы, какой только можно скомпрометировать. Имея такую возможность, разведслужбы ослабляют компонент просто потому, что могут это сделать, а не потому, что им это нужно. Это как бы извращенное воплощение в целом правильного принципа многократной избыточности».
Применительно к криптоалгоритмам GSM практическая реализация этого принципа избыточности выглядела так:
- Скомпрометирована система аутентификации и алгоритм генерации секретного ключа.
- Скомпрометирована эффективная длина сеансового ключа. В 64-битном ключе последние 10 бит принудительно обнулены. Это совершенно умышленное ослабление системы примерно в 1000 раз.
- Скомпрометирован сильный алгоритм шифрования A5/1. В этом шифре с 64-битным ключом обнаружены многочисленные конструктивные дефекты, которые приводят к стойкости, не превышающей стойкость шифра с 40-битным ключом (другими словами, стойкость понижена на 6 порядков или в миллион раз).
Подводя итог этим открытиям, Лаки Грин отмечал, что для обеспечения перехвата и дешифрования GSM-трафика было бы достаточно скомпрометировать эффективную длину ключа. Было бы достаточно скомпрометировать алгоритм генерации ключа. Было бы достаточно скомпрометировать алгоритм шифрования. Однако спецслужбы сделали все три вещи одновременно.
Такие действия и не назовешь иначе, как хорошо продуманной, гарантированно избыточной компрометацией системы.
3. Из истории A5/3, или KASUMI. Как известно, после открытой публикации всех обнаруженных данных о слабостях криптографии в GSM в компетентных структурах было принято решение о модернизации и усилении защиты. В частности, на смену полностью скомпрометированному алгоритму шифрования A5/1 к 2002 году появился другой, имеющий абсолютно иную конструкцию криптоалгоритм A5/3, или KASUMI.
Внедрение нового шифра в сетях 3G, правда, происходило крайне медленно, что было принято объяснять известной инертностью операторов связи. Реальное ускорение процесса обозначилось лишь в 2009 году, когда Карстен Ноль и его коллеги по Chaos Computer Club опубликовали в Интернете заранее вычисленную просмотровую таблицу огромного, объемом 2 терабайта, размера для фактически моментального взлома ключей A5/1.
В ответ на кардинально возросшую угрозу подобных атак Ассоциация GSM объявила, что, начиная с 2010 года, намерена ускорить всеобщий переход на новый криптоалгоритм защиты A5/3. Это объявление, естественно, привлекло к шифру повышенное внимание независимых криптоаналитков, в результате чего вскоре было сделано еще одно неприятное открытие.
Группа известных израильских криптографов (Orr Dunkelman, Nathan Keller, Adi Shamir) не только взломала A5/3, также известный как KASUMI, но и показала, что этот шифр является куда более слабой модификацией своего изначального прообраза, криптоалгоритма MISTY. Иными словами, практически один в один повторилась давняя история с алгоритмами DES и Lucifer. Здесь тоже некие умельцы за основу взяли качественный и всесторонне исследованный на стойкость японский шифр MISTY, а затем подвергли его целому ряду «улучшений» и оптимизаций для условий работы в сетях GSM. В результате же всех этих усовершенствований получился новый шифр Kasumi, ключи к которому, как показали израильские исследователи, при грамотном подходе можно вскрывать за несколько минут.
Карстен Ноль и его коллеги, естественно, не могут обеспечить всестороннюю защиту коммуникаций в сетях GSM. Но если говорить конкретно об их исследованиях SIM-карт, то здесь эти специалисты предлагают вполне реальные и конкретные меры по усилению безопасности системы. В частности, для конструктивного вмешательства компетентных структур ими рассмотрены и предложены три конкретных комплекса мероприятий, существенно понижающих риски от дистанционных вредоносных манипуляций с SIM-картами.
- Лучше реализовать имеющиеся возможности SIM-карт. Понятно, что в картах нужно использовать наиболее современную криптографию с достаточно длинными ключами. Причем в работе своей карты не должны предоставлять атакующим криптографически подписанный текст, содержание которого злоумышленнику известно. И конечно же, в картах должны быть реализованы безопасные виртуальные машины Java. И хотя некоторые карты на рынке уже близки к этой цели, отмечают исследователи, потребуются годы, чтобы заменить карты с дефективным наследством и гарантировать им дополнительную защиту.
- Нужен фаервол от вредоносных SMS. Дополнительный уровень защиты можно было бы реализовать не только в SIM, но и собственно в телефонных аппаратах. Каждый пользователь должен получить возможность самостоятельно решать, каким из источников бинарных SMS следует доверять, а какие следует отвергать. Такого рода защитный SMS-экран в телефоне мог бы противостоять и другим сценариям злоупотреблений, включая «беззвучные SMS» (silent SMS).
- Внутрисетевая фильтрация SMS. Дистанционно действующие злоумышленники опираются в своей активности на сети мобильной связи — как для доставки бинарных SMS в аппараты своих жертв, так и для получения от них ответов. Подобного рода служебные SMS должны быть дозволены только для ограниченного числа хорошо известных источников, однако в реальности большинство сетей не практикуют подобного рода фильтрацию.
Все свои открытия и предложения Ноль и его команда, естественно, уже весьма давно передали для изучения в Ассоциацию GSM и надлежащего реагирования со стороны производителей SIM-карт, операторов сотовой связи и прочих заинтересованных в безопасности структур.
Какие мероприятия последуют в ответ, станет ясно, понятное дело, несколько позже. Пока же первый публичный доклад об итогах проделанной работы Карстен Ноль делает 31 июля, то есть в день выхода этой статьи, на хакерской конференции BlackHat в Лас-Вегасе. Более серьезный доклад с конкретными указаниями на изготовителей скомпрометированных SIM-карт и применяющих их операторов связи планируется сделать в декабре, на конференции Chaos Computer Club.
Краткое введение в SIM-карты
Когда на вопрос «кем вы работаете?» я отвечал «разработчиком ПО для SIM-карт», даже технически подкованные люди частенько удивлялись. Многие думают, что SIM-карта это «что-то типа флешки».
В этой статье я постараюсь кратко рассказать что такое SIM-карта (и смарт-карты в общем), зачем она нужна и что у нее внутри.
На самом деле SIM-карта — это частный случай контактной смарт-карты с микропроцессором. По сути, представляет из себя достаточно защищенный микрокомпьютер с CPU, ROM (опционально), RAM и NVRAM (которая выступает в качестве аналога жесткого диска в PC), с аппаратными генераторами случайных чисел и аппаратной реализацией крипто-алгоритмов.
В некотором приближении архитектуру микропроцессорной смарт-карты можно представить так:

Немного о производстве
Для понимания последующего материала мне кажется правильным вкратце объяснить основные процессы при производстве карт.
1. Производство чипа
Исполнитель: Производитель чипов (silicon vendor).
Конечный продукт: пластина с чипами (wafer).
Чипы производятся несколькими компаниями, наиболее распространенные — Samsung, ST Microelectronics, Infinion, SST etc.

Обратная сторона модуля. Белый прямоугольник в центре — чип SIM-карты:

2. Сборка модулей
Исполнитель: производитель смарт-карт (card vendor) или сторонний завод по сборке модулей.
Конечный продукт: лента с модулями (чип + контактная площадка).
На этом этапе пластина режется на чипы (зачастую пластины режутся производителем чипа), чипы крепятся на контактные площадки, затем распаиваются контакты и чип заливается клеем (см. предыдущее фото обратной стороны модуля). Вся эта конструкция называется «модулем»:

3. Производство карты
Исполнитель: card vendor.
Конечный продукт: SIM-карта.
Модули извлекаются из лент, крепятся на пластиковую основу карты, затем загружаются файловая система, приложения, затем идет персонализация карты — загрузка данных, уникальных для каждой карты (различные ID, ключи итд) и нанесение их на саму карту (например ICCID и PIN коды в случае с SIM-картами).

Типы карт
По типу используемой памяти в последнее время SIM-карты делятся на 2 группы: карты, в которых используется ROM и EEPROM, и карты, где используется Flash память.
В первом типе карт операционная система (ОС) и постоянно используемые и малоизменяемые приложения помещаются в ROM производителем чипа (первый этап производства). Цикл производства в этом случае очень долгий и промежуток между релизом ОС и отгрузкой первых чипов занимает 2-3 месяца. EEPROM используется производителем карт для загрузки файловой системы (ФС) и приложений.
В случае с Flash картой ОС, ФС и приложения хранятся на Flash памяти. Использование Flash позволяет загружать ОС в процессе сборки модулей или при производстве карты (этапы 2 и 3). На данный момент карты с использованием flash памяти практически вытеснили ROM с рынка SIM-карт. Flash чипы дешевле и позволяют достаточно легко вносить изменения в ОС. Также производителю карт проще планировать заказ чипов, так как не надо заказывать чипы с конкретными версиями ОС, а просто заказываются чипы с различным размером памяти, и нужная ОС загружается уже под конкретного заказчика — оператора. Так как прогноз по закупке чипов делается обычно только раз в год, это сильно упрощает планирование.
Java на картах
Да, я не ошибся. По программной «начинке» смарт-карты делятся на 2 большие группы — native и javacard.
Native карты
ПО для native-карт пишется на С. Приложения (если таковые требуются производителем) обычно тесно интегрированы с ОС и загружаются одновременно с ОС на карту. Устанавливать какие-либо приложения, разработанные другой компанией, на native-карту нельзя. Дополнительную функциональность, затребованную оператором, зачастую приходится добавлять в код ОС. Размеры самой ОС из-за использования С и простоты ОС достаточно маленькие (для SIM карт порядка 10-20Кбайт). Поэтому native-карты на данный момент используются в low-cost сегменте, где оператор ничего не хочет на карте, кроме простого меню.
Javacard
В эпоху распространения языка Java компания Sun Microsystems написала спецификации javacard. Идея javacard была в том, чтобы сделать возможным установку приложений (апплетов) на карты различных производителей (и на различные чипы). В 1996 году подразделение смарт-карт корпорации Shlumberger (позже переименованное в Axalto, на данный момент Gemalto) представила первую javacard. Идея достаточно простая. Кроме ОС карта содержит виртуальную машину Java. Разработанное приложение компилируется в байткод и загружается на карту. Приложения в этом случае загружаются уже после загрузки ОС (в процессе производства карты), также, если карта содержит Remote Applet Manager, javacard апплет может быть установлен после выпуска карты посредством CMC.
Язык для разработки под javacard — это сильно урезанная Java. Урезана она намного сильнее, чем в J2ME. Из примитивов остались только boolean, byte, short и опционально поддерживается int (но практически не используется в угоду совместимости, так как поддерживается далеко не всеми производителями). Нет привычных классов типа String (вообще из java.lang перекочевали только Object , Throwable и несколько Exceptions ), нет мультипоточности, нет garbage collector’а. Минусы javacard, на мой взгляд, — это скорость работы и большие требования к памяти (как RAM, так и EEPROM/Flash). Java-карты более дороги вследствие использования более дорогих чипов и более сложной структуры ПО.
Приложения
В предыдущем тексте часто упоминались приложения, но человеку, не знакомому со смарт-картами, чаще всего непонятно, что за приложения могут быть на карте.
Во-первых, основная функциональность карты может быть вынесен в отдельное приложение. К примеру, может быть SIM applet, написанный на java, который реализует всю функциональность SIM. Может быть R-UIM приложение (R-UIM карты используются в CDMA сетях). Это может быть приложение Visa или Mastercard, превращающие смарт-карту в банковскую карту. По сути, при использовании java, в ОС можно оставить управление памятью, ввод-вывод и Java машину. При этом, если производителю надо произвести SIM-карты — загружается SIM апплет, если надо сделать Visa — загружается приложение Visa.
Во-вторых, существует класс приложений на картах — microbrowsers. Это интерпретаторы байткода для построения SIM-меню. Это не java байткод, а байткод, понятный установленному браузеру. Меню в этом случае чаще всего разрабатывается на xml-подобном языке разметки, конвертируется в байткод и загружается в браузер. На данный момент наиболее широкое распространение получили браузеры S@T от Simalliance и WIB от Smarttrust. Обе организации не разрабатывают браузеры, они пишут спецификации и сертифицируют браузеры, написаные по этим спецификациям.
В-третьих, это могут быть SIM меню, разработанные на java (без использования браузеров), либо просто какой-то фоновый апплет. К примеру, это может быть апплет, следящий за тем, какой телефон вы используете. Если вы вставили карту в новый телефон, то SIM посылает IMEI нового телефона оператору, а тот, в свою очередь, отправляет вам настройки wap/gprs для вашей модели.
Файловая система
На SIM-картах есть файловая система, так же как и на настольных компьютерах. Файлы бывают 2х типов — DF (Dedicated file — аналог папки) и EF (Elementary file — аналог обычного файла). Корневой DF файл называется MF (Master File).

В файловой системе SIM-карты хранятся секретные ключи, адресная книга, список последних СМС, название оператора, сети, предпочтительные в роуминге, сети, запрещенные к использованию, и т. д. Естественно, существуют уровни доступа к файлам. Ключи зачастую имеют NEVER в качестве доступа на чтение, что исключает возможность их прочитать извне.
Для чего это все нужно?
SIM-меню и остальные «несистемные» приложения являются просто value added services. Основная цель карты — произвести идентификацию и аутентификацию абонента в сети.
Для этого на карте есть IMSI (International Mobile Subscriber Identity) — уникальный идентификатор SIM-карты и 128-битный ключ Ki.
Ниже представлена процедура аутентификации в сети GSM и генерации ключа сессии Kc.
Аутентификация проходит с помощью алгоритма A3, генерация Kc — A8. Authentication Center (AuC) на запрос аутентификации карты генерирует 128-битную псевдослучайную последовательность RAND и отсылает ее SIM-карте. Далее, зная IMSI карты, AuC использует ключ Ki, привязанный к данному IMSI, и данные RAND в качестве входных данных в алгоритмах A3 и A8. Карта одновременно с этим производит те же самые вычисления. Результат вычислений алгоритма A3 Signed Response (SRES) отправляется картой в AuC, на котором полученный SRES сравнивается с вычисленным на AuC. При совпадении результатов процедура аутентификации считается успешно пройденной. Ключ Kc, полученный при использовании алгоритма A8, используется впоследствии для шифрования трафика между телефоном и сетью.
Программы «клонирования» карт используют уязвимость в старой версии алгоритма A8 (COMP128-1). На данный момент в GSM сетях широко используются COMP128-2 и COMP128-3. Уязвимость была найдена еще в 1999 году, но некоторые GSM операторы так и не перешли на использование 2-го и 3-го алгоритмов (уязвимости в которых на данный момент не найдены).
Эпилог
В этой статье я постарался достаточно сжато рассказать что же такое SIM-карты. Надеюсь у меня это получилось. Практически все описаное выше, за исключением процедуры аутентификации, отностится и к USIM-картам, используемым в 3G сетях (UMTS), и R-UIM картам (CDMA сети). Если есть какие-то комментарии или вопросы — пожалуйста пишите.
