digisign

module
v0.0.0-...-facfef8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2020 License: MIT

README

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.

Directories

Path Synopsis
Rakendus createkey genereerib ECDSA võtmepaari ja salvestab selle X.509 PEM failidesse privatekey.pem ja publickey.pem.
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
Rakendus sign loeb failist privatekey.pem sisse ECDSA privaatvõtme, allkirjastab selle võtmega
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.
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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL