Ochrona selektywna
- Przemysław Kazienko,
- 16.12.2002
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.
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.