OpenPGP, a volte chiamato erroneamente solo PGP, è uno standard libero che regola la cifratura, il trasferimento e la verifica dell'autenticità di informazioni attraverso Internet, mediante tecnologie di crittografia asimmetrica e l'impiego di firme digitali.[1][2][3][4][5]
Attualmente è definito dall'IETF con la RFC 9580 del luglio 2024, che rimpiazza la RFC 4880 del novembre 2007.[1] Nonostante il protocollo sia ampiamente usato nell'ambito della crittografia digitale, non si qualifica ancora come Internet Standard per come definito dall'IETF, ma resta ancora "standard proposto".[6]
Funzionamento
[modifica | modifica wikitesto]OpenPGP stabilisce dei formati per cifrare e trasferire informazioni, delle quali vengono garantitite la riservatezza e l'integrità attraverso diversi sistemi di crittografia asimmetrica, tra cui quella a chiave pubblica, anche implementando un sistema di firma digitale. Il protocollo supporta anche funzionalità per codificare e trasferire chiavi e certificati. [2][4][5]
Per cifrare un messaggio, un'implementazione di OpenPGP deve generare una chiave "di sessione" casuale, che viene criptata utilizzando la chiave pubblica del destinatario e posta all'inizio del messaggio. Seguirà il testo, anche eventualmente compresso, cifrato con una chiave derivata da quella di sessione mediante un salt.[2][7][4][5]
Per decifrare un messaggio, invece, l'implementazione dovrà utilizzare la chiave privata del destinatario per decifrare la chiave di sessione, dalla quale potrà ottenere la chiave derivata e dunque decifare il testo del messaggio; se il messaggio è stato compresso, l'implementazione lo decomprimerà in questa fase.[2][4][5]
Il protocollo permette inoltre di firmare un messaggio, producendone un digest attraverso una funzione di hash e cifrandolo con una chiave pubblica; la firma può sia esssere inclusa nel messaggio che separata. Quando un'implementazione di OpenPGP riceve un messaggio firmato, ne verifica automaticamente l'autenticità producendo un nuovo digest per poi confrontarlo con quello ricevuto.[2][4][5]
Storia
[modifica | modifica wikitesto]OpenPGP è basato su Pretty Good Privacy, sviluppato inizialmente da Phil Zimmermann nel 1991. Il suo obiettivo è quello di creare una soluzione non proprietaria per risolvere i problemi di compatibilità tra PGP e altri software.[6][5]
Con il permesso della società che possedeva PGP, nel 1998 viene presentato per la prima volta OpenGPG dall'IETF con la RFC 2440. Questa venne successivamente aggiornata nel 2007, con la RFC 4880, ed infine nel 2024, con la RFC 9580.
Implementazioni
[modifica | modifica wikitesto]Le due più comuni implementazioni di OpenPGP sono:
- Pretty Good Privacy (PGP), erede diretto della versione iniziale di Phil Zimmermann e ora prodotto commerciale della PGP Corporation
- GNU Privacy Guard (GPG), sua alternativa GPL.[3]
Il protocollo viene utilizzato anche da diversi client email, come Mozilla Thunderbird o Proton Mail.[8]
Note
[modifica | modifica wikitesto]- ^ a b (EN) Introduction, in RFC 9580, Internet Engineering Task Force, luglio 2024.
- ^ a b c d e (EN) General Functions, in RFC 9580, Internet Engineering Task Force, luglio 2024.
- ^ a b (EN) The GNU Privacy Guard, su gnupg.org.
- ^ a b c d e (EN) How PGP works, su users.ece.cmu.edu.
- ^ a b c d e f Crittografia PGP: sicurezza delle email a prova di hacker, su pandasecurity.com.
- ^ a b (EN) History, su OpenGPG.
- ^ (EN) Version 2 Symmetrically Encrypted and Integrity Protected Data Packet Format, in RFC 9580, Internet Engineering Task Force, luglio 2024.
- ^ (EN) Harry Bone, What is PGP encryption and how does it work?, su proton.me, 8 agosto 2019.
Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su OpenPGP
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) RFC 9580, Internet Engineering Task Force.
- OpenPGP homepage, su openpgp.org.