Authenticode – jak podepisovat programy

Za posledních pár let jsem se sem tam, většinou u příležitosti toho, že mě Windows svými stupidními dotazy naštvou, zabýval otázkou, jak podepsat svoje programy, aby je Windows považovaly za bezpečné. Výzkumy vesměs končily na pohledu do té části ceníku certifikačních autorit, která se zabývá certifikáty na podepisování kódu (code signing certificates), ale tentokrát jsem se rozhodl dojít až do konce. A také jsem tam došel.

Technologie, kterou Microsoft používá pro označení „důvěryhodných“ souborů, se nazývá Authenticode, a jde ve své podstatě o jednoduchou implementaci elektronických podpisů na základě průmyslových standardů; autor programu, nebo někdo jiný, vezme spustitelný soubor a podepíše ho svým soukromým klíčem. Uživatel pak zná příslušný veřejný klíč a jeho pomocí může snadno ověřit, že:

  1. program byl podepsán tím, kdo tvrdí, že ho podepsal, a
  2. obsah souboru nebyl od podpisu změněn.

Pro to, abyste mohli svůj program, potřebujete splnit několik podmínek: V první řadě musíte mít vhodný podpisový certifikát, kromě toho pak potřebujete sadu nástrojů pro podepisování. Naopak nemusíte mít přístup ke zdrojovému kódu programu – podepsat můžete jakýkoliv exáč (a obdobný soubor, třeba .dll nebo .sys), bez ohledu na to, kdo je jeho autorem (je ovšem otázka, jaký to má smysl; jeden možný uvedu dále v textu).

Certifikáty

Základním předpokladem pro to, abyste mohli program podepsat, je vlastnictví code-signing certifikátu. V zásadě jsou tři možnosti, jak certifikát získat, každá se svými výhodami a nevýhodami:

  1. Certifikát od uznávané certifikační autority: Pořízením podpisového certifikátu od společnosti Verisign, Thawte nebo Comodo získáte to nejlepší a nejfunkčnější, co můžete mít. Zásadní výhodou je, že tyto autority jsou součástí standardní instalace Windows (Thawte a Verisign odedávna, Comodo tuším od Windows XP), tzn. tímto certifikátem podepsaná aplikace bude fungovat takřka každému uživateli, aniž by musel cokoliv dělat.Ovšem není růže bez trní. Získání certifikátu od uznávané autority je za prvé drahé a za druhé náročné na soukromí. Pokud jde o cenu, stačí nakouknout do ceníku: Verisign si své certifikáty cení na 500 USD ročně, Thawte se spokojí s 300 USD, nejlevnější Comodo pořídíte za 180 Euro. Při nákupu na delší období nebo využití přeprodejců (kteří nakupují obrovská množství certifikátu a tím dosahují na lepší ceny) se dá dostat o něco níže, ale stejně se bavíme o nějakých sto dolarech ročně. Pro firmu to není žádný problém, pro samostatného vývojáře free prográmků už ale jde o docela drahou zábavu.Přesto bych nad nejlevnějším certifikátem uvažoval, kdyby tu nebyla druhá bariéra: Všechny seriozní certifikační autority vyžadují velmi podrobnou identifikaci zájemce o certifikát. V případě Comoda to například znamená, že musíte dodat přinejmenším dva z následujících pěti dokumentů: výpis z obchodního rejstříku, státem vydaná licence, čerstvý telefonní účet, čerstvý účet za služby (elektřina, voda, teplo…) nebo čerstvý výpis z bankovního účtu; pokud jste fyzická osoba, může jít i o obdoby, tzn. místo výpisu z obchodního rejstříku postačí kopie pasu nebo občanského průkazu. Na všech dokladech musí být vidět adresa a telefon, a Comodo si ten telefon bude ověřovat. Navíc musí být shoda mezi údaji o firmě a údaji napsanými ve WHOIS domény, tzn. smůlu mají ti, kdo používají privátní registraci (jako třeba já). A to všechno budete muset každý rok opakovat.Faktem je, že se tyto soukromé údaje neobjeví přímo na certifikátu, bude je mít k dispozici pouze certifikační autorita. Na certifikátu bude vidět pouze jméno (které se ale musí shodovat s tím, co je vedeno v dokumentech, tzn. pokud si nezaložím firmu nebo nezměním jméno, nemám šanci dostat certifikát na jméno „Pepak“) a volitelně e-mail.
  2. Certifikát od jiné certifikační autority: Certifikát můžete pořídit i od jiné certifikační autority než výše uvedených. Výhodou bude nižší cena, nevýhodou to, že tento certifikát nebude ve standardní instalaci Windows uznáván jako důvěryhodný – uživatel bude muset napřed označit za důvěryhodný certifikát vaší autority. Požadavky na lustrace ze strany autority pravděpodobně zůstanou velmi podobné jako v předchozím případě.Alternativní autorita může být zajímavou volbou, pokud zvolíte takovou autoritu, které vaši klienti pravděpodobně stejně důvěřují – v našich krajích by šlo např. o První certifikační autoritu nebo Post Signum České pošty. Otázkou ale je, jestli tyto autority vůbec certifikáty pro podpis programů vydávají – skoro bych řekl, že ne, nebo se mi aspoň nepodařil najít žádný důkaz o opaku.
  3. Vlastní certifikát: Certifikát si může vygenerovat každý svůj vlastní. Výhodou je cena (nulová) a nároky na lustraci (žádné), nevýhodou to, že takový certifikát nikdy nebude implicitně považován za důvěryhodný – vždy si ho bude uživatel muset ručně nainstalovat mezi důvěryhodné certifikáty. Osobně si myslím, že by musel být blázen, aby to udělal, i kdyby věděl, jak na to.

