IBM Cloud Docs
엔벨로프 암호화를 사용하여 데이터 보호-표준 플랜

엔벨로프 암호화를 사용하여 데이터 보호-표준 플랜

엔벨로프 암호화는 데이터 암호화 키(DEK)A cryptographic key used to encrypt data that is stored in an application. 로 데이터를 암호화한 후 완전히 관리할 수 있는 루트 키A symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. 로 DEK를 랩핑하는 사례입니다. Hyper Protect Crypto Services 서비스 인스턴스의 루트 키도 하드웨어 보안 모듈 (HSM) 마스터 키An encryption key that is used to protect a crypto unit. The master key provides full control of the hardware security module and ownership of the root of trust that encrypts the chain keys, including the root key and standard key.로 랩핑되고 보호됩니다.

Hyper Protect Crypto Services은(는) 엔벨로프 암호화를 사용하여 고급 암호화로 미사용 데이터를 보호하고 다음과 같은 이점을 제공합니다.

표 1. 고객 관리 암호화의 이점에 대해 설명합니다.
이점 설명
고객 관리 암호화 키 서비스를 사용하면 루트 키를 프로비저닝하여 클라우드에서 암호화된 데이터의 보안을 보호할 수 있습니다. 루트 키는 키-랩핑 키의 역할을 하며, 이 키를 사용하면 IBM Cloud 데이터 서비스에 프로비저닝된 데이터 암호화 키(DEK)를 관리하고 보호할 수 있습니다. 기존 루트 키를 가져올 것인지 Hyper Protect Crypto Services에서 사용자 대신 루트 키를 생성하도록 할 것인지 여부를 결정하십시오.
기밀성 및 무결성 보호 Hyper Protect Crypto Services는 CBC(Cipher Blocker Chaining) 모드에서 고급 암호화 표준(AES) 알고리즘을 사용하여 키를 작성하고 보호합니다. 서비스에서 키를 작성할 때 Hyper Protect Crypto Services은(는) Hyper Protect Crypto Services 인스턴스에서 해당 키를 생성하며 마스터 키는 해당 사용자만 액세스 권한을 보유할 수 있도록 해당 키를 암호화합니다.
데이터의 암호화 폐기 조직이 보안 문제를 발견하거나 애플리케이션이 데이터 세트를 더 이상 필요로 하지 않는 경우 클라우드에서 데이터를 영구적으로 파쇄하도록 선택할 수 있습니다. 다른 DEK를 보호하는 루트 키를 삭제하면 키의 연관된 데이터에 더 이상 액세스할 수 없거나 이를 복호화할 수 없습니다.
위임된 사용자 액세스 제어 Cloud Identity and Access Management(IAM) 역할을 지정하여 Hyper Protect Crypto Services는 중앙화된 액세스 제어 시스템을 지원하여 키에 대한 세부적 액세스를 사용합니다. 자세한 정보는 키에 대한 액세스 부여 를 참조하십시오.

엔벨로프 암호화의 키

다음 키는 데이터의 고급 암호화 및 관리에 대한 엔벨로프 암호화에 사용됩니다.

마스터 키
HSM 마스터 키라고도 하는 마스터 키는 Hyper Protect Crypto Services 인스턴스를 보호하는 데 사용되는 암호화 키입니다. 마스터 키에서는 루트 키표준 키를 포함하여 키의 전체 계층을 암호화하는 신뢰 루트의 소유권 및 하드웨어 보안 모듈에 대한 완전한 제어를 제공합니다.
루트 키
고객 루트 키(CRK)라고도 하는 루트 키는 Hyper Protect Crypto Services의 기본 리소스입니다. 또한 데이터 서비스에 저장된 기타 키를 랩핑(암호화)하고 랩핑 해제(복호화)하기 위한 신뢰 루트로 사용되는 대칭 키-랩핑 키입니다. Hyper Protect Crypto Services를 사용하면 루트 키의 라이프사이클을 작성하고 저장하고 관리하여 클라우드에 저장된 다른 키를 완전히 제어할 수 있습니다.
표준 키
암호화된 데이터를 저장하는 데 사용하는 데이터 암호화 키 (DEK) 로 사용할 수 있는 표준 키. 이는 사용자가 소유하는 애플리케이션에서 제공하며 애플리케이션에 저장된 데이터를 암호화하는 데 사용됩니다. Hyper Protect Crypto Services에서 관리하는 루트 키는 DEK를 보호하기 위한 랩핑 키의 역할을 합니다.

