Postać etykiety została określona w XML Schema. Nie ma w niej określonej części dotyczącej podpisu, ponieważ jest on dodawany przez narzędzia biblioteki javax.xml. crypto.dsig [8].
List.1. Zawartość wygenerowanej etykiety
Na podstawie Schemy, wykorzystując JAXB (Java Architecture for XML Binding) [9], tworzone są obiekty danych klas, które następnie za pomocą serializacji zamieniane są na XML. Dla wskazanego pliku określany jest typ Mime, ogólny typ pliku, jego rozmiar i w przypadku plików image oraz video ich rozdzielczość.
Ważną własnością pliku, dla którego tworzymy etykietę oraz samej etykiety jest ich integralność. Integralność jest cechą określającą, że dane nie uległy zmianie w nieautoryzowany sposób od czasu ich utworzenia. Metodą zapewniającą integralność jest wykorzystanie funkcji skrótu. Funkcja
skrótu jest to funkcja jednokierunkowa, która przyporządkowuje wiadomości o dowolnej długości wartość, o stałym rozmiarze, na podstawie której nie jest możliwe określenie zawartości wiadomości.
Prócz integralności etykiety konieczne jest również zapewnienie niezaprzeczalności jej utworzenia, gwarantujące możliwość potwierdzenia autora etykiety stanowiąc dowód pochodzenia danych, który jest weryfikowalny przez stronę trzecią. Mechanizmem zapewniającym niezaprzeczalność jest podpis cyfrowy, wykorzystujący algorytmy kryptograficzne funkcji skrótu i szyfrowania asymetrycznego oraz klucze, których długości gwarantują bezpieczeństwo informacji.
Możliwymi do wyboru w programie algorytmami podpisu cyfrowego dla plików nie będących plikami XML są:
Owe algorytmy są bowiem wspierane przez usługę kryptograficzną Signature w wybranym dostawcy - Bouncy Castle [10].
W celu stworzenia podpisu pobierany jest klucz prywatny oraz powiązany z nim certyfikat.
Program sprawdza aktualność każdego certyfikatu oraz w przypadku zabezpieczenia hasłem poprawność wprowadzonego hasła. Obsługiwanymi rozszerzeniami plików kluczy są .pem i .p12.
W przypadku, gdy plikiem dla którego tworzona jest etykieta jest plik XML, po rozpoznaniu jego typu jest on pobierany jako Document DOM. Obiekt Document stanowi w DOM ogólny sposób reprezentowania dokumentów XML. W związku, że pliki XML bardzo często posiadają już podpis, sprawdzane jest czy istnieje już w dokumencie węzeł Signature. Jeśli plik posiada podpis jest on pobierany i wstawiany w odpowiednie miejsce etykiety.
Konsorcjum W3C stworzyło standard dotyczący podpisu plików XML: XML Signature zwany też XML-DSIG. Dlatego też w przypadku braku podpisu pliku XML będzie on generowany według tego standardu podobnie jak podpis etykiety, będącej plikiem XML. Do tworzenia podpisu XML została wykorzystana biblioteka javax.xml.crypto.dsig, która umożliwia automatyczne tworzenie podpisu według
standardu W3C.
|
REKLAMA |
REKLAMA |