NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Peter Sciranka
Tvůrce
Avatar
Peter Sciranka:27.8.2017 18:40

Ahojte, chcem sa opýtať,
ak vytvorím nejaký program a potom ho pošlem niekomu inému alebo otvorím v inom pc, tak to vyhodí takú nejaké hlášku, že autor programu je neznámy a program môže ohroziť pc.
Ako sa toto rieši, aby sa neukazovala táto hláška? Je to len cez nejaký certifikát?
Vopred ďakujem za odpovede :)

Odpovědět
27.8.2017 18:40
Act as if it was Impossible to Fail
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Peter Sciranka
Martin Dráb:27.8.2017 21:00

Nevím o jiné cestě než přes certifikát. Ten mám vyzkoušený (alespoň na aplikacích, co zobrazují UAC dialog).

Pokud je aplikace podepsaná důvěryhodným certifikátem, zobrazuje se tam jako vydavatel předmět tohoto certifikátu, což může být např. název společnosti, nebo jméno vtoho, komu byl c. vydán.

Editováno 27.8.2017 21:02
Nahoru Odpovědět
27.8.2017 21:00
2 + 2 = 5 for extremely large values of 2
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na Martin Dráb
krepsy3:27.8.2017 22:29

Hele tak tohle vím i já. Zajímá mě ale to samé, co LittleBigOwla, totiž, jak tímto certifikátem aplikaci podepsat, aby UAC nekřičelo :)

Nahoru Odpovědět
27.8.2017 22:29
Programátor je stroj k převodu kávy na kód.
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na krepsy3
Martin Dráb:27.8.2017 22:46

K podepisování slouží nástroj SignTool. Je nutné jej pouštět z Příkazové řádky, třeba takto:

signtool sign /n "Martin Drab" /t http://time.certum.pl /fd sha1 /v MojeAplikace1.exe MojeAplikace2.exe ...

Přičemž /n vybírá certifikát podle předmětu (zde je to moje jméno a příjemní), přes /t definuješ službu, která ti do souboru přidá časové razítko (tzn. důvěryhodně zapsanou informaci o tom, kdy byl podepsán), /fd vybírá hashovací algoritmus pro digitální podpis (myslím, že aktuálně lze použít SHA1 a SHA256). /v jen určuje, že se má vypisovat spousta povídání okolo při podepisování.

Takhle by měl aspoň vypadat podpis aplikací. Pokud se chcete opravdu pojistit, tak je dobré podepsat aplikaci stejným certifikátem dvakrát; jednou použít SHA1 a jednou SHA256 (takže s ní nebudou mít problém systémy, které nikdo dlouho neaktualizoval, a tak SHA256 nepodporují). V tom případě je třeba při druhém podpisu přidat parametr /as, jinak SignTool druhý podpis nepřidá, ale přepíše jím ten první.

Časové razítko je užitečné zejména po vypršení platnosti certifikátu, kterým jste aplikaci podepsali, protože říká, že v době, kdy k podpisu došlo, byl platný. Bez časového razítka byste teoreticky mohli podepsat aplikaci i certifikátem, kterému již platnost vypršela a nikdo by to nemohl detekovat.

U ovladačů je to trochu složitější (můžu poskytnout skript, kdyby bylo třeba), protože je ještě třeba přibalit certifikát, kterým Microsoft certifikační autoritě, která vám dala certifikát, vyslovil důvěru. Přidává se parametrem /ac <soubor_certi­fikátu>.

SignTool je součástí balíku Windows Driver Kit a měl by být i součástí Windows SDK.

Tohle se dá ještě celkem dohledat (slušné CA dávají k dispozici i návod, jak s ním zacházet, Microsoft také vydal nějaký ten dokument), sehnat certifikát je trochu náročnější, ale také se dá, pokud nejste příliš paranoidní.

Nahoru Odpovědět
27.8.2017 22:46
2 + 2 = 5 for extremely large values of 2
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na krepsy3
Martin Dráb:27.8.2017 23:06

Co se týče získání (zakoupení) takového certifikátu, je třeba vyhledat certifikační autoritu, která jej prodává. Jedná se o tzv. Code Signing Certificate, přičemž je třeba se i podívat, co všechno se jím může podepisovat (VBA makra, Applí věci, Windows aplikace, Windows ovladače, Java applety, ActiveX, pluginy do prohlížečů...). V minulosti některé autority dělaly speciální certifikáty pro různé tyto oblasti, takže kdo chtěl podepisovat všechno, tak jim zajistil docela slušný příjem...

