Jednoduchý desktopový OSS na podpísanie a overenie podpisu

Problemom by mohli byt licencne podmienky Ditec. Napr.
Povinnosti pouzivatela:
e) sa zdrží zlúčenia Produktu s akýmkoľvek iným softvérom, ako aj zmeny, adaptácie,
prekladu alebo vytvorenia akýchkoľvek diel odvodených od Produktu.

Najlepsie by bolo ak by sa rozhranie pre spustanie podpisovacieho softveru oficialne zverejnilo a otvorilo sa aj ostatnym vyrobcom podpisovacich sw.

Bavime sa v teoretickej rovine. Ak by softver pre podpisovanie podporoval akceptovanie xslt transformacie nic to neporusuje. A je to pripravene na plne riesenie. Ak by slo o pouzitie nejake greasy monkey skriptu tak to je zase zasah pouzivatela do runtime a slo by o zodpovednost pouzivatela, ktory takuto vec spravil. Otazna je legalita toho kodu co to prepaja.

Toto bude skor na pravnikov, ale urobit produkt s “kompatibilnym API” je pomerne bezna vec. Amazon DocumentDB ma MongoDB kompatibilitu, DigitalOcean Spaces ma AWS S3 kompatibilne API…

1 Like

V takomto pripade pouzitia a predpklada ze podpisovaci sw musi vedet spracovat transformaciu data.xml podpisovaneho formulara, kedze on sam neni tym kto formular vytvoril a naplnil. Tie parametre su vsetky v base64 a dali by sa jednoducho pouzit aj pre iny SW, ale licencia je taka ze asi to neni mozne. Neni to technicky problem ale pravny. Ja skor pisem o tom ze ked podsunies parametre ktore D.Launcher pripravil pre D.Signer (v base64) inej aplikacii, tak to naraza na licencne podmienky podpisovacich komponent Ditecu. Preto skorej by mozno bolo dobre sa bavit o tom ze to co robi D.Launcher by nemalo byt urcene iba pre D.Signer ale malo by to byt otvorene aby sa dal na podpisovanie pouzit podpisovaci softver lubovolneho vyrobcu, ktoreho si uzivatel sam zvoli alebo uz ho pouziva na nejaky iny ucel a koli podpisovaniu pre slovensko.sk musi pouzivat este aj D.Signer.

to uz su krkolomne konfiguracie … jednoduchsie je ten D.Launcher vynechatr tiez a priamo nahradit skriptom do browsera ako tu bolo predvedene v inom vlakne. Jednak pre to ze sa nebudes s niekym priet o licencie a jednak pre to za sa D.Signer a D.Launcher instaluju spolu a tak to bude aj technicky ovela jednoduchsie ich nenainstalovat vobec.

Da sa toto urobit v schranke slovensko.sk ked som do nej prihlaseny cez bezny webovy browser?. Da sa tento skript podstrcit miesto povodneho skriptu pod stlacenie tlacidla podpisat v schranke? Ak by to slo nebolo by to spatne.

No napr.

