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

StackOverflow https://stackoverflow.com/questions/9361764

Вопрос

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

Это было полезно?

Решение

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

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

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

Удачи!

Другие советы

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

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

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

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

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

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

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

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

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

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

Ясин Йилмаз

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top