Связь Secure Element с PCD/считывателем

Я пытаюсь лучше понять, как Secure Element на телефоне Android взаимодействует со считывателем в режиме эмуляции карты. Любое понимание следующих вопросов было бы полезно.

Теоретически (исходя из конструкции железа) обязательно ли проходить SE при общении с ридером? Если я не заинтересован в отправке личных данных, можно ли «передать» напрямую считывателю? Если да, то как это будет работать?

Если вам нужно пройти SE, концептуально, как это работает? Например, скажем, читатель отправляет команду SELECT AID... предположительно, хост Android запрашивает SE, чтобы получить команду SELECT AID. Если хост хочет ответить на команду SELECT AID (предположим, что это динамические ответы), отправляет ли хост ответ ЧЕРЕЗ SE? Я много читал о запросе SE для получения информации (например, ISO 7816-4), но еще не понял этот последний момент. Как вы отправляете ответы читателю?


person nublet    schedule 22.06.2012    source источник


Ответы (2)


Это для чипов NFC текущего поколения, следующее поколение немного более гибкое:

С точки зрения чипов NFC, чип имеет два разных хоста: Secure Element и хост Android.

Чип NFC также знает, какой хост открыл какой режим работы на чипе NFC (например, одноранговые, режимы чтения, режимы эмуляции карты и т. д.).

Запросы и события, относящиеся к одному режиму работы, будут отправляться только на хост, открывший режим работы.

Для защищенных элементов наиболее обычная конфигурация «мобильного платежа» заключается в том, что SE открывает эмуляцию карты в чипе NFC, а хосты Android открывают режимы чтения и одноранговые соединения.

Если чип NFC обнаружит внешний считыватель, все сообщения будут отправлены только на SE. Хост Android не увидит никаких данных, которыми обмениваются SE и внешнее устройство чтения. Однако хост Android может увидеть, что на антенне было обнаружено внешнее радиочастотное поле, поэтому Android знает, что что-то происходит.

Программное обеспечение, работающее на SE, обычно состоит из небольшой ОС, которая управляет несколькими приложениями, анализирует команду SELECT AID и перенаправляет запросы любому приложению, соответствующему AID.

Приложения, работающие на SE, могут позже принять решение об отправке данных на хост Android. Эти события называются событиями транзакций и представляют собой одностороннюю связь. Хост Android не может отвечать на события транзакции, отправленные из SE.

Хост Android также не сможет отправлять данные на SE через чип NFC. Если он хочет напрямую общаться с SE, например. чтобы установить новое приложение, оно должно использовать другое физическое соединение, обычно контакты SIM-карты или контакты micro-sd.

Ради полноты: в чип NFC также встроены элементы безопасности. У них нет физического соединения, а чип NFC обеспечивает двунаправленную связь между хостом Android и хостом SE.

person Nils Pipenbrinck    schedule 22.06.2012

Теоретически не обязательно "проходить СЭ" при общении с ридером. Если чип NFC может генерировать радиочастотный сигнал карты (некоторые чипы NFC это делают), телефон может отправлять ответы непосредственно на считывающее устройство. Конечно, вам нужен API, чтобы получить доступ к этой функции из вашего приложения. Android ICS не имеет такого API (в отличие от BlackBerry OS).

person NFC guy    schedule 22.06.2012