MSMQ 암호화

MSMQ 암호화

그래서 저는 WCF를 사용하여 비동기적이고 연결이 끊긴 인터넷 메시징을 수행하고 싶습니다. 아마도 Apache ActiveMQ에 대한 배경 지식 때문에 MSMQ를 찾고 있는 것 같습니다.

ActiveMQ에서는 대기열 연결을 암호화하는 것이 간단했습니다. 브로커에 대한 SSL 기반 연결을 선택했으며 브로커와 클라이언트 간의 통신을 보호하기 위한 기본 SSL 계층이 있었습니다. (ActiveMQ 브로커와 함께 WCF 클라이언트를 사용하는 것을 고려해야 합니까?)

MSMQ 암호화 및 MSMQ SSL에 대해 Google을 방문했을 때 비슷한 것을 찾지 못했습니다. 제가 뭔가를 놓치고 있는 것 같나요?

메시지 암호화, HTTPS 사용에 있어서 이상해 보이는 것, Active Directory가 필요한 것 등 다소 복잡해 보이는 것들을 발견했습니다. 하지만 저는 메시지뿐만 아니라 모든 통신을 보호하려고 합니다. 연결이 끊어진 작업이 필요하고 작업할 Active Directory가 없으므로 HTTPS를 바인딩으로 사용하지 않는 것을 선호합니다.

이를 수행하는 가장 좋은 방법은 무엇입니까?

답변1

하다http://blogs.msdn.com/motleyqueue/archive/2007/10/06/complementing-msmq-security-with-wcf.aspx관련성이 있나요? 전송 수준으로 보이는 설정을 암시하고 메시지 암호화도 제안하는 것 같습니다.

답변2

좋습니다. 마침내 비Active Directory MSMQ 암호화 수행에 대한 참조를 찾았습니다. 링크는 다음과 같습니다. 문서를 찾으면 어렵지 않습니다!

이는 MSMQ에서 메시지 암호화를 사용하지만 Active Directory를 사용하지 않는 방법입니다.

http://msdn.microsoft.com/en-us/library/aa395200.aspx

TFA에서:

시연하다

클라이언트는 서비스의 공개 키를 사용하여 메시지를 암호화하고 자체 인증서를 사용하여 메시지에 서명합니다. 큐에서 메시지를 읽는 서비스는 신뢰할 수 있는 사용자 저장소에 있는 인증서를 사용하여 클라이언트 인증서를 인증합니다. 그런 다음 메시지의 암호를 해독하고 해당 메시지를 서비스 작업에 전달합니다.

WCF(Windows Communication Foundation) 메시지는 MSMQ 메시지 본문의 페이로드로 전달되므로 본문은 MSMQ 저장소에서 암호화된 상태로 유지됩니다. 이렇게 하면 메시지가 원치 않게 공개되지 않도록 보호됩니다. MSMQ 자체는 자신이 전달하는 메시지가 암호화되었는지 여부를 인식하지 못합니다.

이 샘플은 MSMQ에서 메시지 수준의 상호 인증을 사용하는 방법을 보여줍니다. 인증서는 대역 외에서 교환됩니다. 서비스와 클라이언트가 동시에 실행될 필요가 없기 때문에 대기 중인 애플리케이션의 경우 항상 그렇습니다.

설명 샘플 클라이언트 및 서비스 코드는 한 가지 차이점을 제외하고 Transacted MSMQ 바인딩 샘플과 동일합니다. 작업 계약에는 보호 수준이라는 주석이 달려 있는데, 이는 메시지가 서명되고 암호화되어야 함을 의미합니다.

관련 정보