Sdílet prostřednictvím


Zabezpečení zpráv pomocí zabezpečení přenosu

Tato část popisuje zabezpečení přenosu služby Řízení front zpráv (MSMQ), které můžete použít k zabezpečení zpráv odesílaných do fronty.

Poznámka:

Než si projdete toto téma, doporučujeme si přečíst koncepty zabezpečení.

Následující obrázek obsahuje koncepční model komunikace ve frontě pomocí wcf (Windows Communication Foundation). Tento obrázek a terminologie slouží k vysvětlení konceptů zabezpečení přenosu.

Queued Application Diagram

Při odesílání zpráv zařazených do fronty pomocí WCF se NetMsmqBindingzpráva WCF připojí jako tělo zprávy MSMQ. Zabezpečení přenosu zabezpečuje celou zprávu MSMQ (hlavičky nebo vlastnosti zprávy MSMQ a text zprávy). Vzhledem k tomu, že se jedná o tělo zprávy MSMQ, zabezpečení přenosu také zabezpečuje zprávu WCF.

Klíčovým konceptem zabezpečení přenosu je, že klient musí splňovat požadavky na zabezpečení, aby se zpráva dostala do cílové fronty. Je to na rozdíl od zabezpečení zprávy, kdy je zpráva zabezpečená pro aplikaci, která zprávu obdrží.

Zabezpečení přenosu pomocí NetMsmqBinding a MsmqIntegrationBinding vliv na to, jak jsou zprávy MSMQ zabezpečeny při přenosu mezi frontou přenosu a cílovou frontou, kde je zabezpečená:

  • Podepsáním zprávy zajistíte, že s ní nebude manipulováno.

  • Zašifrováním zprávy zajistíte, že ji nelze zobrazit ani manipulovat. Tato možnost se doporučuje, ale nepovinná.

  • Správce cílové fronty, který identifikuje odesílatele zprávy pro nepovržení.

V MSMQ, nezávisle na ověřování, má cílová fronta seznam řízení přístupu (ACL) ke kontrole, jestli má klient oprávnění odeslat zprávu do cílové fronty. Přijímající aplikace je také kontrolována oprávnění přijímat zprávu z cílové fronty.

Vlastnosti zabezpečení přenosu WCF MSMQ

MSMQ používá k ověřování zabezpečení Systému Windows. Používá identifikátor zabezpečení systému Windows (SID) k identifikaci klienta a při ověřování klienta používá adresářovou službu Active Directory jako certifikační autoritu. To vyžaduje instalaci MSMQ s integrací služby Active Directory. Vzhledem k tomu, že identifikátor SID domény Windows slouží k identifikaci klienta, je tato možnost zabezpečení smysluplná pouze v případě, že klient i služba jsou součástí stejné domény Windows.

MSMQ také umožňuje připojit certifikát se zprávou, která není zaregistrovaná ve službě Active Directory. V tomto případě zajistí, že zpráva byla podepsána pomocí připojeného certifikátu.

WCF poskytuje obě tyto možnosti jako součást zabezpečení přenosu MSMQ a jsou klíčovým pivotem pro zabezpečení přenosu.

Ve výchozím nastavení je zabezpečení přenosu zapnuté.

Vzhledem k těmto základům jsou v následujících částech podrobně popsány vlastnosti zabezpečení přenosu, které NetMsmqBinding jsou součástí a MsmqIntegrationBinding.

Režim ověřování MSMQ

Určuje MsmqAuthenticationMode , jestli chcete k zabezpečení zprávy použít zabezpečení domény Systému Windows nebo externí zabezpečení založené na certifikátech. V obou režimech ověřování používá CertificateValidationMode transportní kanál WCF zařazený do fronty zadaný v konfiguraci služby. Režim ověření certifikátu určuje mechanismus použitý ke kontrole platnosti certifikátu.

Je-li zapnuto zabezpečení přenosu, je WindowsDomainvýchozí nastavení .

Režim ověřování domény systému Windows

Volba použití zabezpečení Systému Windows vyžaduje integraci služby Active Directory. WindowsDomain je výchozí režim zabezpečení přenosu. Když je tato možnost nastavená, kanál WCF připojí identifikátor SID systému Windows ke zprávě MSMQ a použije jeho interní certifikát získaný ze služby Active Directory. MSMQ používá tento interní certifikát k zabezpečení zprávy. Správce přijímající fronty pomocí služby Active Directory vyhledá a vyhledá odpovídající certifikát k ověření klienta a zkontroluje, že identifikátor SID také odpovídá identifikátoru SID klienta. Tento krok ověřování se spustí, pokud se certifikát, buď interně vygenerovaný v případě WindowsDomain režimu ověřování, nebo externě vygenerovaný v případě Certificate režimu ověřování, připojí ke zprávě, i když cílová fronta není označená jako vyžadování ověřování.

