정보: MSMQ 용 개인 및 공개 키 저장소

적용 대상: Windows Server, version 2004, all editionsWindows Server, version 1903, all editionsWindows Server 2019, all editions

요약


이 문서에서는 메시지 인증 및 암호화를 위해 MSMQ (Microsoft Message Queue)에서 사용 하는 개인 및 공개 키의 저장소에 대해 설명 합니다.

추가 정보


키 쌍 (공개-개인)은 Crypto API에 있으며 키 컨테이너 개체입니다. 응용 프로그램에서는 키 컨테이너가 구현 되는 위치와 방법을 알 필요가 없습니다. 키 컨테이너 개체는 키를 포함 하 고 게시 된 인터페이스에서 액세스 되는 불투명 개체 여야 합니다.기본 CSP (암호화 서비스 공급자)는 레지스트리의 키 컨테이너를 구현 합니다. CSP는 HKEY_CURRENT_USER 또는 HKEY_LOCAL_MACHINE에 있을 수 있습니다. 위치는 CryptAcquireContext에 플래그를 전달 하 여 결정 됩니다. 다른 Csp는 스마트 카드와 같은 다른 위치에서 키 컨테이너를 구현할 수 있습니다. MSMQ는 키 자체를 사용 하는 것을 제외 하 고 항상 Crypto API를 사용 하 여 작동 하는 것으로 가정 합니다.MSMQ는 기본 CSP를 사용 하 여 데이터를 암호화 하거나 해독 합니다. CSP의 현재 구현에서는 개인 키가 HKLM\Software\Microsoft\Cryptography\MachineKeys\MSMQ에 저장 되지만,이는 모든 응용 프로그램에 대 한 관련 정보가 되어서는 안 됩니다.인증의 경우 개인 및 공개 키가 인증서에 존재 한다고 생각 하는 것은 일반적인 실수입니다. 인증서는 공개 정보의 일부입니다. 인증서를 받는 사람에 관계 없이 그러나 개인 키는 최대한 안전한 위치에 유지 해야 하는 가장 비밀 정보입니다.모든 인증서에 대해 몇 가지 키 컨테이너가 연결 되어 있어야 합니다. 이 키 컨테이너에는 인증서와 연결 된 공개 키와 개인 키가 포함 되어 있습니다. 공개 키의 복사본은 다른 많은 정보와 함께 인증서에도 포함 됩니다.또한 Crypto API는 인증서 저장소 라고 하는 개체를 정의 합니다. 인증서 저장소에는 각 인증서에 대 한 인증서 및 추가 정보 (예: 인증서와 연결 된 키에 대 한 정보)가 포함 되어 있습니다. 이 정보는 인증서 및 인증서와 연결 된 특정 키 컨테이너의 id와 함께 사용 되는 특정 CSP의 id입니다.인증서 저장소는 여러 위치, 레지스트리, 파일, 메모리 등에 상주할 수 있습니다. MSMQ는 내부 인증서를 HKCU\Software\Microsoft\MSMQ\CertStore. 아래의 인증서 저장소에 저장 합니다. 연결 된 키는 HKCU\Software\Microsoft\Cryptography\UserKeys\MSMQ.에 있습니다. 이러한 위치는 어떤 응용 프로그램에도 관련 되어서는 안 됩니다. MSMQ는 키 자체를 직접 사용 하지 않고 항상 Crypto API와 함께 작동 합니다.또한 MSMQ는 큐 관리자 (QM)의 공개 키를 메시지 큐 정보 저장소 (MQIS)에 저장 합니다. 응용 프로그램은 PROPID_QM_ENCRYPTION_PK를 사용 하 여 MQGetMachineProperties ()를 호출 하 여이 공개 키를 검색할 수 있습니다. 통화 사용자는 컴퓨터의 공개 키를 성공적으로 검색 하기 위해 컴퓨터에 부여 된 "보안 받기" 권한이 있어야 합니다. PROPID_QM_ENCRYPTION_PK는 사용자에 게 컴퓨터에 대 한 "권한 부여" 권한이 있어야 하는 다른 모든 속성과는 다릅니다.MSMQ는 내부적으로이 공개 키를 사용 하 여 메시지를 암호화 합니다. QM는 MQIS에서 대상 컴퓨터의 공개 키를 검색 합니다. 대부분의 경우 QM가 로컬 시스템 계정으로 실행 되므로 "사용 권한 가져오기" 권한은 모든 사람에 게 부여 되어야 합니다. 그렇지 않으면 QM에서 공개 키를 검색 하지 않으므로 메시지를 암호화 하지 못합니다.

참조


암호화, 공개 키 암호화 및 Microsoft CryptoAPI에 대 한 자세한 내용은 암호화를 참조 하세요.

MSMQ SDK (소프트웨어 개발 키트)에 대 한 자세한 내용은 msmq (메시지 큐)를 참조 하세요.