Cryptology Academy · Lezione

GPG per la cifratura asimmetrica dei file

Utilizzi GPG per cifrare file destinati a specifici destinatari, firmare contenuti e gestire il portachiavi GPG.

Lezione 1 di 413 passaggi

GPG per la cifratura asimmetrica dei file è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Panoramica e scopo di GPG

GNU Privacy Guard (GPG) implementa lo standard OpenPGP (RFC 4880) per la crittografia asimmetrica dei file e le firme digitali. Consente due operazioni fondamentali: crittografare un file in modo che solo il destinatario previsto possa decrittografarlo e firmare un file in modo che altri possano verificarne autenticità e integrità. GPG è lo strumento standard per il trasferimento sicuro dei file e la firma delle release software.

Generazione delle chiavi GPG

La generazione delle chiavi GPG è interattiva con gpg --gen-key oppure può essere eseguita tramite script con gpg --quick-gen-key. Nelle versioni moderne, GPG usa per impostazione predefinita ed25519 per la firma e cv25519 (Curve25519) per la crittografia, creando una chiave primaria per la firma e una sottochiave per la crittografia. L'opzione --full-gen-key offre il pieno controllo sul tipo e sulla dimensione della chiave e sulla data di scadenza, per gli utenti che necessitano di configurazioni personalizzate.

Confronto tra i tipi di chiavi GPG

Le chiavi GPG RSA a 4096 bit sono compatibili con tutte le implementazioni OpenPGP e offrono una sicurezza elevata. ECDSA con Curve25519 (Ed25519 per la firma, Cv25519 per la crittografia) produce chiavi più piccole e operazioni più rapide, mantenendo un livello di sicurezza equivalente. Le chiavi DSA legacy sono limitate ai digest SHA-1 nelle implementazioni meno recenti e non devono essere utilizzate. Per le nuove chiavi, utilizzi tipi basati su Curve25519.

Esportazione e condivisione delle chiavi pubbliche

Dopo aver generato una coppia di chiavi, esporti la chiave pubblica per distribuirla: gpg --armor --export your@email.com produce un blocco di chiave pubblica con codifica ASCII-armored. Condivida questo file con chiunque debba crittografare file destinati a lei o verificare le sue firme. I destinatari importano la sua chiave pubblica con gpg --import publickey.asc prima di poter crittografare o verificare.

Crittografia dei file per i destinatari

Per crittografare un file per un destinatario specifico: gpg --encrypt --recipient recipient@email.com --output secret.gpg plaintext.txt. GPG utilizza la chiave pubblica del destinatario per crittografare la chiave di sessione del file e crittografa il file con AES-256 (o con il cifrario negoziato). Solo il destinatario, che possiede la chiave privata corrispondente, può decrittografare la chiave di sessione del file e recuperare il testo in chiaro.

Creazione di firme distaccate

Una firma distaccata (gpg --detach-sign --armor file.tar.gz) crea un file .asc separato contenente la firma. Il file originale non viene modificato. I destinatari verificano la firma con gpg --verify file.tar.gz.asc file.tar.gz. Le firme distaccate sono lo standard per le release software, perché consentono di verificare la firma senza decrittografare o modificare il file distribuito.

Verifica delle firme

La verifica della firma conferma che un file è stato firmato dalla chiave dichiarata e non è stato modificato dopo la firma. gpg --verify signature.asc file visualizza l'impronta digitale della chiave, l'ID utente e indica se la firma è valida o non valida. La sicurezza dipende dal fatto che la chiave pubblica del firmatario sia considerata attendibile correttamente: una firma valida proveniente da una chiave non attendibile o non verificata offre poche garanzie.

Chiavi private protette da passphrase

Prima di memorizzare la chiave privata, GPG la crittografa con un cifrario simmetrico derivato da una passphrase. Senza la passphrase, un aggressore che ottenga il file della chiave privata non può utilizzarlo. GPG usa una funzione di derivazione della chiave per derivare la chiave di crittografia dalla passphrase. La passphrase deve essere lunga e facile da ricordare, ma non deve essere utilizzata altrove, poiché tutti i file crittografati sono protetti da essa.

Operazioni sui server di chiavi GPG

I server di chiavi ospitano chiavi pubbliche per facilitarne la ricerca. gpg --send-keys KEYID --keyserver hkps://keys.openpgp.org carica la sua chiave pubblica. Altri utenti possono cercare e importare le chiavi con gpg --recv-keys KEYID. I server di chiavi si sincronizzano tra loro, garantendo una disponibilità globale. I server moderni, come keys.openpgp.org, richiedono la verifica dell'indirizzo e-mail prima della pubblicazione, impedendo gli attacchi di key spam.

Scadenza e revoca delle chiavi

Impostare una data di scadenza per la chiave offre una protezione automatica nel caso in cui ne perda il controllo, senza dover creare un certificato di revoca. Quando una chiave scade, GPG avvisa gli utenti che la utilizzano per crittografare. Se la chiave è compromessa, pubblichi immediatamente un certificato di revoca (creato al momento della generazione della chiave) sui server di chiavi: gpg --import revocation.cert e gpg --send-keys. In questo modo impedisce ulteriori operazioni di crittografia con la chiave compromessa.

GPG nei flussi di lavoro automatizzati

GPG può funzionare in modo non interattivo negli script usando i flag --batch e --yes e fornendo le passphrase tramite --passphrase-fd per leggerle da un descrittore di file. L'agente GPG (gpg-agent) memorizza la passphrase per una durata configurabile, consentendone il riutilizzo automatico. Nelle pipeline CI/CD, il materiale delle chiavi deve essere archiviato nei sistemi di gestione dei segreti, non nel codice sorgente o nelle variabili d'ambiente.

Comando di crittografia GPG

Quale comando GPG crittografa un file per un destinatario specifico usando la sua chiave pubblica?

Riepilogo della crittografia dei file con GPG

Riepilogo di GPG: generi coppie di chiavi (preferibilmente Curve25519), esporti e condivida le chiavi pubbliche, crittografi con la chiave pubblica del destinatario (--encrypt --recipient), firmi i file separatamente con firme distaccate (--detach-sign), verifichi le firme con --verify, protegga le chiavi private con passphrase, imposti date di scadenza e prepari certificati di revoca, quindi utilizzi i server di chiavi per cercare e distribuire le chiavi pubbliche.

Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «GPG per la cifratura asimmetrica dei file» è gratuita?

Sì — il testo completo di «GPG per la cifratura asimmetrica dei file» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «GPG per la cifratura asimmetrica dei file»?

Utilizzi GPG per cifrare file destinati a specifici destinatari, firmare contenuti e gestire il portachiavi GPG. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «GPG per la cifratura asimmetrica dei file»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. GPG per la cifratura asimmetrica dei file
  2. Lo strumento di cifratura age: moderna alternativa a GPG
  3. Container cifrati con VeraCrypt
  4. Eliminazione sicura e distruzione delle chiavi
← Torna a Cryptology Academy