dsigner.dSigXadesBpJs.addXmlObject(
dsigner.utils.generateGuid() + “.xml”,
signedDocument.title,
signedDocument.namespace,
signedDocument.xmlData,
signedDocument.namespace,
signedDocument.xsdVersion,
signedDocument.xsdData,
signedDocument.xsdUrl,
signedDocument.xslData,
signedDocument.xslUrl,
mediaDestinationType,
“sk”,
“sign”,
false,
namespaceURI,
{
onSuccess: success => {
doSign();
},
onError: err => {
console.error('failed to prepareFile ’ + err);
}
}
);

Miesto toho aby sa orchestroval D.Launcher/D.Signer a ďalšie D. veci, by sa tieto parametre podsunuli OSS podpisovaču. (potom sú tam ešte dve volania na sign a getSigned document)

1 Like

Ináč… keďže tam je AppImage, čo tak aj Flatpak? Potom by sa to dalo dať aj na FlatHub.

Mám na to otvorenú issue. V minulosti som videl ľudí baliť moje appky do Flatpaku a Snapu. Sám som to ale ešte neskúšal. Pokrýva kombinácia AppImage a Flatpak dostatok komunity? Pridávanie do obchodov by som radšej ešte trocha podržal.

Pokrýva kombinácia AppImage a Flatpak dostatok komunity?

Flatpak je podľa mňa najrozšírenejšia a najperspektívnejšia technológia, takže myslím si, že áno.

Napadlo mi, že keď už hovoríme o vlastnej realizácii, vlastnom protokole atď, môžeme použiť niečo od Estóncov, keďže majú celkom podobnú situáciu (2 formáty, eIDAS + legacy, podpisovanie cez externý modul + native messaging atď). Minimálne verifikáciu a podpisovanie cez externý PKCS-modul by sa malo dať spraviť.

1 Like

Pohral som sa s libdigidocpp, nevie to kvôli pár bugom pracovať so slovenskými dokumentami, ale nevyzerá, žeby sa to nedalo.

Okrem toho pozerám na OpenSC, ktoré podporuje nemecké eID, veľmi podobné nášmu. Zatiaľ sa mi nepodarilo ho rozbehnúť, ale podľa všetkého by to nebolo extrémne zložité.

Skusal som tiez teraz s MQC. Cestu ku kniznici som nechal prazdnu a naslo mi vsetky certifikaty na karte (bohuzial aj uz neplatne), viď:

To by bolo fajn precitat tie datumy platnosti a oznacit aspon bodkami ako to ma podpisuj.sk

Error som tak nasiel az o krok dalej, vid. screen

Inak to vyzera super, drzim palce s vylepsovanim :slight_smile:

@andrewsh Momentálne sa používa DSS od EÚ - spomínajú to na niektorých miestach ako “Building Block eSignature” - stránka na CEF Digital. Má to ale 2 problémy: 1. Na niektorých častiach API cítiť, že to bolo vytvárané pre web appky (a očakáva sa server-side prístup). 2. Je to Java, oveľa radšej by som bol ak by to šlo cez C API a netrebalo bundlovať JDK (bundluje sa ale minimálne custom JDK jlink prístupom) a robiť okolo toho obradné tance.

@Branislav_Welter Ďakujem za feedback, pridal som si na to issue. Ideálne by bolo pozrieť nielen na dátum, ale aj či je to certifikát, ktorý je vydaný niekým ku komu sa dá dopracovať cez LOTL a tým pádom bude viesť po podpísaní k podpisu, ktorý aplikácia označí ako “Valid”. Rozmýšľam či neplatné úplne nevyhodiť zo zoznamu a radšej zahlásiť, že žiadne platné nie sú ak by niekto mal len neplatné.

@andrewsh Momentálne sa používa DSS od EÚ - spomínajú to na niektorých miestach ako “Building Block eSignature” - stránka na CEF Digital . Má to ale 2 problémy: 1. Na niektorých častiach API cítiť, že to bolo vytvárané pre web appky (a očakáva sa server-side prístup). 2. Je to Java, oveľa radšej by som bol ak by to šlo cez C API a netrebalo bundlovať JDK (bundluje sa ale minimálne custom JDK jlink prístupom) a robiť okolo toho obradné tance.

Práve preto o tom hovorím :slight_smile: Nie som si istý čo sa týka libdigidoc, ale libdigidocpp malo by vedieť podpisovať, ale zatiaľ to sa mi tiež nepodarilo :smiley: Útočím ale na to zo všetkých smerov.

1 Like

Nádej zomiera posledná :smiley: Pozerám, že to vie robiť XAdES. Okrem toho je celkom potrebné ešte vedieť robiť aj s: 1. PAdES - na toto sa predpokladám niečo nájde relatívne ľahko. 2. ASiC kontajnermi.
Zvyšok by sa okódil/je bežne dostupný a všetky metódy podpisovania a overovania by to podporovať nemuselo na naše účely. Otázne je teda či sa to dá za rozumný čas zbúchať, s tým, že by sme tomu dôverovali.

OpenSC som inak tiež v minulosti skúšal, ale tiež sa mi to nepodarilo rozbehať bez toho aby som robil na Windowse zásahy do registrov a podobne. Došiel som k tomu, že prístup PKCS#11 od výrobcu a MSCAPI je spoľahlivejšia cesta.

Nádej zomiera posledná :smiley: Pozerám, že to vie robiť XAdES. Okrem toho je celkom potrebné ešte vedieť robiť aj s: 1. PAdES - na toto sa predpokladám niečo nájde relatívne ľahko. 2. ASiC kontajnermi.

Vie to ASiC, a PAdES minimálne vie otvoriť.

OpenSC som inak tiež v minulosti skúšal, ale tiež sa mi to nepodarilo rozbehať bez toho aby som robil na Windowse zásahy do registrov a podobne. Došiel som k tomu, že prístup PKCS#11 od výrobcu a MSCAPI je spoľahlivejšia cesta.

Na Windows sa momentálne nezameriavam, tam je tých problémov viac :smiley: Ovládače od výrobcu v krátkej dobe sú fajn, ale keďže sú tiež uzavreté, chcem ich vynahradiť slobodným riešením.

1 Like