Что такое sim карта
Что такое SIM-карта. Секреты вашей симки
SIM-карта – микроскопический чип, который дает возможность общаться в мобильной сети. Но на самом деле «симка» может гораздо больше.
Как производят СИМ-карты? Что хранится на них, как это копируют (легально и не очень) и какие есть способы защититься от кражи данных через SIM-карту?
Начнём с главного. Что такое СИМ-карта?
SIM-карта – это контактная смарт-карта с собственным процессором, способная регистрироваться в мобильной сети. «Симка» умеет находить ближайшую передающую станцию и хранить информацию: номера, SMS и другие данные.
SIM-карта имеет постоянную (энергонезависимую) и оперативную память. Также есть модуль аппаратного шифрования и аппаратный генератор случайных чисел.
Процессор SIM-карты работает на частоте до 10 МГц. Постоянная память делится на области: примерно 60% занимают данные оператора, 20% – операционная система, остальное – данные пользователя.
Как производятся SIM-карты?
Всё начинается с производства чипов. Среди самых известных производителей – Samsung, ST Microelectronics, Infinion.
Затем чипы помещают на контактные площадки – выполняют сборку. Получается такая лента:
После этого модули извлекают из лент и крепят на пластиковую основу. После этого на каждый модуль загружают операционную систему и приложения.
Финальный шаг – прошивка уникальных данных для каждой карты. Это ICCID и PIN-коды, ключи, идентификаторы и др.
Какие бывают SIM-карты
Стандартная (большая) SIM-карта – это на самом деле MiniSIM. Её размеры – 15х25 мм. Стандарт утвердили в 1996 году. Такие карты поддерживают 2G и 3G, с 4G/LTE не работают.
До этого SIM-карты были гигантскими – 85,6х53,98 мм. Как кредитные карты. Появились они в 1991 году.
Третье поколение, MicroSIM, представили в 2003 году. Распространением карт размером 12х15 мм мы обязаны Apple и iPhone 4.
Но и это оказалось много. В 2012 году запустили nanoSIM размером 8,8х12,3 мм. Они, кстати, тоньше других карт – 0,67 мм против 0,76 мм.
И это также заслуга Apple: убрав края MicroSIM, компания предложила самый удобный вариант, совместимый с предыдущими поколениями. Собственно, впервые nanoSIM массово использовали в iPhone 5.
Почему SIM-карта не ломается, если её обрезать?
Потому что обрезаете вы пластик, а чип и контактная площадка остаются на месте.
Обычно SIM-карты обрезают специальным резаком, похожим на степлер. Если криво положить в него карту, можно задеть контакты или чип.
Самое сложное – обрезать симку до размера nanoSIM. Уголок там отрезается практически «по-живому». Повредить чип очень легко, особенно если резать ножницами или ножом для гипсокартона.
Цена замены зависит от оператора. У Билайна это стоит 30 рублей, у Мегафона бесплатно, у Tele2 тоже, как и у МТС.
Что такое eSIM
Это чип (embedded SIM – встроенная SIM), который установлен внутри смартфона или другого устройства. На него можно записать ту же информацию, что и на обычную симку.
Чтобы подключить eSIM к сети оператора, нужно получить от него набор зашифрованных данных и сохранить их.
eSIM экономит место внутри смартфона. Чип можно установить где угодно, а раз доставать его не нужно, то и отверстия под «скрепку» в корпусе не будет. Защиту от пыли и влаги организовать проще.
К тому же чтобы сменить оператора, в салон идти не нужно. Можно даже подключиться к нескольким операторам – сохранить разные профили со своими настройками.
О eSIM заговорили, когда Apple выпустила iPhone XS/XR/XS Max. До этого встроенные симки использовали в умных часах Samsung Gear S2 3G 2016 года и в Apple Watch 3/4. Получил поддержку eSIM и смартфон Google Pixel 2.
Проблема в том, что не все операторы поддерживают технологию. А в некоторых странах (включая РФ) eSIM вообще вне закона.
Во-первых, запись данных на eSIM приравнивается к копированию симки. Это мошенничество.
Во-вторых, с eSIM вы можете перейти к новому оператору, не уведомив прошлого. Это нарушение условий договора.
В общем, пока eSIM можно пользоваться только в отдельных странах. И далеко не у всех операторов.
Читайте в нашей другой статье все подробности о eSIM, а также про отличия eSIM от обычной симкарты.
Какие данные хранятся на SIM-карте?
SIM-карта хранит номера KI и IMSI, а также другую информацию. Выглядит это примерно так:
IMSI (International Mobile Subscriber Identity) – международный номер мобильного абонента. Он пересылается в сеть, но только при аутентификации. Когда это возможно, вместо IMSI смартфон посылает TMSI – сгенерированный на базе IMSI временный идентификатор.
KI (Key Identification) – уникальный 128-битный ключ аутентификации пользователя. Он также нужен для авторизации в сети. КI генерируется по алгоритму А8, аутентификация проходит по алгоритму А3.
Как преступники крадут данные с SIM-карты?
Чтобы получить данные с карты, используются SIM-сканеры или SIM-клонеры. Купить их можно за 150 рублей или даже дешевле.
Более-менее легальные сканеры не считывают KI, чтобы не позволить мошенникам клонировать SIM-карту и с её помощью взламывать аккаунты. Фактически процессор SIM-карты работает с KI непосредственно, и передавать идентификатор во внешнюю сеть не нужно.
KI хранится в области памяти, защищенной от чтения. Но если многократно запускать на сканере алгоритм A3 и вводить случайный пароль RAND, то криптографические методы анализа ответа SRES позволят вычислить KI. Занимает это менее минуты.
Впрочем, в SIM-картах есть своеобразный таймер самоуничтожения. После определенного количества запусков алгоритма А3 процессор SIM-карты перестает вычислять SRES и вообще реагировать за запросы.
Но криптометоды эффективно работают только со старыми версиями алгоритма A3 – COMP128v1. Операторы используют его крайне редко. COMP128v2 и COMP128v3 просто не позволят вычислить RAND-SRES и KI. По крайней мере, быстро и наверняка.
Так что если вы хотите купить сканер, который взламывает всё, или скачать программу, которая вытащит KI с любой карты, скорее всего, вас обманут. А в нагрузку ещё и троян вручат, чтобы получить ваши данные.
Проблема в том, что у мошенника есть доступ к базе данных оператора, он может получить набор ключей для большого количества SIM-карт. Если в распоряжении хакеров окажется таблица соответствий SIM-карт и KI, которые производитель передает оператору с очередной партией, данные также окажутся под угрозой.
Но это скорее теоретическая возможность. Как и передача ключей в «эфире мобильного оператора». KI не передается в эфир, так что перехватить его напрямую невозможно.
Как клонируют SIM-карты?
Изначально SIM-карты клонировали, чтобы с одного смартфона пользоваться несколькими телефонными номерами. Данные карт объединяли в MultiSIM – карту с увеличенным объемом памяти. Доступ к следующему номеру можно было получить после имитации перезагрузки смартфона.
Позднее, когда банки и платежные сервисы стали привязывать аккаунты к мобильным номерам, клонированием заинтересовались мошенники. Когда клон заходил в сеть, оригинальная SIM-карта теряла связь.
Все звонки и сообщения поступали на номер-клон. Это позволяло перехватывать доступ к аккаунтам, мобильному банкингу и др. Клон действовал до обновления регистрации оригинального номера в сети.
Операторы пресекли эту схему. Чаще всего защита срабатывает, если SIM-карта заново регистрируется достаточно далеко от предыдущего места входа в сеть.
Вот здесь мы рассказывали, как угоняют SIM-карты и крадут деньги, запрашивая дубликат карты у оператора. Если сделать клон, возможности те же самые.
Как защищаются данные на SIM-картах?
По большому счету, SIM-карты защищены лишь PIN- и PUK-кодами. Специалисты по кибербезопасности рекомендуют постоянно держать активной защиту PIN-кодом и, естественно, менять традиционные четыре нуля в коде на что-то более сложное.
В остальном безопасность использования SIM-карт обеспечивают разработчики мобильных приложений – банковских и т.п.
К примеру, если вы замените SIM-карту, банковское приложение увидит, что телефонный номер у вас тот же, а IMSI-номер поменялся, и заблокирует получение кодов для подтверждения операций. Чтобы восстановить доступ, придется связаться со службой поддержки и подтвердить свою личность.
Правда, что SIM-карта может размагнититься?
Нет. Хотя операторы любят эту сказку.
Симка – это компьютер в миниатюре, печатная плата с контактами. У неё есть процессор, оперативная и постоянная память, вспомогательные элементы.
Но размагничиваться там нечему. Вы же не можете размагнитить процессор в компьютере или в смартфоне, правда? Попробуйте, конечно, а вдруг.
А вот повредить SIM-карту можно. Например, если погнуть или намочить и толком не высушить.
Теоретически карта может выйти из строя из-за статического напряжения. Если тереть её об синтетический костюм, например. Но зачем?
Наконец, у любого чипа памяти есть ресурс циклов перезаписи. В определенный момент ячейки памяти просто перестанут менять состояние.
Но всё это не связано с размагничиванием. Вообще никак.
Бонус-лайфхак: как установить SIM-карту и microSD в один слот
Контакты SIM-карт и microSD в слотах современных смартфонов никак друг друга не перекрывают. Но слот считается гибридным: производители советуют устанавливать либо две «симки», либо карту памяти.
Умельцы нашли, как это обойти. Всё достаточно просто:
1. Стачиваете карту microSD напильником или наждаком, чтобы она стала потоньше.
2. Аккуратно нагреваете пластиковую часть nanoSIM феном и параллельно пинцетом отклеиваете чип.
3. Приклеиваете чип на карту со стороны контактов, осторожно отрезаете всё лишнее. Можно использовать клей по пластику или тонкий двусторонний скотч.
4. Вставляете комбинированную карту в лоток.
Процедура несложная, но с первого раза может не получиться. Потренируйтесь на старых картах, чтобы не испортить основные.
Как устроены SIM-карты. Часть первая: история вопроса
Какие этапы эволюции проходила знакомая каждому SIM-карта и к чему в результате все пришло
Привычная нам SIM-карта, которую так легко переставить из одного телефона в другой, появилась совсем не одновременно с рождением мобильного телефона как такового. Первые мобильные телефоны работали в «привязанных» стандартах связи: параметры подписки записывались непосредственно в память мобильного терминала. Причем в самых старых аналоговых стандартах вроде NMT-450 — даже без защиты: при желании можно было скопировать запись в другой телефонный аппарат и создать его клон, разговаривать за счет владельца или принимать адресованные ему звонки.
Чуть позднее появилось решение для защиты — так называемый SIS-код: 18-значное число, уникальное для каждого аппарата и зашитое в специальный процессор. SIS-коды централизованно распространялись между производителями, так что двух аппаратов с одинаковым кодом быть не могло. В этом же процессоре хранился и семизначный RID-код, который передавался при регистрации в сети на базовую станцию.
SIM-карта сокровищ: как потерять все, потеряв один лишь телефон — http://t.co/ElKB4U1unJ
Оттуда взамен приходило случайно сгенерированное число, и SIS-процессор на основе этого числа и своего уникального SIS ответа должен был сгенерировать ключ, по правильности которого и происходила авторизация.
Небольшая длина как ключей, так и генерируемых чисел была вполне достаточной в те времена (речь о 1994 годе), хотя позднее система и была взломана. Однако еще за три года до этого появился цифровой стандарт GSM, в котором аналогичная, но более стойкая система авторизации была реализована изначально, а сам стандарт стал «отвязанным».
Сотовые сети 5G: как они будут работать, зачем нужны и когда будут доступны — http://t.co/27iaXMktJE pic.twitter.com/wnkjiuaos9
То есть функции авторизации возложили не на сам аппарат, а на внешний процессор, встроенный в смарт-карту, которую назвали SIM (Subscriber Identity Module, «модуль идентификации абонента»). Данные о подписке абонента перестали быть зависимыми от самого аппарата — стало возможным использовать любые устройства, меняя их сколь угодно часто.
SIM-карта является, по сути, смарт-картой стандарта ISO 7816 и не особенно отличается от других контактных чиповых карт — например, банковских или таксофонных. Первые «симки» имели точно такой же размер, о котором и сегодня напоминают стартовые пакеты операторов связи: просто миниатюризация телефонов очень быстро привела к тому, что полноразмерные карты (1FF) перестали помещаться внутрь аппаратов, поэтому придумали легко выламывающийся модуль (mini-SIM или 2FF), в котором содержатся чип и контактные площадки, но гораздо меньше лишнего пластика.
Несмотря на дальнейшую миниатюризацию (micro-SIM — 3FF, а затем и nano-SIM — 4FF), форма и расположение контактных площадок, а также принципы работы встроенных чипов остаются неизменными вот уже почти 25 лет, а большие пластиковые «болванки» до сих пор выпускаются для того, чтобы услугами мог воспользоваться даже абонент с очень старым телефоном, — таков стандарт.
Что характерно, многие старые аппараты при этом не смогут прочитать современную «симку», даже если она будет полноразмерной. Дело в том, что ранее повсеместно для питания процессора SIM-карты использовалось напряжение 5 В, а теперь в ходу 3 В. И ради экономии многие производители выпускают SIM-карты с поддержкой только одного напряжения, а не двух — в старом пятивольтовом сотовом телефоне у SIM-карты просто сработает защита по питанию и процессор работать не станет.
Современный смартфон — это полноценный компьютер. Очень опасный компьютер. Расскажем, почему https://t.co/2uibZkeLc6 pic.twitter.com/ILw4G8eQHl
В постоянную память SIM-карты уже на этапе производства записываются IMSI (International Mobile Subscriber Identity, «международный идентификатор мобильного абонента») под конкретного оператора, заказывающего модуль, а также 128-битный ключ Ki (Key Identification, «индивидуальный ключ аутентификации пользователя»). Если говорить грубо, это логин и пароль абонента, намертво зашитые в «железе» SIM-карты.
Соответствие IMSI учетной записи определенного абонента с его телефонным номером хранится в базе данных оператора, именуемой HLR (Home Location Register, «база информации об абоненте»). Эти данные копируются во временную базу данных VLR (Visitor Location Register, «база посещающих абонентов») в каждом конкретном сегменте сети, в котором в определенный момент времени находится абонент.
Авторизация происходит очень просто: при регистрации VLR отправляет на телефон абонента случайное 128-битное число (RAND), из которого на основе ключа Ki процессор SIM-карты вычисляет по алгоритму A3 32-битный ответ SRES, который отправляется обратно в VLR. Если ответ совпадает с ожидаемым, то происходит регистрация в сети.
По другому алгоритму, A8, также на основе RAND и Ki, вычисляется еще один временный ключ — Kc. А уже на основе этого ключа по третьему алгоритму, A5, происходит шифрование данных, передаваемых в эфир.
Легко ли взломать сотовую сеть? Хочется верить, что сложно, но на самом деле… https://t.co/9sS01xS55j pic.twitter.com/aXIznfpXNL
Кстати, существует атака для прослушивания телефонных разговоров из эфира — с использованием устройства под названием IMSI Catcher. Оно эмулирует базовую станцию, на которой регистрируются телефоны, и ретранслирует все сигналы на настоящую БС.
В этом случае весь процесс авторизации происходит в штатном режиме (взлом ключей не требуется), но «поддельная» базовая станция дает аппарату команду работать без шифрования, соответственно, звонок без шифрования проходит через нее и прослушивается без ведома оператора.
Интересно, что такая уязвимость — это вовсе не «баг» стандарта, а самая что ни на есть «фича», заложенная на этапе разработки по требованию спецслужб, чтобы те могли реализовывать атаки типа Man-In-The-Middle в ходе оперативно-разыскных мероприятий.
Краткое введение в SIM-карты
Когда на вопрос «кем вы работаете?» я отвечал «разработчиком ПО для SIM-карт», даже технически подкованные люди частенько удивлялись. Многие думают, что SIM-карта это «что-то типа флешки».
В этой статье я постараюсь кратко рассказать что такое SIM-карта (и смарт-карты в общем), зачем она нужна и что у нее внутри.
На самом деле SIM-карта — это частный случай контактной смарт-карты с микропроцессором. По сути, представляет из себя достаточно защищенный микрокомпьютер с CPU, ROM (опционально), RAM и NVRAM (которая выступает в качестве аналога жесткого диска в PC), с аппаратными генераторами случайных чисел и аппаратной реализацией крипто-алгоритмов.
В некотором приближении архитектуру микропроцессорной смарт-карты можно представить так:
Немного о производстве
Для понимания последующего материала мне кажется правильным вкратце объяснить основные процессы при производстве карт.
Исполнитель: Производитель чипов (silicon vendor).
Конечный продукт: пластина с чипами (wafer).
Чипы производятся несколькими компаниями, наиболее распространенные — Samsung, ST Microelectronics, Infinion, SST etc.
Обратная сторона модуля. Белый прямоугольник в центре — чип SIM-карты:
Исполнитель: производитель смарт-карт (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.
Приложения
В предыдущем тексте часто упоминались приложения, но человеку, не знакомому со смарт-картами, чаще всего непонятно, что за приложения могут быть на карте.
Во-первых, основная функциональность карты может быть вынесен в отдельное приложение. К примеру, может быть 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 сети). Если есть какие-то комментарии или вопросы — пожалуйста пишите.