Udostępnij za pośrednictwem


Omówienie zabezpieczeń programu Windows Communication Foundation

Windows Communication Foundation (WCF) to oparta na protokole SOAP platforma programowania rozproszonego, a zabezpieczanie komunikatów między klientami i usługami jest niezbędne do ochrony danych. Program WCF zapewnia wszechstronną i współdziałanie platformę do wymiany bezpiecznych komunikatów na podstawie istniejącej infrastruktury zabezpieczeń oraz uznanych standardów zabezpieczeń dla komunikatów PROTOKOŁU SOAP.

WCF używa pojęć, które są znane, jeśli utworzono bezpieczne, rozproszone aplikacje z istniejącymi technologiami, takimi jak HTTPS, zintegrowane zabezpieczenia systemu Windows lub nazwy użytkowników i hasła do uwierzytelniania użytkowników. Program WCF nie tylko integruje się z istniejącymi infrastrukturami zabezpieczeń, ale także rozszerza rozproszone zabezpieczenia poza domeny tylko systemu Windows przy użyciu bezpiecznych komunikatów PROTOKOŁU SOAP. Rozważ w programie WCF implementację istniejących mechanizmów zabezpieczeń z główną zaletą używania protokołu SOAP jako protokołu oprócz istniejących protokołów. Na przykład poświadczenia identyfikujące klienta lub usługę, takie jak nazwa użytkownika i hasło lub certyfikaty X.509, mają międzyoperacyjne profile protokołu SOAP oparte na formacie XML. Korzystając z tych profilów, komunikaty są wymieniane bezpiecznie, korzystając z otwartych specyfikacji, takich jak podpisy cyfrowe XML i szyfrowanie XML. Aby uzyskać listę specyfikacji, zobacz Web Services Protocols Supported by System-Provided Interoperability Bindings (Protokoły usług sieci Web obsługiwane przez powiązania współdziałania dostarczone przez system).

Innym równoległym elementem jest model obiektów składników (COM) na platformie Windows, który umożliwia bezpieczne, rozproszone aplikacje. Model COM ma kompleksowy mechanizm zabezpieczeń, w którym kontekst zabezpieczeń może być przepływany między składnikami; ten mechanizm wymusza integralność, poufność i uwierzytelnianie. Jednak com nie włącza międzyplatformowych bezpiecznych komunikatów, takich jak WCF. Za pomocą programu WCF można tworzyć usługi i klientów, które obejmują domeny systemu Windows w Internecie. Interoperacyjne komunikaty programu WCF są niezbędne do tworzenia dynamicznych usług opartych na biznesie, które pomagają czuć się pewnie w zakresie bezpieczeństwa informacji.

Korzyści zabezpieczeń programu Windows Communication Foundation

WCF to rozproszona platforma programowania oparta na komunikatach PROTOKOŁU SOAP. Za pomocą programu WCF można tworzyć aplikacje, które działają zarówno jako usługi, jak i klienci usług, tworząc i przetwarzający komunikaty z nieograniczonej liczby innych usług i klientów. W takiej aplikacji rozproszonej komunikaty mogą przepływać z węzła do węzła, przez zapory, do Internetu i za pośrednictwem wielu pośredników protokołu SOAP. Wprowadza to różne zagrożenia bezpieczeństwa komunikatów. W poniższych przykładach przedstawiono niektóre typowe zagrożenia, które zabezpieczenia programu WCF mogą pomóc w ograniczeniu podczas wymiany komunikatów między jednostkami:

  • Obserwacja ruchu sieciowego w celu uzyskania poufnych informacji. Na przykład w scenariuszu bankowości internetowej klient żąda przeniesienia funduszy z jednego konta do innego. Złośliwy użytkownik przechwytuje wiadomość i, mając numer konta i hasło, następnie wykonuje transfer funduszy z konta, na które naruszono bezpieczeństwo.

  • Nieautoryzować jednostki działające jako usługi bez świadomości klienta. W tym scenariuszu złośliwy użytkownik (nieuczciwy) działa jako usługa online i przechwytuje komunikaty od klienta w celu uzyskania poufnych informacji. Następnie nieuczciwy używa skradzionych danych do transferu funduszy z naruszonego konta. Ten atak jest również znany atak wyłudzania informacji.

  • Zmiana komunikatów w celu uzyskania innego wyniku niż zamierzony obiekt wywołujący. Na przykład zmiana numeru konta, na który składa się depozyt, umożliwia funduszom przejście na nieautoryzujące konto.

  • Haker powtarza, w którym uciążliwy haker odtwarza to samo zamówienie zakupu. Na przykład księgarnia internetowa otrzymuje setki zamówień i wysyła książki do klienta, który ich nie zamówił.

  • Niezdolność usługi do uwierzytelniania klienta. W takim przypadku usługa nie może zapewnić, że odpowiednia osoba wykonała transakcję.

