Нативное защищенное хранилище ключей React: как проверить поддержку React-Native StrongBox и хранить (аппаратно поддержиAndroid

Форум для тех, кто программирует под Android
Anonymous
Нативное защищенное хранилище ключей React: как проверить поддержку React-Native StrongBox и хранить (аппаратно поддержи

Сообщение Anonymous »

Я создаю приложение React Native, и мне нужно безопасно хранить конфиденциальные данные на Android.
В iOS я использую Keychain для аппаратного хранения. На Android я хочу использовать StrongBox, который является наиболее безопасным вариантом аппаратного хранилища ключей.
Однако я не нашел кода, с помощью которого я мог бы добавить это для React Native в своем приложении, мне нужно:
  • Определить, поддерживается ли StrongBox на устройстве
  • Сгенерируйте и сохраните ключ с помощью StrongBox
  • Используйте это безопасно из React Native
У меня мало опыта работы с Android.
Я попробовал использовать собственный код через мост, следуя устаревшей технологии подход:

Код: Выделить всё

// Check StrongBox support
fun isStrongBoxSupported(context: Context): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
context.packageManager.hasSystemFeature(PackageManager.FEATURE_STRONGBOX_KEYSTORE)
} else false
}

// Generate StrongBox-backed key
@TargetApi(Build.VERSION_CODES.P)
fun generateStrongBoxKey(alias: String) {
val keyPairGenerator = KeyPairGenerator.getInstance(
KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore"
)
val parameterSpec = KeyGenParameterSpec.Builder(
alias,
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
)
.setDigests(KeyProperties.DIGEST_SHA256)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1)
.setIsStrongBoxBacked(true)
.build()

keyPairGenerator.initialize(parameterSpec)
keyPairGenerator.generateKeyPair()
}
Я получаю ложное сообщение каждый раз, когда проверяю, есть ли у устройства надежная поддержка коробки или нет. Что-то я что-то упускаю.


Подробнее здесь: https://stackoverflow.com/questions/797 ... ort-and-st

Вернуться в «Android»