Совместимость алгоритмов шифрования между Android Key Store и Apple Enclave - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть сценарий, описанный ниже.

Справочная информация --------------

У меня есть 3 типа устройств / пользователи в моей экосистеме. Один тип устройства - Android, другой - Apple iOS, а третий тип устройства [пользователь] - облачное приложение.

Сценарий ------------ -

Итак, мой пример использования здесь заключается в том, что либо из Android, либо iOS может быть создатель некоторого «ключа данных». И я использую Android Key Store на Android для шифрования / дешифрования, в то время как я использую Secure Enclave на iOS для шифрования / дешифрования. Ключ publi c будет выбран из некоторого общего хранилища данных.

Сценарий 1: iOS устройство извлекает ключ publi c устройства android device [user] из центральное хранилище данных и шифрует ключ данных с помощью этого открытого ключа c, используя алгоритм Enclave, и помещает зашифрованный ключ данных в центральное хранилище данных. Теперь Android извлечет этот зашифрованный ключ данных и попытается расшифровать его, используя свой закрытый ключ в AndroidKeyStore.

Теперь здесь проблема в том, как выбрать такую ​​же спецификацию алгоритма salt / padding / MGF1 et c. для того, чтобы успешно расшифровать ключ данных? Я хочу иметь такую ​​совместимость?

Я могу управлять облачным приложением [пользователь], изменяя параметры java, так как это приложение было написано в java.

Сценарий 2: Второй сценарий аналогичен сценарию 1 выше, но в этом сценарии Android шифрует, а iOS расшифровывает.

Мой подход к этому моменту:

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

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

Может кто-нибудь, пожалуйста, подскажите мне об этом.

...