Skip to content

e-gov/DigiSign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DigiSign

Repo sisaldab saatja ja vastuvõtja vahelist protokolli (kokkulepet) edastatava andmefaili allkirjastamiseks, koos teostusnäitega (POC).

Protokoll

1 Saatja allkirjastab andmefaili elliptilise kõvera allkirjaalgoritmiga (Elliptic Curve Digital Signature Algorithm), vastavalt standardile FIPS 186-3.

2 Saatja salvestab allkirja ASN.1 DER-formaadis faili. Allkirjafaili nimi koosneb allkirjastatud andmefaili nimest, millest failitüüp (nime lõpus olev punktiga eraldatud osa) on asendatud failitüübiga .sign.

3 Saatja edastab andmefailiga koos allkirjafaili.

4 Allkirjastamisel kasutatud privaatvõtmele vastava avaliku võtme edastab saatja vastuvõtjale taustakanali kaudu. Avalik võti edastatakse PEM-formaadis failina; faili nimi on publickey.pem.

4a Täiendava kindluse (salgamatuse) tagamiseks võivad pooled kokku leppida, et saatja allkirjastab edastatava avaliku võtme identiteediga, mida mõlemad pooled usaldavad - nt saadab avaliku võtme Eesti digiallkirjaga allkirjastatult (s.t allkirjastab avalikku võtit sisaldava faili ID-kaardiga või mobiil-ID-ga. Seejuures on oluline allkirjastatavasse konteinerisse lisada kaaskiri, mis sõnastab võtme kasutamise eesmärgi.).

5 Allkirjastamisel kasutatav võtmepaar genereeritakse 2 aastaks.

6 Privaatvõtme kompromiteerumisel, kompromiteerumise kahtluse korral või 2-aastase perioodi lõppemisel genereerib saatja uue võtmepaari ja edastab uue avaliku võtme vastuvõtjale.

POC

Protokolli kontseptsioonitõendusena (POC) on kaustas kolmest rakendusest koosnev komplekt.

Rakendus createkey genereerib ECDSA võtmepaari ja salvestab selle X.509 PEM failidesse privatekey.pem ja publickey.pem.

Rakendus sign loeb failist privatekey.pem sisse ECDSA privaatvõtme, allkirjastab selle võtmega faili data.txt ja salvestab allkirja faili data.sign.

Rakendus verify loeb failist publickey.pem sisse ECDSA avaliku võtme, seejärel loeb sisse andmefaili data.txt ja allkirjafaili data.sign ning kontrollib allkirja. Kontrolli tulemuse väljastab konsoolile.

Rakenduste ehitamine (repo peakaustast):

go build ./createkey
go build ./sign
go build ./verify

Rakenduste käivitamine (Windows):

createkey
sign
verify.exe

Rakenduste käivitamine (Linux):

./createkey
./sign
./verify

Allkirjafaili formaati saab soovi kontrollida ka käsurealt OpenSSL abil:

openssl asn1parse -inform DER -in data.sign.

About

Lihtne protokoll edastatava andmefaili allkirjastamiseks, koos teostusnäitega (POC).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages