Ochrona selektywna

Standardy XML Encryption i XML Signature pozwalają zabezpieczać całość bądź tylko część informacji zawartych w komunikatach XML.

Standardy XML Encryption i XML Signature pozwalają zabezpieczać całość bądź tylko część informacji zawartych w komunikatach XML.

Ochrona selektywna

Umiejscowienie podpisów XML Signature

Bezpieczeństwo informacji w systemach informatycznych zapewniają technologie implementowane w protokołach niskiego poziomu, jak np. SSL, IPsec, S/MIME czy PGP. Mogłoby się wydawać, że ochrona na niskim poziomie ma same zalety, z których największą jest możliwość zabezpieczania dowolnego rodzaju informacji. Paradoksalnie, ta uniwersalność nie zawsze jest pożądana - aby bezpiecznie przesłać komunikat, trzeba bowiem zestawić bezpieczny kanał. Obniża to wydajność przetwarzania w rozwiązaniach czysto programowych lub też podwyższa koszt systemu o cenę sprzętowych akceleratorów kryptograficznych. Alternatywą dla zabezpieczeń niskopoziomowych są rozwiązania wyższego poziomu, oparte na powstających standardach opracowywanych w ramach organizacji WWW Consortium (W3C): zatwierdzony w lutym br. XML Signature i będący od października br. na ostatnim etapie standaryzacji - XML Encryption.

W przeciwieństwie do dotychczasowych metod nowe standardy pozwalają tworzyć bardzo elastyczne rozwiązania zabezpieczające. Po pierwsze, umożliwiają szyfrowanie, uwierzytelnianie i podpisywanie zarówno całych dokumentów XML, jak i wybranych ich tylko fragmentów. Możliwa jest więc ochrona całych elementów XML wraz ze znacznikami i atrybutami bądź też tylko treści elementów, bez znaczników. Po drugie, zabezpieczane informacje mogą stanowić integralną część dokumentu albo też jedynie być z nim powiązane przez wskazanie w dokumencie adresu URL, pod którym są przechowywane. Po trzecie, istnieje możliwość zabezpieczenia różnych fragmentów dokumentu za pomocą różnych algorytmów kryptograficznych lub kluczy. W efekcie znacznie łatwiejsze staje się stworzenie logiki uzależniającej sposób przetwarzania danych od tego, czy są one zabezpieczone (podpisane, zaszyfrowane), w jakim zakresie (całość, określone części) i w jaki sposób (np. rodzaj i siła algorytmu).

Szyfrowanie z XML Encryption

XML Encryption to język umożliwiający szyfrowanie dokumentu XML niemal w dowolny sposób. Przewidziano w nim możliwość wykorzystania następujących algorytmów kryptograficznych:

1. Szyfrowanie blokowe, symetryczne: potrójny DES; AES 128, 256 (obowiązkowo), a jedynie opcjonalnie 192

2. Szyfrowanie strumieniowe, symetryczne, w którym podaje się strumień bajtów jako długi jednorazowy klucz przetwarzany z tekstem źródłowym za pomocą funkcji XOR

3. Szyfrowanie oparte tylko na kodowaniu Base64

4. Szyfrowanie asymetryczne wykorzystywane do przekazywania klucza symetrycznego - RSA (w bezparametrowej wersji PKCS1-v1_5 oraz OAEP o trzech parametrach); obowiązkowe

5. Szyfrowanie oparte na metodzie Diffiego-Hellmana - asymetryczna metoda uzgadniania klucza (choć warto zauważyć, że standard XML Encryption nie wspomaga procesu negocjacji klucza); opcjonalnie

6. Algorytmy tworzenia skrótów: obowiązkowy SHA-1 (skrót 160-bitowy), zalecany SHA-256 oraz opcjonalnie: SHA-512 i RIPEMD-160

7. Inne, np. samodzielnie opracowane metody szyfrowania, które nie muszą być uwzględniane przez standardowe programy.

Element dokumentu XML zabezpieczony zgodnie ze standardem XML Encryption jest oznaczany jako EncryptedData i zawiera:

  • Zaszyfrowane dane lub wskazanie na nie i ewentualnie sposób ich transformacji

  • Informacje o sposobie deszyfrowania: algorytm i - opcjonalnie - jego parametry (np. długość klucza)

  • Informacje o kluczu publicznym. Może to być: zaszyfrowany asymetrycznie klucz symetryczny, wskazanie na umiejscowienie klucza (identyfikator miejsca URI, zwykle adres URL) lub inne przewidziane przez standard XML Signature (patrz dalej)

  • Wskazanie na elementy zaszyfrowane w ten sam sposób. Tym samym kluczem i algorytmem można zaszyfrować wiele różnych fragmentów dokumentu

  • Informacje dodatkowe, np. stempel czasowy, nr seryjny urządzenia kryptograficznego itd.
Na rynku istnieją już implementacje standardu XML Encryption, np. IBM XML Security Suite for Java, Phaos, XMLSec czy opracowany w polskiej firmie Pyton Software - COMiX.


TOP 200