XML Encryption (szyfrowanie)

ITpedia

(Przekierowano z XML Encryption)

Standard XML Encryption służy do tworzenia zaszyfrowanych form danych (zwykle całych elementów XML lub ich treści) w postaci pojedynczego elementu XML. Proces ten polega najczęściej na: wygenerowaniu symetrycznego klucza sesji, zaszyfrowaniu danych źródłowych i zaszyfrowaniu klucza sesji kluczem publicznym odbiorcy (możliwe są także inne schematy). W takim rozwiązaniu mamy pewność, że tylko odbiorca będzie miał dostęp do danych, gdyż tylko on posiada klucz prywatny skojarzony z wykorzystanym kluczem publicznym i tylko on może uzyskać dostęp do klucza sesji. Możliwe jest też zastosowanie klucza symetrycznego uzgodnionego wcześniej z odbiorcą. Zaszyfrowana wersja danych zawiera wtedy jedynie wskazanie na odpowiedni klucz.

Ze względu na możliwość wykorzystania tego samego klucza szyfrującego (sesyjnego) wiele razy, można nim osobno zabezpieczać różne fragmenty tego samego dokumentu lub nawet wielu dokumentów, np. numery kilku kart kredytowych. W takim przypadku wielokrotnie wykorzystany klucz jest jednorazowo, w bezpieczny sposób, przekazywany odbiorcy, np. zaszyfrowany pod koniec danego dokumentu lub tylko w jednym miejscu dla całego zbioru dokumentów XML.

Gdy klucz sesji (i tylko klucz sesji) zaszyfruje się osobno kluczami publicznymi kilku odbiorców, wtedy można zaszyfrować dane równocześnie dla wielu odbiorców - każdy z nich odszyfruje klucz sesji zabezpieczony osobno dla niego. Gdy zastosuje się dodatkowo kilka kluczy sesji przeznaczonych dla różnych danych, można za pomocą odpowiedniej manipulacji kluczami sesji i poprzez ich przekazanie (szyfrowanie) poszczególnym odbiorcom uzyskać coś w rodzaju „listy kontroli dostępu” do poszczególnych fragmentów danych.

Ponieważ zaszyfrowana dla odbiorcy „A” wersja danych ma postać elementu XML, element ten bez problemu może być jeszcze raz zaszyfrowany z wykorzystaniem innego klucza. Jeżeli klucz ten będzie zaszyfrowany kluczem publicznym odbiorcy „B”, wtedy dostęp do jawnej wersji będzie możliwy tylko za zgodą obu odbiorców. Najpierw deszyfracji będzie musiał dokonać odbiorca „B”, potem „A”.

XML Encryption jest wprawdzie niezależny od podpisów elektronicznych, jednak poprzez koncepcję przestrzeni nazw zapożycza z XML Signature strukturę informacji o kluczu wykorzystanym do szyfrowania. W XML Encryption dodano przy tym - nieistniejący w XML Signature - mechanizm wymiany (szyfrowania) klucza.

Problemy implementacji ochrony XML

Jednym z istniejących problemów jest 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 zdeszyfrowanego klucza „A”, który wymaga zdeszyfrowania klucza „B”, to gdy 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.

Inne 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.

Zobacz także

-
-