Jak "kryptograficky" uzavřít smlouvu?

intormatick

Jak "kryptograficky" uzavřít smlouvu?
« kdy: 15. 03. 2018, 12:17:11 »
Zajímalo by mě, jak uzavřít neprůstřelně smlouvu ( kryptograficky na dálku). Já jsem si to promýšlel a vlastně jsem došel k řešení s asymetrickou kryptografií (vlastně využívá výhody, že reverzní použití asym. klíčů je vlastně elektronický podpis), ale mám v tom pár nejasností:
D=dokument (například s obsahem "od 1.4.2018 bude '1' dávat '2' 4 ks papriky týdně a '2' bude  '1' vozit do práce každý den"), 1V = veřejný klíč strany , 2V= veřejný klíč strany 2,2S= soukromý klíč strany 2 a 1S= s.klíč.strany1.

1 si stáhne dokument D a veřejný klíč 2V. A teď svým klíčem 1S  provede zašifrování těchto dat a udělat z toho hash a zašifrovat ten hash (tedy vlastně opatřit podpisem)? Nemám ještě jasno v tom, zda smlouva má být veřejná, . Ale měla by být nevyvratitelná (synonymum nepopiratelná?) a  časově atomická (například když se modifikuje text smlouvy že místo 1.4. tam bude "od okamžiku uzavření), čímž se dostávám k tomu, jak k smlouvě přidat čas uzavření. Je to nějak možné? Nebo je prostě dané to, že jedna strana vždycky provede operaci podpisu/zašifrování jako první? Je tam možné pak nějak pro odstranění tohoto dilematu nějak ošetřit, že po zahashování první stranou musí druhá strana tu komplementární operaci udělat do nějaké doby, přičemž se bude počítat za okamžik uzavření smlouvy nějaký čas mezi těmito dobami? (například půl den, který by na obsah smlouvy neměl moc vliv)?


Kkt1

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #1 kdy: 15. 03. 2018, 12:51:03 »
To si chces sam nakodit nebo hledas neco co bezne pouziva? Co tak podepsat dokument gpg?

lkuuz

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #2 kdy: 15. 03. 2018, 13:14:22 »
Co takhle ověřený elektronický podpis? Pokud vím, je ze zákona má stejnou váhu, jako vlastnoruční podpis, takže ani z právního, ani z technického hlediska není co řešit. Prostě si napíšete dokument, podepíše ho jeden účastník smlouvy, přepošle ho, druhý účastník si zkontroluje pomocí veřejného klíče, že byl nezměněn, podepíše jej podruhé a je vše vyřešeno.

https://www.postaonline.cz/egovernment/bezpecnostni-certifikaty

MarSik

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #3 kdy: 15. 03. 2018, 13:37:57 »
Ještě bych v popisovaném případě doporučoval nějaké spolehlivé (a auditované) časové razítko. Zajistí, že nikdo za pár let nenapadne smlouvu s tím, že je antedatovaná a byly použity prolomené klíče.

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #4 kdy: 15. 03. 2018, 13:52:31 »
Pokud si správně pamatuju dávné studium, non-repudiation je jednou z vlastností Vámi zmíněného podpisu svým privátním klíčem. (Není třeba zprávu=smlouvu ani šifrovat, tím sledujete jiný účel.) Leda byste později tvrdil, že Vám privátní klíč někdo ukradl a na té bázi se dopustil krádeže/podvrhu identity. Možná proto dávají certifikační autority možnost revokovat již vydaný certifikát? S tím že máte povinnost certifikát revokovat, jakožto oprávněný držitel, v momentě kdy Vám klíč někdo ukradne :-)  Pak by se dalo při podvodu uvažovat takto: revokovat certifikát, a již neplatným privátním klíčem podepsat smlouvu. Pokud by si protistrana při přijetí zprávy neověřila podpis v CRL u CA, je to její blbost...

Cintám si pentli, moc tomu nerozumím.

