Autor Zpráva
hondziiikh
Profil
Ahoj lidi,

už delší dobu si lámu hlavu a ani nevím, jaká technologie to řeší, jestli apache, php nebo přímo html resp. prohlížeč, ale potrebuji uživateli zobrazit například hlasovací okno, kde vyplní ano nebo ne, a s odesláním ho vyzve k výběru certifikátu (který bude vydaný mým serverem a naimportovaný v jeho prohlížeči). Po výběru tuto stránku certifikátem podepíše a uloží se. Stačí mi alespoň nasměrovat. Vím, že toto nějak řeší modul capicom v IE, existuje něco i pro ostatní prohlížeče? Laboroval jsem s apache, kde lze omezit přístup certifikátem, možná že to byla správná cesta, ale dál se mi to rozšířit nepovedlo. Moc díky alespoň za nakopnutí správným směrem :-)

jenda
TomášK
Profil
Laboroval jsem s apache, kde lze omezit přístup certifikátem, možná že to byla správná cesta, ale dál se mi to rozšířit nepovedlo.

Je to správná cesta. Pro vybranou doménu, na kterou se bude posílat hlasování, budeš požadovat klientský certifikát (to se nastavuje na web-serveru, apache, nginx, …). V aplikaci (php) pak můžeš z certifikátu vytáhnout nějaký údaj, který ho spáruje s uživatelem. Na webserveru jde většinou nastavit, aby přeposlal i certifikát nebo nějaký údaj z něj. Z pohledu uživatele se prohlížeč při odeslání zeptá, jestli se má použít certifikát, podporují to všechny běžné prohlížeče.
Máš-li možnost, bude jednodušší dát tu část, která bude vyžadovat klientský certifikát na jinou doménu. Jinak myslím, že bude potřeba mít ho jako volitelný a kontrolovat až u hlasování, jestli tam opravdu je, klientům se dotaz na certifikát zobrazí už při příchodu na web.
hondziiikh
Profil
TomášK:
aha, díky za odpověď, to jsem rád. Co mě tedy napadá, tak stránku (php skript)s hlasováním přesunout do nějaké složky, kterou omezím skriptem a vynutím výzvu na certifikát .htaccessem. ALE! jak potom prokazatelně uložit, že ten uživatel hlasoval ANO nebo NE? Teoreticky můžu ukládat do DB alespoň část veřejné části certifikátu a tvrdit, že systém jinak nepustí, ale otázkou je, jestli je to prokazatelné např. i soudně. Nebo existuje i možnost že by se po výběru uložila odpověd třeba do PDF podepsaná tím jeho CRT?

Pak tedy vyvstává druhá otázka, já bych neměl mít možnost mít přístup k jeho privátní části - klíči, jak tedy uživateli předat certifikát, aby si ho spároval až někde v klientské části? Taková možnost existuje? Resp. certifikační autorita eIdentity to takto má, vygeneruji klíč a po podpisu smluv mi dá možnost instalovat certifikát (CAPICOM), který se automaticky uloží v prohlížeči i s klíčem. Normálně exportovatelný. Nějaké rady v tomto ohledu?
TomášK
Profil
Teoreticky můžu ukládat do DB alespoň část veřejné části certifikátu
To nemá smysl, to si dokážeš vygenerovat.

… jestli je to prokazatelné např. i soudně
S tím zkušenost nemám, ale jsem přesvědčený, že soudně neprokážeš vůbec nic. Třeba proto, že máš pod kontrolou stránku, která hlasování odesílá a budeš jen těžko dokazovat, že skutečně odeslala to, co zadal uživatel. Na druhou stranu internetové bankovnictví taky funguje a nikdo se okolo toho (pokud vím) moc nesoudí.

Nebo existuje i možnost že by se po výběru uložila odpověd třeba do PDF podepsaná tím jeho CRT?
Pokud to potřebuješ prokazovat třetí straně, tak si myslím, že tohle je cesta - klientovi dáš ke stažení dva dokumenty, jeden pro každou volbu. On si vybere ten správný, podepíše ho svým certifikátem, a pošle ti podepsaný soubor. Ale přes prohlížeč to nebude. Nebo možná datové schránky.

Ad získání certifikátů, píšeš správně - aby ti někdo věřil, nesmíš mít přístup ke klientské části certifikátu. Klient ho musí získat od nějaké třetí strany (certifikační autority). Ideálně tak, že si vygeneruje žádost od podpis certifikátu (CSR), pošle ho k podpisu, CA ho podepíše. Jeho privátní klíč je pak neviděl nikdo jiný,
hondziiikh
Profil
TomášK:
Ahoj znovu :-) takže teorii jsem vyřešil. Soudní prokazatelnost jsem nemyslel já vs subjekt, ale dva subjekty proti sobě, kde bych sloužil jako předkladatel důkazů (stejně jako ISP musí předkládat výpis kam jejich zákazník lezl na porno a kam ne :) To je ale zatím vedlejší.

Takže - založil jsem vlastní ROOTCA, která bude mít podřízené CA pro dané projekty. To je fajn, to se mi líbí :) Ale přicházím s dalším dotazem a to už je hodně o Apache, ale nechce se mi přesouvat do jiné sekce. Jde například, aby byl letsencrypt certifikát použit pro celá web, kromě web.cz/vote, kde by byl jiný? Zkoušel jsem přes <Location /vote> ale apache hlásí chybu že SSL nastavení nemá v <Location co dělat. Jestli není řešení, dám třeba do vote.web.cz, ale zeptat se musím :-) je na toto řešení?

Moc díky
TomášK
Profil
Jde například, aby byl letsencrypt certifikát použit pro celá web, kromě web.cz/vote, kde by byl jiný?
Ne. Server dostane doménu (viz SNI) a musí odpovědět certifikátem. Cesta (/vote) je v HTTP požadavku, který se pošle až potom, co se obě strany dohodnou na certifikátech a šifrování.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0