MULTOS
MULTOS — это многоплатформенная операционная система с открытой архитектурой, предназначенная для смарт-карт и встраиваемых устройств с ограниченными ресурсами. Разработана в середине 1990-х годов компанией MAOSCO (Multos International), консорциумом, в который входили такие организации, как Mastercard, American Express, Mondex International и другие. MULTOS позиционируется как безопасная, сертифицированная по высоким стандартам платформа для финансовых приложений, систем аутентификации, электронных паспортов и корпоративных идентификационных систем.
История
Предпосылки и создание
В начале 1990-х годов рынок смарт-карт был фрагментирован: каждый производитель чипов и карт использовал собственную, закрытую операционную систему, что затрудняло межплатформенную совместимость и разработку приложений. В 1994 году компания Mondex International, занимавшаяся электронными деньгами, инициировала создание открытой платформы, которая позволила бы запускать приложения на картах разных производителей. В 1995 году был основан консорциум MAOSCO, куда вошли Mondex, Mastercard, American Express, а позднее — Visa (до определённого момента) и другие финансовые организации. Первая версия MULTOS была выпущена в 1996 году.
Развитие и стандартизация
В 1997 году MULTOS была официально представлена как открытая операционная система для смарт-карт. В отличие от Java Card (альтернативной платформы от Sun Microsystems), MULTOS с самого начала делала акцент на криптографической безопасности и возможности загрузки приложений на карту после её выпуска (пост-эмиссионная загрузка). В 1999 году была опубликована спецификация MULTOS 4.0, которая ввела поддержку виртуальной машины (MVM — MULTOS Virtual Machine) и формата исполняемых файлов MEL (MULTOS Executable Language). В 2000-х годах MULTOS активно использовалась в платёжных системах (Mastercard M/Chip, American Express Blue), а также в государственных проектах по выпуску электронных паспортов (например, в Малайзии и некоторых странах Европы).
Современное состояние
К началу 2020-х годов MULTOS сохраняет нишевое, но стабильное положение на рынке. Она используется в высокозащищённых финансовых приложениях, в корпоративных системах доступа (например, в картах сотрудников крупных банков) и в государственных идентификационных документах. Консорциум MAOSCO продолжает поддерживать спецификацию, выпуская обновления (например, MULTOS 5.0 и 6.0 с улучшенной поддержкой криптографии). В 2023 году MAOSCO объявил о партнёрстве с компанией NXP Semiconductors для интеграции MULTOS в чипы нового поколения.
Архитектура и принципы работы
Виртуальная машина MULTOS (MVM)
MULTOS использует виртуальную машину (MVM), которая изолирует приложения друг от друга и от аппаратного обеспечения. MVM интерпретирует байт-код MEL (MULTOS Executable Language) — специально разработанный язык низкого уровня, оптимизированный для ограниченных ресурсов смарт-карт (типичный объём ПЗУ — 32–256 КБ, ОЗУ — 2–8 КБ). Виртуальная машина обеспечивает:
- Изоляцию приложений (каждое приложение работает в своём «песочнице»);
- Безопасное управление памятью (отсутствие прямого доступа к адресам);
- Криптографические примитивы (шифрование, хэширование, электронная подпись).
Формат приложений (MEL)
Приложения для MULTOS компилируются в байт-код MEL. Это компактный, платформонезависимый код, который может выполняться на любой реализации MVM. MEL поддерживает:
- Операции с целыми числами (до 32 бит);
- Управление памятью (стек, куча);
- Вызовы встроенных функций (API) для работы с криптографией, файловой системой карты, вводом-выводом.
Пост-эмиссионная загрузка (Post-Issuance Loading)
Одной из ключевых особенностей MULTOS является возможность загружать новые приложения на карту после её выпуска. Это осуществляется с помощью защищённого протокола, использующего цифровые сертификаты и шифрование. Процесс включает:
- Подписание приложения секретным ключом эмитента;
- Шифрование приложения для передачи по незащищённому каналу;
- Проверка подписи и расшифровка на карте с помощью встроенного криптографического модуля.
Криптографическая подсистема
MULTOS включает встроенную поддержку криптографических алгоритмов, сертифицированных по стандартам FIPS 140-2 и Common Criteria (EAL4+ и выше). Поддерживаются:
- Симметричное шифрование: DES, 3DES, AES (длины ключей 128, 192, 256 бит);
- Асимметричное шифрование: RSA (до 4096 бит), ECC (эллиптические кривые, включая ECDSA, ECDH);
- Хэш-функции: SHA-1, SHA-256, SHA-384, SHA-512;
- Генерация случайных чисел (аппаратный ГСЧ).
Применение
Финансовый сектор
MULTOS широко применяется в платёжных картах (дебетовых, кредитных, предоплаченных). Она поддерживает стандарты EMV (Europay, Mastercard, Visa) для чиповых карт, включая:
- Офлайн-аутентификацию (SDA, DDA, CDA);
- Управление рисками (лимиты, счётчики);
- Поддержку бесконтактных платежей (PayPass, payWave).
Примеры: карты Mastercard M/Chip, American Express Blue (выпускались в 2000-х годах), а также корпоративные карты для крупных банков (HSBC, Citibank).
Идентификация и доступ
MULTOS используется в смарт-картах для корпоративных систем доступа (например, в картах сотрудников правительственных учреждений Великобритании — Government Gateway). Также применяется в электронных паспортах (ePassport) и удостоверениях личности (eID) в ряде стран (Малайзия, ОАЭ, Сингапур). В таких приложениях MULTOS обеспечивает:
- Хранение биометрических данных (отпечатки пальцев, фотография);
- Криптографическую защиту данных;
- Протоколы аутентификации (BAC, EAC).
Транспортные системы
MULTOS используется в бесконтактных транспортных картах (например, в системе Oyster в Лондоне — на ранних этапах, до перехода на другие платформы). Она поддерживает протоколы ISO/IEC 14443 для бесконтактного обмена данными.
Сравнение с альтернативами
MULTOS vs Java Card
Java Card — наиболее распространённая платформа для смарт-карт. Основные отличия MULTOS:
- Безопасность: MULTOS сертифицирована по более высоким уровням (EAL6+), чем типичная Java Card (EAL4+);
- Пост-эмиссионная загрузка: MULTOS поддерживает загрузку приложений с более строгой криптографической защитой;
- Производительность: MVM MULTOS обычно быстрее интерпретирует байт-код, чем Java Card VM;
- Экосистема: Java Card имеет больше разработчиков и библиотек, MULTOS — более закрытая, но более безопасная.
MULTOS vs GlobalPlatform
GlobalPlatform — это стандарт для управления приложениями на смарт-картах, который может работать поверх MULTOS или Java Card. MULTOS интегрирует функции управления приложениями непосредственно в ОС, тогда как GlobalPlatform является дополнительным уровнем.
Критика и ограничения
Сложность разработки
Разработка приложений для MULTOS требует знания низкоуровневого байт-кода MEL и специфических API. Инструментарий (компиляторы, эмуляторы) менее доступен, чем для Java Card, что ограничивает круг разработчиков.
Ограниченная поддержка
Не все производители чипов поддерживают MULTOS. Основные производители — NXP Semiconductors, Infineon, Samsung — выпускают чипы с MULTOS, но доля рынка MULTOS оценивается в 5–10% от общего рынка смарт-карт (по данным на 2022 год).
Лицензирование
Для использования MULTOS необходимо получить лицензию от консорциума MAOSCO, что увеличивает стоимость внедрения по сравнению с Java Card (которая является открытой спецификацией).
Интересные факты
- MULTOS была первой операционной системой для смарт-карт, получившей сертификацию Common Criteria EAL6+ (в 2004 году).
- В 1999 году карты на MULTOS использовались в эксперименте по электронным деньгам Mondex в Великобритании, который, однако, не получил широкого распространения.
- Код виртуальной машины MULTOS написан на языке C и ассемблере, оптимизирован для 8-битных и 16-битных микроконтроллеров.
Источники
- MAOSCO Ltd. «MULTOS Specification Version 6.0» (2020)
- Rankl, W., Effing, W. «Smart Card Handbook» (4th Edition, 2010)
- ISO/IEC 7816-4:2020 «Identification cards — Integrated circuit cards — Part 4: Organization, security and commands for interchange»
- NXP Semiconductors. «MULTOS on SmartMX2» (2021)
- Common Criteria Portal. «MULTOS Security Target» (2004)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →