다음을 통해 공유


Azure Cloud HSM 문제 해결

이 문서는 Azure Cloud HSM 서비스를 사용할 때 발생할 수 있는 일반적인 문제 및 오류를 해결하는 데 도움이 됩니다.

일반적인 오류 메시지

다음 섹션에서는 VM(가상 머신) 및 HSM(하드웨어 보안 모듈)과 관련된 오류를 포함하여 일반적인 오류에 대한 질문에 답변합니다.

azcloudhsm_mgmt_util을 실행할 때 "인증서 오류: [인증서 서명 실패]"라는 오류 메시지가 나타나는 이유는 무엇인가요?

이 오류는 다음 단계를 수행할 때 발생할 수 있습니다.

  1. 다른 VM에서 Azure Cloud HSM 배포를 만들고 초기화합니다.
  2. 클라우드 HSM 클라이언트 SDK를 설치하고 다른 VM에서 실행하려고 시도합니다. 누락되었거나 초기화한 관리 VM의 올바른 PO.crt 파일이 없습니다.

관리자 VM에서 새 VM으로 파일을 복사 PO.crt 하고 다시 실행 azcloudhsm_mgmt_util하면 HSM에 대한 성공적인 연결이 표시됩니다.

azcloudhsm_client를 실행할 때 "INF: shutdown_ssl_socket: SSL_shutdown이 close_notify 경고를 보냈습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

이 오류는 다음 단계를 수행할 때 발생할 수 있습니다.

  1. 다른 VM에서 Azure Cloud HSM 배포를 만들고 초기화합니다.
  2. 클라우드 HSM 클라이언트 SDK를 설치하고 다른 VM에서 실행하려고 시도합니다. 누락되었거나 초기화한 관리 VM의 올바른 PO.crt 파일이 없습니다.

관리자 VM에서 새 VM으로 파일을 복사 PO.crt 하고 다시 실행 azcloudhsm_client하면 HSM에 대한 성공적인 연결이 표시됩니다.

"azcloudhsm_application.cfg가 없습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

애플리케이션을 성공적으로 실행하려면 다음 두 조건을 충족해야 합니다.

  • 파일은 azcloudhsm_application.cfg 애플리케이션과 동일한 디렉터리에 있습니다.

  • azcloudhsm_client 도구가 실행 중입니다. azcloudhsm_client 활성 상태가 아니면 소켓 연결이 실패합니다.

    마찬가지로 파일이 없으면 azcloudhsm_application.cfg 오류 메시지가 표시됩니다. 애플리케이션의 실행 위치에 따라 Azure Cloud HSM SDK 디렉터리에서 애플리케이션을 실행하는 디렉터리로 파일을 복사 azcloudhsm_application.cfg 해야 할 수 있습니다.

Azure Cloud HSM용 OpenSSL 엔진

Azure Cloud HSM용 OpenSSL 엔진이 Windows를 지원하나요?

아니요. Azure Cloud HSM용 OpenSSL 엔진은 Linux(Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8 및 CBL Mariner 2)만 지원합니다.

"잘못된 엔진 "azcloudhsm_openssl"이 공유 라이브러리를 로드할 수 없습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 필수 구성 요소 환경 변수 LD_LIBRARY_PATH 가 구성되지 않음을 시사합니다. 이 구성이 필요합니다. LD_LIBRARY_PATH 환경 변수를 Azure Cloud HSM SDK가 있는 디렉터리로 설정합니다.

다음 명령을 실행하여 올바른 SDK 버전을 반영하도록 환경 변수를 업데이트해야 합니다.

export LD_LIBRARY_PATH=/opt/azurecloudhsm/lib64/:$LD_LIBRARY_PATH

"환경 변수 azcloudhsm_openssl_conf가 설정되지 않았습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 필수 환경 변수 azcloudhsm_openssl_conf가 구성되지 않았다고 신호를 보냅니다. azcloudhsm_openssl_conf 환경 변수를 Azure Cloud HSM SDK 디렉터리 내의 azcloudhsm_openssl_dynamic.conf 파일 경로 위치로 설정합니다.

다음 명령을 실행하여 올바른 SDK 버전을 반영하도록 환경 변수를 업데이트해야 합니다.

export azcloudhsm_openssl_conf=/opt/azurecloudhsm/bin/azcloudhsm_openssl_dynamic.conf  

"환경 변수 azcloudhsm_password가 설정되지 않았습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 필수 구성 요소 환경 변수 azcloudhsm_password 가 구성되지 않음을 나타냅니다. 환경 변수를 azcloudhsm_password 값으로 cryptouser:password설정합니다.

올바른 암호화 사용자 및 암호를 반영하도록 환경 변수를 업데이트해야 합니다.

export azcloudhsm_password="cu1:user1234"

Azure Cloud HSM용 JCE 공급자

다음 섹션에서는 JCE(Java Cryptography Extension)와 관련된 질문에 답변합니다.

Azure Cloud HSM과 JCE 통합이 Windows를 지원하나요?

아니요. Azure Cloud HSM과 JCE 통합은 Linux(Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8, CBL Mariner 2)만 지원합니다.

"HSM에 로그인하는 데 필요한 자격 증명을 찾을 수 없습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

이 오류는 Cloud HSM에 로그인하는 데 필요한 자격 증명을 찾거나 인증하는 데 문제가 있음을 나타냅니다. 이 설명서의 샘플을 사용하거나 Azure Cloud HSM용 JCE 공급자를 애플리케이션에 통합하는 경우 자격 증명으로 명시적으로 로그인해야 합니다.

// Explicit Login with Credentials
LoginManager lm=LoginManager.getInstance();
lm.login("PARTITION_1","cu1","user1234");

// Logout of the HSM
lm.logout();

이 작업에 대해 "특성 값이 0입니다"라는 오류 메시지가 나타나는 이유는 무엇인가요? 사용자 KEK에 대한 특성을 설정해야 하나요?

이 오류는 사용자가 생성한 KEK(키 암호화 키)가 만들어지고 추출 가능 wrap_with_trusted 으로 지정되지 않았으며 1로 설정되었음을 나타냅니다. 키 가져오기, 키 래핑 및 키 래핑 해제 작업을 수행할 때 사용할 적절한 설정은 JCE 통합 가이드에서 사용자 생성 KEK를 만드는 방법에 대한 섹션을 참조하세요.

"디먼 소켓 연결 오류, API 로그인에 실패했습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

이 오류는 Cloud HSM에 로그인하는 데 필요한 자격 증명을 찾거나 인증하는 데 문제가 있음을 나타냅니다. JCE 통합 가이드의 샘플을 사용하거나 Azure Cloud HSM JCE 공급자를 애플리케이션에 통합하는 경우 연결을 보장하기 위해 자격 증명으로 명시적으로 로그인해야 합니다.

Azure Cloud HSM용 PKCS#11 라이브러리

"C_Login이 오류 코드 0xa3으로 실패했습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

이 오류는 0xa3 로그인 실패를 나타냅니다. 오류가 전달하는 PIN 매개 변수의 형식과 관련이 있거나 PIN(암호)이 잘못되었을 수 있습니다.

PIN은 다음과 같은 형식 char pPin[256] = "crypto_user:user123";으로 제공되어야 합니다. 값은 pPin :<password><username>구조를 따라야 합니다. 올바른 형식으로 pPin 값을 제공하고 있는지 확인하십시오. 형식이 잘못되면 로그인 실패가 발생할 수 있습니다.

"C_Initialize()가 00000005(소켓 연결 실패)" 오류 메시지가 나타나는 이유는 무엇인가요?

C_Initialize 중에 실패한 소켓 연결은 시스템에서 실행되지 않는 azcloudhsm_client 도구와 관련이 있을 수 있습니다. PKCS#11 애플리케이션이 성공적으로 실행되려면 azcloudhsm_client이 실행 중이어야 합니다. 별도의 터미널에서 다음 명령 중 하나를 실행하여 시작할 azcloudhsm_client 수 있습니다.

DEB 또는 RPM을 사용하여 Azure Cloud HSM SDK를 설치한 경우 클라이언트는 서비스로 실행되도록 자동으로 구성되지 않습니다. 설치하는 동안 SDK에는 서비스 단위 파일이 포함됩니다 /etc/systemd/system/azure-cloud-hsm.service. 서비스로 실행할 수 있도록 azcloudhsm_client 하려면 미리 정의된 azure-cloud-hsm.service 파일을 사용합니다.

구성을 systemd 다시 로드하고 서비스를 사용하도록 설정하여 지속적으로 실행되도록 합니다. 다음 단계를 수행합니다.

  1. 터미널 창을 열고 디렉터리를 /etc/systemd/systemCloud HSM 서비스 단위 파일이 있는 위치로 변경합니다.

    cd /etc/systemd/system
    
  2. Cloud HSM 클라이언트 서비스를 시작하고 사용하도록 설정합니다.

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Cloud HSM 클라이언트 서비스의 상태를 확인합니다.

    sudo systemctl status azure-cloud-hsm.service
    
  4. systemd 구성을 다시 로드합니다.

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux(수동)

클라이언트 디먼이 실행 중이 아니면 시작하십시오.

sudo ./azcloudhsm_client azcloudhsm_client.cfg

다음 명령을 사용하여 백그라운드에서 클라이언트 디먼을 실행하도록 선택할 수도 있습니다. 또는 클라이언트 디먼을 서비스로 실행하여 항상 실행되도록 할 수 있습니다.

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

MSI 패키지를 사용하여 Azure Cloud HSM SDK를 설치한 경우 클라이언트는 이미 서비스로 실행되도록 구성되어 있습니다. 클라이언트가 실행되고 있지 않으면 열고 Services.mscMicrosoft Azure Cloud HSM 클라이언트 서비스를 마우스 오른쪽 단추로 클릭한 다음 시작을 선택할 수 있습니다.

Windows(수동)

클라이언트 디먼이 실행되고 있지 않은 경우, 시작합니다.

cd C:\Program Files\Microsoft Azure Cloud HSM Client SDK 
.\azcloudhsm_client.exe .\azcloudhsm_resource.cfg 

Linux용 PKCS#11 라이브러리는 클라이언트 구성을 찾는 방법을 어떻게 알 수 있나요?

PKCS#11 라이브러리는 애플리케이션을 실행하고 PKCS#11 라이브러리를 사용하는 애플리케이션 서버에 파티션 소유자 인증서(PO.crt)의 복사본이 있어야 하므로 클라이언트 구성을 찾는 방법을 알고 있습니다. 파티션 소유자 인증서 외에도 다음을 수행합니다.

  • SDK가 설치된 애플리케이션 서버에서 /azcloudhsm_client/azcloudhsm_client.cfg를 업데이트하여(즉, hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net) Azure Cloud HSM 배포를 가리키도록 해야 합니다.
  • 도구는 azcloudhsm_client Azure Cloud HSM 배포에 연결하는 애플리케이션 서버에서 실행되고 있어야 합니다.
  • 구문을 <username>:<password>사용하여 PKCS#11 애플리케이션 내에서 PIN을 지정해야 합니다. 이 PIN은 C_Login Azure Cloud HSM 배포를 호출하는 데 사용됩니다.
  • Azure Cloud HSM용 PKCS#11 라이브러리를 사용하려면 pkcs11_headers/include/cryptoki.hpkcs11_headers/include/pkcs11t.h를 PKCS#11 애플리케이션에 포함해야 합니다.

Windows용 PKCS#11 라이브러리(azcloudhsm_pkcs11.dll)는 클라이언트 구성을 찾는 방법을 어떻게 알 수 있나요?

Azure Cloud HSM Windows SDK의 파일은 azcloudhsm_pkcs11.dll 애플리케이션을 실행하고 PKCS#11 라이브러리를 사용하는 애플리케이션 서버에 파티션 소유자 인증서(PO.crt)의 복사본이 있어야 하므로 클라이언트 구성을 찾는 방법을 알고 있습니다. 파티션 소유자 인증서 외에도 다음을 수행합니다.

  • SDK가 설치된 애플리케이션 서버에서 /azcloudhsm_client/azcloudhsm_client.cfg을(를) Azure Cloud HSM 배포(즉, hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net)를 가리키도록 업데이트해야 합니다.
  • 이 도구는 azcloudhsm_client Azure Cloud HSM 배포에 연결하는 애플리케이션 서버에서 실행되어야 합니다.
  • 구문을 <username>:<password>사용하여 PKCS#11 애플리케이션 내에서 PIN을 지정해야 합니다. 이 PIN은 C_Login을(를) 귀하의 Azure Cloud HSM 배포에 호출하는 데 사용됩니다.
  • PKCS#11 애플리케이션에 pkcs11_headers\include\cryptoki.hpkcs11_headers\include\pkcs11t.h을 포함해야 Azure Cloud HSM용 PKCS#11 라이브러리를 사용할 수 있습니다.

