Открыть сервис

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 является возможность загружать новые приложения на карту после её выпуска. Это осуществляется с помощью защищённого протокола, использующего цифровые сертификаты и шифрование. Процесс включает:

  1. Подписание приложения секретным ключом эмитента;
  2. Шифрование приложения для передачи по незащищённому каналу;
  3. Проверка подписи и расшифровка на карте с помощью встроенного криптографического модуля.

Криптографическая подсистема

MULTOS включает встроенную поддержку криптографических алгоритмов, сертифицированных по стандартам FIPS 140-2 и Common Criteria (EAL4+ и выше). Поддерживаются:

Применение

Финансовый сектор

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 →