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 opcjonalnieX509Certificate2
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