Digital signatures with GnuPG

edellisessä artikkelissa esittelin GnuPG: n tarkistamalla allekirjoitetun tiedoston ja salaamalla vastaanottajan tiedoston julkisen avaimen avulla. Olen myös jakanut, miten luoda avainpari ja viedä julkinen avain, jotta voimme vastaanottaa salattuja viestejä. Tässä artikkelissa, aion osoittaa, miten allekirjoittaa tiedostoja ennen jakamista sähköpostitse tai julkaisemalla verkkosivuilla.

GnuPG: llä on useita tapoja allekirjoittaa tiedosto.

$ 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

kun jokainen vaihtoehto on käsitelty, allekirjoitan yksinkertaisen tekstitiedoston.

$ cat sample.txt Sample text for gpg signing

tee allekirjoitus

--sign – valinnalla tiedosto salataan tehokkaasti yksityisellä avaimella. Julkinen avain tarvitaan tiedoston sisällön tarkasteluun. Tämä sekä pakottaa vastaanottajan varmentamaan alkuperän että poistaa kaiken selkeän tekstisisällön passituksesta. Se ei ole yksityinen, koska kuka tahansa, jolla on julkinen avain, voi purkaa tiedoston salauksen.

$ gpg -s sample.txt

tästä seuraa tiedosto nimeltä sample.txt.gpg.

$ file sample*sample.txt: ASCII textsample.txt.gpg: data
Kuva
graafinen näyttää kaksi A: sta B: hen lähetettyä tiedostoa, joista toinen on pelkkää tekstiä ja toinen salattu

voit tarkistaa vain allekirjoituksen valitsemalla --verify. Voit sekä tarkastella sisältöä että näyttää allekirjoituksen vahvistuksen valitsemalla --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...

tee erillinen allekirjoitus

erillinen allekirjoitus on käytettävissä, jotta jokainen voi katsoa viestin ilman julkista avainta. Tämä luo erillisen allekirjoitustiedoston, jota käytetään alkuperäisen viestin varmentamiseen haluttaessa. Yksinkertaisimmillaan tämä tiedosto sisältää alkuperäisen viestin hajautuksen ja se on salattu yksityisellä avaimella. Kuka tahansa, jolla on julkinen avain, voi avata allekirjoituksen ja sitten vertailla tiivisteitä vahvistaakseen allekirjoitetun tiedoston eheyden.

luo allekirjoitustiedosto valitsemalla --detach-sign.

$ gpg -b sample.txt

tulos on erillinen .sig-tiedosto.

$ file sample*sample.txt: ASCII textsample.txt.gpg: datasample.txt.sig: data
Kuva
graafinen näyttää kaksi A: sta B: hen lähetettyä tiedostoa, joista toinen on pelkkää tekstiä ja toinen salattu

jos et halua jakaa, lähettää tai lähettää tiedostoa, voit allekirjoittaa tiedoston --armor – valinnalla, ja se luo allekirjoituksella varustetun ASCII-tekstitiedoston. Se käyttää myös .ASC laajennus sijasta .sig-laajennus:

$ cat sample.txt.asc -----BEGIN PGP SIGNATURE-----iF0EABECAB0WIQQVrPeUo9lk0dnOTCbvwxHCv6EJdAUCXtO/yAAKCRDvwxHCv6EJdC2BAJ49fIcOdBUdE0PELySEMlKNzVnZLgCdG1gsTim3gab2dgL6qagHArSlgq8==IvP/-----END PGP SIGNATURE-----

sekä alkuperäinen tekstitiedosto että erillinen allekirjoitustiedosto on asetettava vastaanottajan saataville.

vahvistaaksesi allekirjoituksen, määritä allekirjoitustiedosto ja sen jälkeen alkuperäinen tiedosto.

$ gpg --verify sample.txt.sig sample.txt

jos oletusnimiä on käytetty, voit jättää salaamattoman tiedoston nimen pois.

$ 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...

tee selkeä tekstimerkintä

