Как ограничить пару клавиш, создаваемую keystore, определенным приложением

В файле jar я сгенерировал пару клавиш с помощью хранилища ключей, и с помощью открытого ключа я шифрую строку, а с помощью закрытого ключа я могу расшифровать строку.
Используя этот файл jar, я реализовал apk и его работу хорошо. Так как ключи хранятся в памяти устройства, я хочу убедиться, что никакие другие приложения не могут использовать эти ключи из памяти, так что данные не будут расшифрованы, кроме исходного приложения.

вот мой пример кода:

к генерации пары клавиш:

KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
generator.initialize(spec);
KeyPair keyPair = generator.generateKeyPair();

для получения publickey:

KeyStore.PrivateKeyEntry privateKeyEntry = (KeyStore.PrivateKeyEntry)keyStore.getEntry(alias, null);
RSAPublicKey publicKey = (RSAPublicKey) privateKeyEntry.getCertificate().getPublicKey();

для получения privatekey:

KeyStore.PrivateKeyEntry privateKeyEntry = (KeyStore.PrivateKeyEntry)keyStore.getEntry(alias, null);
Cipher output = Cipher.getInstance("RSA/ECB/PKCS1Padding");
output.init(Cipher.DECRYPT_MODE, privateKeyEntry.getPrivateKey());

Как убедиться, что эти открытые и закрытые ключи должны использоваться только для моего приложения, и ни одно другое приложение не может получить доступ к этим ключам?

1 ответ