2012-06-19 5 views
7

Я хочу создать приложение для кошелька google как приложение в android. Говорят, что «все платежные ведомости хранятся в чипе с именем« Secure Element », содержащемся в телефоне». Как я могу получить доступ к этому защищенному элементу и сохранить в нем свои учетные данные. Моя цель - использовать мой телефон (Nexus) на контрольном счетчике вместо моей карты.Как хранить данные в Secure Element в android

Так что я хочу хранить некоторые данные в чипе Secure Element и получать доступ к данным, когда я нажимаю на NFC-ридер.

Заранее спасибо.

+0

Эти два статьи в блоге объясняют, как вы можете использовать элемент Secure. http://randomoracle.wordpress.com/2013/01/09/using-the-secure-element-on-and-android-device-13/ и http://nelenkov.blogspot.ca/2012/08/accessing -embedded-secure-element-in.html Также проверьте этот пост StackOverFlow: http://stackoverflow.com/questions/10494726/secure-element-access-control-on-ics-4-0-4 –

ответ

6

Если вы проверить Google Wallet FAQ вы можете найти следующее:

  • Ваши платежные учетные данные хранятся в микросхеме называется Secure Element, содержащийся в телефоне. Защищенный элемент изолирован от основной операционной системы и оборудования вашего телефона. Только авторизированные программы, такие как Google Кошелек, могут получить доступ к Защищенному элементу, чтобы инициировать транзакцию.

  • сам Даже Google Wallet имеет очень ограниченный доступ к защищенному элементу, и не может считывать или записывать данные из памяти. Существует несколько уровней защиты данных, хранящихся в защищенном элементе, и он защищен на аппаратном уровне от отслеживания или подделки.

Поэтому в основном ... у вас нет доступа к этому SecureElement. Возможно, поговорить с производителями телефонов, чтобы дать вам доступ/способы доступа к SecureElement, позволит вам сделать это ... но я думаю, что это было бы не в вашем объеме.

EDIT: Альтернативное решение может хранить ваши данные в базе данных SQLite, а также использовать encryption на этой базе данных, таких как AES ... или что вы предпочитаете. Вам все равно придется обратить внимание на то, как вы держите/распределяете encryption/decryption keys.

Если вас беспокоит случай, когда кто-то теряет свой телефон, а «основатель» пытается украсть данные, вы можете также реализовать защиту паролем на вашем Application, и если пароль вводится неверно 3 раза подряд, базу данных SQLite, где хранятся данные.

+0

Спасибо за ваш быстрое воспроизведение. Можете ли вы предложить какой-либо альтернативный метод для достижения того, что я хочу, то есть сохранить учетные данные карты в безопасном месте? –

+2

Если вы храните учетные данные в sqlite db, рано или поздно он будет взломан. Разумеется, телефон должен быть украден и укоренен первым. Но опытным хакерам не составит труда вычислить ключ шифрования, если он хранится в самом приложении.Рассмотрите возможность хранения данных учетных данных на сервере. – azgolfer

0

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

+1

Ну, защищенные элементы обычно подключаются к прикладному процессору (это тот, который управляет операционной системой Android). Это либо соединение через модем базового диапазона (для защищенных элементов на основе UICC), подключение через IO файловой системы для защищенных элементов на основе microSD, либо соединение через контроллер NFC для встроенных защищенных элементов. Btw. с Android 4+ большинство устройств Android NFC даже предоставляют API (частично недокументированные) для доступа к защищенным элементам. Однако, чтобы хранить приложения и данные в защищенном элементе, вам нужны ключи, которые его защищают. –

Смежные вопросы