首页 > 解决方案 > 有没有办法仅在使用 Android API 级别 28 上的 KeyStore 的软件中存储加密密钥?

问题描述

我目前正在比较 Android 上不同的密钥存储解决方案的性能,因此希望仅在软件中强制生成和存储 RSA 密钥对。有没有办法在运行 Android API 级别 28 或更高版本的设备上使用 Android 密钥库?

我尝试使用其他提供商,例如 BC,但此 API 级别不再支持它们。由于硬件性能差异,无法使用旧设备。

我使用以下代码在 TEE 和 .setIsStrongBoxSet(true) 中生成密钥对以使用嵌入式安全元件:

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(
                keyProperties, "AndroidKeyStore");
        keyPairGenerator.initialize(
                new KeyGenParameterSpec.Builder(
                        keyAlias,
                        keyUsage).setDigests(KeyProperties.DIGEST_SHA256,
                        KeyProperties.DIGEST_SHA512)
                        .setEncryptionPaddings(
                                KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1)
                        .setKeySize(2048)
                        .setSignaturePaddings(KeyProperties.SIGNATURE_PADDING_RSA_PKCS1)
                        .setIsStrongBoxBacked(false)
                        .build());
        keyPairTeeRSA = keyPairGenerator.generateKeyPair();

标签: androidencryptionrsakeystore

解决方案


推荐阅读