--clear-sign – valinta on uudempi vaihtoehto GPG: n pitkän historian kannalta, ja se on hyvin yleinen www-sivustoille julkaistuissa tiedostoissa, kuten Fedora download CHECKSUM-tiedostoissa. Sisältö on kenen tahansa luettavissa. Allekirjoitustiedot löytyvät samasta tiedostosta myös niille, jotka haluavat tarkistaa sisällön alkuperän ja eheyden.

Kuva
TARKISTUSSUMMATIEDOSTON sisältö, joka näyttää sekä sha256sumin että PGP: n Allekirjoituslohkon tekstin

valitsin --clear-sign luo uuden tiedoston .asc-laajennus.

$ gpg --clear-sign sample.txt
$ file sample*sample.txt: ASCII textsample.txt.asc: ASCII textsample.txt.gpg: datasample.txt.sig: data

voit tarkistaa allekirjoituksen valitsemalla --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!

huomaa, että vahvistusprosessin aikana näytetään viesti, jossa varoitetaan, että siihen liittyvää alkuperäistä tiedostoa ei ole tarkistettu. Voit nimetä tämän tiedoston uudelleen ennen sen lähettämistä sivustoosi. Varmistus tarkistaa vielä tiedoston sisällön.

vaikka tämä on usein kätevin tapa tuotteidesi kuluttajille, GPG: n man-sivulla varoitetaan, että erilliset allekirjoitukset ovat parempi vaihtoehto, kun vaaditaan täydellistä varmennusta.

gpg: n man-sivulta:

Huomautus: Kun cleartext-allekirjoitusta tarkistetaan, GPG tarkastaa vain sen, mikä muodostaa selkotext-allekirjoitetun tiedon, eikä mitään ylimääräistä tietoa, joka on selkotext-allekirjoituksen tai viivamerkkiriviä suoraan seuraavien otsakerivien ulkopuolella. — Output-vaihtoehtoa voidaan käyttää varsinaisten allekirjoitettujen tietojen kirjoittamiseen, mutta tässä muodossa on myös muita sudenkuoppia. On ehdotettu välttämään selkotekstisiä allekirjoituksia erillisten allekirjoitusten hyväksi.

käyttämällä erityistä näppäimistöä

edellä mainitut esimerkit allekirjoitettiin avaimenperässäni olevalla ensimmäisellä yksityisellä avaimella. Saatan haluta käyttää eri avainta, kun allekirjoitan tiedoston julkaistavaksi verkkosivustolla. Näppäimistö luodaan nimenomaan projektia tai tuotetta varten. Näppäimistö voi olla jopa uudessa jaetussa avainrenkaassa.

$ gpg --keyring /etc/gpgkeys --no-default-keyring --full-gen-key <other options>

kun tiedosto on allekirjoitettu tai salattu, muista myös määrittää --keyring – valinta.

vaikka vain yksi henkilö käyttäisi avainta tiedostojen allekirjoittamiseen, tee erillinen näppäimistö allekirjoittamista varten. Älä käytä samaa avainta muihin päivittäisiin tehtäviin, kuten henkilökohtaisen sähköpostin salaukseen. Voit listata yksityisavainten Nimet, jotka ovat saatavilla numerolla gpg --list-secret. Tunnusta, nimeä tai sähköpostia voidaan käyttää avaimen tunnistamiseen.

allekirjoittaaksesi tiedoston tietyllä avaimella avaimenperästä, käytä --local-user henkilöllisyysvalintaa.

$ gpg --local-user "My Project 2" --clear-sign sample.txt

Wrap up

jos yksinkertainen tekstitiedostosi on luettelo tuotelataustesi tarkistussummasiivuista, kyseinen tiedosto, mahdolliset allekirjoitustiedostot ja allekirjoitusten tarkistamiseen käytetty julkinen avain voidaan Kaikki lähettää verkkosivustolle. Kuluttajat voivat sitten tarkistaa lataukset ennen minkään ohjelmiston asentamista järjestelmiinsä.



+