Poznámka:

Při vytváření fronty můžete frontu označit jako ověřenou frontu, která označuje, že fronta vyžaduje ověření klienta odesílajícího zprávy do fronty. Tím se zajistí, že ve frontě nebudou přijaty žádné neověřené zprávy.

Identifikátor SID připojený ke zprávě se také používá ke kontrole seznamu ACL cílové fronty, aby se zajistilo, že klient má autoritu odesílat zprávy do fronty.

Režim ověřování certifikátů

Volba režimu ověřování certifikátů nevyžaduje integraci služby Active Directory. Ve skutečnosti platí, že v některých případech, například při instalaci MSMQ v režimu pracovní skupiny (bez integrace služby Active Directory) nebo při použití přenosového protokolu PROTOKOLU SRMP (Soap Reliable Messaging Protocol) k odesílání zpráv do fronty, funguje pouze Certificate .

Při odesílání zprávy WCF pomocí Certificatekanálu WCF nepřipojí identifikátor SID systému Windows ke zprávě MSMQ. Proto musí seznam ACL cílové fronty umožňovat Anonymous uživatelům přístup k odesílání do fronty. Přijímající správce front zkontroluje, jestli byla zpráva MSMQ podepsána certifikátem, ale neprovádí žádné ověřování.

Certifikát se svými deklaracemi identity a informacemi o identitě se naplní v ServiceSecurityContext přenosovém kanálu WCF ve frontě. Služba může tyto informace použít k provedení vlastního ověřování odesílatele.

Úroveň ochrany MSMQ

Úroveň ochrany určuje, jak chránit zprávu MSMQ, aby se zajistilo, že není manipulováno. Je zadán v MsmqProtectionLevel vlastnosti. Výchozí hodnota je Sign.

Úroveň ochrany podepisovat

Zpráva MSMQ je podepsána pomocí interně generovaného certifikátu při použití WindowsDomain režimu ověřování nebo externě generovaného certifikátu při použití Certificate režimu ověřování.

Úroveň ochrany podepsat a šifrovat

Zpráva MSMQ je podepsána pomocí interně generovaného certifikátu při použití WindowsDomain režimu ověřování nebo externě generovaného certifikátu při použití Certificate režimu ověřování.

Kromě podepsání zprávy je zpráva MSMQ šifrovaná pomocí veřejného klíče certifikátu získaného ze služby Active Directory, který patří do správce přijímající fronty, který je hostitelem cílové fronty. Správce odesílající fronty zajišťuje šifrování zprávy MSMQ při přenosu. Přijímající správce front dešifruje zprávu MSMQ pomocí privátního klíče jeho interního certifikátu a uloží zprávu do fronty (pokud je ověřená a autorizovaná) ve formátu prostého textu.

Poznámka:

K zašifrování zprávy je vyžadován přístup ke službě Active Directory (UseActiveDirectory vlastnost NetMsmqBinding musí být nastaven na true) a lze ji použít s oběma Certificate a WindowsDomain.

Žádná úroveň ochrany

To je implicitní, pokud MsmqProtectionLevel je nastavena na None. Tato hodnota nemůže být platná pro žádné jiné režimy ověřování.

Poznámka:

Pokud je zpráva MSMQ podepsaná, nástroj MSMQ zkontroluje, jestli je zpráva podepsaná pomocí připojeného certifikátu (interního nebo externího) nezávisle na stavu fronty, tj. ověřené frontě nebo ne.

Šifrovací algoritmus MSMQ

Šifrovací algoritmus určuje algoritmus, který se má použít k šifrování zprávy MSMQ v přenosu. Tato vlastnost se používá pouze v případě, že MsmqProtectionLevel je nastavena na EncryptAndSignhodnotu .

Podporované algoritmy jsou RC4Stream a AES výchozí hodnota je RC4Stream.

Algoritmus můžete použít AES pouze v případě, že má odesílatel nainstalovaný MSMQ 4.0. Kromě toho musí být cílová fronta také hostovaná v MSMQ 4.0.

Hashovací algoritmus MSMQ

Algoritmus hash určuje algoritmus použitý k vytvoření digitálního podpisu zprávy MSMQ. Správce přijímající fronty používá tento stejný algoritmus k ověření zprávy MSMQ. Tato vlastnost se používá pouze v případě, že MsmqProtectionLevel je nastavena nebo SignEncryptAndSign.

Podporované algoritmy jsou MD5, SHA1, SHA256a SHA512. Výchozí hodnota je SHA1.

Kvůli problémům se kolizí s MD5/SHA1 doporučuje Microsoft sha256 nebo lépe.

Viz také