Podsumowując, zabezpieczenia transferu zapewniają następujące zabezpieczenia:

  • Uwierzytelnianie punktu końcowego usługi (respondentów).

  • Uwierzytelnianie podmiotu zabezpieczeń klienta (inicjatora).

  • Integralność wiadomości.

  • Poufność wiadomości.

  • Wykrywanie odtwarzania.

Integracja z istniejącymi infrastrukturami zabezpieczeń

Często wdrożenia usług sieci Web mają istniejące rozwiązania zabezpieczeń, na przykład Secure Sockets Layer (SSL) lub protokół Kerberos. Niektóre korzystają z infrastruktury zabezpieczeń, która została już wdrożona, na przykład domen systemu Windows przy użyciu usługi Active Directory. Często konieczne jest zintegrowanie z tymi istniejącymi technologiami podczas oceniania i wdrażania nowszych.

Zabezpieczenia WCF integrują się z istniejącymi modelami zabezpieczeń transportu i mogą korzystać z istniejącej infrastruktury dla nowszych modeli zabezpieczeń transferu opartych na zabezpieczeniach komunikatów protokołu SOAP.

Integracja z istniejącymi modelami uwierzytelniania

Ważną częścią dowolnego modelu zabezpieczeń komunikacji jest możliwość identyfikowania i uwierzytelniania jednostek w komunikacji. Te jednostki w komunikacji używają "tożsamości cyfrowych" lub poświadczeń do uwierzytelniania się za pomocą komunikacji równorzędnej. W miarę rozwoju platform komunikacji rozproszonej zaimplementowano różne uwierzytelnianie poświadczeń i powiązane modele zabezpieczeń. Na przykład w Internecie często używa się nazwy użytkownika i hasła do identyfikowania użytkowników. W intranecie użycie kontrolera domeny Kerberos do tworzenia kopii zapasowej użytkownika i uwierzytelniania usługi staje się powszechne. W niektórych scenariuszach, takich jak między dwoma partnerami biznesowymi, certyfikaty mogą być używane do wzajemnego uwierzytelniania partnerów.

W związku z tym w świecie usług sieci Web, w których ta sama usługa może być widoczna dla wewnętrznych klientów firmowych, a także dla partnerów zewnętrznych lub klientów internetowych, ważne jest, aby infrastruktura zapewniała integrację z tymi istniejącymi modelami uwierzytelniania zabezpieczeń. Zabezpieczenia WCF obsługują szeroką gamę typów poświadczeń (modeli uwierzytelniania), w tym:

  • Anonimowy obiekt wywołujący.

  • Poświadczenia klienta nazwy użytkownika.

  • Poświadczenia klienta certyfikatu.

  • Windows (zarówno protokół Kerberos, jak i NT LanMan [NTLM]).

Standardy i współdziałanie

W świecie z dużymi istniejącymi wdrożeniami jednorodność jest rzadka. Platformy rozproszonego przetwarzania/komunikacji muszą współpracować z technologiami oferowanymi przez różnych dostawców. Podobnie bezpieczeństwo musi być również możliwe do współdziałania.

Aby umożliwić współdziałanie systemów zabezpieczeń, firmy działające w branży usług internetowych zostały autorami różnych standardów. W szczególności dotyczące zabezpieczeń zaproponowano kilka godnych uwagi standardów: WS-Security: SOAP Message Security (zaakceptowane przez treść standardów OASIS i wcześniej znane jako WS-Security), WS-Trust, WS-SecureConversation i WS-SecurityPolicy.

Program WCF obsługuje szeroką gamę scenariuszy współdziałania. Klasa BasicHttpBinding jest przeznaczona dla podstawowego profilu zabezpieczeń (BSP), a WSHttpBinding klasa jest przeznaczona dla najnowszych standardów zabezpieczeń, takich jak WS-Security 1.1 i WS-SecureConversation. Stosując się do tych standardów, zabezpieczenia WCF mogą współdziałać i integrować z usługami sieci Web hostowanymi w systemach operacyjnych i platformach innych niż Microsoft Windows.

Obszary funkcjonalne zabezpieczeń programu WCF

Zabezpieczenia WCF są podzielone na trzy obszary funkcjonalne: zabezpieczenia transferu, kontrolę dostępu i inspekcję. W poniższych sekcjach krótko omówiono te obszary i udostępniamy linki, aby uzyskać więcej informacji.

