5. 11. 2016

Podepsání binárek certifikátem

Nejprve je potřeba si obstarat certifikát s privátním klíčem pro tzv. Code Signing. Tento certifikát jste schopni sehnat u téměř každé certifikační autority. Jen u těch našich českých to asi bude problém... Tento typ certifikátů totiž nevystavují. Proto doporučuji nějakou zahraniční. Počítejte ale s tím, že tyto certifikáty jsou dražší než běžně. A to hlavně z důvodu, že jsou používány profesionály, kteří za svou práci dostávají zaplaceno.

Jen pro info... u nás máme tři certifikační autority.
- První certifikační autorita, a. s.
- Česká pošta, s. p.
- eIdentity a. s.


Stáhněte si od Microsoftu tool, kterým se dají binárky snadno podepisovat. Tento nástroj se jmenuje Signtool a je součástí Windows 10 SDK. Po instalaci ho pak najdete na cestě

c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe

Příkaz pro podepsání pak v příkazové řádce bude vypadat takto

signtool sign /f c:\temp\Podpis_binarek.p12 /p HESLO_k_CERTIFIKATU c:\temp\Installer.msi

Soubory, které můžete podepsat jsou: .exe, .cab, .dll, .ocx, .msi, .xpi, a .xap

A jak poznáte, že máte správně podepsáno? Klepněte pravým tl. myši na soubor, vyberte vlastnosti a zde uvidítě záložku Digital Signatures. Když záznam vyberete, můžete klepnout na Details a zde uvidíte další informace, včetně možnosti zobrazit si certifikát.



Veškeré další použitelné parametry pak najdete například na webu MS.

TIMESTAMP

Je zde ale ještě jedna velice důležitá věc. Pokud byste předchozím příkazem podepsali binárky, tak jakmile tento certifikát vyprší, bude Windows hlásit, že binárky nejsou podepsané - prostě jim zase nebude důvěřovat.
Je tedy dobré do příkazu přidat ještě tzv. Timestamp, kdy řeknete, kdy došlo k podepsání a že má podpisu důvěřovat i po datu vypršení platnosti certifikátu.

signtool sign /f c:\temp\Podpis_binarek.p12 /p HESLO_k_CERTIFIKATU /t  http://timestamp.comodoca.com c:\temp\Installer.msi

To co je za parametrem /t odkazuje na server, který může k podpisu přidat časovou značku.
Ověřit podpis si můžete zase stejným způsobem, akorát nyní v poli Timestamp uvidíte časovou značku.


Co na to Windows Smart Screen

Microsoft před nějakou dobou představil tento nástroj, aby uživatele chránil před nežádoucími programy (malware apod.), které se snaží spustit. Tím ale také přidělal práci všem programátorům, kteří chtějí, aby jejich aplikace na Windows nehlásili žádné problémy při či před instalací.
U standardně podepsané aplikace je možné, že kontrolou Windows Smart Screen projde v pořádku, pokud bude mít dostatečnou reputaci. Jak této reputace dostát jsem zatím nehledal, takže zde neporadím.
Pokud ale chcete "testem" určitě projít, pořiďte si Extended Validation Code Signing certifikát. Tento vám zaručí, že při instalaci nebudou žádné problémy.
Certifikát je dražší a hlavně budete podstatně více prověřováni, jestli jste to opravdu vy. Také k tomuto certifikátu dostanete externí zařízení, tzv. klíčenku, kterou k podpisu budete následně používat.
Tyto Extended Validation certifikáty můžete pořídit pouze u klíčových hráčů, kteří spolupracují s Microsoftem a podporují Microsoft Authenticode.


Jako příklad uvedu
- Symantec- GlobalSign
- Digicert


Doplnění
http://vladimirklaus.cz/CZ/clanky-detail/321/jak-digitalne-podepisovat-aplikace-oficialnim-certifikatem

Žádné komentáře:

Okomentovat