Дилемма шифрования данных Android - PullRequest
0 голосов
/ 20 августа 2010

Я создаю приложение, которое шифрует данные ключом, который создается каждый раз, когда пользователь входит в приложение. Однако бывают случаи, когда данные будут приниматься через BroadcastReceiver, который требует шифрования, но пользователь не вошел в систему и поэтому ключ шифрования недоступен. Безопасность очень важна, и поэтому использование ключа, хранящегося в коде, для шифрования данных до тех пор, пока пользователь в следующий раз не войдет в систему, не может быть и речи о сохранении его в БД приложений, несмотря на то, что он находится в изолированной программной среде приложений. Я искал в документации по Android и получал подсказки по API для решения этой ситуации, но пока не нашел окончательного решения. Кто-нибудь знает обычное решение этой проблемы? Я ожидаю, что это довольно много всплывает в разработке программного обеспечения.

Ответы [ 2 ]

1 голос
/ 21 августа 2010

Посмотрим ...

Настройка: Создание пары ключей RSA. Зашифруйте закрытый ключ. Храните открытый ключ в незашифрованном виде.

Вещание получено: Создание случайного ключа AES-128 / IV. Зашифруйте ключ с помощью открытого ключа RSA. Зашифруйте зарплату ключом / iv. Сохраните зашифрованный ключ, iv и зашифрованную полезную нагрузку.

Логин: Расшифровать закрытый ключ. Используйте закрытый ключ для расшифровки ключа AES. Используйте ключ AES для расшифровки полезных данных.

И поскольку это была первая идея, которая пришла мне в голову, я не могу ручаться за ее свойства безопасности.

Я также не уверен, какие свойства безопасности вы ищете & mdash; от каких атак вы пытаетесь защищаться? Почему злоумышленник не может просто перехватить трансляцию напрямую? Вас не беспокоит, что это задержится в памяти других процессов?

0 голосов
/ 20 августа 2010

Две идеи:

  • BroadcastReceiver получает зашифрованные данные, выполняет вход по сохраненным учетным данным и получает ключ для расшифровки данных.
  • Вы BR просто храните зашифрованные данныеи информировать пользователя, чтобы пользователь вошел в систему, чтобы получить расшифрованные данные.

Я не знаю, что делает ваше приложение, поэтому просто предположите, что может быть возможным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...