Sdílet prostřednictvím


Zabezpečení zpráv pomocí ochrany transportu

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í ilustrace poskytuje koncepční model komunikace ve frontě pomocí Windows Communication Foundation (WCF). Tento obrázek a odborná terminologie slouží k vysvětlení konceptů bezpečnosti přepravy.

Diagram aplikace ve frontě

Při odesílání zpráv zařazených do fronty pomocí WCF je zpráva WCF připojena jako tělo zprávy MSMQ pomocí NetMsmqBinding. 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 zpráva mohla být doručena 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 má vliv na to, jak jsou zprávy MSMQ zabezpečeny při přenosu mezi frontou přenosu a cílovou frontou, kde zabezpečení znamená:

  • 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á.

  • Cílový správce fronty, který identifikuje odesílatele zprávy pro zajištění nepopiratelnosti.

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. Aplikace určená k příjmu zprávy je také kontrolována, zda má 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 následující části podrobně popisují vlastnosti zabezpečení přenosu, kterými NetMsmqBinding a MsmqIntegrationBinding disponují.

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, výchozí nastavení je WindowsDomain.

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 ACL cílové fronty, aby se zajistilo, že klient má oprávnění 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 kanálem WCF s Certificate nepřipojí kanál WCF identifikátor SID systému Windows ke zprávě MSMQ. Proto musí seznam ACL cílové fronty umožňovat uživatelský přístup pro 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, včetně svých nároků a informací o identitě, je naplněn v ServiceSecurityContext pomocí transportního kanálu WCF s frontou. 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 specifikován ve vlastnosti MsmqProtectionLevel. Výchozí hodnota je Sign.

Úroveň ochrany podpisu

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: podepsání a šifrování

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á, MSMQ zkontroluje, zda je zpráva podepsaná připojeným certifikátem (interním nebo externím) nezávisle na stavu fronty, tedy zda je fronta autentizovaná či nikoliv.

Š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 nastaven na EncryptAndSign.

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 nastaveno na Sign nebo EncryptAndSign.

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é