Hyper Protect Crypto Services에서 키를 작성한 후 시스템은 키 리소스를 고유하게 식별하는 데 사용되는 키 ID를 리턴합니다. 이 ID 값을 사용하여 서비스에 대한 API 호출을 수행할 수 있습니다.

작업 방식

엔벨로프 암호화는 여러 암호화 알고리즘의 장점을 결합하여 클라우드의 민감한 데이터를 보호합니다. 이 암호화가 작동하려면 완전히 관리할 수 있는 루트 키를 사용하여 고급 암호화를 통해 하나 이상의 데이터 암호화 키(DEK)를 랩핑해야 합니다. 이 키 랩핑 프로세스는 무단 액세스 또는 노출로부터 저장된 데이터를 보호하는 랩핑된 DEK를 작성합니다. DEK를 랩핑 해제하면 동일한 루트 키를 사용하여 엔벨로프 암호화 프로세스를 되돌릴 수 있으며 그 결과 데이터가 복호화되고 인증됩니다.

Hyper Protect Crypto Services 서비스 인스턴스에서 관리하는 루트 키는 전체 키 계층 구조를 완전히 제어할 수 있는 마스터 키로도 암호화됩니다.

다음 다이어그램은 엔벨로프 암호화의 컨텐스트 보기를 표시합니다.

다이어그램은 엔벨로프 암호화의 컨텍스트 보기를 표시합니다.
그림 1. 엔벌로프 암호화의 컨텍스트 보기

엔벨로프 암호화는 NIST Special Publication 800-57, Recommendation for Key Management에서 간단하게 다뤄집니다. 자세한 정보는 NIST SP 800-57 Pt. 1 Rev. 4 를 참조하십시오.

키 랩핑

루트 키를 사용하면 클라우드에 저장된 데이터 암호화 키(DEK)를 그룹화하고 관리하고 보호할 수 있습니다. 완전히 관리할 수 있는 Hyper Protect Crypto Services의 루트 키를 지정하여 고급 암호화로 하나 이상의 DEK를 랩핑할 수 있습니다.

Hyper Protect Crypto Services에서 루트 키를 지정한 후 Hyper Protect Crypto Services 키 관리 서비스 API를 사용하여 서비스에 키 랩 요청을 전송할 수 있습니다. 키 랩핑 오퍼레이션은 DEK를 위한 비밀과 무결성 보호를 제공합니다.

다음 다이어그램은 실행 중인 키 랩핑 프로세스를 보여줍니다.

데이터 랩핑
그림 2. 데이터 랩핑

키 랩핑 해제

데이터 암호화 키(DEK)를 랩핑 해제하면 키 내에서 컨텐츠가 복호화되고 인증되며, 원래 키 자료가 데이터 서비스에 리턴됩니다.

비즈니스 애플리케이션이 랩핑된 DEK의 컨텐츠에 액세스해야 하는 경우 Hyper Protect Crypto Services 키 관리 서비스 API 를 사용하여 서비스에 랩핑 해제 요청을 전송할 수 있습니다. DEK를 랩핑 해제하려면 초기 랩핑 요청 중에 리턴된 ciphertext 값 및 루트 키의 ID 값을 지정합니다.

다음 다이어그램은 실행 중인 키 랩핑 해제를 보여줍니다.

데이터 랩핑 해제
그림 3. 데이터 랩핑 해제

랩핑 해제 요청을 보내면 시스템이 동일한 AES 알고리즘을 사용하여 키 랩핑 프로세스를 되돌립니다. 성공한 랩핑 해제 오퍼레이션은 base64로 인코딩된 plaintext 값을 IBM Cloud 저장 데이터 서비스로 리턴합니다.

다음에 수행할 작업

Hyper Protect Crypto Services는 다른 서비스와의 통합을 지원합니다. 엔벨로프 암호화로 Hyper Protect Crypto Services는 통합 서비스에 저장된 데이터에 대한 고급 보호를 제공합니다.

  • 지원되는 통합 서비스의 전체 목록은 서비스 통합을 참조하십시오.
  • 엔벨로트 암호화를 위해 루트 키를 작성하는 방법은 루트 키 작성을 참조하십시오.
  • 엔벨로프 암호화를 위해 고유한 루트 키를 가져오는 방법은 루트 키 가져오기를 참조하십시오.