Portál AbcLinuxu, 3. května 2025 23:41
Ověření podpisu PDF vygenerovaného přes mBank IB
18.7.2009 02:47
| Přečteno: 2159×
| programování
| poslední úprava: 18.7.2009 02:47
Když jste zákázníky mBank, nejspíš víte, že výpis z účtu si můžete stáhnout
jako digitálně podepsané PDF. Jenže typicky v PDF prohlížeči chybí
certifikační autorita, která by potvrdila platnost podpisu daného PDF.
Návod pro ověření podpisu PDF bude pro Acrobat Reader (nevím jestli nějaký
jiný linuxový nástroj umí ověřovat PDF podpisy, když tak dejte tip v diskuzi).
Kořenový certifikát VeriSign
Asi nejjednodušší způsob jak získat kořenový certifikát, je exportovat ho z
Firefoxu, nebo jiného prohlížeče (předpokládám že když věříte CA root
certifikátu v prohlížeči, budete mu věřit i teď). Uvádím příklad exportu root
certifikátu z Firefoxu, z jiného prohlížeče by to malo fungovat podobně, jenom
ověřte serial number a SHA-1 fingerprint.
Export Verisign root CA z linuxového Firefoxu (vyzkoušeno na Firefoxu 3.5):
- Vyberte z hlavního menu Edit-Preferences
- Vyberte "Advanced" z ikonoidního menu
- Vyberte tab "Encryption"
- Klikněte na tlačítko "View certificates"
- Vyberte tab "Authorities"
- Najděte autoritu "Verisign Class 2 Public Primary Certification Authority
- G2", G2 na konci je podstatné
- když zmáčknete "View" na tenhle certifikát, měl by mít následovné vlastnosti:
- Serial number: 00 B9 2F 60 CC 88 9F A1 7A 46 09 B8 5B 70 6C 8A AF
- SHA-1 fingerprint: B3 EA C4 47 76 C9 C8 1C EA F2 9D 95 B6 CC A0 08 1B 67 EC 9D
- Zavřete okno detailů certifikátu
- Exportujte tenhle certifikát tlačítkem "Export"
- Jako typ souboru vyberte "X.509 Certificate (PKCS#7)", jako název
souboru "verisign_c2_g2.p7c"
Doplnění certifikátů v řetezci (certificate chain)
Mám pocit, že v informaci o certifikátu v PDF vygenerovaném přes mBank IB chybí
řetězec certifikátů (certificate chain), proto je nutné naimportovat
"mezilehlé" certifikáty ručně. (Normálně u SSL/TLS je běžné, že server pošle
nejenom samotný certifikát, kterým je obsah podepsán, ale navíc i celou
certificate chain).
Neumím nastopro říct jestli certificate chain chybí nebo ho jenom Acrobat
nezobrazuje správně (tip na nástroj zobrazující skutečný certificate chain PDF
by se hodil).
Z Global
TrustPoint stáhněte dva certifikáty nazvané "VeriSign Class 2 OnSite
Individual CA". Dva jsou tam proto, že jeden je platný do 10/2009 a druhý do
10/2010. Tyhle dva certifikáty by měly být rovnou rozbaleny z daného linku,
odskrolujte trocha níž. (Pozn. oba tyhle certifikáty jsou podepsány
certifikátem, který jsme v předchozím kroku exportovali z Firefoxu).
Jsou tam u každého z certifikátů dvě ikony, "Validate" a "Download". Stáhněte
oba certifikáty přes "Download", validaci uděláme při importu do Acrobat
Readeru. Nazvěte ty dva soubory třeba "verisign_g2_2009.cer" a
"verisign_g2_2010.cer". (Oba jsou v PEM formátu)
Import do Adobe Readeru
Nyní máme všechny potřebné certifikáty, uděláme import do Adobe Readeru,
nejprve importujeme certifikát root CA.
- Z hlavního menu vyberte "Document-Manage Trusted Identities"
- Zmáčkněte "Add Contacts", pak "Browse"
- Ve file dialogu vyberte "verisign_c2_g2.p7c"
- Zmáčkneme "Import" v pravém dolním rohu
- Na "Import complete" odklikněte OK
- Z "Display" comboboxu nahoře v dialogu vyberte "Certificates"
- Klikněte na právě importován CA root certifikát "VeriSign, Inc."
- Zmáčkněte tlačítko "Edit Trust" napravo
- V novém dialogu zaškrtněte "Trust this certificate for: Signatures and
as a trusted root", pak OK
Pak naimportujeme oba "mezilehlé" certifikáty (zopakujte pro oba soubory
"verisign_g2_2009.cer" a "verisign_g2_2010.cer")
- Jsme ve stejným menu "Manage Trusted Identities"
- Zmáčkněte "Add Contacts", pak "Browse"
- Ve file dialogu vyberte "verisign_g2_20xx.cer"
- Zmáčkneme "Import" v pravém dolním rohu
- Na "Import complete" odklikněte OK
- Z "Display" comboboxu nahoře v dialogu vyberte "Certificates"
- Klikněte na právě importován certifikát VeriSign
- Zmáčkněte tlačítko "Edit Trust" napravo
- V novém dialogu by již mělo být zaškrtnuto "Trust this certificate
for: Signatures and as a trusted root" (kvůli tranzitivitě důvěry přes
dříve naimportován root CA certifikát, "key usage" a "basic
constraints"), pak OK
- vyberte právě importovaný certifikát, zmáčkněte "Show Certificate"
napravo, pak tab "Details" a zkontrolujte serial number a SHA-1
fingerprint podle údajů níže
Ty dva "mezilehlé" certifikáty by měly mít nasledovní serial number a SHA-1
hash (bacha na rozdíl "SHA1 digest of public key" a "SHA1 digest"
certifikátu):
Soubor verisign_g2_2009.cer
Subject:
ou=VeriSign Class 2 OnSite Individual CA
o=VeriSign
Validity starts: 1998/05/19 01:00:00 +01'00'
Validity ends: 2009/10/13 00:59:59 +01'00'
serial: 43 DE 45 06 7E 91 ED 3B B6 70 E4 17 52 66 49 B5
SHA1 digest: E8 68 8B 4F 9B 55 07 53 7E 95 37 E6 BB C4 94 8A 5A B8 7F EC
Soubor verisign_g2_2010.cer
Subject:
ou=VeriSign Class 2 OnSite Individual CA
o=VeriSign
Validity starts: 1998/05/19 01:00:00 +01'00'
Validity ends: 2010/10/13 00:59:59 +01'00'
serial: 60 38 0B A2 8B C6 50 E2 09 C1 B6 FF 18 34 8F B4
SHA1 digest: 5E A3 4E D5 4D C1 D3 9A A1 7C DD E8 C0 3C 5E 8F C3 DF 78 BF
Výsledek (vytoužený/doufaný)
Spusťte znova Acrobat Reader, otevřete opět PDF výpis z mBank, po klikuntí na ikonu
podpisu vlevo by se místo "Signature is unknown" mělo objevit "Signature is
valid".
Na závěr
Uvedený návod má celkem netypický trust chain/trust web, využívá několik
zdrojů, podrobnosti když tak v diskuzi.
Tiskni
Sdílej:
Komentáře
Vložit další komentář
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.