Usługi internetowe - bezpieczeństwo
Bezpieczeństwo ma kluczowe znaczenie dla usług internetowych. Jednak ani specyfikacje XML-RPC, ani SOAP nie nakładają żadnych wyraźnych wymagań dotyczących zabezpieczeń ani uwierzytelniania.
Z usługami internetowymi wiążą się trzy konkretne problemy z bezpieczeństwem -
- Confidentiality
- Authentication
- Bezpieczeństwo sieci
Poufność
Jeśli klient wysyła żądanie XML do serwera, czy możemy zapewnić poufność komunikacji?
Odpowiedź leży tutaj -
- XML-RPC i SOAP działają głównie na protokole HTTP.
- Protokół HTTP obsługuje protokół Secure Sockets Layer (SSL).
- Komunikacja może być szyfrowana przez SSL.
- SSL to sprawdzona technologia i szeroko stosowana.
Pojedyncza usługa internetowa może składać się z łańcucha aplikacji. Na przykład jedna duża usługa może wiązać ze sobą usługi trzech innych aplikacji. W tym przypadku SSL nie jest wystarczający; wiadomości muszą być szyfrowane w każdym węźle na ścieżce usługi, a każdy węzeł reprezentuje potencjalne słabe ogniwo w łańcuchu. Obecnie nie ma uzgodnionego rozwiązania tego problemu, ale obiecującym rozwiązaniem jest W3C XML Encryption Standard. Ten standard zapewnia strukturę do szyfrowania i odszyfrowywania całych dokumentów XML lub tylko części dokumentu XML. Możesz to sprawdzić na www.w3.org/Encryption
Poświadczenie
Jeśli klient łączy się z usługą internetową, w jaki sposób identyfikujemy użytkownika? Czy użytkownik jest upoważniony do korzystania z usługi?
Można rozważyć następujące opcje, ale nie ma jasnego konsensusu co do schematu silnego uwierzytelniania.
Protokół HTTP zawiera wbudowaną obsługę uwierzytelniania podstawowego i cyfrowego, dzięki czemu usługi można chronić w taki sam sposób, jak obecnie chronione są dokumenty HTML.
Podpis cyfrowy SOAP (SOAP-DSIG) wykorzystuje kryptografię klucza publicznego do cyfrowego podpisywania wiadomości SOAP. Umożliwia klientowi lub serwerowi sprawdzenie tożsamości drugiej strony. Sprawdź to na www.w3.org/TR/SOAP-dsig .
Organizacja zajmująca się rozwojem standardów informacji strukturalnej (OASIS) pracuje nad językiem Security Assertion Markup Language (SAML).
Bezpieczeństwo sieci
Obecnie nie ma łatwej odpowiedzi na ten problem i był on przedmiotem wielu debat. Na razie, jeśli naprawdę zależy Ci na odfiltrowaniu komunikatów SOAP lub XML-RPC, jedną z możliwości jest odfiltrowanie wszystkich żądań HTTP POST, które ustawiają typ zawartości na text / xml.
Inną alternatywą jest filtrowanie atrybutu nagłówka HTTP SOAPAction. Dostawcy zapór ogniowych również opracowują obecnie narzędzia zaprojektowane specjalnie do filtrowania ruchu sieciowego.