Podepisovací aplikace

Když už máte certifikát, nebo aspoň jistotu, že si chcete vygenerovat certifikát vlastní, potřebujete ještě nějaký nástroj pro podepisování. Microsoft dává zdarma k dispozici utilitu SignTool (ve starší verzi SignCode). Celá sada má asi 110 KB a nepotřebuje instalaci. Aby to ale nebylo tak jednoduché, tak si tuto sadu nemůžete stáhnout samostatně – musíte si stáhnout balík Windows SDK o délce 1.3 GB, ten nainstalovat a potřebné prográmky z něj vytáhnout: jsou to cert2spc.exe, makecert.exe, pvk2pfx.exe a signtool.exe a všechny je po instalaci najdete v adresáři C:\Program Files\Microsoft SDKs\Windows\v7.0\bin.

Vygenerování vlastního certifikátu

Tento krok není potřeba dělat, pokud jste si pořídili certifikát u některé certifikační autority.

Pro vygenerování certifikátu slouží utilita makecert.exe. Má celou řadu parametrů, kterými jde nastavit například dobu platnosti nového certifikátu (standardně je od okamžiku spuštění do roku 2040), použitý šifrovací algoritmus atd. Celý seznam vypíšete pomocí příkazu makecert -!, pro vytvoření základního podepisovacího certifikátu můžete použít následující příkaz:

makecert -sv pvk_soubor -n "CN=vaše_jméno;E=váš_email" cer_soubor

Program si vyžádá zadání hesla k soukromému klíči (lze zvolit i variantu bez hesla). Výstupem budou dva soubory, jeden se soukromým klíčem (přípona .pvk) a jeden s údaji o certifikátu a veřejném klíči (.cer). První soubor budete – po menší úpravě – potřebovat pro vlastní podepisování, druhý soubor dáte k dispozici vašim uživatelům, aby si ho nainstalovali do Windows.

Osobně jsem pro svůj klíč použil trochu složitější přístup. Napřed jsem vygeneroval kořenový certifikát příkazem:

makecert -r -len 4096 -sv pepak-root.pvk -n "CN=Pepak (root CA);E=http://www.pepak.net" pepak-root.cer

Následně jsem vygeneroval další certifikát, který je tím kořenovým podepsaný a vyznačuje se zejména kratší dobou platnosti:

makecert -ic pepak-root.cer -iv pepak-root.pvk -len 2048 -m 12 -sv pepak.pvk -n "CN=Pepak;E=http://www.pepak.net" pepak.cer

A teprve tento druhý certifikát budu používat k podepisování programů. Má to tu výhodu, že kdyby se někomu podařilo získat můj soukromý klíč, budu schopen ho zneplatnit a v podstatě obratem vygenerovat klíč nový. Uživatelé přitom nebudou muset dělat nic, nainstalují jen můj kořenový certifikát a tím budou mít „pokryté“ i všechny odvozené digitální podpisy.

Poznámka na okraj: MakeCert ve standardním nastavení generuje podpisy na základě algoritmu SHA1. Ten byl před nějakou dobou prolomen a nelze ho pro účely podepisování považovat za bezpečný. Pomocí parametru -a si můžete vyžádat použití jiného algoritmu, který ještě prolomený není, ale má to nevýhodu: takto podepsané programy pak nepůjdou ověřit ve Windows XP SP2 (možná i SP3, tady si nejsem jistý) a starších systémech. Je otázka, co je menší zlo; já jsem se rozhodl zůstat u SHA1, protože u svých programů považuji kompatibilitu se staršími Windows za důležitější než obavu z toho, že se někdo moje programy pokusí podvrhnout (konečně, kdo z toho má strach, může si je přeložit ze zdrojáků…).

Vygenerování podepisovacího klíče

