wtorek, 25 maja 2021 o 16:15:18 UTC+2 Jacek Maciejewski napisał(a):
> Dla plików pdf mechanizm działa. Zwraca podpisany pdf. Mam pytanie -
> dlaczego w przypadku .doc nie zwraca podpisanego doc-a tylko nieczytelny
> xml? Tak ma być i dlaczego czy to niedoróbka jakaś?
1. Żeby podpisać podpisem kwalifikowanym lub zaufanym plik w formacie .xxx i żeby ten plik był nadal czytelny, definicja formatu .xxx musi przewidywać miejsce na podpis i sposób interpretacji tego podpisu.
2. Żeby podpis kwalifikowany lub zaufany miał moc prawną sposób i format podpisu musi być zdefiniowany w przepisach prawa.
Te dwa warunki są spełnione dla plików .pdf. Adobe (twórcy tego formatu) przewidziało miejsce na podpis i opublikowało ogólnie dostępny standard interpretacji tego podpisu, więc przepisy polskie i unijne dopuszczają standard pades podpisu plików .pdf
Microsoft w formacie worda, excela i power pointa też niby umieścił coś co nazywa się podpisem cyfrowym, ale przede wszystkim Microsoft uważa, że formaty jego plików to jego sprawa i nikomu nic do tego. Ich podpis cyfrowy ma się nijak do wymagań związanych z podpisem kwalifikowanym lub zaufanym. Więc nic dziwnego, że Unia nie przejęła żadnych standardów podpisywania plików MS Office.
Istnieje jednak konieczność podpisywania dokumentów w innych formatach niż .pdf więc powstały standardy pozwalające na podpisanie w zasadzie dowolnego pliku w dowolnym formacie. Ponieważ ma to działać dla dowolnego pliku więc z założenia nic nie wiadomo o jego formacie i nie można podpisu wstawić "do środka" pliku, bo programy obsługujące ten format pliku tego nie obsłużą.
Są na to dwie metody:
1. Tworzymy nowy format pojedynczego pliku zawierający plik oryginalny i podpis.
2. Tworzymy nowy format pliku zawierający tylko podpis. W tym wypadku przekazując plik podpisany trzeba przesłać osobno plik oryginalny i osobno plik z podpisem.
Obie metody są stosowane, ale wygodniejsza jest ta pierwsza. Najczęściej stosowaną metodą podpisywania dowolnych plików jest standard xades korzystający z formatu .xml. XML jest formatem tekstowym, więc jeżeli stosujemy metodę pierwszą, to binarny plik oryginalny musi być przed wstawieniem do pliku wyjściowego zamieniony na tekst - używa się do tego kodowania base64.
Oprócz xades istnieje jeszcze dużo rzadziej używany choć podobnie działający standard cades, ale w cades pliki z podpisem nie są plikami tekstowymi .xml lecz plikami binarnymi, więc są jeszcze mniej "czytelne" niż pliki xades.
Zdaje się, że formalne przepisy przewidują jeszcze czwarty standard - służący do podpisu plików .zip. ale tego nie używa chyba nikt.