2013-08-30 2 views
0

Итак, я сейчас планирую автоматические сборки для моего приложения для Android. Это означает, что мне нужно будет поместить любую конфигурационную информацию, такую ​​как ключи API и конечные точки, в файл .properties. Проблема в том, что я не могу просто вставлять ключи API в этот файл.файл свойств для хранения конфиденциальной конфигурации

Я знаю, что общая рекомендация - попытаться скрыть конфиденциальные данные внутри вашего приложения, а затем сгенерировать его во время выполнения.

Мой план - зашифровать чувствительные данные .properties и сгенерировать его ключ доступа в коде.

Я мог хранить ключи шифрования в хранилище ключей Java, а затем выводить его пароль в коде во время выполнения.

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

Что вы, ребята, думаете об этом? Благодарю.

ответ

0

Ваш план звучит хорошо для меня, кроме хранения ключей внутри хранилища ключей. В принципе, для всего системного и стороннего приложений на устройстве создан только один экземпляр хранилища ключей. После Android 4.0 хранилище ключей интегрировано с экраном разблокировки, и оно разблокируется, когда пользователь разблокирует устройство. Итак, если вы храните ключ в качестве пары ключ/значение внутри хранилища ключей, тогда ваш ключ будет готов, прежде чем вы откроете приложение. Или, если вы храните его в качестве ключа/зашифрованной (значения) пары, тогда вам нужно извлечь ключ из пароля во время выполнения и расшифровать зашифрованное значение. Но у вас может быть два пароля для разблокировки экрана телефона и разблокировки ключа. Вероятно, я использую только один пароль, т. Е. Пароль разблокировки экрана. Поскольку хранилище ключей сопоставляется с идентификатором процесса, он доступен только из вашего приложения. Однако, если вы подумываете обрабатывать многопользовательские звонки на один телефон, то последний подход может быть уместным.

+0

Привет, я должен поддерживать Android 2.x, поэтому я считаю, что родное хранилище ключей не подходит, я прав? – conor

+0

Привет, да, это правильно. Извините за задержку ответа. Вы разобрались? – samson

+0

Привет, спасибо за ответ. Не отсортировано. – conor

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