키 또는 키 저장소를 설정하려고 할 때 PKCS#11 오류가 발생하는 이유는 무엇인가요?

Azure Cloud HSM 클라이언트가 실행 중인지 확인합니다(sudo ./azcloudhsm_client azcloudhsm_client.cfg). 잘못된 사용자, 잘못된 암호, 유동 보안 클라이언트가 실행되지 않거나 연결에 실패한 클라이언트는 다음과 같은 오류가 발생할 수 있습니다.

Error Message:ERROR at line 1:
ORA-28407: Hardware Security Module failed with PKCS#11 error
CKR_GENERAL_ERROR(5)

PKCS#11 라이브러리(azcloudhsm_pkcs11.dll)는 OpenSC와 어떻게 통합됩니까?

중요하고 민감한 특성을 접근할 수 없으므로 OpenSC(오픈 소스 스마트 카드) 도구를 사용할 때는 --sensitive--private 인수를 사용해야 합니다. 이러한 인수가 없으면 OpenSC 도구는 중요한 특성과 프라이빗 특성을 0.로 설정합니다. Azure Cloud HSM은 항상 중요한 프라이빗 동작을 적용하기 때문에 이러한 특성은 예외를 생성합니다.

다음은 AES(Advanced Encryption Standard) 래핑 예제입니다.

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keygen --key-type AES:32*

ECC(타원 곡선 암호화) P521 예제는 다음과 같습니다.

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keypairgen --key-type EC:prime256v1 --usage-sign

Azure Cloud HSM에 대한 SSL/TLS 오프로드

다음 섹션에서는 SSL(Secure Sockets Layer) 또는 TLS(전송 계층 보안) 처리의 오프로드와 관련된 질문에 답변합니다.

Azure Cloud HSM용 OpenSSL 엔진은 SSL/TLS 오프로드에 대해 PKCS#11을 지원하나요?

아니요. Azure Cloud HSM용 OpenSSL 엔진은 SSL/TLS 오프로드에 대해 PKCS#11을 지원하지 않습니다. SSL/TLS 오프로드에 PKCS#11이 필요한 고객은 Azure Managed HSM용 TLS 오프로드 라이브러리를 사용해야 합니다.

azcloudhsm_util을 실행할 때 "소켓 연결에 실패했습니다. LIQUIDSECURITY: 디먼 소켓 연결 오류"라는 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 azcloudhsm_client가 실행되지 않고 있음을 시사합니다. azcloudhsm_client Azure Cloud HSM 도구가 제대로 실행되도록 실행 중인지 확인합니다. 서비스로 실행 중인지 확인하거나 별도의 터미널에서 다음 명령 중 하나를 수동으로 실행하여 시작할 azcloudhsm_client 수 있습니다.

DEB 또는 RPM을 사용하여 Azure Cloud HSM SDK를 설치한 경우 클라이언트는 서비스로 실행되도록 자동으로 구성되지 않습니다. 설치하는 동안 SDK에는 서비스 단위 파일이 포함됩니다 /etc/systemd/system/azure-cloud-hsm.service. 서비스로 실행할 수 있도록 azcloudhsm_client 하려면 미리 정의된 azure-cloud-hsm.service 파일을 사용합니다.

구성을 systemd 다시 로드하고 서비스를 사용하도록 설정하여 지속적으로 실행되도록 합니다. 다음 단계를 수행합니다.

  1. 터미널 창을 열고 디렉터리를 /etc/systemd/systemCloud HSM 서비스 단위 파일이 있는 위치로 변경합니다.

    cd /etc/systemd/system
    
  2. Cloud HSM 클라이언트 서비스를 시작하고 사용하도록 설정합니다.

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Cloud HSM 클라이언트 서비스의 상태를 확인합니다.

    sudo systemctl status azure-cloud-hsm.service
    
  4. systemd 구성을 다시 로드합니다.

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux(수동)

클라이언트 데몬이 실행 중이지 않으면 시작하십시오.

sudo ./azcloudhsm_client azcloudhsm_client.cfg

