키 유형, 알고리즘 및 작업
Key Vault는 자격 증명 모음과 관리형 HSM이라는 두 가지 리소스 종류를 지원합니다. 두 리소스 종류 모두 다양한 암호화 키를 지원합니다. 지원되는 키 형식 요약, 각 리소스 종류별 보호 형식을 보려면 키 정보를 참조하세요.
다음 표는 키 유형과 지원되는 알고리즘에 대한 요약입니다.
키 유형/크기/곡선 | 암호화/암호 해독 (래핑/래핑 해제) |
서명/확인 |
---|---|---|
EC-P256, EC-P256K, EC-P384, EC-P521 | 해당 없음 | ES256 ES256K ES384 ES512 |
RSA 2K, 3K, 4K | RSA1_5 RSA-OAEP RSA-OAEP-256 |
PS256 PS384 PS512 RS256 RS384 RS512 RSNULL |
AES 128비트, 256비트 (관리형 HSM에만 해당) |
AES-KW AES-GCM AES-CBC |
해당 없음 |
EC 알고리즘
EC-HSM 키에서 지원되는 알고리즘 식별자는 다음과 같습니다.
곡선 유형
- P-256 - DSS FIPS PUB 186-4에 정의되는 NIST 곡선 P-256.
- P-256K - SEC 2: Recommended Elliptic Curve Domain Parameters에 정의되는 SEC 곡선 SECP256K1.
- P-384 - DSS FIPS PUB 186-4에 정의되는 NIST 곡선 P-384.
- P-521 - DSS FIPS PUB 186-4에 정의되는 NIST 곡선 P-521.
SIGN/VERIFY
- ES256 - 곡선 P-256을 사용하여 생성된 SHA-256 메시지 다이제스트 및 키에 대한 ECDSA입니다. 이 알고리즘은 RFC7518에 설명되어 있습니다.
- ES256K - 곡선 P-256K를 사용하여 생성된 SHA-256 메시지 다이제스트 및 키에 대한 ECDSA입니다. 이 알고리즘 표준화 보류 중입니다.
- ES384 - 곡선 P-384를 사용하여 생성된 SHA-384 메시지 다이제스트 및 키에 대한 ECDSA입니다. 이 알고리즘은 RFC7518에 설명되어 있습니다.
- ES512 - 곡선 P-521을 사용하여 생성된 SHA-512 메시지 다이제스트 및 키에 대한 ECDSA입니다. 이 알고리즘은 RFC7518에 설명되어 있습니다.
RSA 알고리즘
RSA 및 RSA-HSM 키에서 지원되는 알고리즘 식별자는 다음과 같습니다.
WRAPKEY/UNWRAPKEY, ENCRYPT/DECRYPT
- RSA1_5 - RSAES-PKCS1-V1_5[RFC3447] 키 암호화입니다.
- RSA-OAEP - OAEP(Optimal Asymmetric Encryption Padding)[RFC3447]를 사용하는 RSAES입니다(A.2.1 섹션의 RFC 3447에 명시된 기본 매개 변수 포함). 이러한 기본 매개 변수는 SHA-1의 해시 함수와 SHA-1이 포함된 MGF1의 마스크 생성 함수를 사용합니다.
- RSA-OAEP-256 – SHA-256의 해시 함수 및 SHA-256과 함께 MGF1의 마스크 생성 함수로 최적의 비대칭 암호화 안쪽 여백을 사용하는 RSAES
SIGN/VERIFY
- PS256 - RFC7518에 설명된 대로 SHA-256과 함께 SHA-256 및 MGF1을 사용하는 RSASSA-PSS.
- PS384 - RFC7518에 설명된 대로 SHA-384와 함께 SHA-384 및 MGF1을 사용하는 RSASSA-PSS.
- PS512 - RFC7518에 설명된 대로 SHA-512와 함께 SHA-512 및 MGF1을 사용하는 RSASSA-PSS.
- RS256 - SHA-256을 사용하는 RSASSA-PKCS-v1_5입니다. 애플리케이션에서 제공하는 다이제스트 값은 SHA-256을 사용하여 계산되어야 하며, 길이는 32바이트여야 합니다.
- RS384 - SHA-384를 사용하는 RSASSA-PKCS-v1_5입니다. 애플리케이션에서 제공하는 다이제스트 값은 SHA-384를 사용하여 계산되어야 하며, 길이는 48바이트여야 합니다.
- RS512 - SHA-512를 사용하는 RSASSA-PKCS-v1_5입니다. 애플리케이션에서 제공하는 다이제스트 값은 SHA-512를 사용하여 계산되어야 하며, 길이는 64바이트여야 합니다.
- RSNULL - 특정 TLS 시나리오를 사용하려면 특수 사용 사례인 RFC2437을 참조하세요.
참고 항목
성능 향상을 위해 RSA-PSS 패딩 모드를 사용하는 것이 좋습니다. DigestInfo는 RS256, RS384 및 RS512 알고리즘이 생성하는 서명 작업을 위해 서버 쪽에서 생성됩니다.
대칭 키 알고리즘(관리형 HSM에만 해당)
- AES-KW - AES 키 래핑(RFC3394)
- AES-GCM - Galois 카운터 모드의 AES 암호화(NIST SP 800-38d)
- AES-CBC - 암호화 블록 연결 모드의 AES 암호화(NIST SP 800-38a)
참고 항목
서명 및 확인 작업 알고리즘은 키 형식과 일치해야 합니다. 그렇지 않으면 서비스에서 키 크기가 올바르지 않다는 오류를 반환합니다.
키 작업
Managed HSM을 포함한 Key Vault는 주요 개체에 대해 다음 작업을 지원합니다.
- 만들기: 클라이언트가 Key Vault에 키를 만들 수 있습니다. 키 값은 Key Vault에서 생성되고 저장되며 클라이언트에 릴리스되지 않습니다. Key Vault에 비대칭 키를 만들 수 있습니다.
- Import: 클라이언트가 기존 키를 Key Vault로 가져올 수 있습니다. 비대칭 키는 JWK 구문 내에서 여러 가지 패키지 방법을 사용하여 Key Vault로 가져올 수 있습니다.
- 업데이트: 충분한 권한이 있는 클라이언트는 이전에 Key Vault에 저장된 키와 연결된 메타데이터(키 특성)를 수정할 수 있습니다.
- 삭제: 충분한 권한이 있는 클라이언트는 Key Vault에서 키를 삭제할 수 있습니다.
- 나열: 클라이언트가 지정된 Key Vault의 모든 키를 나열할 수 있습니다.
- 버전 나열: 클라이언트가 지정된 Key Vault의 지정된 키 버전을 모두 나열할 수 있습니다.
- 가져오기: 클라이언트가 Key Vault에서 지정된 키의 공개 부분을 검색할 수 있습니다.
- 백업: 키를 보호된 형식으로 내보냅니다.
- 복원: 이전에 백업한 키를 가져옵니다.
- 릴리스: 기밀 컴퓨팅 환경 내에서 실행되는 권한 있는 코드에 대한 키를 안전하게 릴리스합니다. TEE(Trusted Execution Environment)가 키의 release_policy 요구 사항을 충족한다는 증명이 필요합니다.
- 회전: 새 버전의 키를 생성하여 기존 키를 회전합니다(Key Vault만 해당).
자세한 내용은 Key Vault REST API 참조에서 키 작업을 참조하세요.
키가 Key Vault에 만들어지면 해당 키를 사용하여 수행할 수 있는 암호화 작업은 다음과 같습니다.
- 서명 및 확인: 엄격히 말해서, Key Vault는 서명 만들기의 일부로 콘텐츠의 해싱을 지원하지 않으므로 이 작업은 “해시 서명” 또는 “해시 확인”입니다. 애플리케이션은 로컬로 서명할 데이터를 해시한 다음, Key Vault에서 이 해시에 서명하도록 요청해야 합니다. [공개] 키 자료에 액세스할 수 없는 애플리케이션을 편리하게 사용할 수 있도록 서명된 해시 확인이 지원됩니다. 애플리케이션 성능을 최적화하려면 VERIFY 작업을 로컬로 수행해야 합니다.
- 키 암호화/래핑: Key Vault에 저장된 키는 다른 키(일반적으로 대칭 CEK(콘텐츠 암호화 키))를 보호하는 데 사용할 수 있습니다. Key Vault의 키가 비대칭이면 키 암호화가 사용됩니다. 예를 들어 RSA-OAEP 및 WRAPKEY/UNWRAPKEY 작업은 ENCRYPT/DECRYPT와 동일합니다. Key Vault의 키가 대칭이면 키 래핑이 사용됩니다. 예: AES-KW. [공개] 키 자료에 액세스할 수 없는 애플리케이션을 편리하게 사용할 수 있도록 WRAPKEY 작업이 지원됩니다. 애플리케이션 성능을 최적화하려면 WRAPKEY 작업을 로컬로 수행해야 합니다.
- 암호화 및 암호 해독: Key Vault에 저장된 키는 데이터의 단일 블록을 암호화 또는 암호 해독하는 데 사용할 수 있습니다. 블록의 크기는 키 유형과 선택한 암호화 알고리즘에 따라 결정됩니다. [공개] 키 자료에 액세스할 수 없는 애플리케이션을 간편하게 사용할 수 있도록 암호화 작업이 제공됩니다. 애플리케이션 성능을 최적화하려면 ENCRYPT 작업을 로컬로 수행해야 합니다.
비대칭 키를 사용하는 WRAPKEY/UNWRAPKEY가 필요 없는 것처럼 보일 수도 있지만(작업이 ENCRYPT/DECRYPT와 동일하므로), 구분되는 작업을 사용하는 것이 중요합니다. 구분을 통해 이러한 작업의 의미 체계 및 권한 부여를 분리하고, 서비스에서 다른 키 유형을 지원할 때 일관성을 유지할 수 있습니다.
Key Vault는 EXPORT 작업을 지원하지 않습니다. 일단 키가 시스템에 프로비전되면 키를 추출하거나 키 자료를 수정할 수 없습니다. 그러나 Key Vault 사용자가 다른 사용 사례에 사용하기 위해 키가 필요할 수 있습니다(예: 키가 삭제된 후). 이 경우 BACKUP 및 RESTORE 작업을 사용하여 키를 보호되는 형식으로 내보낼/가져올 수 있습니다. BACKUP 작업으로 만든 키는 Key Vault 외부에서 사용할 수 없습니다. 또는 IMPORT 작업을 여러 Key Vault 인스턴스에 사용할 수 있습니다.
사용자는 Key Vault에서 JWK 개체의 key_ops 속성을 사용하여 키별로 지원하는 암호화 작업을 제한할 수 있습니다.
JWK 개체에 대한 자세한 내용은 JWK(JSON 웹 키)를 참조하세요.
키 순환 정책 작업
Key Vault 키 자동 순환은 키 자동 순환 정책을 구성하여 설정할 수 있습니다. Key Vault 리소스에서만 사용할 수 있습니다.
- 순환 정책 가져오기: 순환 정책 구성을 검색합니다.
- 순환 정책 설정: 순환 정책 구성을 설정합니다.
키 특성
키 자료 외에도 다음과 같은 특성을 지정할 수 있습니다. JSON 요청에서 특성이 지정되지 않은 경우에도 특성 키워드 및 중괄호 '{' '}'가 필요합니다.
- enabled: 부울, 선택 사항, 기본값은 true입니다. 암호화 작업을 위해 사용 설정 및 사용 가능한 키인지 여부를 지정합니다. enabled 특성은 nbf 및 exp와 함께 사용됩니다. nbf 및 exp 간에 작업이 발생하면 enabled가 true로 설정된 경우에만 해당 작업이 허용됩니다. nbf / exp 창 외부 작업은 decrypt, release, unwrap 및 verify를 제외하고 자동으로 허용되지 않습니다.
- nbf: IntDate, 선택 사항, 기본값은 now입니다. nbf(not before) 특성은 decrypt, release, unwrap 및 verify를 제외하고 암호화 작업에 키를 사용해서는 안 되는 시간을 식별합니다. nbf 특성을 처리하려면 현재 날짜/시간이 nbf 특성에 나열된 날짜/시간 이전이 아닌 시간 이후이거나 같아야 합니다. Key Vault는 클록 오차를 처리하기 위해 일반적으로 약간(몇 분 이내)의 여유를 제공해야 합니다. 이 값은 IntDate 값이 포함된 숫자여야 합니다.
- exp: IntDate, 선택 사항, 기본값은 "forever"입니다. exp(만료 시간) 특성은 키가 decrypt, release, unwrap 및 verify를 제외하고 암호화 작업에 사용되어서는 안 되는 만료 시간을 식별합니다. exp 특성을 처리하려면 현재 날짜/시간이 exp 특성에 나열된 만료 날짜/시간 이전이어야 합니다. Key Vault는 클록 오차를 처리하기 위해 일반적으로 약간(몇 분 이내)의 여유를 제공해야 합니다. 이 값은 IntDate 값이 포함된 숫자여야 합니다.
키 특성을 포함하는 모든 응답에 포함되는 더 많은 읽기 전용 특성이 있습니다.
- created: IntDate, 선택 사항입니다. created 특성은 이 버전의 키를 만든 시점을 나타냅니다. 이 특성을 추가하기 전에 만든 키의 값은 null입니다. 이 값은 IntDate 값이 포함된 숫자여야 합니다.
- updated: IntDate, 선택 사항입니다. updated 특성은 이 버전의 키를 업데이트한 시점을 나타냅니다. 이 특성을 추가하기 전에 마지막으로 업데이트한 키의 값은 null입니다. 이 값은 IntDate 값이 포함된 숫자여야 합니다.
- hsmPlatform: 문자열, 선택 사항. 키를 보호하는 기본 HSM 플랫폼입니다.
- hsmPlatform 값이 2이면 키가 최신 FIPS 140 수준 3 유효성이 검사된 HSM 플랫폼으로 보호됩니다.
- hsmPlatform 값이 1이면 키가 이전 FIPS 140 수준 2 유효성이 검사된 HSM 플랫폼으로 보호됩니다.
- hsmPlatform 값이 0이면 FIPS 140 수준 1 HSM 소프트웨어 암호화 모듈에 의해 키가 보호됩니다.
- 관리형 HSM 풀에서 설정하지 않으면 최신 FIPS 140 수준 3 유효성이 검사된 HSM 플랫폼으로 보호됩니다.
키가 만들어진 HSM에 바인딩되어 있다는 점에 유의해야 합니다. 새 키는 원활하게 만들어지고 새 HSM에 저장됩니다. 키를 마이그레이션하거나 전송할 수 있는 방법은 없지만 새 키 버전은 새 HSM에 자동으로 적용됩니다. 새 키로 마이그레이션하는 방법에 대한 자세한 내용은 키 워크로드를 마이그레이션하는 방법을 참조하세요.
IntDate 및 기타 데이터 형식에 대한 자세한 내용은 [키, 비밀 및 인증서 정보: 데이터 형식을 참조하세요.
날짜 및 시간 제어 작업
nbf / exp 시간 범위에 속하지 않은 아직 유효하지 않은 키와 만료된 키는 decrypt, unwrap, unwrap 및 verify 작업에 대해 작동합니다(403, 금지됨 오류를 반환하지 않음). 아직 유효하지 않은 상태를 사용하는 이유는 프로덕션에서 사용하기 전에 키를 테스트할 수 있도록 하기 위한 것입니다. 만료된 상태를 사용하는 이유는 키가 유효할 때 만들어진 데이터에 대한 복구 작업을 허용하기 위한 것입니다. 또한 Key Vault 정책을 사용하거나 enabled 키 특성을 false로 업데이트하여 키에 대한 액세스를 사용하지 않도록 설정할 수 있습니다.
데이터 형식에 대한 자세한 내용은 데이터 형식을 참조하세요.
사용 가능한 다른 특성에 대한 자세한 내용은 JWK(JSON 웹 키)를 참조하세요.
키 태그
태그 형식으로 더 많은 애플리케이션별 메타데이터를 지정할 수 있습니다. Key Vault는 최대 15개의 태그를 지원하며, 각 태그는 256자 이름과 256자의 값을 가질 수 있습니다.
참고 항목
태그는 해당 키에 대한 list 또는 get 권한이 있는 경우 호출자가 읽을 수 있습니다.
키 액세스 제어
Key Vault에서 관리하는 키에 대한 액세스 제어는 키 컨테이너 역할을 하는 Key Vault 수준에서 제공됩니다. Key Vault 역할 기반 액세스 제어(권장) 또는 이전 자격 증명 모음 액세스 정책 권한 모델을 사용하여 키에 대한 액세스를 제어할 수 있습니다. 역할 기반 권한 모델에는 'Key Vault Crypto Officer', 'Key Vault Crypto User', 'Key Vault Service Encryption User'의 세 가지 키 관리 역할이 미리 정의되어 있으며 구독, 리소스 그룹 또는 자격 증명 모음 수준으로 범위를 지정할 수 있습니다.
Vault 액세스 정책 권한 모델 권한:
키 관리 작업에 필요한 권한
- get: 키의 공개 부분 및 해당 특성 읽기
- list: 키 자격 증명 모음에 저장된 키 또는 키 버전 나열
- update: 키 특성 업데이트
- create: 새 키 만들기
- import: 키 자격 증명 모음으로 키 가져오기
- delete: 키 개체 삭제
- recover: 삭제된 키 복구
- backup: 키를 키 자격 증명 모음에 백업
- restore: 키 자격 증명 모음에 백업된 키 복원
암호화 작업에 필요한 권한
- decrypt: 키를 사용하여 바이트 시퀀스 보호 해제
- encrypt: 키를 사용하여 임의의 바이트 시퀀스 보호
- unwrapKey: 키를 사용하여 래핑된 대칭 키 보호 해제
- wrapKey: 키를 사용하여 대칭 키 보호
- verify: 키를 사용하여 다이제스트 확인
- sign: 키를 사용하여 다이제스트에 서명
권한 있는 작업에 필요한 권한
- purge: 삭제된 키 제거(영구적으로 삭제)
- release: 키의 release_policy와 일치하는 기밀 컴퓨팅 환경에 대한 키를 릴리스합니다.
회전 정책 작업에 대한 권한
- rotate: 새 버전의 키를 생성하여 기존 키를 회전합니다(Key Vault만 해당).
- 회전 정책 가져오기: 회전 정책 구성을 검색합니다.
- 회전 정책 설정: 회전 정책 구성을 설정합니다.
키 사용에 대한 자세한 내용은 Key Vault REST API 참조에서 키 작업을 참조하세요.