Как хранить данные в безопасном элементе Android? Ссылка: эмуляция хост-карты
С момента запуска Kitkat Android заявляет, что для эмуляции хост-карты Secure Element не требуется. Если это не требуется, то как кто-то может хранить любые данные карты в Android?
Существует также служба OffHostApdu, на которую developer.android.com ссылается, если наше приложение для Android имеет доступ к защищенному элементу - может кто-нибудь объяснить
Кроме того, есть ли ограничение на объем памяти данных Secure Element?
1 ответ
С момента запуска Kitkat Android заявляет, что для эмуляции хост-карты Secure Element не требуется. Если это не требуется, то как кто-то может хранить любые данные карты в Android?
С Android Kitkat у вас есть два возможных способа эмуляции карт:
Эмуляция карт на основе хоста. В этой эмуляции вы пишете службу Android, которая эмулирует карту, которая отвечает на команды APDU ISO7816-4. Служба может хранить данные, как и любой другой сервис Android или намерение.
Отключение эмуляции хост-карты. Здесь код эмуляции карты находится внутри защищенного элемента. Как правило, эти эмуляции карт не могут быть реализованы пользователями, но осуществляются вашим производителем телефона, оператором телефонной связи или банком. Доступ для обычных пользователей невозможен, поскольку ключи для установки апплетов на защищенном элементе являются секретными. Защищенный элемент не имеет доступа к хосту для хранения данных, но он может использовать энергонезависимую память, предоставляемую самим защищенным элементом.
Каждая эмуляция карты должна быть зарегистрирована с помощью AID (идентификатор приложения). Эти AID могут быть зарегистрированы либо для эмуляции карт на основе хоста, либо для эмуляции карт вне хоста.
Если считыватель NFC начинает разговаривать с вашим телефоном, он отправит команду SELECT APPLICATION, содержащую AID, с которым он хочет поговорить. Как только чип NFC получит такую команду, он проверит свой внутренний реестр эмуляций зарегистрированных карт и направит все, что зарегистрировано для защищенного элемента, в защищенный элемент. Все остальное общение направляется на хост. Хост проверит собственный реестр доступных эмуляторов внешних карт и запустит / активирует сервисы эмуляции внешних карт, если найдет соответствующий AID.
Кроме того, есть ли ограничение на объем памяти данных Secure Element?
Да, конечно, есть предел. Если бы не было предела, мы могли бы просто забыть о жестких дисках и дорогих хранилищах, купить один защищенный элемент и сохранить на нем все данные о мире:-)
Точный объем свободной памяти на защищенном элементе зависит от того, какой тип защищенного элемента встроен в ваш телефон. Различные марки и модели поставляются с разным объемом памяти. Также память ограничена, если на защищенном элементе предварительно установлены апплеты. Обычно вам не нужно беспокоиться об этом, потому что маловероятно, что вы когда-нибудь получите ключи для установки апплета на защищенный элемент.
В общем, возможно от 64 КБ памяти до нескольких гигабайт.