다음 명령을 사용하여 백그라운드에서 클라이언트 디먼을 실행하도록 선택할 수도 있습니다. 또는 클라이언트 디먼을 서비스로 실행하여 항상 실행되도록 할 수 있습니다.

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

"환경 변수 azcloudhsm_password가 설정되지 않았습니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 필수 구성 요소 환경 변수 azcloudhsm_password 가 구성되지 않음을 나타냅니다. 이 문제를 해결하려면 환경 변수를 azcloudhsm_passwordcryptouser:password으로 설정합니다.

올바른 암호화 사용자 및 암호를 반영하도록 환경 변수를 업데이트합니다.

export azcloudhsm_password="cu1:user1234"

키를 가져오려고 할 때 "키/토큰을 찾을 수 없음" 또는 "잘못된 키 핸들/토큰"이라는 오류 메시지가 표시되는 이유는 무엇인가요?

오류 메시지는 지정된 래핑 키 핸들(KEK 핸들 ID)이 올바르지 않음을 나타냅니다. 매개 변수 -f 는 가져올 키가 포함된 파일 이름을 지정하는 반면 -w 래핑 키 핸들을 지정합니다. 사용자가 생성한 KEK를 만드는 동안 -w 값은 사용자가 생성한 KEK ID의 키 핸들 ID여야 합니다.

azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 importPrivateKey -l importTestKey -f key.pem -w 262150

NGINX 원본을 구성하려고 할 때 "/configure: error: C 컴파일러 참조를 찾을 수 없습니다"라는 오류 메시지가 표시되는 이유는 무엇인가요?

오류 메시지는 명령을 실행할 configure 때 시스템에서 C 컴파일러가 누락되었음을 나타냅니다. 설치에 따라 다음 명령을 실행한 후, openssl libssl-devzlib1g zlib1g-dev을 설치해야 할 수도 있습니다. 이러한 항목은 종속성입니다.

Red Hat 기반 시스템(YUM 사용)

sudo yum update
sudo yum groupinstall "Development Tools"

Red Hat 기반 시스템(DNF 사용)

sudo dnf update
sudo dnf install "Development Tools"

Ubuntu 기반 시스템(APT 사용)

sudo apt update  
sudo apt install build-essential 

"/configure: 오류: SSL 모듈에 OpenSSL 라이브러리가 필요합니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 NGINX에 대해 SSL 모듈을 사용하도록 설정하려면 OpenSSL 라이브러리가 필요하다는 것을 나타냅니다. 이 문제를 해결하려면 다음 명령을 실행한 다음 다시 실행 configure 합니다.

sudo apt-get install libssl-dev

"/configure: 오류: HTTP gzip 모듈에 zlib 라이브러리가 필요합니다"라는 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 NGINX의 HTTP gzip 모듈에 zlib 라이브러리가 필요했음을 나타냅니다. 이 문제를 해결하려면 다음 명령을 실행한 다음 다시 실행 configure 합니다.

sudo apt-get install zlib1g-dev

"HSM 오류: RET_USER_LOGIN_FAILURE" 오류 메시지가 나타나는 이유는 무엇인가요?

오류 메시지는 암호화 작업을 시도하는 하나 이상의 노드에 지정된 사용자가 존재하지 않음을 나타냅니다. Azure Cloud HSM은 3개의 노드 클러스터로 작동하지만 로그인이 실패한 노드로 작업이 전달되었습니다.

이러한 경우, AzureCloudHSM-ClientSDK 디렉터리 내에 critical_err_info_ 파일이 생성됩니다. 파일에는 "상태: HSM 오류: 이 사용자가 없습니다."가 표시됩니다.

이 오류를 완화하려면 Azure Cloud HSM 배포의 세 노드 모두에 복제되는 CU(암호화 사용자)를 만들어야 합니다. 다음 예제에서는 시작 azcloudhsm_mgmt_util 및 관리자가 CO(암호화 책임자) 사용자로 로그인하는 방법을 보여 줍니다. 그런 다음, CU 역할을 가진 cu1 사용자를 만듭니다.

sudo ./azcloudhsm_mgmt_util ./azcloudhsm_mgmt_util.cfg
loginHSM CO admin adminpassword 
createUser CU cu1 user1234
logoutHSM
loginHSM CU cu1 user1234

