сим карта что внутри
Краткое введение в 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 сети). Если есть какие-то комментарии или вопросы — пожалуйста пишите.
Из чего состоит sim-карта и почему она умнее, чем кажется?
Мобильный телефон может работать и без сим-карты – в режиме экстренных вызовов. Чтобы свободно звонить, отправлять и принимать сообщения – нужно вставить личную телефонную карту. Зная, из чего она состоит и как устроена, понимая принцип её работы, можно более полно и разумно использовать возможности смартфона и даже самого простого сотового телефона.
Из чего состоит сим-карта
Это один из видов процессорных карт. Она нужна для идентификации пользователя, подтверждает его право на получение услуг. Это переносной носитель для контракта.
Рабочий электронный компонент заключён в прочный тонкий корпус из ПВХ, размер которого постепенно уменьшался с развитием технологий – для экономии места внутри смартфона. Размер электронного модуля практически остался прежним.
Снаружи на электронном модуле находится металлическая пластина с контактами. Количество контактов и их рисунок у разных производителей не одинаковы. Через эти контакты осуществляется питание рабочих компонентов сим-карты, подаются команды управления, происходит ввод и вывод данных.
Металлические контакты портятся и окисляются под воздействием кожного жира, поэтому желательно не прикасаться к ним руками. Если причина неполадок в работе карточки – засорение контактов, можно аккуратно очистить их ластиком и протереть спиртом.
Внутреннее устройство – это компьютер в миниатюре. Сходство заключается в наборе функциональных элементов и принципе работы.
Главные элементы сим-карты:
Однако, человек напрямую воспользоваться этим компьютером не сможет. В нём отсутствуют элементы интерфейса. Обращение к процессору и памяти происходит средствами мобильного телефона. Питание блоков памяти, процессора и генератора тактовой частоты также обеспечивается его аккумуляторной батареей.
Что хранится в памяти?
Все функции сим-карты можно описать идентификационные и обслуживающие, которые реализованы посредством данных, хранящихся в разных отделах памяти. Принцип работы, подобно компьютеру, заключается в обращении к содержимому, его изменении, перезаписи, выполнении программ процессором.
Доступ содержимому карточки выглядит как ответы на запросы, сгенерированные внешним терминалом. Протокол запросов стандартный для всех операторов. Обращение к сети оператора происходит в зашифрованном виде – для максимально возможной защиты секретных ключей. Для доступа к некоторым данным и операциям нужны защитные коды – PIN и PUK.
Сим-карта – это сложное электронное устройство. Самое ценное в ней – уникальные коды, которые служат для идентификации абонента в сети. Встроенный процессор и система шифрования обеспечивают сохранность ключей от взлома мошенниками, а установленные Java-приложения расширяют возможности более простых моделей мобильных телефонов. Внимательно прочитав инструкцию к сим-карте, можно более тщательно настроить работу и безопасность телефона.