Ohledně časového razítka, to je taky zajímavá otázka. Vy si do textu zprávy (smlouvy) můžete jistě vložit časový údaj jaký chcete, ale těch pár čísílek jaksi sama o sobě nenesou věrohodnost, že ta časová značka je v pořádku, tzn. je Vám to k ničemu. Napadá mě, nechat si ověřenou časovou značku vystavit od nějaké důvěryhodné třetí strany (svého druhu certifikační autority) která časovou značku kryptograficky podepíše svým privátním klíčem. No ale další věc je, co s tou podepsanou časovou značkou dál. Pokud byste si ji jako smluvní strana sám přiložil do zprávy a navrch podepsal svým privátním klíčem, tak Vám nic nebrání, takto časovou značku přiložit kdykoli později = svůj podpis antidatovat směrem zpátky. Čili spíš by ta důvěryhodná třetí strana musela k Vaší zprávě přiložit svou časovou značku a celé to podepsat svým privátním klíčem. Nebo byste "časové certifikační autoritě" poslal pouze hash své zprávy (aby ona nemusela zpracovávat potenciálně objemná kompletní data zprávy a aby neznala její obsah), časová CA by tento hash zkombinovala se svým časovým razítkem a podepsala, a vy byste pak mohl tento "podepsaný datovaný hash" zpátky zkombinovat s původní zprávou, ze které byl hash pořízen - a takto poslat protistraně.

Zaznamenal jsem zmínky, že existují dodavatelé řešení / online služeb, kde jde právě o ověřování časových razítek, nebo ověřování přesného času lokální "časové ústředny" u klienta - nevím přesně. A hele - zřejmě jsem v předchozím odstavci vynalezl kolo. Tuším se o tom se mnou bavila nějaká certifikační autorita - která vystavuje běžné PKI certifikáty. Že takovou službu používá.


Trubicoid2

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #5 kdy: 15. 03. 2018, 14:23:54 »

Sten

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #6 kdy: 15. 03. 2018, 15:20:43 »
A co místo vynalézání kola použít digitální podpis v PDF (podpis připojí obě strany ke stejnému dokumentu, úplně stejně jako u textové smlouvy) nebo datové schránky (zpráva s identifikací odesílatele = podepsaná)?

MarSik

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #7 kdy: 15. 03. 2018, 15:52:53 »
Nebo byste "časové certifikační autoritě" poslal pouze hash své zprávy (aby ona nemusela zpracovávat potenciálně objemná kompletní data zprávy a aby neznala její obsah), časová CA by tento hash zkombinovala se svým časovým razítkem a podepsala,

A hele - zřejmě jsem v předchozím odstavci vynalezl kolo.

Přesně tak. A ještě tam typicky dojde ke zveřejnění v append only audit logu. Takže antedatování "nehrozí", protože by autorita měla problém.

dw

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #8 kdy: 15. 03. 2018, 19:11:12 »
Nebo byste "časové certifikační autoritě" poslal pouze hash své zprávy (aby ona nemusela zpracovávat potenciálně objemná kompletní data zprávy a aby neznala její obsah), časová CA by tento hash zkombinovala se svým časovým razítkem a podepsala,

A hele - zřejmě jsem v předchozím odstavci vynalezl kolo.

Přesně tak. A ještě tam typicky dojde ke zveřejnění v append only audit logu. Takže antedatování "nehrozí", protože by autorita měla problém.

K comu by to bolo dobre, uplane staci ze mas od CA podpisany certifikat s verejnym klucom.

Overenie potom prebieha nasledujuco, overi sa podpis certifikatu ktory patri k sukromnemu klucu ktorym bola sprava podpisana, Ak suhlasi tak sa skontroluje podpis spravy oproti verejnemu klucu v certigikate a ak vsetko sedi tak je podpis validny. Osobny certifikat ti vystavi CA na zaklade overenia ze si to naozaj ty.

Co sa tyka casoveho odstupu medzi podpismi oboch stran, tak nemyslim ze by bolo nejake nariadenie ci predpis podla ktoreho musia zmluvu podpisat obaja zaroven. Zaroven si memyslim ze je nutne aby bol kazdy dokument podpisany oboma stranami.

umbrtka

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #9 kdy: 15. 03. 2018, 21:07:12 »
Doporucuji si nastudovat clanky (napr. od p. Peterky) o el. podpisu a problemech s nim resenych.
Pri pouziti casoveho razitka (ktere samozrejme vydava duveryhodna CA - toto necham bez dalsich komentaru) je tak jako tak nutne prerazitkovavat, nebot i to casove razitko ma svou platnost.
Pri overovani podpisu se totiz resi jak to, ze v dobu, kdy se podepisovalo, byl platny, ale ze v tu dobu nebyl na CRL, coz se po delsi dobe overuje velmi spatne. Tudiz se vyplaci prerazitkovavat...

MarSik

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #10 kdy: 16. 03. 2018, 00:18:15 »
K comu by to bolo dobre, uplane staci ze mas od CA podpisany certifikat s verejnym klucom.