만든 CRT, CSR 또는 키 파일의 내용을 표시하려면 어떻게 해야 하나요?

터미널에서 만든 인증서(CRT), CSR(인증서 서명 요청) 또는 키 파일의 내용을 표시하려면 다음 명령을 사용합니다.

cat filename.key

PEM(Privacy Enhanced Mail) 파일에 포함된 X.509 인증서에 대한 자세한 정보를 표시하려면 다음 명령을 사용합니다. PEM 파일에 프라이빗 키 또는 다른 형식의 데이터가 포함된 경우 그에 따라 명령을 조정해야 할 수 있습니다.

openssl x509 -in filename.pem -text -noout

CSR에 대한 자세한 정보를 표시하려면 다음 명령을 사용합니다. 이 정보에는 주체, 공개 키 및 요청에 포함된 모든 특성이 포함됩니다.

openssl req -in filename.csr -text -noout

RSA(Rivest-Shamir-Adleman) 프라이빗 키에 대한 자세한 정보를 표시하려면 다음 명령을 사용합니다. 이 정보에는 키의 모듈러스, 공용 지수 및 기타 매개 변수가 포함됩니다.

openssl rsa -in filename.key -text -noout

EC(타원 곡선) 프라이빗 키에 대한 자세한 정보를 표시하려면 다음 명령을 사용합니다. 곡선 매개 변수, 프라이빗 키 값 및 기타 관련 정보를 표시합니다.

openssl ec -in filename.key -text -noout

Azure Cloud HSM에서 서명을 위해 ED25519 키 쌍을 생성하려면 어떻게 해야 하나요?

ED25519 키는 일반적으로 자체 서명된 인증서나 프라이빗 키를 직접 사용하는 인증서 서명 프로세스에 사용됩니다. Azure Cloud HSM용 OpenSSL 엔진을 사용하여 azcloudhsm_util ED25519 키 쌍을 생성할 수 있습니다.

중요합니다

openssl genpkey 또는 openssl ecparam를 사용하지 않는 것이 좋습니다. openssl genpkey 또는 openssl ecparam-engine azcloudhsm_openssl를 사용하여 ED25519 또는 ECCKeyPair 키를 생성해도 HSM 키가 생성되지 않습니다. 대신 소프트웨어 키를 생성합니다. ED25519 또는 다른 EC 키 형식이 필요한 경우 HSM 내에서 키를 만드는 데 사용해야 azcloudhsm_util 합니다.

Openssl genpkey 암호화 openssl ecparam 키를 생성하기 위한 OpenSSL 명령이지만 서로 다른 용도로 사용되며 서로 다른 키 형식을 지원합니다. RSA, DSA, ECDSA 및 ED25519 키를 포함하여 광범위한 비대칭 암호화 키를 생성해야 하는 경우에 사용합니다 openssl genpkey . prime256v1, secp384r1 또는 secp521r1과 같은 ECDSA(타원 곡선 암호화 키)를 생성하는 데 특별히 사용합니다 openssl ecparam .

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 28 -l labelED25519Test

Azure Cloud HSM OpenSSL 엔진을 사용하여 CSR을 생성하기 전에 azcloudhsm_util 사용하여 RSA 및 EC 키를 생성할 수 있나요?

예. 다음 azcloudhsm_util 명령을 실행하여 RSA 또는 EC 키를 만든 다음 프라이빗 키를 가짜 PEM 형식으로 추출할 수 있습니다. 만든 RSA 또는 EC 키의 프라이빗 키 핸들로 {PRIVATE_KEY_HANDLE}를 대체합니다.

PEM 형식의 프라이빗 키 메타데이터 파일에는 중요한 프라이빗 키 자료가 포함되어 있지 않습니다. 메타데이터는 프라이빗 키를 식별하고 Azure Cloud HSM용 OpenSSL 엔진만 이 파일을 이해합니다.

이 명령을 사용하여 RSA 키를 만듭니다.

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genRSAKeyPair -m 2048 -e 65537 -l labelRSATest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

다음 명령을 사용하여 EC 키를 만듭니다.

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 2 -l labelECTest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

Azure Cloud HSM용 SQL Server EKM

다음 섹션에서는 SQL Server의 EKM(확장 가능 키 관리) 기능과 관련된 질문에 답변합니다.

Azure Cloud HSM용 SQL Server EKM 공급자가 대칭 키를 지원하나요?

