Crypto Architecture Kit이란 무엇인가?
Source: Dev.to
Context
Crypto Architecture Kit은 애플리케이션을 위한 필수 암호화 기능(암호화/복호화, 서명/서명 검증, MAC 생성, 해시 계산, 난수 생성, 키 파생 등)을 제공하도록 설계되었습니다. 타사 암호화 라이브러리 간의 차이를 추상화하여 개발을 단순화하고 암호화 작업의 일관성을 보장합니다.
Description
이 키트는 대부분의 일반적인 암호화 알고리즘을 지원하지만, 일부 오래되었거나 보안성이 낮은 알고리즘(예: MD5)은 고보안 시나리오에서 권장되지 않습니다. 현재는 OpenSSL만 지원하며, 다중 스레드 동시 작업은 허용되지 않습니다. 암호화 연산을 수행하지만 키 저장은 관리하지 않으므로, 애플리케이션이 자체적으로 키를 안전하게 관리해야 합니다.
주요 기능
- 키 생성 및 변환
- 암호화 및 복호화
- 서명 및 서명 검증
- 키 합의
- 메시지 다이제스트(MD) / 해싱
- 메시지 인증 코드(MAC)
- 난수 생성
- 키 파생
Basic Concepts
- 대칭키: 암호화와 복호화에 동일한 키를 사용합니다.
- 비대칭키: 암호화/복호화 또는 서명/검증에 사용되는 개인키와 공개키 쌍입니다.
- 키 관리: Crypto Kit은 메모리 내 또는 애플리케이션이 관리하는 키에 대해 작동합니다. 영구 저장이 필요할 경우 Universal Keystore Kit을 사용하는 것이 권장됩니다.
Solution / Approach
애플리케이션은 Crypto Architecture Kit을 통합하여 기본 라이브러리 차이에 신경 쓰지 않고 안전한 암호화 작업을 수행할 수 있습니다. 일반적인 사용 사례는 다음과 같습니다.
- 세션 키 또는 임시 암호화 키 생성
- 저장 또는 전송 전에 민감 데이터 암호화
- 메시지 서명을 통해 진위 보장
- 수신 메시지의 서명 검증
- 데이터 무결성 검증을 위한 해시 또는 MAC 계산
- 비대칭 키 쌍을 이용한 안전한 키 교환
개발자는 보안 요구 사항에 맞는 알고리즘을 선택하고, 중요한 상황에서는 MD5와 같은 취약한 옵션을 피해야 합니다. 다중 스레드 지원이 없으므로 모든 작업은 순차적으로 수행해야 합니다.
Key Takeaways
- Crypto Architecture Kit은 라이브러리 간 작업을 표준화하여 암호화 통합을 간소화합니다.
- 다양한 암호화 기능을 지원하지만 키 저장은 처리하지 않습니다.
- 현재는 OpenSSL만 지원하며, 다중 스레드 동시 작업은 허용되지 않습니다.
- 안전한 알고리즘 선택이 중요하며, 일부 오래된 알고리즘은 권장되지 않습니다.
- 메모리 내 암호화 작업이나 임시 세션 키가 필요한 애플리케이션에 적합합니다.
Additional Resources
- Crypto Architecture Kit Documentation
- Original article: What is the Crypto Architecture Kit?