Diskuze: Dôveryhodná aplikácia
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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.
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
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_certifiká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í.
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:
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.
Ďakujem veľmi pekne za odpoveď a za reálne skúsenosti.
Pro nahrani na windows store snad neni potreba nic podepisovat ze? Protoze to vypada jako pekna patlanina, pro nekoho i na nekolik nesicu
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.
Ne, pro Windows Store aplikace pustíš validator u sebe a potom celý balíček pošleš.
Zobrazeno 9 zpráv z 9.