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.