Privátní klíč v souboru .pvk nejde k podepisování aplikací sám o sobě použít. Musíte ho programy cert2spc.exe a pvk2pfx.exe transformovat na podepisovací klíč:

cert2spc pepak.cer pepak.spc
pvk2pfx -pvk pepak.pvk -spc pepak.spc -pfx pepak.pfx

Vstupem je privátní klíč pepak.pvk a certifikát pepak.cer, výstupem soubor pepak.pfx ve formátu Personal Information Exchange.

Podepsání programu

Když už máte vytvořený soubor .pfx, je podepsání libovolného Windowsovského spustitelného programu (.exe, .dll a spousta dalších) jednoduchou záležitostí. Dělá se to utilitou signtool a minimální podoba je:

signtool sign /f soubor_pfx /v soubor_k_podepsání další_soubor_k_podepsání ...

Lepší je ale využít možností, které signtool poskytuje, a před parametr /v doplnit aspoň následující:

  • /t timestamp_url – podpis bude označen také časovou značkou, takže podpis bude uznán za platný i poté, co už skončila jeho platnost. Vhodnými značkovacími URL jsou například http://timestamp.verisign.com/scripts/timstamp.dll, http://timestamp.globalsign.com/scripts/timstamp.dll nebo http://timestamp.comodoca.com/authenticode (já jsem používal tu první).
  • /d jméno_aplikace – do podpisu bude zakomponováno i jméno aplikace, které se pak zobrazí uživateli.
  • /du webová_stránka – do podpisu bude zahrnuta i adresa, na které se program může o programu dozvědět další podrobnosti.

Jak už jsem uvedl v úvodu, pomocí signtool.exe jde podepsat libovolný program, nejenom váš. Je to k něčemu dobré? Může být: Dejme tomu, že používám nějaký program, který buď digitální podpis nemá vůbec, nebo ho má od autority, které nedůvěřuji. Z nějakého důvodu ale chci, aby program byl podepsaný podpisem, kterému důvěřuji (např. kvůli bezpečnostním politikám dovoluji spouštět jen důvěryhodné programy, tzn. programy podepsané autoritou, které důvěřuji). Než shánět autora programu a uhánět ho, aby použil podpis, kterému bych věřil, je jednodušší takový program „přepodepsat“ svým vlastním certifikátem, kterému budu důvěřovat.

Co musí udělat uživatel?

Pokud jste použili certifikát od uznávané autority, nemusí dělat nic. Windows samy rozpoznají, že je aplikace podepsaná, a zobrazí mu příslušná upozornění. Příklady, jak mohou vypadat:

  • Windows XP, aplikace bez podpisu:
    Windows XP: spuštění nepodepsané aplikace
  • Windows XP, aplikace s důvěryhodným podpisem:
    Windows XP: spuštění podepsané aplikace
  • Windows XP, podepsaná aplikace, jejíž integrita byla nějak narušena:
    Windows XP: spuštění podepsané aplikace, jejíž integrita byla narušena
  • Windows 7, aplikace bez podpisu:
    Windows 7: spuštění nepodepsané aplikace
  • Windows 7, aplikace s důvěryhodným podpisem:
    Windows 7: spuštění podepsané aplikace

Pokud jste použili vlastní certifikát, musíte dát uživateli k dispozici soubor s veřejnou částí certifikátu (s příponou .cer) a pokud on tomuto certifikátu důvěřuje, může si ho nainstalovat. Zdůrazňuji, že uživatel by měl velmi zvažovat, jestli ten certifikát chce nainstalovat jako kořenový, protože pak bude jeho operační systém automaticky důvěřovat i všem dalším odvozeným certifikátům. Osobně bych velmi varoval před tím, instalovat jiné kořenové certifikáty než ty, které jste si sami vytvořili. Nicméně, pokud nechcete na toto varování dbát, můj certifikát najdete na konci článku :-).

Uživatel pak musí tento certifikát nainstalovat. Obrázkový návod, funkční pro Windows XP a Windows 7, máte zde – začíná okamžikem, kdy jste dali nový certifikát „spustit“:

  1. Klikněte na „Nainstalovat certifikát“.
    Instalace certifikátu - krok 1
  2. Klikněte na „Další“.
    Instalace certifikátu - krok 2
  3. Zaškrtněte „Všechny certifikáty umístit v následujícím úložišti“. Pak klikněte na tlačítko „Procházet“ a vyberte úložiště „Důvěryhodné kořenové certifikační úřady“. POZOR, toto dělejte jen s certifikáty, kterým důvěřujete! Nakonec klikněte na „Další“.
    Instalace certifikátu - krok 3
  4. Klikněte na „Dokončit“.
    Instalace certifikátu - krok 4
  5. Zkontrolujte miniaturu certifikátu, jestli se shoduje s miniaturou, kterou vám sdělil poskytovatel certifikátu (tzn. na mém webu já :-)). Pokud ano, odsouhlaste instalaci kliknutím na „Ano“.
    Instalace certifikátu - krok 5
  6. Teď už by měl být certifikát zobrazen jako důvěryhodný. Můžete jeho okno zavřít.
    Instalace certifikátu - krok 6

