[iOS] AES와 RSA Keychain 저장여부 정리
2025. 2. 24. 21:25ㆍiOS
반응형
1. AES 키 (대칭키)
- 통신용 AES키 (세션키)
- 저장X (임시키) : 보통 요청마다 생성 후 바로 폐기합니다.
- 단, 요청마다 새 키를 생성해 RSA로 암호화해 서버에 전달 후, 서버에서만 복호화합니다.
- 로컬 데이터 암호화용 AES키 (마스터 키)
- Keychain에 저장 : 하나의 AES키를 Keychain에 안전하게 저장 후 데이터 암복호화 시 재사용합니다.
- Keychain은 자동으로 보안 처리 (하드웨어 보안 요소 사용)
2. RSA 키 쌍 (비대칭키)
- RSA 개인 키 (Private Key)
- 반드시 Keychain에 저장
- 개인키는 절대 외부에 노출되면 안됩니다.
- kSecAttrAccessible을 .afterFirstUnlock 또는 .whenUnlockedThisDeviceOnly로 설정해 보안을 강화합니다.
- RSA 공개 키 (Public Key)
- Keychain에 저장해도 되고, 메모리 캐싱만 해도 무관
- 공개 키는 유출되어도 안전하지만, 필요 시 Keychain에 함께 저장해 손쉬운 관리가 가능합니다.
키 종류 | Keychain 저장 여부 | 이유 |
AES 키(세션키) | X (저장안함) | 요청마다 생성 및 폐기(단기) |
AES 키(로컬 마스터 키) | O (Keychain) | 로컬 데이터 암복호화 (장기) |
RSA 공개 키 (Public) | 선택사항 | 공개 키는 유출되어도 안전 |
RSA 개인 키 (Private) | O (Keychain 필수) | 개인 키는 절대 외부 유출 금지 |
반응형
'iOS' 카테고리의 다른 글
[iOS] MVVM-C vs. RIP (0) | 2025.02.25 |
---|---|
[iOS] CryptoKit vs. CryptoSwift (0) | 2025.02.14 |
[iOS] WKWebView Cookie (1) | 2025.02.11 |
[iOS] Async/Await (1) | 2025.02.06 |
[iOS] 무결성 (Integrity) (3) | 2025.02.06 |