GNU/Linux >> Linux Esercitazione >  >> Linux

Come firmare digitalmente un file in Linux usando GnuPg (firme digitali)

Poiché molte organizzazioni passano dai documenti cartacei ai documenti digitali, le firme digitali sono necessarie per gestire tutti i documenti digitali sensibili. Le firme digitali possono essere utilizzate per autenticare la fonte del messaggio, in modo tale che il destinatario possa decidere se fidarsi o meno del mittente. Al giorno d'oggi è più ampiamente utilizzato per la distribuzione di software e le transazioni finanziarie.

Nella crittografia a chiave pubblica, è possibile utilizzare una chiave privata per firmare un file. Chiunque abbia la chiave pubblica corrispondente può verificare se il file è stato firmato dalla chiave privata. Chiunque non disponga della chiave privata non può falsificare tale firma.

Le firme digitali possono essere utilizzate per l'autenticazione del mittente e il non ripudio. Il firmatario non può affermare di non aver firmato il documento.

Oggigiorno, le firme digitali svolgono un ruolo chiave nella distribuzione del software. Quando installi qualsiasi software dal mirror debian, una volta scaricato il software, verificherà se il software proviene da una fonte attendibile verificando la firma, assicurando così che il pacchetto provenga da una fonte attendibile.

Ora vedremo i vari metodi per firmare documenti usando lo strumento GnuPG.

Se non conosci lo strumento GnuPG, dovresti prima capire come usare i comandi di base di gpg.

Una firma digitale, certifica e marca un documento. Se il documento viene alterato in qualsiasi modo, la verifica della firma non andrà a buon fine.

1. Crea firma digitale per un file

Per firmare digitalmente un documento viene utilizzata l'opzione di firma. Ti verrà chiesto di inserire la tua passphrase per sbloccare la chiave privata utilizzata per la firma del documento.

$ gpg --sign file.txt

You need a passphrase to unlock the secret key for
user: "lakshmanan (This is lakshmans key) "
2048-bit RSA key, ID 3630F8D6, created 2012-12-30

Enter passphrase:

Ora creerà un file chiamato "file.txt.gpg" in formato binario. Il file di input viene compresso prima di firmare il file.

2. Verifica la firma digitale

Dato un documento firmato, puoi verificare la firma usando l'opzione –verify.

$ gpg --verify file.txt.gpg

gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

Il comando precedente verifica che la firma effettuata sia corretta.

3. Estrarre il documento dal file

Per estrarre il documento originale dal file firmato, utilizzare l'opzione –decrypt. È possibile utilizzare –output per specificare il file di output in cui memorizzare il contenuto effettivo del file.

$ gpg --output doc.txt --decrypt file.txt.gpg

gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

Ora il documento vero e proprio verrà salvato nel file doc.txt.

4. Per cancellare firmare i documenti

Un uso comune delle firme digitali è l'invio di e-mail. In tal caso, non è consigliabile comprimere il file in binario e firmarlo. Puoi usare l'opzione –clearsign per rendere il file racchiuso in firme corazzate ASCII.

$ gpg --output file.sig --clearsign file.txt

Ora verrà creato un file ASCII denominato file.sig che contiene la firma digitale e il file stesso.

$ cat file.sig

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is a test file
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJQ8af1AAoJEHUf3BE2MPjWJ6QIAIoM7vZlvVD4PR4TgqKkUAr5
S4Pc/7tjkEquBcPfzHgm6MPdTd7kIvUzwHNkkST0FyB2cLzvx8wNf7Zp/kDYL0Uz
/7UCocMPsDBYHasUY4XRfCDUkF0ER/NAFdiL9AUTvQf6oQxwuQG9sWxb6tcK8eiV
U7BBvQvMl6RszP+e7VXgcDbNeYMrTDwrivP9BKwAFuBtZmRg0vQKnjenUyVJL6gJ
tndkwtOd1XGpc5ZKCTRSKOoTonuUQAD1q0Pi6nmeaNskSqwVOxzQcV6lQ8nHJTh2
XfKSAopNriv405YfC1KO5H2Ffzee2jx+o3HqxfU1vQbHtP7uf4QqxUc2HtDnRNQ=
=PN+K
-----END PGP SIGNATURE-----

La verifica del documento firmato in chiaro è simile alla verifica del documento firmato binario.

5. Crea firma staccata

In caso di firme staccate, viene creato un nuovo file come firma. Puoi usare l'opzione –detach-sign per creare una firma separata.

$ gpg --armor --detach-sig file.txt

Ora verrà creato un file ASCII denominato file.txt.asc che contiene la firma staccata. È possibile utilizzare –output per modificare il nome del file della firma scollegata.

6. Verifica la firma staccata

Per verificare una firma staccata, è necessario disporre sia del file della firma che del file dei dati.

$ gpg --verify file.txt.asc file.txt

gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

Proviamo a modificare il file.txt. Aggiungi del contenuto al file.txt e prova a verificare la firma.

$ echo "Append" >> file.txt

$ gpg --verify file.txt.asc file.txt
gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6
gpg: BAD signature from "lakshmanan (This is lakshmans key) "

Ora la verifica è fallita dicendo firma BAD poiché il contenuto è stato modificato.

7. Crittografa e firma un documento

In uno dei nostri post precedenti, abbiamo anche discusso in dettaglio su come crittografare e decrittografare un file usando GnuPG. Tuttavia, se desideri crittografare e firmare un documento allo stesso tempo, procedi come segue:

$ gpg --sign --encrypt --recipient raman file.txt

Il comando precedente crittografa il file.txt e firma il documento digitalmente. Il destinatario può verificare la firma e decrittografare il documento utilizzando l'opzione –decrypt.


Linux
  1. Come crittografare e decrittografare file/cartelle in Linux usando GnuPG

  2. Come rinominare un file in Linux?

  3. Come crittografare e decrittografare un file utilizzando GnuPG in Linux

  4. Come dividere iso o file usando il comando "split" in Linux

  5. Come allegare un file usando il comando mail su Linux?

Come creare un collegamento simbolico in Linux usando il comando Ln

Come monitorare le modifiche ai file utilizzando fswatch in Linux

Firme digitali con GnuPG

Come bloccare un file di testo in Linux usando il comando flock

Come collegare simbolicamente un file in Linux

Come scaricare file utilizzando Wget tramite proxy in Linux