2010-06-03 10 views
6

Mam usługi WCF dostępne przez Internet. Ma on tryb wiązania wiązania WSHttpBinding i komunikat z danymi logowania użytkownika do uwierzytelniania klientów. msdn mówi, że powinniśmy używać zabezpieczeń wiadomości w scenariuszach internetowych, ponieważ zapewnia bezpieczeństwo end-to-end zamiast ochrony typu punkt-punkt, jak ma to miejsce w bezpieczeństwie transportu.Czy bezpieczeństwo transportu jest złym rozwiązaniem dla usługi WCF przez Internet?

Co się stanie, jeśli skorzystam z zabezpieczenia transportowego usługi wcf przez Internet? Czy to jest zła praktyka? Czy moje dane mogą być widoczne dla złośliwych użytkowników?

Odpowiedz

8

Nie, to byłaby dobra praktyka - problem polega na tym, że nie można zagwarantować pełnego łańcucha bezpiecznych połączeń przez dowolną liczbę pośrednich przeskoków, gdy ma się do czynienia z połączeniem internetowym.

Wszystko, co możesz zagwarantować dzięki zabezpieczeniu transportu, to link od klienta do pierwszego przeskoku, a także link od ostatniego przeskoku do serwera - wszystko, co znajduje się pomiędzy, jest poza twoją kontrolą. Zasadniczo bezpieczeństwo transportu przez Internet nie będzie działać - chyba że masz ściśle kontrolowane środowisko, w którym wiesz, że klient łączy się bezpośrednio z serwerami.

Z powodu tych ograniczeń technicznych, bezpieczeństwo transportu działa tylko w środowisku korporacyjnym/LAN. Jak tylko nie masz kontroli nad routingiem i pośrednimi przeskokami, musisz użyć zabezpieczenia wiadomości dla ochrony typu end-to-end.

+0

Czy mogę prosić o jeszcze jedno? Co zrobić, jeśli trzeba przenieść duże ilości danych do WCF przez Internet? Używanie wsHttpBinding i zabezpieczenia wiadomości jest bardzo wolne! –

+1

@Sergey: sprawdź strumieniowanie WCF - możesz również użyć wsHttpBinding - powinno to trochę przyspieszyć! –

+1

@Sergey: możesz utworzyć oddzielną umowę serwisową bez zabezpieczenia wiadomości dla transferu plików - szybciej, ale niezbyt bezpiecznie - to kompromis (jak zawsze w informatyce). –

5

Tak, jest w 100% bezpieczny, gdy klienci (z których korzysta większość klientów) sprawdzają certyfikat serwera.

Podany tutaj scenariusz wielu przeskoków jest kompletnym błędem. Jest to prawdą tylko wtedy, gdy ta sama wiadomość przechodzi przez różne aplikacje. Jak na przykład kilku brokerów aplikacji. Jeśli ci brokerzy nie komunikują się bezpiecznie, wiadomość może zostać odczytana przez pośrednie sniffery sieciowe.

Innymi słowy, komunikacja między klientem a serwerem przez Internet jest w 100% bezpieczna, nawet jeśli istnieje milion routerów pośrednich, ale jest bezpieczna tylko wtedy, gdy klient sprawdza certyfikat serwera, ponieważ klient może połączyć się z klientem. -pośredni host, który może podszyć się pod serwer z fałszywym certyfikatem. Jeśli klient nie sprawdzi poprawności certyfikatu, wiadomość może zostać naruszona.

+0

Chodzi ci o to, że używając bezpieczeństwa Transportu przez Internet, dane nie mogą zostać zhackowane? –

+0

To prawda, o ile transport jest bezpieczny. Tak właściwie to mówi. Możesz zaszyfrować wiadomość i/lub transport. Ale tylko wtedy, gdy Transport jest bezpieczny!Wysyłanie wiadomości przez niezabezpieczony transport sprawia, że ​​komunikacja jest podatna na ataki. –

Powiązane problemy