česky | english
Certifikáty pro podpis kódu
Contents
- Certifikáty pro podpis kódu
- Co potřebuji, abych získal(a) od CAcert certifikát pro podpis kódu?
- Základní účely podepisování kódu
- Java (příklad)
- Platformy akceptující certifikáty pro podepisování kódu od CAcert
- Jak mohu použít svůj certifikát pro podepisování kódu? (příklad: java)
- Jak použiji svůj certifikát pro podepisování kódu u Microsoft Authenticode?
- Konvertování úložišť klíčů
- Kroky potřebné, aby vývojáři Javy mohli testovat podepsaný aplet v prohlížeči
- Linux
- Podepisování balíčků Mozilla XPI (Firefox, Thunderbird)
- Příspěvky a úvahy
Co potřebuji, abych získal(a) od CAcert certifikát pro podpis kódu?
Jednotlivý uživatel CAcert
Pro schopnost podepisovat kód musíte být zaručovatel CPS 4.2.6. To znamená mít alespoň 100 bodů zaručení a složit zkoušku Výzva zaručovatele. Je-li toto splněno, můžete poslat e-mail na support(zavináč)cacert.org a požádat o aktivaci schopnosti podepisování kódu ve svém účtu.
Více o bodech zaručení (Assurance Points): Úvod do zaručování.
Více o testu Výzva zaručovatele: Příručka zaručovatele.
- Jak dlouho trvá získání podpisového certifikátu od CAcert? V současnosti jen několik dní.
Organizace a podepisování kódu
Od března 2008 mohou organizace registrované u CAcert vytvářet certifikáty pro podepisování kódu se svým názvem.
Jakmile je organizace registrována, získáváte schopnost podepisovat kód. Nahlédněte do Příručky zaručování organizací (Organization Assurance Manual). Máte-li další dotazy, pište na: support(zavináč)cacert.org
Jak obdržíte certifikát pro podepisování kódu
Předpoklady: Ve Vašem účtu je aktivována schopnost podepisovat kód.
- Přihlaste se ke svému účtu CACert.
- Jděte do menu "Klientské certifikáty", položka "Nový".
- Zkontrolujte, že je tam "Podepisování kódu", a stiskněte "Další".
- Vyžádejte si certifikát.
- Pravou klávesou myši klikněte na odkaz pro instalaci certifikátu, z menu zvolte "Uložit jako..." a uložte svůj klientský certifikát do souboru.
Základní účely podepisování kódu
Podepisování kódu identifikuje Vás, držitele certifikátu, že jste napsal nějaký kód, například java-kód v souboru pasta.jar.
Pozor: podepisování kódu NENÍ jeho zabezpečení!
Řádný, bezchybný podpis kódu dokazuje autenticitu a integritu kódu. Podepisování kódu však NEZARUČUJE bezpečnost ani spolehlivost kódu. Takže - velmi vtipně, přinejmenším - koncový uživatel bude znát Vaše jméno těsně předtím, než mu zrušíte celý obsah všech pevných disků. Viz rozbor Schneier o bezpečnosti.
Java (příklad)
V okruhu Javy: virtuální stroj Javy může řídit celý počítač uživatele. Ano, to může být záležitost bezpečnosti. Takže jakýkoli kód, který můžete stáhnout z Internetu, má omezené schopnosti udělat něco s Vaším počítačem. Zamýšlíte-li použít na počítači uživatele mocnější funkce, budete muset podepsat kód, který poskytujete, a doufat, že uživatel Vám důvěřuje (jako poslední instanci)!
Viz také JavaCodeSigningTest
kořenový certifikát CAcert musí být zaveden do JavaVM, nejen do webového prohlížeče!
Zde je kopie modifikovaného úložiště klíčů JRE s přidanými kořenovými certifikáty CAcert, tj. kořenovým třídy 1 a zprostředkujícím třídy 3: cacerts
- Jeho MD5 haš: e7a2e4682d2578e4f8715909b62a8a36
- Soubor "cacerts" najdete na java/jre/lib/security/ - prosím, nejprve si udělejte záložní kopii původního souboru.
Počínaje verzí 5 Javy podporuje nástroj "jarsigner" časová razítka (TimeStamping - na Linux Ubuntu zkuste otevřít návod man jarsigner). Takže při vypršení platnosti certifikátu pro podpis kódu nepotřebujete novou instalaci aplikace. Na druhou stranu však potřebujete vložit certifikát s časovým razítkem certifikační autority, pokud už není obsažen v JVM (Java Virtual Machine).
Viz http://mindprod.com/jgloss/signedapplets.html
Příklady podepsaných aplikací
Jednoduché příklady:
CAcert podepisování kódu (potřebuje upravený soubor "cacerts"): viz Tiebogosovy špagety (nesmaže Vám disk, ale pomůže Vám nepřevařit špagety)
Thawte freemail podepisování kódu: viz zde
Připomínky prosím na guillaume(zavináč)cacert.org!
Platformy akceptující certifikáty pro podepisování kódu od CAcert
Certifikát pro podepisování kódu má speciální atributy 1, aby ho akceptovaly aplikace firem Microsoft, Sun, Mozilla, atd. jako certifikát pro podepisování kódu (jako takový).
Certifikáty vydané CAcert však budou funkční, jen když bude instalován kořenový certifikát CAcert a když bude důvěryhodný pro koncového uživatele A když koncový uživatel souhlasí se spuštěním kódu.
Jak mohu použít svůj certifikát pro podepisování kódu? (příklad: java)
Oprávnění podepisovat kód může být přidáno k novým e-mailovým certifikátům, které obdržíte od webu CAcert.
Jakmile bude Vaše oprávnění schváleno, pak při další žádosti o e-mailový certifikát uvidíte volbu, zda chcete vložit i oprávnění podepisovat kód.
Viz Richard Dallaway web start a podpisy kódu CAcert, freemail Thawte nebo raději zde: http://www.crionics.com/products/opensource/faq/signFree.htm ( upozornění: od listopadu 2009 je program freemail Thawte včetně bezplatného podepisování kódu Java codesigning ukončen.)
- seznam certifikátů v úložišti klíčů (změňte jks - typ úložiště a .ks - zkratku keystore [úložiště klíčů])
keytool -list -storetype pkcs12 -keystore keystore.p12
- podepíše soubor .jar
jarsigner -storetype pkcs12 -keystore keystore.p12 pasta.jar "guillaume frederic romagny's root ca id #2"
- podepíše soubor .jar s časovým razítkem (zachovat pořadí argumentů!)
jarsigner -storetype pkcs12 -keystore keystore.p12 -tsa "http://time.certum.pl/" pasta.jar "guillaume romagny's root ca id"
- ověřte podepsaný soubor .jar
jarsigner -verbose -verify -certs pasta.jar
Jak použiji svůj certifikát pro podepisování kódu u Microsoft Authenticode?
Pro podepsání kódu u Microsoft Authenticode musíte rozložit soubor typu PKCS#12 na dočasný privátní klíč a soubory PKCS#7, které obsahuje, aby je šlo použít s aplikacemi podporujícími Authenticode. Protože musím vidět takový, který podporuje formát PKCS#12, zatím jsem se podílel na návodu, jak to udělat. Viz wiki stránku Authenticode s návodem.
Authenticode upřednostňuje časová razítka za účelem vyhnout se reinstalaci aplikací, když platnost certifikátu vyprší. https://digitalid.verisign.com/developer/help/mscs_faq.htm
Služba časových razítek Verisign - URL
http://timestamp.verisign.com/scripts/timstamp.dll
Další informace o TimeStamping
Konvertování úložišť klíčů
Java 1.4 může číst formát PKCS#12, ale nemůže ho zapisovat. JKS (Java Key Store, úložiště klíčů Javy) je značně nepohodlné (mimochodem, PKCS#12 také). Můžete chtít konvertovat svoje úložiště klíčů z JKS do PKCS#12, zvláště když generujete certifikát Freemail Thawte pro podepisování kódu.
Viz Keytool IUI založený na Bouncy Castle Crypto API
{en} Keytool IUI
{fr} KeyTool IUI
Kroky potřebné, aby vývojáři Javy mohli testovat podepsaný aplet v prohlížeči
Potřebujete přidat kořenový certifikát CAcert (a možná i zprostředkující certifikát třídy 3) do úložiště certifikátů JVM CA. V Linuxu najdete příkaz "ControlPanel" ve složce JRE "bin" (javacpl.exe v MS Windows).
Linux
http://www.jukie.net/~bart/elfpgp/ (používá klíče GPG)
http://sourceforge.net/projects/disec (používá klíče GPG)
http://blogs.sun.com/roller/page/darren/Weblog/signed_solaris_10_binaries
http://www.dia.unisa.it/staff/luicat/home/publications/scn02.pdf (nefunkční odkaz)
http://libeccio.dia.unisa.it/wlf/ (nefunkční odkaz)
Podepisování balíčků Mozilla XPI (Firefox, Thunderbird)
Certifikáty CAcert pro podepisování kódu lze použít k podpisu balíčků Mozilla XPI pro aplikace Mozilly, jako Firefox a Thunderbird.
Aplikace Mozilly vyžadují hodnotu v poli Organisation (organizace), aby UI ohlásil, že položka je podepsána. Pouze organizace registrované u CAcert mohou podepisovat kód pomocí plug-inů Mozilly. Viz OrganisationAssurance [Zaručování organizací].
Jednotliví uživatelé CAcert s oprávněním podepisovat kód mohou použít návod níže, avšak aplikace Mozilly budou stále ohlašovat položku jako Unsigned (nepodepsanou). Viz bug 372980. Opraveno ve Firefox 3.5.6 a Thunderbird 3.0.1pre.
http://forums.tjworld.net/viewtopic.php?t=130 Stručný návod k získání, instalaci a použití certifikátů pro podpis kódu ve Windows pro rozšiřující balíčky Mozilla XPI.
http://developer.mozilla.org/en/docs/Code_snippets:Signing_a_XPI Předchozí odkaz již nefunguje, zde je zrcadlo
http://www.mozdevgroup.com/docs/pete/Signing-an-XPI.html Základní návod pro cross-platform používající certifikát podepsaný sám sebou (self-signed certificate), napsal Pete Collins.
Pro použití certifikátů CAcert k podpisu balíčku XPI proveďte tyto kroky:
- Instalujte certifikát pro podpis kódu do svého webového prohlížeče.
Extrahujte binární NSS utility, jak je popsáno v článku Peteho instrukce.
Identifikujte svou databázi certifikátů, která je obvykle umístěna ve Vašem profilovém adresáři. Jeden způsob, jak určit Váš profilový adresář: najděte všechny soubory "key3.db" ve svém domovském adresáři:
find ~ -name key3.db
- Najdete-li více adresářů, pak v každém, který obsahuje soubor key3.db, vypište tam uložené certifikáty, abyste našli svůj nový podpisový certifikát (může být označen "*" v prvním sloupci), příkazem:
signtool -L -d <certificate database directory>
- Pokud jste našli správný adresář, položka vypadá takto:
* Joe Normal's Root CA ID (identifikátor kořenové CA Josefa Běžného)
- Postupujte podle návodu podepisování XPI above, extrahujte nepodepsaný balíček XPI do adresáře.
Zadejte příkaz podepisovacího nástroje (tento příkaz je uveden podle NSS 3.11.4):
signtool -d <the key3.db dir> -k "Joe Normal's Root CA ID" -p <heslo> -X -Z <jméno souboru s balíčkem XPI> <adresář-strom>
Váš podepsaný balíček XPI <jméno souboru s balíčkem XPI> je hotov.
- Chcete-li ověřit správnost podpisu balíčku, použijte tyto dva příkazy:
signtool -v <jméno souboru s balíčkem XPI> signtool -w <jméno souboru s balíčkem XPI>
Příspěvky a úvahy
06.12.2009-PhilippGuehring / DieterHenning e-mailem
Aktivace podepisování kódu pro organizace > Poté, co je odemčeno podepisování kódu, musí Vám být vydán nový certifikát, a při vystavení vyznačeno, že v něm máte aktivováno podepisování kódu. Myslím, že podepisování kódu je u prohlížečů s Java-skriptem nyní umístěno pod "Rozšířené možnosti" (Upřesnit). > Srdečné pozdravy, > Philipp Gühring Postup následuje. 1. Jako Org-Admin si musím nechat vystavit osobní certifikát '''SE''' schopností podepisovat kód. 2. Pak mohu tuto schopnost zapnout '''také''' u certifikátů klientů organizace. To jsem udělal a mám v obou (nových) certifikátech potřebné údaje. Přesněji: 1. Musíte to navrhnout skutečně jako jednotlivec. 2. Pak to musíte opět jako jednotlivec jedenkrát použít do žádosti o klientský certifikát. 3. Pak máte jako Org-Admin možnost zapnout tuto schopnost v dialogu. Díky za pomoc, s přátelskými pozdravy Dieter Hennig
- YYYYMMDD-Vaše_jméno
Text / Vaše poznámky, úvahy a výňatky e-mailů
Category or Categories
CategoryAudit
CategorySoftware
CategoryOrganisationAssurance
CategoryAssurance
nebo nemá žádné speciální atributy (1)