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):

  1. Vyberte z hlavního menu Edit-Preferences
  2. Vyberte "Advanced" z ikonoidního menu
  3. Vyberte tab "Encryption"
  4. Klikněte na tlačítko "View certificates"
  5. Vyberte tab "Authorities"
  6. Najděte autoritu "Verisign Class 2 Public Primary Certification Authority - G2", G2 na konci je podstatné
  7. když zmáčknete "View" na tenhle certifikát, měl by mít následovné vlastnosti:
  8. Zavřete okno detailů certifikátu
  9. Exportujte tenhle certifikát tlačítkem "Export"
  10. 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.

  1. Z hlavního menu vyberte "Document-Manage Trusted Identities"
  2. Zmáčkněte "Add Contacts", pak "Browse"
  3. Ve file dialogu vyberte "verisign_c2_g2.p7c"
  4. Zmáčkneme "Import" v pravém dolním rohu
  5. Na "Import complete" odklikněte OK
  6. Z "Display" comboboxu nahoře v dialogu vyberte "Certificates"
  7. Klikněte na právě importován CA root certifikát "VeriSign, Inc."
  8. Zmáčkněte tlačítko "Edit Trust" napravo
  9. 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")
  1. Jsme ve stejným menu "Manage Trusted Identities"
  2. Zmáčkněte "Add Contacts", pak "Browse"
  3. Ve file dialogu vyberte "verisign_g2_20xx.cer"
  4. Zmáčkneme "Import" v pravém dolním rohu
  5. Na "Import complete" odklikněte OK
  6. Z "Display" comboboxu nahoře v dialogu vyberte "Certificates"
  7. Klikněte na právě importován certifikát VeriSign
  8. Zmáčkněte tlačítko "Edit Trust" napravo
  9. 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
  10. 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.        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.