Obecně se dá říci, že ale peníze nejsou to nejhorší, co vás při kupování certifikátu čeká. Nevím, jak pro podepisování běžných aplikací, ale pro podepisování driverů nevydává certifikáty žádná autorita z našich luhů a hájů, takže je třeba objednávat u zahraničí. Jelikož je ale na certifikátu napsáno vaše jméno, CA se bude snažit ověřit, že s ní mluvíte právě vy. Ověřovacích metod je několik a každý má svou oblíbenou (asi dost záleží, ve které zemi daná CA sídlí, protože podle toho má nastavené mechanismy (třeba z legislativních důvodů) a vyhovět jim může být dost peklo). Zatím mám zkušenosti z:

  • Symantec/VeriSign (fotokopie ideálně pasu a notářsky ověřená přísaha, že jste to opravdu vy, kdo s nimi komunikuje... ověřit bylo třeba na US ambasádě),
  • COMODO (tahali si informaci z jakési DUNS databáze a chtěli, abych jim tam nějaké doplnil... což se ukázalo jako dost problematické, neb nejsem americký občan... nakonec jsem se na ně vykašlal... asi se to dalo vyřešit telefonicky, ale povídat si s někým přes půl světa není zrovna super),
  • Certum (chtěli fotokopii občanky a důkaz, že adresa na ní uvedená existuje a používá se (např. fakturu od operátora).

Přičemž hlavní je úspěšně projít standardní cestou a nedostat se do kontaktu s technickou podporou, protože jsou sice zdvořilí, ale obvykle příliš svázaní pravidly (a také mají omezené vědomosti).

Konkrétně s Certum CA mám nedávné velmi dobré zkušenosti. Konečně proces ověřování identity proběhl do několika hodin, a to dokonce v sobotu. Navíc je certifikát od nich levnější než u Symantecu (100 EUR vs. $500). Mají dokonce i tarif pro vývojáře open source (musíte navíc dát linky na svoje projekty, např. na GitHubu... ale tento tarif jsem nezkoušel), který stojí jen 28 EUR na rok (ale budete mít v předmětu zřejmě řečeno, že jste open source vývojář). Díky tomuto tarifu jsem tuto CA objevil (instaloval jsem nějakou open source věc).

U Certum je tedy pro nové zákazníky trochu zrada, co se týče ceny, protože vám nedovolí uložit si certifikát (resp. jeho privátní klíč) do počítače (např. jako soubor PFX), ale musíte privátní část vygenerovat na podporované smart card. Tu lze samozřejmě od Certum CA koupit a není úplně levná (vyšla mě na cca 160 EUR i s poštovným). Ale mělo by být možné ji použít i napřesrok.


Jinak je třeba si dát poměrně pozor na různé přeprodeje (existují i u nás). Sice díky nim můžete získat certifikát levněji, ale pokud si myslíte, že vám třeba usnadní proces ověřování identity, tak můžete být dosti na omylu (moje zkušenost). Obvykle vás prostě přesměrují na stránky CA, kterou přeprodávají a musíte si tam obstarat všechno sami.

Editováno 27.8.2017 23:07
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
27.8.2017 23:06
2 + 2 = 5 for extremely large values of 2
Avatar
Peter Sciranka
Tvůrce
Avatar
Peter Sciranka:28.8.2017 6:26

Ďakujem veľmi pekne za odpoveď a za reálne skúsenosti.

Nahoru Odpovědět
28.8.2017 6:26
Act as if it was Impossible to Fail
Avatar
Neaktivní uživatel:28.8.2017 9:39

Pro nahrani na windows store snad neni potreba nic podepisovat ze? Protoze to vypada jako pekna patlanina, pro nekoho i na nekolik nesicu

Nahoru Odpovědět
28.8.2017 9:39
Neaktivní uživatelský účet
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Martin Dráb:28.8.2017 9:46

Myslím, že na Store certifikát potřeba není (aplikaci pak myslím podepisuje Microsoft, aby bylo jasné, že je ze Store).

Ono je to patlanina, pokud nevíš, jak na to. Třeba u Certum CA vše proběhlo velmi rychle a jediný problém spočíval v nastudování, jak dostat vše potřebné na smart card. Ale bude to možná tím, že jsou z Polska, takže jejich legislativa bude +- odpovídat té naší. Což se o U.S. (odkud je zřejmě Symantec/VeriSign).

Navíc to divadlo s ověřováním identity obvykle podstupuješ jen při první objednávce u té CA. Při prodlužování certifikátu si od tebe nechají tím starým něco podepsat (proběhne v prohlížeči automaticky), čímž prokážeš, že jsi ten starý cert u nich koupil, a tak jsi byl již ověřen.

Nahoru Odpovědět
28.8.2017 9:46
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Neaktivní uživatel
Patrik Valkovič:28.8.2017 9:52

Ne, pro Windows Store aplikace pustíš validator u sebe a potom celý balíček pošleš.

Nahoru Odpovědět
28.8.2017 9:52
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.