Модуль безопасного доступа (SAM) - это безопасное место для хранения конфиденциального ключевого материала, используемого для доступа к контенту / приложениям на смарт-картах. Обычно SAM - это сама смарт-карта. Идея, лежащая в основе использования SAM, заключается в том, что вы храните ключи для доступа к какому-либо приложению смарт-карты и т. Д., И ключи больше никогда не могут покинуть SAM (то есть злоумышленник не сможет извлечь из него исходный материал ключа). Вместо этого, всякий раз, когда приложение для чтения обращается к приложению смарт-карты, оно фактически позволяет SAM взаимодействовать со смарт-картой. Это можно сделать, используя SAM в качестве прокси-сервера между приложением считывателя и приложением смарт-карты, чтобы незашифрованная / неаутентифицированная связь на стороне читателя была преобразована в зашифрованную / аутентифицированную связь, которая затем перенаправлялась в приложение смарт-карты:
unencrypted/ encrypted/
unauthenticated authenticated/
READER APPLICATION <-----------------> SAM <=================> SMARTCARD APPLICATION
Обратите внимание, что на самом деле фактические APDU, вероятно, будут маршрутизироваться немного по-другому:
+--------------------+ +--------+ +-----+
| READER APPLICATION | <----------------> | | <----------------> | |
+--------------------+ | SAM | | |
| READER | | SAM |
+-------------+ | | | |
| | <================> | | <================> | |
| PROXY | +--------+ +-----+
| APPLICATION |
| | +------------------+ +-----------------------+
| | <===========> | SMARTCARD READER | <===========> | SMARTCARD APPLICATION |
+-------------+ +------------------+ +-----------------------+
В качестве альтернативы SAM можно использовать только для вычисления эфемерных вызовов, ответов, сеансовых ключей и т. Д. Для аутентификации и шифрования, которые затем интегрируются в реальный протокол связи приложением для чтения.
При использовании подхода без SAM ключевой материал для доступа к приложению смарт-карты должен быть доступен для самого приложения считывателя. Поскольку приложение обычно запускается на платформе, неспособной обеспечить достаточную защиту материала секретного ключа, это может привести к угрозе безопасности.