Elastyczna ochrona w elektronicznej wymianie danych

Problemy wykorzystania standardów bezpieczeństwa XML

Pierwszy problem jest związany z obsługą standardów. Oba standardy bardzo precyzyjnie definiują elementy obowiązkowe i opcjonalne. Jednak dostępne na rynku ich implementacje są bardzo różne i nie można mieć pewności, że wszystkie zastosowane u nadawcy mechanizmy będą rozumiane przez odbiorcę.

Kolejny problem wiąże się z kodowaniem znaków, w szczególności polskich liter. Otóż, zalecanym standardem kodowania jest Unikod (Unicode), jednakże dopuszcza się stosowanie innych standardów, np. Windows-1250 czy ISO Latin 2.

Problem może wyniknąć np. przy szyfrowaniu lub podpisywaniu łącznie fragmentów wielu dokumentów XML, które są zakodowane w różnych standardach, a fragmenty te nie zawierają deklaracji XML, czyli nie posiadają danych o sposobie kodowania. Przy deszyfrowaniu odbiorca może błędnie odtworzyć lub zinterpretować uzyskane dane źródłowe (w złym standardzie).

Jeszcze inne zagadnienie jest związane z zaleceniami: "tylko to, co podpisane, jest chronione", "tylko to, co widoczne, powinno być podpisane" oraz "widzieć to, co zostało podpisane". Główny problem wynika ze stosowania do wizualizacji dokumentu XML transformacji XSLT. Można w nich, przy prezentacji, dowolnie przekształcić treść i strukturę dokumentu. Aby więc mieć pewność ochrony, dokument należy podpisywać wraz ze związanymi z nim transformacjami XSLT lub ewentualnie odbiorca powinien stosować własne transformacje.

Kolejny problem to potencjalna możliwość ataków DoS (Denial od Service) na systemy odbiorcy, który deszyfruje zabezpieczone dokumenty XML. Polegają one na celowym przeciążeniu zadaniami systemu deszyfrującego lub jego "zapętleniu", które jest wynikiem możliwej rekurencji. Zagrożenie to wynika z dużej elastyczności standardów XML, w tym także XML Encryption. Jeżeli do deszyfrowania potrzebujemy deszyfrowanego klucza "A", który wymaga deszyfrowania klucza "B", to jeżeli klucz "B" korzysta z klucza "A" - mamy rekurencję. Inny scenariusz polega na umieszczeniu w podpisach lub szyfrach odesłań do zasobów sieciowych, które są bardzo duże (mocno obciążają zasoby odbiorcy) lub wielokrotnie odsyłają dalej, do kolejnych zasobów.

Ostatnie zagrożenie jest wspólne dla wszystkich metod kryptograficznych. Przekazywanie zaszyfrowanych dokumentów może powodować przesyłanie danych, które mogą stanowić zagrożenie. Typowe systemy zabezpieczeń - np. zapory ogniowe, systemy wykrywania włamań - nie są w stanie kontrolować zaszyfrowanych treści. Analogiczny problem dotyczy jednak także innych bezpiecznych systemów, takich jak SSL, VPN, S/MIME czy PGP.

Podsumowanie

Wydaje się, że XML Signature oraz XML Encryption w dużej mierze zastąpią istniejące mechanizmy bezpieczeństwa stosowane powszechnie w wymianie danych. Zapewniają one integralność przesyłanych danych, potwierdzają autorstwo i poufność przekazywanych informacji. Jednakże najważniejsza ich cecha to elastyczność, dzięki której można niemal dowolnie chronić różne fragmenty danych (także binarnych), również dowolnie łącząc zabezpieczone dane z innymi danymi.

Pozwalają one również na długotrwałe przechowywanie zabezpieczonych dokumentów (czego nie dają zabezpieczenia komunikacji, takie jak wirtualne sieci prywatne czy SSL), a nawet dodatkową ich ochronę w przyszłości.

Przedstawione standardy bezpieczeństwa mają szczególne znaczenie w komunikacji wykorzystującej SOAP z załącznikami w postaci dokumentów XML (SOAP Messages with Attachments), co ma miejsce np. w usługach web services oraz komunikatach ebXML.

Pewną niedogodnością jest brak darmowych implementacji powyższych standardów, w szczególności typu open source. Biorąc jednak pod uwagę duże nimi zainteresowanie (nawet w Polsce istnieje już sporo implementacji komercyjnych), wydaje się, że wersje bezpłatne wkrótce się pojawią.


TOP 200