[android] App Bundle의 키 저장 방법
안드로이드 앱을 개발할 때 앱 Bundle에 포함된 키나 비밀번호를 안전하게 저장하는 것은 매우 중요합니다. 다양한 방법으로 이를 수행할 수 있지만, 가장 일반적인 방법 중 하나는 Android Keystore 시스템을 사용하는 것입니다. Android Keystore 시스템은 키를 안전하게 저장하고 관리할 수 있는 우수한 도구입니다.
안드로이드 Keystore 시스템 이해
Android Keystore 시스템은 암호화 키 및 값을 안전하게 저장하고 관리할 수 있는 시스템입니다. 이 시스템은 플랫폼 보안 모듈에 안전하게 키를 보관하므로 외부에서 액세스할 수 없습니다.
App Bundle에서 Keystore 사용하기
앱 Bundle에서 Keystore 시스템을 사용하는 방법은 다음과 같습니다.
1. KeyPair 생성
앱에 사용할 키 쌍을 생성하고 키 저장소에 추가합니다.
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(
KeyProperties.KEY_ALGORITHM_EC, "AndroidKeyStore");
keyPairGenerator.initialize(
new KeyGenParameterSpec.Builder(
"key1",
KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
.setDigests(KeyProperties.DIGEST_SHA256,
KeyProperties.DIGEST_SHA512)
.setAlgorithmParameterSpec(new ECGenParameterSpec("secp256r1"))
.setUserAuthenticationRequired(true)
.build());
KeyPair keyPair = keyPairGenerator.generateKeyPair();
2. 키 관리
생성한 키를 안전하게 보관하고 필요할 때 사용할 수 있도록 적절히 관리합니다.
3. 키 사용
필요한 경우 Keystore에서 키를 가져와 사용합니다.
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
PrivateKey key = (PrivateKey) keyStore.getKey("key1", null);
결론
안전하게 키를 보관하고 사용하는 것은 앱 보안을 강화하는 중요한 단계입니다. Android Keystore 시스템을 사용하여 앱 Bundle에 포함된 중요한 키를 안전하게 보관하고 사용하는 것이 안전한 방법입니다.
참고문헌:
- https://developer.android.com/training/articles/keystore
- https://developer.android.com/guide/topics/security/keystore