아니요. SQL Server는 투명한 데이터 암호화를 위한 대칭 키를 지원하지 않습니다. 비대칭 키만 지원됩니다.

Azure Cloud HSM용 SQL Server EKM 공급자가 Linux의 SQL Server를 지원하나요?

아니요. Azure Cloud HSM용 SQL Server EKM 공급자는 Windows Server만 지원합니다.

Azure Cloud HSM용 SQL Server EKM 공급자가 SQL Server SaaS/PaaS를 지원하나요?

아니요. Azure Cloud HSM은 IaaS(Infrastructure as a Service)입니다. SaaS(Software as a Service) 또는 PaaS(Platform as a Service) 고객은 Azure SQL Database 및 Azure SQL Managed Instance에 대한 투명한 데이터 암호화를 지원하는 Azure Managed HSM을 사용해야 합니다.

Azure Cloud HSM용 SQL Server EKM 공급자가 여러 로그인, 자격 증명 및 연결을 지원하나요?

Azure Cloud HSM용 SQL Server EKM 공급자의 경우 로그인 또는 SQL 연결이 제한되며 단일 자격 증명만 할당할 수 있습니다.

"오류: 암호화 공급자를 초기화할 수 없습니다."라는 오류 메시지가 나타나는 이유는 무엇인가요? 공급자 오류 코드: 1 (실패 - 자세한 내용은 EKM 공급자 참조)"?

이 일반적인 오류는 SQL Server를 설치한 후 Azure Cloud HSM용 MSI 패키지를 실행할 때 발생할 수 있습니다. SQL Server를 다시 시작하면 오류가 사라집니다. 이 시점에서 Azure Cloud HSM용 MSI 패키지를 실행할 때 만든 환경 변수 및 설정을 선택합니다.

Azure Cloud HSM과 AD CS 통합

다음 섹션에서는 AD CS(Active Directory Certificate Services)와 관련된 질문에 답변합니다.

제공된 예제를 사용하여 Microsoft KSP에서 인증서를 마이그레이션하려고 할 때 "openssl-ca.cnf 파일을 열 수 없습니다"라는 오류 메시지가 표시되는 이유는 무엇인가요?

이 오류는 일반적으로 KSP(키 스토리지 공급자)에서 인증서를 마이그레이션하려고 할 때 파일이 없는 경우에 openssl-ca.cnf 발생합니다. 파일을 직접 만들거나 다른 원본에서 가져올 수 있습니다.

Azure Cloud HSM을 SaaS 솔루션으로 사용하는 회사 네트워크에서 내 서명 서버를 사용할 수 있나요?

Azure Cloud HSM은 IaaS 전용입니다. 하지만 회사 네트워크에서는 자체 서명 서버를 사용할 수 있습니다.

로컬 네트워크 게이트웨이에서 사이트-사이트 또는 지점 및 사이트 간의 VPN 연결을 구성할 수 있습니다. 이는 가장 일반적인 방법이며 대부분의 사용 사례에 적합합니다. 회사 네트워크의 온-프레미스 서버와 Azure Cloud HSM이 배포된 위치 간에 VPN 연결을 설정합니다. 자세한 내용은 자습서: Azure Portal에서 사이트 및 사이트 간의 VPN 연결 만들기를 참조하세요.

온-프레미스에서 서명 서버에 대한 AD CS를 가질 수 있습니다. SDK는 온-프레미스 호스트에 있어야 하며 클라이언트는 Azure 가상 네트워크의 개인 IP 주소에 연결할 수 있어야 합니다. 적용되는 요구 사항은 다음과 같습니다.

  • Azure Cloud HSM용 CNG(Cryptography API: Next Generation) 공급자가 있는 동일한 컴퓨터에서 실행 azcloudhsm_client 해야 합니다.
  • 이 도구는 azcloudhsm_client Azure 가상 네트워크의 개인 IP와 통신할 수 있어야 합니다.

AD CS를 테스트할 때 RSA 키 쌍을 생성한 다음 인증서 관리를 사용하여 서명했습니다.

Cloud HSM 공급자(예: azcloudhsm_util)를 통해 서명하거나 확인하는 것이 유일하게 수락되는 방법인가요?

