이번 포스팅은 Android KeyChain을 사용하여 대칭키를 안전하게 저장하는 방법에 대하여 알아보도록 하겠습니다.
Android KeyChain API를 사용하여 대칭 키를 저장하는 안전한 방법은 다음과 같습니다.
Part 1. Key 생성 및 저장
1. 대칭키를 생성합니다.
2. Android Keystore에서 비대칭키를 생성합니다.
3. 2번에서 생성한 비대칭키의 공개키(Public Key)를 사용하여 대칭키를 암호화합니다.
encrypted_symmetric_key = public_encrypt (symmetric_key)
4. 앱 내에 암호화된 대칭키를 저장합니다.
Part.2 대칭키를 사용
원문을 암복호화할 경우에 사용합니다.
1. Android KeyStore에서 비 대칭키의 개인키(PrivateKey)를 메모리로 로드합니다.
2. 앱 내에 암호화된 대칭키를 디스크에서 로드합니다.
3. 1번에서 로드한 개인키(PrivateKey)로 암호화된 대칭키를 복호화합니다.
symmetric_key = private_decrypt (encrypted_symmetric_key)
4. 복호화된 대칭키로 원문을 암호화 나 복호화를 진행합니다.
Reference
'Development > Security' 카테고리의 다른 글
[Security] X.509 인증서에 대하여 (0) | 2019.09.02 |
---|---|
[Security] 대칭키 암호화 Padding 과 Mode (0) | 2019.08.29 |
[Security] 대칭키 암호화 (0) | 2019.08.29 |
[Security] PKCS 정의 (0) | 2019.08.29 |
[Security] 중요한(민감한) 데이터 Access permission (0) | 2019.08.28 |