В повседневной жизни мы все используем разные типы смарт-карт. Наиболее яркими примерами смарт-карт являются: SIM-карты, кредитные карты, электронные документы и т. д. По сути, смарт-карта представляет собой криптографически оптимизированный микроконтроллер с повышенным уровнем безопасности.
Что это значит? В отличие от стандартного микроконтроллера доступ к памяти смарт-карты строго контролируется процессором.
Таким образом, чтение данных с карты и запись их на нее регулируются программным обеспечением самой карты.
Более того, производители чипов принимают меры по предотвращению несанкционированного доступа (копирование всей памяти, перепрограммирование) к карте на электронном и физическом уровне.
Использование смарт-карты
Смарт-карта используется в тех случаях, когда необходимо подтвердить подлинность ее владельца.Примером этого является SIM-карта.
Его основная роль – доказать оператору, что подключенный к сети телефон принадлежит конкретному абоненту.
После такой проверки оператор сможет направить сообщения с и на номер абонента на точный номер телефона, а также зарегистрировать платежный баланс абонента.
С технической точки зрения карта оснащена следующими функциями:
- Сохранение идентификационных данных владельца карты (чаще всего идентификационных номеров, а не контактных данных владельца).
- Храните и проверяйте PIN-коды для двухфакторной аутентификации.
- Генерация и хранение криптографических ключей и сертификатов.
Обычно эти ключи используются исключительно для выполнения других функций внутри карты и не могут быть прочитаны.
- Генерация цифровой подписи.
- Аутентификация по схеме «Вызов-Ответ».
- Другие специфические функции, присущие тому или иному типу карт.
Операции со смарт-картой
Карты не работают самостоятельно, а только в сочетании с так называемым терминалом (телефоном, банкоматом, другим проводным или беспроводным электронным считывателем).Считыватель подает на карту электричество и отправляет команды.
Карта никогда не инициирует связь, а всегда отвечает на любые команды, отправленные ей терминалом.
Если ответа не будет, карта будет считаться «MUTED», т.е.
неработающей.
В такой ситуации терминал либо вообще не реагирует на ошибку, либо пытается восстановить связь с картой после RESET. На логическом уровне связь между терминалом и картой происходит в формате APDU, описанном стандартом ISO7816-4. Что касается физического уровня, то упомянутое общение регламентируется не одним конкретным стандартом, а многими из них.
Например, существуют стандарты контактной (ISO7816-3 T=0 и T=1, USB и др.
) и бесконтактной (ISO14443, NFC/SWP) связи.
Хотелось бы подробнее описать связь между терминалом и картой.
Это происходит следующим образом:
- Инициализация физического канала (холодный сброс, ATR и т. д.)
- Выберите нужную программу с помощью команды ВЫБОР.
Этот шаг не является обязательным.
Если его не выполнить, то связь будет осуществляться с программой, выбранной по умолчанию при инициализации канала.
- Дальнейшее общение для реализации конкретных задач
Кроме того, терминал имеет возможность параллельно общаться с одной или несколькими программами, используя так называемые логические каналы.
Количество поддерживаемых логических каналов зависит от конкретной карты.
Стандарт ISO7816-4 позволяет карте поддерживать максимум 20 каналов.
Однако на практике большинство карт поддерживают только 4 канала.
Нативные и Javacards
Некоторые смарт-карты поступают в производство с одной или несколькими программами, предназначенными для выполнения определенных функций (SIM и USIM, EMV и т. д.), уже предустановленными на них и не подлежащими изменению, дополнению или удалению.Такие карты, получившие название Native, привлекательны низкой ценой (при оптовой закупке) и относительной простотой кода, используемого для их программирования, что снижает вероятность возникновения проблем с безопасностью карт. Однако наиболее интересными, на мой взгляд, являются карты на базе JavaCard и Global Platform, в которых ОС карты является платформой, на которую можно устанавливать различные приложения.
Приложения, написанные для JavaCard с использованием стандартных API, можно будет загружать на все карты, поддерживающие совместимую версию платформы, независимо от производителя карты.
Что касается Глобальной платформы, то это набор спецификаций, регулирующих безопасное администрирование карты, включая установку, блокировку или удаление определенных приложений, а также управление жизненным циклом (Life Cycle) карты.
Небольшое замечание по поводу администрирования карты.
Пользователь карты, как правило, не является владельцем или администратором карты.
Например, администратором SIM-карты является оператор мобильной связи, а не абонент. Только оператор имеет право устанавливать или удалять приложения на/с карты.
Однако также возможно приобрести «пустые» карты для разработки собственных приложений.
Таким образом, в этой части моей статьи я затронул основы работы смарт-карты как на внешнем, так и на внутреннем уровне, а также дал краткое определение понятия смарт-карты.
Следующие части статьи я хотел бы посвятить:
- Краткое описание формата APDU по стандарту ISO7816-4.
- описание формата BER-TLV
- понятие и суть JavaCard
- различные аспекты Глобальной платформы
Ресурсы
Смарт-карта, Википедия ИСО7816-4Остальная часть статьи
Часть 2. АПДУ Часть 3. ТЛВ Теги: #Компьютерное оборудование #Сотовая связь #смарткарты #смарт-карта #смарт-карта-
Постановка Задачи Обратной Совместимости
19 Oct, 24 -
Скупые Строки Новостей
19 Oct, 24