Szyfrowanie podpisów cyfrowych

Domyślnie komunikat jest podpisany i szyfrowany, a podpis jest szyfrowany cyfrowo. Możesz to kontrolować, tworząc powiązanie niestandardowe z wystąpieniem AsymmetricSecurityBindingElement klasy lub SymmetricSecurityBindingElement , a następnie ustawiając MessageProtectionOrder właściwość klasy na MessageProtectionOrder wartość wyliczenia. Wartość domyślna to SignBeforeEncryptAndEncryptSignature. Ten proces trwa od 10 do 40 procent dłużej niż po prostu podpisywanie i szyfrowanie. Wyłączenie szyfrowania podpisu może jednak umożliwić atakującemu odgadnięcie zawartości wiadomości. Jest to możliwe, ponieważ element podpisu zawiera kod skrótu zwykłego tekstu każdej podpisanej części w wiadomości. Na przykład chociaż treść wiadomości jest domyślnie szyfrowana, niezaszyfrowany podpis zawiera kod skrótu treści wiadomości. Jeśli komunikat jest mały, osoba atakująca może być w stanie wyłudić zawartość. Szyfrowanie podpisu zmniejsza lub eliminuje tę możliwość.

W związku z tym wyłącz szyfrowanie podpisu tylko wtedy, gdy wartość zawartości jest niska, a wzrost wydajności będzie znaczący, na przykład podczas wysyłania dużych plików binarnych, które nie mają wpływu na bezpieczeństwo.

Aby wyłączyć podpisywanie cyfrowe

  1. Utwórz element CustomBinding. Aby uzyskać więcej informacji, zobacz How to: Create a Custom Binding Using the SecurityBindingElement (Instrukcje: tworzenie powiązania niestandardowego przy użyciu elementu SecurityBindingElement).

  2. Dodaj element AsymmetricSecurityBindingElement lub do SymmetricSecurityBindingElement kolekcji powiązań.

  3. AsymmetricSecurityBindingElement.MessageProtectionOrder Ustaw właściwość na SignBeforeEncrypt, lub ustaw SymmetricSecurityBindingElement.MessageProtectionOrder właściwość na SignBeforeEncrypt.

Aby uzyskać więcej informacji na temat tworzenia powiązań niestandardowych, zobacz Tworzenie powiązań zdefiniowanych przez użytkownika. Aby uzyskać więcej informacji na temat tworzenia powiązania niestandardowego dla określonego trybu uwierzytelniania, zobacz How to: Create a SecurityBindingElement for a Specified Authentication Mode (Jak utworzyć element SecurityBindingElement dla określonego trybu uwierzytelniania).

Zobacz też