într-un articol anterior, am introdus GnuPG verificând un fișier semnat și criptând un fișier pentru un destinatar utilizând o cheie publică. De asemenea, am împărtășit cum să creăm o pereche de chei și să exportăm o cheie publică, astfel încât să putem primi mesaje criptate. În acest articol, voi demonstra cum să semneze fișiere înainte de partajare prin e-mail sau publicarea pe un site web.
cu GnuPG, există mai multe metode de semnare a unui fișier.
$ gpg --help | grep -i signSign, check, encrypt or decrypt -s, --sign make a signature --clear-sign make a clear text signature -b, --detach-sign make a detached signature --verify verify a signature
pe măsură ce se discută fiecare opțiune, voi semna un fișier text simplu.
$ cat sample.txt Sample text for gpg signing
faceți o semnătură
cu opțiunea --sign
, fișierul este criptat efectiv cu cheia privată. Cheia publică este necesară pentru a vizualiza conținutul fișierului. Acest lucru îl obligă pe destinatar să verifice originea și elimină orice conținut text clar din tranzit. Nu este privat, deoarece oricine are cheia publică poate decripta fișierul.
$ gpg -s sample.txt
rezultă un fișier numit sample.txt.gpg.
$ file sample*sample.txt: ASCII textsample.txt.gpg: data
pentru a verifica doar semnătura, utilizați opțiunea --verify
. Pentru a vizualiza conținutul și pentru a afișa verificarea semnăturii, utilizați opțiunea --decrypt
.
$ gpg --decrypt sample.txt.gpg Sample text for gpg signinggpg: Signature made Sat 30 May 2020 09:16:24 AM EDTgpg: using DSA key 15AC***********...omitted...
faceți o semnătură detașată
opțiunea Semnătură detașată este disponibilă pentru a oferi tuturor opțiunea de a vizualiza mesajul fără a avea cheia publică. Aceasta creează un fișier de semnătură separat care este utilizat pentru a verifica mesajul original, dacă se dorește. În forma sa cea mai simplă, acest fișier conține un hash al mesajului original și este criptat cu cheia privată. Oricine are cheia publică poate deschide semnătura și apoi compara hash-urile pentru a verifica integritatea fișierului semnat.
creați fișierul de semnătură utilizând opțiunea --detach-sign
.
$ gpg -b sample.txt
rezultatul este separat .fișier de date sig.
$ file sample*sample.txt: ASCII textsample.txt.gpg: datasample.txt.sig: data
dacă nu doriți să partajați, să postați sau să trimiteți prin e-mail un fișier de date, puteți semna fișierul cu opțiunea --armor
și va crea un fișier text ASCII cu semnătura. Acesta va utiliza, de asemenea .extensie asc în loc de .sig extensie:
$ cat sample.txt.asc -----BEGIN PGP SIGNATURE-----iF0EABECAB0WIQQVrPeUo9lk0dnOTCbvwxHCv6EJdAUCXtO/yAAKCRDvwxHCv6EJdC2BAJ49fIcOdBUdE0PELySEMlKNzVnZLgCdG1gsTim3gab2dgL6qagHArSlgq8==IvP/-----END PGP SIGNATURE-----
fișierul text simplu original și fișierul de semnătură separat trebuie să fie puse la dispoziția destinatarului.
pentru a verifica semnătura, specificați fișierul de semnătură și apoi fișierul original.
$ gpg --verify sample.txt.sig sample.txt
dacă au fost utilizate numele implicite, puteți lăsa numele fișierului necriptat.
$ gpg --verify sample.txt.sig gpg: assuming signed data in 'sample.txt'gpg: Signature made Sat 30 May 2020 09:23:53 AM EDT...omitted...
faceți o semnătură text clară
opțiunea --clear-sign
este o opțiune mai nouă în ceea ce privește lunga istorie a GPG și este foarte frecventă pentru fișierele publicate pe site-uri web, cum ar fi fișierele Fedora download CHECKSUM. Conținutul poate fi citit de oricine. Informațiile despre semnătură sunt disponibile și în același fișier pentru cei care doresc să verifice originea și integritatea conținutului.
opțiunea --clear-sign
va crea un fișier nou cu .extensie asc.
$ gpg --clear-sign sample.txt
$ file sample*sample.txt: ASCII textsample.txt.asc: ASCII textsample.txt.gpg: datasample.txt.sig: data
pentru a verifica semnătura, utilizați opțiunea --verify
:
$ gpg --verify sample.txt.asc gpg: Signature made Sat 30 May 2020 09:27:56 AM EDT...omitted...gpg: WARNING: not a detached signature; file 'sample.txt' was NOT verified!
rețineți că în timpul procesului de verificare este afișat un mesaj care avertizează că fișierul original asociat nu este bifat. Puteți redenumi acest fișier înainte de a-l posta pe site-ul dvs. web. Verificarea va verifica în continuare conținutul fișierului.
deși aceasta este adesea cea mai convenabilă metodă pentru consumatorii produselor dvs., există un avertisment în pagina de manual GPG că semnăturile detașate sunt cea mai bună opțiune atunci când este necesară verificarea completă.
din pagina de manual gpg:
notă: la verificarea unei semnături text clar, GPG verifică doar ceea ce constituie datele semnate text clar și nu orice date suplimentare în afara semnăturii text clar sau a liniilor de antet care urmează direct linia marcatorului liniuței. Opțiunea — output poate fi utilizată pentru a scrie datele reale semnate, dar există și alte capcane cu acest format. Se recomandă evitarea semnăturilor text clar în favoarea semnăturilor detașate.
folosind o tastatură specifică
exemplele de mai sus au fost semnate cu prima cheie privată disponibilă în inelul meu de chei. S-ar putea să vreau să folosesc o altă cheie atunci când semnez un fișier pentru publicare pe un site web. Un keypair este creat special pentru proiect sau produs. Keypair poate fi chiar pe un nou breloc partajat.
$ gpg --keyring /etc/gpgkeys --no-default-keyring --full-gen-key <other options>
când un fișier este semnat sau criptat, asigurați-vă că specificați și opțiunea --keyring
.
chiar dacă o singură persoană folosește cheia pentru a semna fișiere, creați o tastatură separată pentru a o utiliza pentru semnare. Nu utilizați aceeași cheie pentru alte sarcini zilnice, cum ar fi criptarea personală a e-mailurilor. Puteți lista numele cheilor private disponibile cu gpg --list-secret
. ID-ul, numele sau e-mailul pot fi utilizate pentru a identifica cheia.
pentru a semna fișierul cu o cheie specifică dintr-un breloc, utilizați opțiunea --local-user
identity.
$ gpg --local-user "My Project 2" --clear-sign sample.txt
Wrap up
Dacă fișierul text simplu este o listă de hash-uri pentru suma de control pentru descărcările de produse, acel fișier, orice fișiere de semnătură și cheia publică utilizată pentru a verifica semnăturile pot fi postate pe un site web. Consumatorii pot verifica apoi descărcările înainte de a instala orice software pe sistemele lor.