В первые годы развития мобильной связи телефоны работали без использования сим-карт. Данные абонента, включая его номер, хранились непосредственно в памяти устройства. Это создавало значительные неудобства для пользователей: при смене телефона приходилось вручную перепрограммировать новый аппарат, заново вводить всю информацию и регистрироваться в сети. Кроме того, такой способ был сопряжён с риском копирования: злоумышленник мог скопировать данные с одного телефона на другой, создав практически точный клон, что позволяло совершать звонки от имени владельца и принимать его вызовы без разрешения.
Ситуация кардинально изменилась в начале 1990-х годов с появлением стандарта GSM, в котором идентификация абонента и данные о его подписке стали храниться не в самом телефоне, а на отдельном внешнем микропроцессоре — сим-карте. Это позволило легко переносить номер и настройки между разными устройствами, просто вставляя сим-карту в новый телефон.
Сим-карта — это компьютер
Сим-карта представляет собой не просто пластиковую карточку с микросхемой. Это полноценный миниатюрный компьютер со всеми необходимыми компонентами. Сим-карта имеет:
- Собственный процессор для выполнения криптографических операций и обработки команд.
- Оперативную память (RAM), энергонезависимую память (для хранения данных) и постоянную (для хранения операционной системы и программ).
- Операционную систему.
- Генератор псевдослучайных чисел, необходимый для шифрования и защиты данных.
- Файловую систему, которая организует хранение данных в структурированном виде.
На чём пишут софт для сим-карт?
Программное обеспечение для сим-карт разрабатывается с использованием нескольких языков программирования, выбор которых зависит от типа самой карты и специфики задач.
- C. Основной язык для написания базового программного обеспечения и операционной системы сим-карт. Он позволяет максимально эффективно использовать ограниченные ресурсы памяти и процессора. Иногда используют и C++, но из-за специфики ООП его применяют реже, чтобы не расходовать лишнюю память.
- Java (Java Card). Приложения для смарт-карт с поддержкой платформы Java Card разрабатываются на сильно урезанной версии Java. Такие апплеты могут устанавливаться и обновляться отдельно от основной ОС карты, что удобно для расширяемых решений (например, для СИМ-меню или мобильных платежей).
- Ассемблер. Используется, чтобы ещё больше оптимизировать использование ресурсов, но разница в объёме с хорошо оптимизированным C-кодом невелика.
- C# и другие языки высокого уровня. Могут использоваться для создания программ, взаимодействующих с сим-картами через считыватели на компьютере (например, для чтения содержимого карты), но не для прошивки сим-карт.
При разработке программного обеспечения необходимо учитывать ряд технических, функциональных и архитектурных особенностей самой карты, а также специфику взаимодействия с операторами и устройствами.
Как карты регистрируются в сети?
Всякий раз, когда пользователь вставляет сим-карту в мобильное устройство, запускается процедура проверки, необходимая для получения доступа к сети оператора. Процесс регистрации включает несколько этапов:
- При первом подключении телефона к сети начинается обмен данными между сим-картой и оборудованием оператора. Карта отправляет в сеть свой уникальный идентификатор — IMSI, который затем используется для подтверждения личности владельца.
- Сотовая сеть сверяет полученный IMSI со своей базой данных: проверяет, зарегистрирован ли он, есть ли у него действующий тарифный план и разрешено ли устройству выходить на связь. На этапе аутентификации используются методы симметричного шифрования, что исключает возможность подмены личности абонента.
- После успешной проверки телефон получает возможность пользоваться сервисами мобильной связи: совершать звонки, отправлять сообщения, выходить в интернет и использовать другие опции. Каждый такой сеанс защищён и контролируется в соответствии с внутренними правилами безопасности оператора.
-
Что можно хранить на сим-карте?
Прежде всего, сим-карта хранит идентификационные данные абонента и информацию для работы с сетью:
- IMSI (международный идентификатор мобильного абонента).
- ICCID (уникальный серийный номер карты).
- Ключи шифрования и аутентификации.
- Данные для обеспечения безопасности (PIN- и PUK-коды).
- Сведения о сети и операторе.
- Номер центра обслуживания СМС-сообщений.
Помимо служебной информации, на сим-карте можно хранить:
- Телефонную книгу (контакты).
- Входящие и исходящие СМС-сообщения.
- Списки звонков: входящие, исходящие, пропущенные.
- Настройки пользователя.
Цифровые сим-карты (eSIM)
Это виртуальная альтернатива традиционной физической сим-карте, представляющая собой встроенный в устройство чип. Технология позволяет пользоваться сотовой связью без необходимости установки пластиковой карты от оператора.
Стандарт eSIM разрабатывался с 2010 года и был официально выпущен в 2016 году. Первым устройством, поддерживающим эту технологию, стали смарт-часы Samsung Gear S2 Classic 3G. Apple внедрила eSIM в свои устройства в 2017 году, начав с Apple Watch Series 3, а затем в 2018 году выпустила iPhone XS, iPhone XR и iPad третьего поколения с цифровыми сим-картами.
Принцип работы eSIM схож с бесконтактной оплатой через NFC. Хотя физическая карта отсутствует, вся необходимая информация (контакты, тарифы, данные оператора) хранится в памяти гаджета на специальном чипе. Цифровая карта работает так же, как обычная: позволяет совершать звонки, отправлять сообщения, пользоваться мобильным интернетом.
Хотя eSIM может хранить профили нескольких операторов, два оператора не могут работать одновременно — необходимо переключаться между ними.
Преимущества eSIM:
- Удобство использования. Не требуется физическая установка карты или подбор её по размеру для слота телефона.
- Возможность хранения нескольких профилей. Абонент может чередовать тарифные планы разных операторов, переключаясь между номерами.
- Повышенная надёжность и безопасность. Отсутствие физического разъёма для сим-карты снижает риск механических повреждений.
- Экономия места в устройстве. Не требуется слот под карту, что позволяет создавать более компактные телефоны.
- Удалённое управление. Можно удалённо настраивать eSIM, добавлять или удалять операторов без физической замены карты.
Можно ли скопировать сим-карту?
Да, технически это возможно. Процесс называется клонированием сим-карты, что подразумевает копирование уникальных данных, идентифицирующих абонента в сети, на другой физический носитель, обычно на специальную мультисим-карту. Она может содержать данные сразу нескольких сим-карт.
Для клонирования необходимы:
- Оригинальная сим-карта.
- Специальное устройство для считывания и записи сим-карт, а также компьютер с соответствующим программным обеспечением.
- Чистая сим-карта для записи данных.
Процедура выглядит так: с оригинальной сим-карты считываются все необходимые данные (IMSI, ключи шифрования), они записываются на чистую карту и получается копия, которую можно использовать в другом устройстве.
Однако клонирование сим-карт в большинстве стран (в том числе в России) является нарушением закона, если оно осуществляется без согласия владельца или оператора, поскольку может использоваться для мошенничества и получения доступа к личной информации.