Nestačí. Co se stane, když Váš klíč po 10 letech zkompromituji a vytvořím antedatovaný dokument tvářící se jako smlouva z doby, kdy byl klíč ještě platný? Nebo naopak, když budu tvrdit, že toto nastalo?

Časové razítko a záznam v audit logu plní úlohu nezávislého notáře, který existenci smlouvy k určitému datu věrohodně doloží. Jen je rozdíl, jestli se garance přenáší přímo s dokumentem (časové razítko) neo existuje v nějakém (často) veřejném append only registru (typicky) hashů. Nebo obojí.

j

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #11 kdy: 16. 03. 2018, 09:06:02 »
Zajímalo by mě, jak uzavřít neprůstřelně smlouvu ( kryptograficky na dálku)....
Nejlip nijak, papir je papir. Smlouvy se totiz neuzaviraji proto, ze neco funguje, ale kvuli okamzikum kdy fungovat prestane. Az budes za 10+ let resit, ze si nekde pred 10 lety davno deravym algoritmem neco podepsal, a protistrana ti bude tvrdit, ze si podepsal neco uplne jinyho, protoze si umi takovych smluv nagenerovat doforoty bambilion, tak bude pozde to resit.

BTW: Ani to razitnovani ti nepomuze, musel bys razitkovat u NEJMIN 2 subjektu, protoze v okamziku kdy se retezec jedinkrat pretrhne = ta "duveryhodna" autorita trebas revokuje klic, tak ...

Navic to znamena, ze to musis resit navzdy. Papir hodis do suplete a muzes na nej zapomenout.

Sten

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #12 kdy: 16. 03. 2018, 09:36:19 »
Nejlip nijak, papir je papir. Smlouvy se totiz neuzaviraji proto, ze neco funguje, ale kvuli okamzikum kdy fungovat prestane. Az budes za 10+ let resit, ze si nekde pred 10 lety davno deravym algoritmem neco podepsal, a protistrana ti bude tvrdit, ze si podepsal neco uplne jinyho, protoze si umi takovych smluv nagenerovat doforoty bambilion, tak bude pozde to resit.

BTW: Ani to razitnovani ti nepomuze, musel bys razitkovat u NEJMIN 2 subjektu, protoze v okamziku kdy se retezec jedinkrat pretrhne = ta "duveryhodna" autorita trebas revokuje klic, tak ...

Navic to znamena, ze to musis resit navzdy. Papir hodis do suplete a muzes na nej zapomenout.

Asi jsi ještě nezažil, když ti druhá strana řekla, že ten papír nepodepsala a že ten podpis je falešný. Hodně štěstí, až to budeš po 10 letech dokazovat.

harrison314

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #13 kdy: 16. 03. 2018, 10:43:59 »
K comu by to bolo dobre, uplane staci ze mas od CA podpisany certifikat s verejnym klucom.

Nestačí. Co se stane, když Váš klíč po 10 letech zkompromituji a vytvořím antedatovaný dokument tvářící se jako smlouva z doby, kdy byl klíč ještě platný? Nebo naopak, když budu tvrdit, že toto nastalo?

Nejlip nijak, papir je papir.

A presne na toto sluzia dlhodobe archivy, aby pred vyprsanim platnosti casovej peciatky dokument prepreciatkovali.

Silno nodporucam pisat nieco vlastne, hlavne pokial clovek nepozna legislativu a nema pol miliona na zaplatenie si bezpecnostneho auditu.

K povodnej otazke, jestvuju dokonca cloud sluzby, ktore to umoznuju este aj s definovanim workflovu.
Ale v podstate staci jeden podpis, druhy podpis a casova peciatka v eIDAS mode.

Re:Jak "kryptograficky" uzavřít smlouvu?
« Odpověď #14 kdy: 16. 03. 2018, 11:04:33 »
Zajímalo by mě, jak uzavřít neprůstřelně smlouvu ( kryptograficky na dálku).
To je úplně normální elektronický podpis, přesně k tomuhle slouží – akorát v případě smlouvy budou na tom dokumentu podpisy dva. Když použijete pro vytvoření podpisu certifikáty některé certifikační autority akreditované v EU, bude mít ten podpis stejnou právní platnost, jako kdybyste smlouvu podepsal vlastnoručně. A nebo si s protistranou můžete ujednat, že budete důvěřovat i slabším podpisům, než jsou ty od akreditovaných CA.

Expirace podpisových certifikátů se řeší tak, že se za podpis připojí časové razítko.

Ideální je pro tenhle případ formát PDF/A – je určen pro dlouhodobou archivaci, podpisů tam můžete přidat kolik chcete a jsou součástí přímo dokumentu.