아니요. Azure Cloud HSM SDK 및 제공하는 인터페이스(예: PKCS#11, CNG, KSP, JCE 및 OpenSSL 엔진)를 사용하는 것이 좋습니다. 서명 또는 확인 작업에 서명 도구(signtool.exe)를 사용할 수도 있습니다.

AD CS는 Azure Cloud HSM용 CNG 또는 KSP를 사용하도록 구성됩니다.

signtool.exe통해 Cloud HSM에서 서명/확인을 사용할 수 있나요?

예. 서명 도구는 자동으로 클라우드 HSM 배포로 이동합니다. 를 사용할 azcloudhsm_util필요가 없습니다. 고객이 AD CS 구성을 신속하게 테스트하고 유효성을 검사할 수 있도록 지침에 azcloudhsm_util을 포함했습니다.

테스트를 위해 Cloud HSM의 키 쌍을 기반으로 자체 서명된 인증서를 사용할 수 있나요?

예. 테스트 목적으로 키 쌍을 기반으로 자체 서명된 인증서를 사용할 수 있습니다.

로컬 Windows 인증서 저장소를 통해 인증서를 사용할 수 있도록 하는 통합 또는 방법이 있나요?

이 목적을 위해 certreq.exe 도구를 사용할 수 있습니다.

Azure Cloud HSM용 CNG 및 KSP 공급자는 어떤 알고리즘을 지원하나요?

  • RSA 암호화 및 암호 해독
  • SHA1, SHA256, SHA384, SHA512 및 MD5 해시 알고리즘을 사용하여 RSA 서명
  • ECC 곡선 ECDSA_P256, ECDSA_P384 및 ECDSA_P521

Windows에서 관리자가 아닌 사용자의 프라이빗 키 권한을 변경하거나 관리하려면 어떻게 해야 하나요?

Azure Cloud HSM용 KSP 또는 CNG를 사용하여 키를 생성하는 경우 관리자에게만 프라이빗 키에 대한 액세스 권한이 부여됩니다. MMC(Microsoft Management Console)를 통해 보안 정보를 보거나 권한을 수정하는 데 어려움이 있을 수 있습니다. 이 동작은 의도적인 동작입니다.

기본적으로 KSP 또는 CNG를 사용하는 경우 새 키에 대한 프라이빗 키 파일에 대한 액세스는 관리자로 SYSTEM 제한됩니다. 특정 프라이빗 키 파일에 대해 수정되지 않은 사용자에게 액세스를 제공해야 하는 경우 프라이빗 키의 파일 이름을 식별하고 권한을 직접 할당합니다. 프라이빗 키는 Windows for Cloud HSM 키의 디렉터리에 C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP 있습니다.

azcloudhsm_ksp_import_key.exe는 무슨 역할을 하나요?

Cloud HSM KSP에서 비대칭 키를 가져오거나 나타내는 데 사용할 azcloudhsm_ksp_import_key.exe 수 있습니다.

지원되는 알고리즘은 RSA(256의 배수로 2048~4096), ECDSA, ECDH입니다. ECDSA 및 ECDH의 경우 지원되는 곡선은 P256, P384 및 P521입니다. 키를 가져오거나 클라우드 HSM KSP에 표시한 후에는 Cloud HSM KSP에서만 키를 관리해야 합니다.

가상 네트워크를 통해 연결할 수 있습니다. 다음 도구를 사용합니다.

  • 이 도구는 azcloudhsm_mgmt_util 작업(HSM의 관리자 작업)을 실행합니다. PCO(파티션 암호화 책임자) 자격 증명이 필요합니다.
  • 도구(클라이언트 디먼)는 azcloudhsm_client PCU(파티션 암호화 사용자) 자격 증명을 통해 연결합니다.

도구와 애플리케이션은 azcloudhsm_client 가상 네트워크 내의 동일한 VM에서 실행해야 합니다. 그 이유는 애플리케이션이 RPC(원격 프로시저 호출)를 통해 클라이언트 프로세스에 연결하기 때문입니다.

Azure Cloud HSM 서비스는 포트 443(azcloudhsm_client 요청), 444(azcloudhsm_mgmt_util 요청) 및 445(서버 간 통신)에서 수신 대기합니다.

프런트 엔드 포트는 TCP over TLS 프로토콜에 대해 2224 및 2225입니다. 이러한 포트는 고객 전용입니다.