Certifikáty pro podpis kódu

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.

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.

  1. Přihlaste se ke svému účtu CACert.
  2. Jděte do menu "Klientské certifikáty", položka "Nový".
  3. Zkontrolujte, že je tam "Podepisování kódu", a stiskněte "Další".
  4. Vyžádejte si certifikát.
  5. 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

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:

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

keytool -list -storetype pkcs12 -keystore keystore.p12

jarsigner -storetype pkcs12 -keystore keystore.p12 pasta.jar "guillaume frederic romagny's root ca id #2"

jarsigner -storetype pkcs12 -keystore keystore.p12 -tsa "http://time.certum.pl/" pasta.jar "guillaume romagny's root ca id"

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

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

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.

Pro použití certifikátů CAcert k podpisu balíčku XPI proveďte tyto kroky:

  1. Instalujte certifikát pro podpis kódu do svého webového prohlížeče.
  2. Extrahujte binární NSS utility, jak je popsáno v článku Peteho instrukce.

  3. 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
  4. 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>
  5. 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)
  6. Postupujte podle návodu podepisování XPI above, extrahujte nepodepsaný balíček XPI do adresáře.
  7. 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>
  8. Váš podepsaný balíček XPI <jméno souboru s balíčkem XPI> je hotov.

  9. 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




Category or Categories

CategoryAudit
CategorySoftware
CategoryOrganisationAssurance
CategoryAssurance

  1. nebo nemá žádné speciální atributy (1)

CodesigningCert/CZ (last edited 2015-12-09 12:16:18 by AlesKastner)