Подтвердить что ты не робот

Как хранить данные приложения Android на SIM-карте, используя NFC?

Я разрабатываю приложение NFC. Мое приложение будет обрабатывать секретную информацию, и я хочу сохранить эти данные на SIM-карте. Возможно ли, и если это возможно, как я могу это сделать? Моя версия телефона Android - Android 2.3.5.

4b9b3361

Ответ 1

tl; dr - в настоящее время это невозможно без огромных усилий.

Вы хотите использовать SIM-карту в качестве режима Secure Element в режиме эмуляции карты - это подход, одобренный Ассоциацией GSM. Чтобы получить доступ к защищенному элементу (на SIM-карте или интегрированном чипе), вам необходимо использовать Trusted Service Manager (TSM). В вашем случае TSM отправит данные на вашу SIM-карту, используя двоичные SMS-сообщения. Проблема в том, что для мобильных телефонов в NFC очень рано. Чтение/запись тегов достаточно просто, но доступ к защищенному элементу - нет. Есть очень ограниченные испытания NFC SmartPhones с использованием SIM-карты в качестве защищенного элемента для эмуляции карт, и все испытания в настоящее время ограничены конкретным оператором мобильной сети (MNO) в конкретных странах.

Если вы хотите это сделать, вам нужно прочитать спецификации, написать TSM, а затем получить необходимые контракты с MNO, чтобы им разрешили использовать их SIMs.

Удачи!

Ответ 2

Как говорит Кевин, это невозможно без особых усилий.

Одним из способов сделать это может быть использование TSM. Но это неэффективно для того, чего вы пытаетесь достичь, и для этого требуется "онлайн". Вы отправляете некоторую информацию на сервер TSM, а затем отправляет некоторые данные на вашу SIM-карту.

== Phone == |                    | == TSM ==
Application | ---- Network ----> | Server
SIM card    | <----------------- |

И TSM недостаточно. Вам также понадобятся учетные данные SIM-карты. Без этих учетных данных вы не сможете обновить данные SIM-карты из TSM. Эти полномочия контролируются вашим оператором мобильной связи. Наконец, TSM не является обязательным вообще.

С помощью этой выше схемы мы видим более очевидный способ сделать это, установив ссылку: Приложение → Симкард. На этот раз он работает, даже если у вас нет сети. Но Android задуман в некотором смысле, прямой связи между приложениями и SIM-картой нет. Существует некоторое решение, если вам интересно, он хорошо объясняет в этой статье.

Вот некоторые требования:

  • Возможно, вам потребуется исправить слой RIL
  • Вам нужно исправить исходный код Android
  • Вам нужно иметь учетные данные вашей SIM-карты (UICC) (вы можете купить SIM-карту разработчика, но она не сможет подключить сеть, поскольку она не содержит учетных данных вашего оператора).
  • Вам нужно знать, как разработать программное обеспечение для SIM-карты (обычно Javacard).
  • ...

Самый простой способ безопасного хранения секретных данных без большой головной боли - использовать специальную SD-карту в качестве защищенного элемента. Нет необходимости исправлять что-либо, не нужно root, нет необходимости иметь учетные данные SIM-карты. Возможно, вам все равно придется разработать собственное программное обеспечение для SD-карт, чтобы разместить там свои данные.

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

Ответ 3

У меня есть аналогичное требование. Мой подход заключается в том, чтобы не использовать SIM оператора GSM. Но я работаю над поиском способа заставить GSM-оператора использовать мою SIM-карту. Тогда у меня будут свои собственные механизмы доступа для хранения моих защищенных элементов на карте.

Ясин Йилмаз