A to je vše.

Download / Certifikáty pro Pepak.net

Pokud jste natolik neopatrní a/nebo důvěřiví, že chcete mým certifikátům důvěřovat, můžete si je stáhnout zde a nainstalovat podle návodu výše. Získáte tím možnost ověřit, že moje programy nebyly během downloadu nebo někdy později narušeny, například virem. Na druhou stranu se tak ale vystavujete riziku, že třeba podepíšu nějakou úplnou blbost a vaše Windows jí pak automaticky budou důvěřovat. Proto případnou instalaci důkladně zvažte!

  • Certifikát pro rok 2019. Miniatura certifikátu je E8C2D970 3F5A45DE 62447963 1BD65B5D FD2E832C.
  • Certifikát pro rok 2018. Miniatura certifikátu je 707F53BA 106FE8C4 3D7B1DED 82B44E0F D82310E7.
  • Certifikát pro rok 2017. Miniatura certifikátu je 1C0E7C61 A9E2C388 A1CC2C5F 99D7AD26 E71E4780.
  • Certifikát pro rok 2016. Miniatura certifikátu je F07CCB30 5E30738E ADD1CA04 B5B931C7 1175EC33.
  • Certifikát pro rok 2015. Miniatura certifikátu je 14AD315E 097F5A60 4DA52C00 5EDF4186 5C1E1568.
  • Certifikát pro rok 2014. Miniatura certifikátu je BC3BC1F2 428265D4 66C25ED8 8D174C45 F37DEF18.
  • Certifikát pro rok 2013. Miniatura certifikátu je EF6F5C61 B3704476 DBC06E4F 6B5F12D8 C179B9A2.
  • Certifikát pro rok 2012. Miniatura certifikátu je 1A26AD5B E1655853 5427B777 1CE942C8 035B48B5.
  • Certifikát pro rok 2011. Miniatura certifikátu je CED68E61 8672199F 92409F41 EFBCC4E2 EF09CBC9.
  • Kořenový certifikát od 6.5.2015. Pokud označíte za důvěryhodný tento certifikát, bude vám fungovat na věčné časy a nikdy jinak, dokud se nezmění něco většího (např. prolomení SHA2 nebo než zjistím, že mi certifikát nefunguje pro nějakou speciální operaci). Miniatura certifikátu je ‎0A0D74E9 B76DAFF3 730280D4 78EBC047 C8B1BD5E.
  • Kořenový certifikát. Pokud označíte za důvěryhodný tento certifikát, bude vám fungovat na věčné časy a nikdy jinak. Miniatura certifikátu je 1B69C813 C576D5C5 652A3E6C 9BDE18FC EFA01440.

Postupně budu podepisovat všechny své programy. Zatím (25.12.2010) jsem, hlavně pro demonstrační účely, podepsal PDB2TXT a programy pracující s tokeny Yubikey: PkYubikey, SlimFTPD a autentizační plugin pro UltraVNC.

Podobné příspěvky:

