Šifrování digitálních podpisů

Ve výchozím nastavení je zpráva podepsaná a šifrovaná a podpis je digitálně zašifrovaný. Můžete to řídit vytvořením vlastní vazby s instancí AsymmetricSecurityBindingElement nebo potom nastavením MessageProtectionOrder vlastnosti buď třídy na hodnotu výčtu MessageProtectionOrderSymmetricSecurityBindingElement. Výchozí hodnota je SignBeforeEncryptAndEncryptSignature. Tento proces trvá 10 až 40 procent déle než pouhé podepisování a šifrování. Zakázání šifrování podpisu ale může útočníkovi umožnit uhodnout obsah zprávy. Je to možné, protože element podpisu obsahuje kód hash prostého textu každé podepsané části zprávy. I když je text zprávy ve výchozím nastavení zašifrovaný, nešifrovaný podpis obsahuje kód hash textu zprávy. Pokud je zpráva malá, útočník může obsah odvodit. Šifrování podpisu snižuje nebo eliminuje tuto možnost.

Proto zakažte šifrování podpisu pouze v případě, že je hodnota obsahu nízká a zvýšení výkonu bude významné, například při odesílání velkých binárních souborů, které nemají vliv na zabezpečení.

Zakázání digitálního podepisování

  1. Vytvoření souboru CustomBinding. Další informace naleznete v tématu Postupy: Vytvoření vlastní vazby pomocí SecurityBindingElement.

  2. Přidejte kolekci AsymmetricSecurityBindingElement vazeb nebo do SymmetricSecurityBindingElement této kolekce vazeb.

  3. AsymmetricSecurityBindingElement.MessageProtectionOrder Nastavte vlastnost na SignBeforeEncrypthodnotu , nebo nastavte SymmetricSecurityBindingElement.MessageProtectionOrder vlastnost na SignBeforeEncrypt.

Další informace o vytváření vlastních vazeb naleznete v tématu Vytváření uživatelsky definovaných vazeb. Další informace o vytvoření vlastní vazby pro konkrétní režim ověřování naleznete v tématu Postupy: Vytvoření SecurityBindingElement pro zadaný režim ověřování.

Viz také