Как хранить данные приложения Android на сим-карте с помощью NFC? - PullRequest
12 голосов
/ 20 февраля 2012

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

Ответы [ 3 ]

15 голосов
/ 20 февраля 2012

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

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

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

Удачи!

3 голосов
/ 15 марта 2013

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

Один из способов сделать это - использовать 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-карты в качестве защищенного элемента. Не нужно ничего исправлять,не нужно иметь root-доступ, не нужно иметь учетные данные SIM-карты.Возможно, вам все равно придется разработать свое собственное «программное обеспечение» для SD-карт для размещения ваших данных.

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

1 голос
/ 20 июня 2012

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

Ясин Йилмаз

...