Udostępnij za pośrednictwem


Zabezpieczanie aplikacji kanałów równorzędnych

Podobnie jak w przypadku innych powiązań w systemie WinFX, NetPeerTcpBinding zabezpieczenia są domyślnie włączone i oferują zarówno zabezpieczenia transportowe, jak i oparte na komunikatach (lub oba). W tym temacie omówiono te dwa typy zabezpieczeń. Typ zabezpieczeń jest określany przez tag trybu zabezpieczeń w specyfikacji powiązania (SecurityMode).

Zabezpieczenia oparte na transporcie

Kanał równorzędny obsługuje dwa typy poświadczeń uwierzytelniania na potrzeby zabezpieczania transportu, z których oba wymagają ustawienia ClientCredentialSettings.Peer właściwości na skojarzonym obiekcie ChannelFactory:

  • Hasło. Klienci używają wiedzy o tajnym haśle do uwierzytelniania połączeń. Jeśli ten typ poświadczeń jest używany, ClientCredentialSettings.Peer.MeshPassword musi mieć prawidłowe hasło i opcjonalnie X509Certificate2 wystąpienie.

  • Certyfikat. Używane jest określone uwierzytelnianie aplikacji. Gdy ten typ poświadczeń jest używany, należy użyć konkretnej implementacji X509CertificateValidator w programie ClientCredentialSettings.Peer.PeerAuthentication.

Zabezpieczenia oparte na komunikatach

Korzystając z zabezpieczeń komunikatów, aplikacja może podpisać komunikaty wychodzące, aby wszystkie osoby odbierające mogły zweryfikować, czy wiadomość jest wysyłana przez zaufaną firmę i że wiadomość nie została naruszona. Obecnie kanał równorzędny obsługuje tylko podpisywanie komunikatów poświadczeń X.509.

Najlepsze praktyki

  • W tej sekcji omówiono najlepsze rozwiązania dotyczące zabezpieczania aplikacji kanału równorzędnego.

Włączanie zabezpieczeń za pomocą aplikacji kanału równorzędnego

Ze względu na rozproszony charakter protokołów kanału równorzędnego trudno jest wymusić członkostwo w siatkach, poufność i prywatność w niezabezpieczonej siatce. Należy również pamiętać, aby zabezpieczyć komunikację między klientami i usługą rozpoznawania nazw. W obszarze Peer Name Resolution Protocol (PNRP) użyj bezpiecznych nazw, aby uniknąć fałszowania i innych typowych ataków. Zabezpieczanie niestandardowej usługi rozpoznawania nazw przez włączenie zabezpieczeń na klientach połączeń używanych do kontaktowania się z usługą rozpoznawania nazw, w tym zabezpieczeń opartych na komunikatach i transportach.

Korzystanie z najmocniejszego możliwego modelu zabezpieczeń

Jeśli na przykład każdy element członkowski siatki musi być zidentyfikowany indywidualnie, użyj modelu uwierzytelniania opartego na certyfikatach. Jeśli to nie jest możliwe, użyj uwierzytelniania opartego na hasłach zgodnie z bieżącymi zaleceniami, aby zapewnić ich bezpieczeństwo. Obejmuje to udostępnianie haseł tylko zaufanym stronom, przesyłanie haseł przy użyciu bezpiecznego nośnika, częste zmienianie haseł i zapewnienie, że hasła są silne (co najmniej osiem znaków, zawiera co najmniej jedną literę z obu przypadków, cyfrę i znak specjalny).

Nigdy nie akceptuj certyfikatów z podpisem własnym

Nigdy nie akceptuj poświadczenia certyfikatu na podstawie nazw podmiotów. Należy pamiętać, że każda osoba może utworzyć certyfikat, a każda osoba może wybrać prawidłową nazwę. Aby uniknąć możliwości fałszowania, zweryfikuj certyfikaty na podstawie poświadczeń urzędu wystawiającego (zaufanego wystawcy lub głównego urzędu certyfikacji).

Korzystanie z uwierzytelniania komunikatów

Użyj uwierzytelniania komunikatów, aby sprawdzić, czy komunikat pochodzi z zaufanego źródła i czy nikt nie manipulował komunikatem podczas transmisji. Bez uwierzytelniania komunikatów złośliwy klient może fałszować lub manipulować komunikatami w siatce.

Przykłady kodu kanału równorzędnego

Scenariusze obejmujące kanał elementu równorzędnego

Zobacz też