키 스토리지 공급자(KSP)를 AWS CloudHSM 클라이언트 SDK 3에서 클라이언트 SDK 5로 마이그레이션 - AWS CloudHSM

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

키 스토리지 공급자(KSP)를 AWS CloudHSM 클라이언트 SDK 3에서 클라이언트 SDK 5로 마이그레이션

이 주제에서는 키 스토리지 공급자(KSP)를 AWS CloudHSM 클라이언트 SDK 3에서 클라이언트 SDK 5로 마이그레이션하는 방법을 설명합니다. 마이그레이션 이점에 대한 자세한 내용은 섹션을 참조하세요AWS CloudHSM 클라이언트 SDK 5의 이점.

에서는 AWS CloudHSM 클라이언트 소프트웨어 개발 키트(SDK)를 AWS CloudHSM사용하여 암호화 작업을 수행합니다. 클라이언트 SDK 5는 새로운 기능과 플랫폼 지원 업데이트를 수신하는 기본 SDK입니다.

모든 공급자에 대한 마이그레이션 지침은 섹션을 참조하세요AWS CloudHSM 클라이언트 SDK 3에서 클라이언트 SDK 5로 마이그레이션.

클라이언트 SDK 5로 마이그레이션

  1. Windows Server 인스턴스에 클라이언트 SDK 5 키 스토리지 공급자(KSP)를 설치합니다. 지침은 AWS CloudHSM 클라이언트 SDK 5용 키 스토리지 공급자(KSP) 설치 섹션을 참조하세요.

  2. 새 구성 파일 형식과 명령줄 부트스트래핑 도구를 사용하여 클라이언트 SDK 5 키 스토리지 공급자(KSP)를 구성합니다. 지침은 클라이언트 SDK 부트스트랩 섹션을 참조하세요.

  3. AWS CloudHSM 클라이언트 SDK 5용 키 스토리지 공급자(KSP)에는 SDK3에서 생성된 키 참조 파일을 지원하는 SDK3 호환성 모드가 포함되어 있습니다. 자세한 내용은 용 키 스토리지 공급자(KSP)의 SDK3 호환성 모드 AWS CloudHSM 단원을 참조하십시오.

    참고

    클라이언트 SDK3에서 생성한 키 참조 파일을 클라이언트 SDK 5와 함께 사용할 때는 SDK3 호환성 모드를 활성화해야 합니다.

