Elastyczna ochrona w elektronicznej wymianie danych

Szyfrowanie, czyli XML Encryption

Elastyczna ochrona w elektronicznej wymianie danych

Proces podpisywania i weryfikowania podpisu XML Signature

Standard XML Encryption służy do tworzenia zaszyfrowanych wersji danych (zwykle całych elementów XML lub ich treści) w postaci pojedynczego elementu XML. Proces zabezpieczania 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 scenariusze). 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. Inny, mniej typowy, scenariusz to zastosowanie klucza symetrycznego uzgodnionego wcześniej z odbiorcą. Zaszyfrowana wersja danych zawiera wtedy jedynie wskazanie na odpowiedni klucz. W takim rozwiązaniu niepotrzebne jest stosowanie kryptografii asymetrycznej do wymiany klucza.

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, a nawet tylko w jednym miejscu dla całej kolekcji dokumentów XML.

Gdy klucz sesji (i tylko klucz sesji) zaszyfrujemy osobno kluczami publicznymi kilku odbiorców, wtedy będziemy mogli zaszyfrować dane równocześnie dla wielu odbiorców - każdy z nich odszyfruje klucz sesji zabezpieczony osobno dla niego. W przypadku gdy zastosujemy dodatkowo kilka kluczy sesji przeznaczonych dla różnych danych, będziemy mogli 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. Powyższy scenariusz trudno zrealizować za pomocą innych standardowych mechanizmów zabezpieczeń wykorzystywanych w elektronicznej wymianie danych, takich jak SSL czy S/MIME.

Elastyczna ochrona w elektronicznej wymianie danych

Złożone szyfrowanie XML Encryption

Zaszyfrowana dla pewnego odbiorcy "A" wersja danych ma postać elementu XML, dlatego element ten bez problemów może być jeszcze raz zaszyfrowany z wykorzystaniem innego klucza. Jeżeli klucz ten będzie zaszyfrowany kluczem publicznym innego 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. Koegzystencja obu standardów jest przykładem wyższości koncepcji XML, w której można łączyć różne języki.

Współdziałanie obu standardów widać także w trzecim standardzie, zatwierdzonym pod koniec 2002 r. Opisuje on sposób przekazania odbiorcy informacji o kolejności procesów szyfrowania i weryfikacji podpisu. Ma to znaczenie szczególnie wtedy, gdy dane podpisane XML Signature zostały jednocześnie zaszyfrowane przy użyciu XML Encryption. Dzięki temu standardowi odbiorca wie, czy najpierw powinien deszyfrować dane, a potem weryfikować podpis, czy odwrotnie. Proces może być jeszcze bardziej złożony wtedy, gdy zostaną zastosowane wielokrotne szyfrowania i podpisy, dokonane np. przez poszczególnych uczestników transakcji elektronicznej. Przyjrzyjmy się przykładowemu procesowi. Sprzedawca szyfruje dla nabywcy ceny i podpisuje swoją ofertę (cały katalog). Nabywca deszyfruje ceny, ogląda katalog i dołącza część zawierającą zamówienie: zaszyfrowane dla sprzedawcy dane o sobie i towarach oraz zaszyfrowaną dla banku informację o płatności (m.in. numer karty płatniczej); całość podpisuje i wysyła do e-banku. Bank weryfikuje podpis nabywcy, deszyfruje swoją część (płatności) i po zablokowaniu środków na koncie, dołącza potwierdzenie dokonania płatności, swój podpis i przekazuje sprzedawcy. Sprzedawca weryfikuje podpis banku i deszyfruje część przeznaczoną dla siebie (zamówienie). Bez standardu gwarantującego odpowiednią kolejność czynności przeprowadzenie takiego procesu przy użyciu jednego, rozbudowywanego dokumentu byłoby bardzo kłopotliwe.

Standard ten może być przydatny także wtedy, gdy jeden dokument jest podpisywany przez kilka osób, np. wszystkich członków zarządu, a każda kolejna osoba podpisuje dane wraz z podpisem poprzednika. Problemu w takiej sytuacji można oczywiście uniknąć, stosując podpisywanie tylko odpowiednich danych, z pominięciem podpisów poprzedników.


TOP 200