Zabezpieczenia transferu

Zabezpieczenia transferu obejmują trzy główne funkcje zabezpieczeń: integralność, poufność i uwierzytelnianie. Integralność to możliwość wykrywania , czy komunikat został naruszony. Poufność to możliwość przechowywania wiadomości nieczytelnej przez nikogo innego niż zamierzony odbiorca. Odbywa się to za pośrednictwem kryptografii. Uwierzytelnianie to możliwość zweryfikowania tożsamości zgłoszonej. Te trzy funkcje pomagają zapewnić bezpieczne dotarcie komunikatów z jednego punktu do drugiego.

Tryby zabezpieczeń transportu i komunikatów

Dwa główne mechanizmy służą do implementowania zabezpieczeń transferu w programie WCF: tryb zabezpieczeń transportu i tryb zabezpieczeń komunikatów .

  • Tryb zabezpieczeń transportu używa protokołu na poziomie transportu, takiego jak HTTPS, w celu zapewnienia bezpieczeństwa transferu. Tryb transportu ma zaletę powszechnego przyjęcia, dostępnego na wielu platformach i mniej złożonego obliczeniowo. Jednak ma wadę zabezpieczania komunikatów tylko od punktu do punktu.

  • Z drugiej strony tryb zabezpieczeń komunikatów używa zabezpieczeń WS-Security (i innych specyfikacji) do implementowania zabezpieczeń transferu. Ponieważ zabezpieczenia komunikatów są stosowane bezpośrednio do komunikatów PROTOKOŁU SOAP i są zawarte w kopertach protokołu SOAP, wraz z danymi aplikacji, ma to zaletę niezależnych od protokołu transportu, bardziej rozszerzalnych i zapewniających kompleksowe zabezpieczenia (w porównaniu z punkt-punkt); ma wadę bycia kilka razy wolniej niż w trybie zabezpieczeń transportu, ponieważ ma do czynienia z charakterem XML komunikatów PROTOKOŁU SOAP.

Aby uzyskać więcej informacji na temat tych różnic, zobacz Zabezpieczanie usług i klientów.

Trzeci tryb zabezpieczeń korzysta zarówno z poprzednich trybów, jak i przynosi korzyści obu. Ten tryb jest nazywany .TransportWithMessageCredential W tym trybie zabezpieczenia komunikatów są używane do uwierzytelniania klienta, a zabezpieczenia transportu są używane do uwierzytelniania serwera i zapewnienia poufności i integralności wiadomości. Dzięki temu TransportWithMessageCredential tryb zabezpieczeń jest niemal tak szybki, jak tryb zabezpieczeń transportu i zapewnia rozszerzalność uwierzytelniania klienta w taki sam sposób jak zabezpieczenia komunikatów. Jednak w przeciwieństwie do trybu zabezpieczeń komunikatów nie zapewnia pełnych zabezpieczeń.

Kontrola dostępu

Kontrola dostępu jest również nazywana autoryzacją. Autoryzacja umożliwia różnym użytkownikom posiadanie różnych uprawnień do wyświetlania danych. Na przykład ze względu na to, że pliki zasobów ludzkich firmy zawierają poufne dane pracowników, tylko menedżerowie mogą wyświetlać dane pracowników. Ponadto menedżerowie mogą wyświetlać tylko dane dla swoich bezpośrednich raportów. W takim przypadku kontrola dostępu jest oparta zarówno na roli ("menedżera"), jak i na określonej tożsamości menedżera (aby uniemożliwić jednemu menedżerowi przeglądanie rekordów pracowników innego menedżera).

W programie WCF funkcje kontroli dostępu są udostępniane za pośrednictwem integracji ze środowiskiem uruchomieniowym języka wspólnego (CLR) PrincipalPermissionAttribute i zestawem interfejsów API znanymi jako model tożsamości. Aby uzyskać szczegółowe informacje na temat kontroli dostępu i autoryzacji opartej na oświadczeniach, zobacz Rozszerzanie zabezpieczeń.

Inspekcja

Inspekcja to rejestrowanie zdarzeń zabezpieczeń w dzienniku zdarzeń systemu Windows. Zdarzenia związane z zabezpieczeniami można rejestrować, takie jak niepowodzenia uwierzytelniania (lub sukcesy). Aby uzyskać więcej informacji, zobacz Inspekcja. Aby uzyskać szczegółowe informacje na temat programowania, zobacz Instrukcje: inspekcja zdarzeń zabezpieczeń.

Zobacz też