46 komentářů “Authenticode – jak podepisovat programy”

  1. avatar pepak napsal:

    Aktualizován kořenový certifikát. Mimo jiné slouží i k podpisu SSL certifikátu tohoto webu, takže nyní můžete psát komentáře i šifrovaně 🙂

  2. avatar pepak napsal:

    Aktualizován certifikát pro rok 2015. Pomalu budu přecházet na SHA2 certifikáty, SHA1 už není dostatečně bezpečný. Ale potřebuju počkat, než vymřou Windows XP.

  3. avatar pepak napsal:

    sven: Používám self-signed certifikáty. O cenu mi snad až tolik nešlo, ale nechci o sobě poskytovat takové informace, které požadují certifikační autority.

  4. avatar sven napsal:

    to Pepak: Na timestamp používam tiež službu od Verisign. Opečiatkovanie časovým razítkom prebehne korektne a razítko bolo vytvorené certifikátom platným do roku 2020 (Symantec Time Stamping Signer). Musím sa na to spýtať v startssl.
    BTW, od koho máte certifikát Vy a koľko Vás to stálo, ak sa smiem spýtať 🙂

  5. avatar pepak napsal:

    Sven: Prodloužení certifikátu neexistuje, je jen vystavení nového certifikátu s novou platností. Takže to propadnutí dříve podepsaných aplikací z principu nemůže ovlivnit. Spíš bych hledal příčinu v tom, jestli tvůj počítač důvěřuje certifikátu timestampovací služby (proto používám ti od Verisign).

  6. avatar Sven napsal:

    U StartSSL myslim, ze ak chce clovek certifikat na seba (vyzaduje sa overenie Identity validation Class2) stoji to 59,90 USD na rok a ak na firmu tak dalsich 59,90 USD na rok (pre ziskanie Corporate Validation Class2). Potom si mozno zadarmo vygenerovat 2-rocny certifikat na osobu/firmu pre code sign aplikacii. Tolko to stalo mna.
    V priebehu 2 rokov som podpisoval svoje programy aj timestampom, mysliac si, ze aplikacie podpisane pocas doby platnosti certifikatu budu mat platny podpis aj po vyprsani certifikatu. Omyl. Po vyprsani 2 rocneho codesign certifikatu mi padli vsetky podpisy. Timestamp nefungoval 🙁
    Ja som si ovsem po prvom roku nepredlzil Identity a Corporate Validation („usetril“ som 2 x 59,90 USD). Teraz neviem ci StartSSL Class2 nepodporuje timestamp a vsetko podpisane takym certifikatom konci v okamihu koncu platnosti certifikatu, alebo bola chyba ze som si nepredlzil Identity a Corporate Validation Class2 o dalsie obdobia.

  7. avatar Michal Zobec napsal:

    Takže jsem celý proces dotáhl do konce a mám tu první podepsanou aplikaci 🙂 (odkaz je veřejný)
    https://www.facebook.com/photo.php?fbid=4745502170532&set=a.1091762189316.12894.1684352897&type=1&theater

  8. avatar Michal Zobec napsal:

    ahoj, takže po letech jsem se dokopal k tomu že mám certifikát od StartComu, protože po jistých zkušenostech v práci a i osobních zkušenostech jsem pojal k I.CA nedůvěru v jejich neschopnost … (bylo k tomu více indicií). Proces registrace a ověření u StartCom proběhl perfektně a dokonce velmi rychle.

    ještě se musím dokopat k tomu abych si požádal o ten codesigning certificate, ale protože potřebuju podepisovat vlastní aplikace, tak věřím že to bude brzo 🙂

    jinak pořídil jsem si toto:
    Class 2 Identity Validation (StartSSL™ Verified)https://www.startssl.com/?app=34

    cena je příjemných 59,90 USD 🙂

  9. avatar pepak napsal:

    Doplnil jsem certifikát pro rok 2013.

  10. avatar Tomáš Halász napsal:

    Ještě aktualizace ohledně PostSignum. Dnes volali z technické podpory, že mám špatně uvedenou email adresu a jestli ji chci opravit a vygenerovat nový certifikát. A protože chlapík vypadal, že tomu rozumí, na rozdíl od hotline s kterými jsem mluvil předtím, tak jsem zeptal jestli podporují nebo budou podporovat podepisování aplikací. Odpověď byla, že to s jejich certifikáty nejde a ani v budoucnu to neplánují. Tak až bude někdo další hledat levnou variantu tak už víme, že PostSignum ne 😉

  11. avatar Tomáš Halász napsal:

    Tak to prošlo. Dnes volali a chtěli jen telefonicky ověřit název firmy a email. Takže už podepisuju 🙂 Díky za návod.

  12. avatar pepak napsal:

    Určitě se to stát může, jaký by jinak měla ta validace smysl, kdyby prošlo úplně všechno. Ale tak nějak bych čekal, že pokud do toho jdeš v dobré víře, tak bys snad certifikát dostat mohl…

  13. avatar Tomáš Halász napsal:

    Registroval jsem se na Tucows včera večer a certifikát jsem chtěl na firmu. Dnes si vyžádali fakturu a živnostenský list, to jsem jim poslal a teď mi přišlo že budou ještě volat. Na secure.comodo.net mám verification level Class 3 🙂 Tak nevím. Může se stát, že mě z nějakého důvodu neověří a certifikát nevydají?

  14. avatar Tomáš Halász napsal:

    Pepak: Taky si myslím, že s tím prostě nic udělat nepůjde. Včera jsem už objednal a zaplatil codesign certifikát přes tucows jak bylo popsáno níže a teď jen čekám až dorazí.

  15. avatar pepak napsal:

    Tomáš Halász: Pokud Windows říkají, že certifikát je neplatný pro požadovaný účel, tak se s tím podle mě nic dělat nedá, leda použít certifikát od jiného poskytovatele. Ale rád se nechám přesvědčit o opaku, pokud někdo ví, jak na to.

  16. avatar Tomáš Halász napsal:

    Ahoj, díky za návod.
    Vyzkoušel jsem komerční osobní certifikát od PostSignum ale bohužel to není ono. Podepsat s ním sice aplikace jde, ale ve vlastnostech aplikace se pak u podpisu objeví „Pro požadovaný účel je certifikát neplatný“. Nevím jestli jsem zvolil správný typ certifikátu, ale pak už nabízejí jen komerční serverový a komerční šifrovací. Hotline cpost, kam jsem volal před tím než jsem certifikát koupil, prohlásil, že s komerčním osobním aplikace podepisovat půjdou 🙂 Což o to, podepsat jdou, ale Windows jim stále nějak nevěří.

    Nemáš prosím nějakou radu co s tím? Případně budu muset jít do nějaké dražší varianty..

    díky

  17. avatar pepak napsal:

    Vytvořil jsem nový certifikát pro rok 2012.

  18. avatar pepak napsal:

    Petr: No, „polovičatý certifikát“ – Comodo ani nikdo jiný nemůže dost dobře nic dělat, pokud si Microsoft postavil hlavu a certifikační autority, kterým důvěřuje, si stanovil jednou provždy a žádné další už nezavede. (Ne že bych se mu zrovna v případě Comoda divil, měli teď nedávno docela pěkný průšvih s jedním svým resellerem…)

    Článek už jsem napsal, viz Podepisování 64bitových ovladačů pro Windows.

  19. avatar Petr napsal:

    Ahoj,
    ještě, že jsi na to upozornil Pepaku. Pořád jsem totiž ještě GlobalSign nekoupil, ale mám to v plánu. Tuto diskuzi občas kontroluju a zaujal mě příspěvek xpirina. Škoda, že je to zas jen polovičatý certifikát. Psal jsi, že chystáš nějaký nový článek. Hoď sem kdyžtak odkaz, až to budeš mít, rádi si počteme.

  20. avatar pepak napsal:

    Jen upozorním, že tento certifikát nelze použít k podepsání 64bitových ovladačů tak, aby fungovaly bez testsigning režimu.

  21. avatar xpirin napsal:

    Ak by to niekoho zaujimalo, tak znamy server Tucows predava CodeSigning certifikaty Comodo za 75,- USD/rok pre vyvojarov SW. To je celkom prijemna suma.
    Tento certifikat pouzivam uz takmer rok a nie je s nim ziaden problem, root je instalovany v OS, cize certifikat je povazovany za doveryhodny.
    Overovaci proces je jednoduchy. Staci mailom posielal nejake dokumenty do Comoda (udaje o firme a kopiu faktury za telefon).
    Viac info je tu (je potrebne si vytvorit autorsky ucet):
    https://author.tucows.com/index.php

  22. avatar pepak napsal:

    Petr: Docela bych uvítal, kdybys potom mohl popsat prověřovací proces. Ten byl hlavním důvodem, proč jsem do toho nešel (druhý byl ten, že 230 USD za drobnou úpravu TrueCryptu je docela dost).

  23. avatar Petr napsal:

    Super, moc dík, ten GlobalSign vypadá použitelně. Jdu dotoho a pak dám vědět, jak jsem dopadl. Může to trvat ale i nějaký ten měsíc… Určitě to ale bude ono.

  24. avatar pepak napsal:

    Skoro. Je tam jeden mezikrok s podepsáním cross-signing certifikátem, ale v podstatě to funguje podle mého návodu.

  25. avatar Petr napsal:

    Pepak: Výborně, to jsem potřeboval vědět. Takže tyto autority ti pak poskytnou soubor s příponou pfx, popřípadě ještě nějaké další? Které ti umožní úspěšný podpis? Způsobem, který jsi nám popsal?

  26. avatar pepak napsal:

    Petr: Chystám na to článek, protože jsem si to konečně vyzkoušel v praxi. Stručně řečeno: pro plnou podporu 64bitových ovladačů (bez používání Windows v testsigning režimu) potřebuješ class 3 podpis od Verisign (500 USD za rok) nebo GlobalSign (230 USD za rok). Všechny ostatní budou vyžadovat testsigning (a v tomto ohledu je tedy dost jedno, jestli použiješ vlastní certifikát nebo si ho koupíš u PostSignum).

  27. avatar Petr napsal:

    Ahoj,
    dle Pepakoveho návodu jsem si vytvořil vlastní certifikát a s jeho pomocí podepsal driver pro WIN 7 x64. Certifikát jsem úspěšně naimportoval do uložiště a tváří se, že ho windowsy berou. Háček je v tom, že systém musím spouštět jako simulátor, aby mi takto podepsaný driver toleroval a umožnil jeho činnost(při normálním provozu hlásí nepodepsaný driver). Proto bych se chtěl zeptat, jestli jste někdo zkoušel něco komerčního? Třeba i Post Signum. V čem to bude jiné při vlastním podpisu než Pepakuv postup? Post Signum se přece naimportuje do centrálního uložiště přes aktualizace úplně stejně, jako bych ho tam dal ručně, ne? Prostě bych rád věděl, jestli mi něco komerčního umožní úspěšný podpis driveru.
    Podobný dotaz jsem již měl, ale nikdo nedokázal odpovědět. Díky.

  28. avatar pepak napsal:

    Důvěryhodnost zdroje ovšem nemusí být v žádném vztahu k tomu, jaká je konkrétní identita toho zdroje. Pokud například budu mít programy A, B a C od stejného autora, tak pro to, abych důvěřoval C, mi stačí pozitivní zkušenost s A a B, nepotřebuji k tomu přímou znalost toho, kdo tím autorem je. (Tedy, „důvěřoval“ je trochu silné slovo, ale každopádně bych měl k programu C zhruba stejný stupeň důvěry, jako kdybych věděl, že jeho autorem je pan František Vomáčka, bytem Václavské náměstí 1.)

    Nicméně nemá smysl to rozebírat, ta možnost tady prostě není a tím to končí. Jako autor mohu volit jen mezi tím, jestli chci zachovat svoje soukromí a použít self-signed certifikát, nebo jestli trvám na „oficiálním“ certifikátu i za cenu toho, že o sobě musím prozradit spoustu privátních informací.

  29. avatar Martin napsal:

    Předpokládám že smysl toho podepisování je v tom, že uživatel si před instalací přečte, kdo aplikaci vytvořil (podepsal) a rozhodne se, jestli jde o důvěryhodný zdroj nebo ne a jestli bude v instalaci pokračovat. Pokud v certifikátu žádné taková informace nebude, tak to je víceméně stejné, jako by tam žádný podpis nebyl.

  30. avatar pepak napsal:

    Potíž je, že ten certifikát „Thawte 123“ se pro podepisování programů nedá použít.

    Jak zajistit původ a přitom neříkat nic o autorovi? Celkem snadno. Klidně třeba tak, že certifikující autorita si ověří identifikaci žadatele a do certifikátu ji pak nenapíše (resp. nahradí ji řetězcem, který si žadatel při prvním vytváření certifikátu zadal). Nebo si jen ověří, že je uživatel schopen vybrat libovolný e-mail zaslaný do jeho domény (tím, že se pošle mail s potvrzujícím kódem na náhodnýřetězec@doména.cz) a následně se do identifikace v certifikátu propíše použitá doména.

  31. avatar Martin napsal:

    Tady je postup pro vás:
    http://www.lupa.cz/clanky/co-je-nedostatecne/nazory/281981

    Nezkoušel jsem to, jen jsem na to teď náhodou narazil.

  32. avatar Martin napsal:

    1) Jakousi garanci kvality programu by měl poskytnout spíš certifikát od Microsoftu, nějaké to „Designed for Windows“. Prosté podepisování pomocí certifikátu zaručuje jen to, že program opravdu podepsal ten, kdo je na certifikátu uveden. To by mělo být zaručeno poměrně spolehlivě právě díky té lustraci. O kvalitě programu to samozřejmě nic nevypovídá.

    2) Možnost vybrat si různé typy certifikátu tu je. Není mi ale moc jasné, jak chcete zajistit, aby certifikát dokazoval původ programu a přitom neuváděl nic o autorovi. To by asi šlo jen tak, že by se za váš program postavil někdo jiný, kdo by ho taky podepsal.

  33. avatar pepak napsal:

    Souhlasil bych, pokud bych měl:

    1) pocit, že díky certifikátu můžu programu důvěřovat. Což nemám. Dokonce i když si odmyslím problémy, ve kterých se aktuálně topí Comodo, ale které jsou asi nevyhnutelné a dříve nebo později je zažije každá certifikační autorita, stačí si uvědomit ty desítky a stovky programů, které se neúmyslně nebo i úmyslně chovaly nespolehlivě, aby mě důvěra přešla.

    2) možnost vybrat si různé typy certifikátů s různou úrovní prověřování. Já bych třeba měl zájem o certifikát, který by dokazoval původ programu (že je jeho autorem stále týž člověk), aniž by ale říkal cokoliv o tom, kde tím autorem je.

  34. avatar Martin napsal:

    Díky za skvělý článek, zrovna to taky řeším. Jen si dovolím malou poznámku k té „lustraci“. Podle mého je to naprosto nutné, aby se dalo certifikátu vůbec důvěřovat.

  35. avatar pepak napsal:

    Dnes jsem se díval a v aktualizovaných Vistách skutečně PostSignum je.

  36. avatar Petr napsal:

    2 Tonda:
    To vypadá zajímavě. Máš to vyzkoušené?

  37. avatar Tonda napsal:

    I certifikáty od PostSignum jsou v úložišti Windows. viz http://www.postsignum.cz/certifikaty_autorit.html

  38. avatar Petr napsal:

    Ahoj,
    chtěl bych ti prve poděkovat za moc dobrý článek. Okolnosti mě přinutili se o tuto problematiku zajímat. Máme jeden driver, který potřebujeme provozovat i na WIN 7 64 bitech. Problém je, že není digitálně podepsaný. Vytvořil jsem si vlastní certifikát podle návodu výše. Prvně jsem vytvořil pomocí programu Inf2Cat katalogové soubory s využitím inf souboru. Následně jsem přes signtool podepsal katalogy, dll a sys soubory. Při verifikaci to napsalo, že soubory jsou podepsané, ale nejsou ověřené u vyšší autority. Takže, když se registrujeme u nějaké uznávané autority, tak tato nám pošle soubory potřebné pro vlastní podpis?
    2 Radek V.:
    http://www.microsoft.com/whdc/driver/install/drvsign/crosscert.mspx tady se dají stáhnout certifikáty, o kterých píšeš, ale nevím, jak mi k úspěšnému podpisu poslouží, když mi chybí privátní klíč + další soubory.

  39. avatar pepak napsal:

    Díky za upřesnění. Kdyby sis náhodou vzpomněl, odkud pochází ten MSV-VSClass3.cer, tak by mě to velice zajímalo.

  40. avatar Radek V. napsal:

    2Maslan : standardne nepujdou.

    64bit OS totiz vyzaduji aby byla CA vydavajici certifikat jeste krizove podepsana Microsoftem vydanym certifikatem pro prislusnou certifikacni autoritu.

    Takze napr. u Verisignu musim pro podepisovani pouzivat nas certifikat a jeste MSCV-VSClass3.cer ktery uz nevim kde jsem vzal 😀 ale bylo to rozhodne dokumentovane 😀

    Pozadavek na tendle crosssign se da vypnout pomoci bcdedit ale i pak pozor na to ze podpis musi vypadat trochu jinak – je potreba podepisovat i catalog file a overit parametry codesignu

  41. avatar pepak napsal:

    Podle mě by to jít mělo, poté, co svůj kořenový certifikát přidáš mezi kořenové certifikáty, ale vyzkoušené to nemám.

  42. avatar maslan napsal:

    Mám takový dotaz, půjde takto podepsat i ovladač (bt878.sys) pro Win7 64bit ? Tam totiž nepodepsaný ovladače nejedou.

  43. avatar michal zobec napsal:

    no pokud jde o 1.CA tak to jsem tam totiž hledal taky asi před dvěma lety a musel jsem jim napsat mail, taky to nebylo moc drahý ale já nevím asi si pořídím starcom, zrovna jsem požádal o aktuální ceny a možná to ještě jednou srovnám a rozhodnu se podle toho. blbý je že já dělám sw který windows nasazuje takže jaksi potřebuju aby už po instalaci (během instalace) byl můj root ca důvěryhodný. mám dojem že to jde udělat i skriptama (importovat do kořenových důvěryhodných).

    jo a díky moc za článek, zrovna jsem se chystal udělat to samé co ty ale už to asi dva měsíce odkládám (v tomto případě se mi to čekání vyplatilo) 😀

  44. avatar pepak napsal:

    Ta informace o 1.CA je zajímavá – já jsem se to snažil dohledat na jejich webu a nepodařilo se mi certifikáty pro podpis kódu najít. Mám takový dojem, že jsem je tam před časem viděl, i když za šílenou cenu, ale nevěnoval jsem tomu pozornost a teď už je najít nemůžu.

    StartSSL.com je levné, to je pravda. Mě osobně ale vadí hlavně ty ověřovací procedury – těch 200 USD ročně bych třeba i zaplatil, ale nechci se zbavovat soukromí.

  45. avatar michal zobec napsal:

    I. CA poskytuje certifikáty i pro podpis aplikací to jsem osobně zjišťoval. je to první česká CA která se přes windows update sama nainstaluje do windows.

    odkaz je zde, koukni do windows zda máš root ca od 1. ca mezi důvěryhodnými – měl by být – http://www.ica.cz/cz/menu/6/aktuality/clanek-126-aktualizace-duveryhodnych-korenovych-certifikacnich-uradu-produktu-microsoft-internet-explorer-z-oficialnich-stranek-spolecnosti-microsoft/

    mnohem lepší by měl být také startcom který má velmi nízké ceny a navíc má české zastoupení v čr (takže proces ověření probíhá na straně se zástupcem v čr)

    http://www.jiribrejcha.net/2009/11/duveryhodne-ssl-certifikaty-zdarma-od-starcomu/

Leave a Reply

Themocracy iconWordPress Themes

css.php