16.3.2016
V nedávném článku jsem vám ukázal, jak digitálně podepsat PDF dokument pomocí PDFMU. Dnes vám představím dvě metody, jak zjistit, kdo podepsal dokument:
Přesněji řečeno ukáži, jak zjistit hodnotu atributu CN, která je součástí rozlišovacího jména (distinguished name; DN) autora podpisu. Ještě předtím, než ukáži samotný postup, popíši, jak jsou v PDF podpisu uspořádány související informace.
Každý podpis v PDF dokumentu obsahuje řetězec certifikátů. Řetězec certifikátů vždy obsahuje alespoň jeden certifikát. Každý z certifikátů v řetězci patří určité osobě nebo organizaci (obecně entitě). Řetězec certifikátů typicky dokazuje, že určitá certifikační autorita věří, že certifikát autora podpisu skutečně patří entitě, kterou identifikuje. Pokud důvěřuji dané certifikační autoritě a platnosti samotného podpisu, mohu si být jistý, že byl dokument podepsán entitou uvedenou v podpisovém certifikátu.
Když zjišťujeme, kdo podepsal dokument, zajímá nás především podpisový certifikát. Tento certifikát je vždy první v řetězci a je přítomný v každém podpisu.
Rozlišovací jméno (distinguished name; DN) je textový řetězec, který identifikuje entitu (například osobu nebo organizaci). Každý certifikát obsahuje dvě DN: Subject (Předmět) a Issuer (Vystavitel). Subject identifikuje majitele certifikátu, takže Subject podpisového certifikátu identifikuje autora podpisu.
DN je strukturovaný řetězec, například:
CN=William J. Blazkowicz,O=Office of Secret Actions,L=Milwaukee,ST=Wisconsin,C=US,E=b.j.blazkowicz@example.com
DN sestává z několika pojmenovaných atributů. Pokud DN popisuje osobu, atribut CN (common name) typicky obsahuje jméno této osoby.
Pro shrnutí následuje diagram s výřezem hierarchie uvedených informací:
PDF dokument -> seznam podpisů -> podpis -> řetězec certifikátů -> podpisový certifikát -> Subject (DN) -> CN
V následujících sekcích se podíváme na několik způsobů, jak zjistit atribut CN položky Subject v podpisovém certifikátu. Vše budeme demonstrovat na dokumentu signed.pdf; pokud máte chuť vyzkoušet si uvedené kroky, můžete použít tento dokument.
signed.pdf
v Acrobat ReaderZobrazení -> Zobrazit/skrýt -> Navigační panely -> Podpisy
Panel Podpisy obsahuje výčet všech podpisů v dokumentu spolu s čísly odpovídajících revizí. Označení každého z podpisů obsahuje atribut CN pole Subject podpisového certifikátu, takže si můžete jméno autora podpisu rychle prohlédnout přímo v panelu Podpisy.
Jak zjistíte úplné DN autora podpisu?
Úplné DN najdete v textovém poli v dolní části okna.
pdfmu inspect signed.pdf
pdfmu
.
Ve Windows toho můžete docílit přidáním cesty ke složce "pdfmu/target/exe"
do proměnné prostředí PATH.Výstup může vypadat například následovně:
[...]
Number of signatures: 1
Number of document revisions: 1
Signature field name: Signature1
Signature covers the whole document: Yes
Document revision: 1 of 1
Signature metadata:
Name is not set.
Reason:
Location:
Date and time: Fri Mar 04 14:59:29 CET 2016
Certificate chain:
Number of certificates: 2
Certificate 0 (the signing certificate):
Type: X.509
Self-signed: No
Subject:
Common name: William J. Blazkowicz
Email address: b.j.blazkowicz@example.com
Organization: Office of Secret Actions
Locality: Milwaukee
State or province: Wisconsin
Country code: US
Issuer:
Common name: Office of Secret Actions CA
Organization: Office of Secret Actions
Locality: London
Country code: GB
Certificate 1:
Type: X.509
Self-signed: Yes
Subject:
Common name: Office of Secret Actions CA
Organization: Office of Secret Actions
Locality: London
Country code: GB
Issuer:
Common name: Office of Secret Actions CA
Organization: Office of Secret Actions
Locality: London
Country code: GB
Attributy autora podpisu včetně CN
najdete v sekci Certificate 0 (the signing certificate) -> Subject
.
Ukázali jsme si dva způsoby, jak zjistit identitu autora podpisu PDF dokumentu. Adobe Reader je vhodný zejména v situaci, kdy chceme jednorázově zjistit autora podpisu na počítači, kde je Adobe Reader již nainstalován. PDFMU je potom vhodný zejména tehdy, když chceme identitu autora podpisu zpracovávat strojově nebo když upřednostňujeme práci v prostředí příkazové řádky. Je nicméně potřeba brát v potaz, že PDFMU neověřuje platnost podpisu ani řetězce certifikátů.