Android-устройство / идентификатор учетной записи для начального уровня шифрования - PullRequest
6 голосов
/ 24 июня 2011

Это могут быть загруженные вопросы, которые задавались в нескольких формах ранее, но я не видел, чтобы они задавались таким образом, и мне хотелось бы получить некоторые мнения о том, как поступить.

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

Я думал, что если бы я мог найти уникальный идентификатор, он мог бы использоваться в качестве семени. Есть несколько странных требований, делающих это трудным.

  1. Идентификатор ДОЛЖЕН быть уникальным и одинаковым для данной комбинации оборудования / пользователя при любых обстоятельствах.
  2. Он не может быть просто привязан к устройству или пользователю, он должен быть комбинацией обоих.
  3. Он должен быть доступен, Неважно, что; О MAC-адресах Wi-Fi и Bluetooth не может быть и речи, так как они недоступны на некоторых устройствах, когда они выключены.
  4. Из того, что я прочитал, идентификаторы TelephonyManager (SIM-карта и т. Д.) Доступны не на всех устройствах.
  5. Из того, что я прочитал, ANDROID_ID не будет присутствовать при всех обстоятельствах.
  6. Приложение будет выпущено на нескольких рынках (например, Amazon Appstore), поэтому учетная запись Google не обязательно будет присутствовать.
  7. Выполнение заводской очистки НЕ должно влиять на все, что использовалось для создания этого идентификатора (таким образом, пользователь может выполнять резервное копирование, стирание и восстановление без перерыва).
  8. Выполнение OTA-обновления НЕ должно влиять на что-либо, использованное для генерации этого идентификатора (см. Причину выше).
  9. Это нормально, если они должны повторно пройти проверку подлинности после удаления / переустановки.

Я понимаю, что это значение, очевидно, может быть получено другими приложениями, поэтому я намереваюсь его хешировать, далее добавляя UID приложений, а также <ваше предложение здесь>.

Если кто-то считает, что требования нереалистичны, я бы тоже хотел это услышать.

Особенно в свете недавних хакерских марафонов, я хочу хотя бы сказать: «Если кто-то может скомпрометировать это, ничто на вашем телефоне не безопасно».

1 Ответ

0 голосов
/ 24 июня 2011

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

...