새 Windows Server 인스턴스로 마이그레이션

  1. 새 Windows Server 인스턴스에서 클라이언트 SDK 5로 마이그레이션의 모든 단계를 완료합니다.

  2. 기존 키 참조 파일 확인

    원래 Windows Server 인스턴스에서의 키 참조 파일을 확인합니다C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition.

    • 키 참조 파일이 있는 경우 C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSPGlobalPartition의 모든 내용을 새 Windows Server 인스턴스의 동일한 디렉터리 경로에 복사합니다. 디렉터리가 없는 경우 생성합니다.

    • 키 참조 파일이 없는 경우 새 Windows Server 인스턴스cloudhsm-cli key generate-file --encoding ksp-key-reference에서를 사용하여 생성합니다. 지침은 KSP 키 참조 생성(Windows) 섹션을 참조하세요.

  3. 루트 인증서 확인

    신뢰할 수 있는 루트 인증 기관에서 루트 인증서를 확인합니다.

    PS C:\Users\Administrator\Desktop> certutil -store Root Root "Trusted Root Certification Authorities" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Issuer: CN=MYRootCA Signature matches Public Key Root Certificate: Subject matches Issuer Cert Hash(sha1): cert-hash No key provider information Cannot find the certificate and private key for decryption. CertUtil: -store command completed successfully.
    참고

    다음 단계에서 사용할 인증서 일련 번호를 기록해 둡니다.

  4. 루트 인증서 내보내기

    루트 인증서를 파일로 내보냅니다.

    certutil -store Root certificate-serial-number root-certificate-name.cer
  5. HSM 백엔드 인증서 확인

    개인 인증서 스토어에서 HSM 백엔드 인증서를 확인합니다.

    PS C:\Users\Administrator\Desktop> certutil -store My my "Personal" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US Non-root Certificate Cert Hash(sha1): cert-hash Key Container = key-container-name Provider = Cavium Key Storage Provider Private key is NOT exportable Encryption test passed CertUtil: -store command completed successfully.
    참고

    다음 단계에서 사용할 인증서 일련 번호를 기록해 둡니다.

  6. HSM 백엔드 인증서 내보내기

    HSM 백엔드 인증서를 파일로 내보냅니다.

    certutil -store My certificate-serial-number signed-certificate-name.cer
  7. 루트 인증서 가져오기

    새 Windows 인스턴스에서:

    1. 루트 CA 파일을 새 Windows 인스턴스에 복사

    2. 인증서를 가져옵니다.

      certutil -addstore Root root-certificate-name.cer
  8. 루트 인증서 설치 확인

    루트 인증서가 올바르게 설치되었는지 확인합니다.

    PS C:\Users\Administrator\Desktop> certutil -store Root Root "Trusted Root Certification Authorities" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Issuer: CN=MYRootCA Signature matches Public Key Root Certificate: Subject matches Issuer Cert Hash(sha1): cert-hash No key provider information Cannot find the certificate and private key for decryption. CertUtil: -store command completed successfully.
  9. HSM 백엔드 인증서 가져오기

    새 Windows 인스턴스에서:

    1. HSM 백엔드 인증서를 새 Windows 인스턴스에 복사

    2. 인증서를 가져옵니다.

      certutil -addstore My signed-certificate-name.cer
  10. HSM 백엔드 인증서 설치 확인

    HSM 백엔드 인증서가 올바르게 설치되었는지 확인합니다.

    PS C:\Users\Administrator\Desktop> certutil -store My my "Personal" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US Non-root Certificate Cert Hash(sha1): cert-hash No key provider information Cannot find the certificate and private key for decryption. CertUtil: -store command completed successfully.
    참고

    후속 단계에서 사용할 인증서 일련 번호를 기록해 둡니다.

  11. 키 참조 파일 생성(선택 사항)

    새 키 참조 파일을 생성해야 하는 경우에만이 단계를 완료합니다. 아니면 다음 단계로 이동합니다.

    참고

    이 기능은 SDK 버전 5.16.0 이상에만 있습니다.

    1. OpenSSL을 설치하고 모듈러스를 추출합니다.

      openssl x509 -in signed-certificate-name.cer -modulus -noout
      참고

      OpenSSL 명령은 모듈러스를 형식으로 출력합니다Modulus=modulus-value. 다음 명령에 사용할 modulus-value를 기록해 둡니다.

    2. CloudHSM CLI를 사용하여 키 참조 파일을 생성합니다. 섹션을 참조하세요KSP 키 참조 생성(Windows).

      & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" key generate-file --encoding ksp-key-reference --filter attr.class=private-key attr.modulus=0xmodulus-value
      참고

      CloudHSM CLI 명령 인수의 모듈러스 값은 16진수 형식을 나타내0x기 위해 접두사로 묶어야 합니다.

      키 참조 파일은에서 생성됩니다C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition.

  12. 복구 구성 생성

    다음 콘텐츠가 포함된 repair.txt이라는 파일을 생성합니다.

    [Properties] 11 = "" ; Add friendly name property 2 = "{text}" ; Add Key Provider Information property _continue_="Container=key-container-name&" _continue_="Provider=Cavium Key Storage Provider&" _continue_="Flags=0&" _continue_="KeySpec=2"
    참고

    key-container-name을의 키 참조 파일 이름으로 바꿉니다C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition.

  13. 인증서 스토어 복구

    복구 명령을 실행합니다.

    certutil -repairstore My certificate-serial-number repair.txt
    참고

    인증서 일련 번호는 HSM 백엔드 인증서 설치를 확인할 때 이전 단계에서 가져옵니다.

  14. 인증서 연결 확인

    인증서가 올바르게 연결되었는지 확인합니다.

    PS C:\Users\Administrator\Desktop> certutil -store My my "Personal" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US Non-root Certificate Cert Hash(sha1): cert-hash Key Container = key-container-name Provider = Cavium Key Storage Provider Private key is NOT exportable ERROR: Could not verify certificate public key against private key CertUtil: -store command completed successfully.

    출력에 다음이 표시되는지 확인합니다.

    • 올바른 키 컨테이너 이름

    • Cavium 키 스토리지 공급자

    • ERROR: Could not verify certificate public key against private key는 알려진 문제입니다. 단원을 참조하십시오. 문제: 인증서 스토어 확인 실패

  15. 애플리케이션 테스트

    마이그레이션을 완료하기 전에:

    1. 개발 환경에서 애플리케이션 테스트

    2. 코드를 업데이트하여 주요 변경 사항 해결

    3. 애플리케이션별 지침은 섹션을 참조하세요. AWS CloudHSM과 타사 애플리케이션 통합

마이그레이션 확인

마이그레이션 단계를 완료한 후 다음을 확인합니다.

  • 인증서가 올바른 인증서 스토어에 올바르게 설치됨

  • 키 참조 파일이 올바른 위치에 있음

  • 애플리케이션은 마이그레이션된 인증서를 사용하여 암호화 작업을 수행할 수 있습니다.

문제 해결

마이그레이션 중에 문제가 발생하면 다음을 확인합니다.

  • 소스 시스템에서 모든 인증서를 올바르게 내보냅니다.

  • 시스템 간 인증서 일련 번호 일치

  • repair.txt 파일의 키 컨테이너 이름이 키 참조 파일과 일치

  • SDK3에서 SDK3-generated 호환성 모드가 활성화됩니다.

관련 주제