poniedziałek, września 01, 2008

Wiadomosci encyklopedyczne o pdpisie XML-owym (XML Sign) z wikipedii
Jest to rekomendacja W3C definiująca postać podpisu cyforwego. Wybrano do jego reprezentacji format XML. Funkcjonalnie format jest zbliżony do PKCS#7 ale ma większe możliwości rozszerzenia. Służy do popdpisywania danych tzw. zasobów dowolnego typu np. dokumentów XML, ale mogą to być dowolne zasoby dostępne przez URL. Jeżeli podpis XML-owy podpisuje dokument "leżący" poza nim to mamy do czynienia z zewnętrznym podpisem (detached). Jeżeli podpis XML stosuje się wewnątrz jakiegoś dokumentu to mamy do czynienia z podpisem wewnętrznym, w kopercie (enveloped). Jeżeli zawiera dane podpisane wewnątrz siebie to mówi się o podpisie zakopertowanym (enveloping). Wygląda to tak:
Signature    SignedInfo - co zostało podpisane i jakim algorytmem     SignatureMethod  -------------          CanonicalizationMethod -------     Reference -------------------- odwołanie do zasobu URI        Transforms ----------------- ewentualne transformacje        DigestMethod --------------- algorytm mieszający        DigestValue ----------------- wynik mieszania w Base-64     Reference ...    SignatureValue ----------------- wartość podpisu    KeyInfo ------------------------ klucz publiczny (do weryfikacji)    Object ------------------------- dane będące podpisywane (gdy podpis enveloping), opcjonalne 
Na czym polega walidacja. Musi zadziałać procedura Core Validation:
  1. Reference Validation - sprawdza każdy zasób i porównuje jego wynik mieszania z DigestValue
  2. Signature Validation - weryfikacja sygnatury
Schematycznie to wygląda tak:
 Signature - znaczy digital signature - jest to przekształcenie message przy pomocy private key. 

Brak komentarzy: