Che cos'è il formato di file PFX?
I file .pfx sono associati allo standard crittografico PKCS #12, originariamente sviluppato dai laboratori RSA e ora regolato dalla RFC 7292.
I file con estensione .pfx memorizzano oggetti crittografici crittografati e firmati digitalmente in un contenitore binario codificato in DER. Ogni file .pfx è suddiviso in cosiddetti SafeBag, che possono anche essere crittografati e firmati indipendentemente. Lo standard PKCS #12 divide ulteriormente i SafeBag in tipi adatti alla memorizzazione di chiavi private, certificati X.509, catene di certificati e altri dati di sicurezza.
.pfx è comunemente usato per raggruppare una chiave privata insieme alla sua catena di certificati corrispondente in un unico file protetto da password. Gli usi tipici includono l'esportazione di certificati TLS/SSL tra server, la distribuzione di identità per la firma del codice (code-signing) e il trasferimento di credenziali S/MIME tra dispositivi.
.pfx e .p12 sono funzionalmente identici: gli strumenti Windows usano .pfx mentre macOS e Linux preferiscono .p12. Entrambi possono essere convertiti nel formato di testo .pem con il comando openssl pkcs12. A differenza dei certificati standalone .cer, un file .pfx trasporta la chiave privata insieme al certificato, rendendolo il formato preferito quando la chiave deve viaggiare con il certificato.
Sicurezza e incolumità
RISCHIO: HIGHUn PFX contiene una CHIAVE PRIVATA, quindi è uno dei tipi di file più sensibili che un utente possa gestire: chiunque abbia il file e la sua password può impersonare il proprietario del certificato - firmare codice o documenti a suo nome, o attivare un server con la sua identità TLS. Non inviare mai un PFX via email non protetto, non caricarlo mai nel controllo sorgente, usa una password di esportazione complessa e conservalo in modo sicuro (idealmente elimina il file dopo l'importazione). Tratta un allegato .pfx inaspettato come sospetto. Genera/gestisci i file PFX solo con strumenti affidabili (wizard del sistema operativo, OpenSSL) - non siti web casuali di «visualizzazione certificati», che potrebbero sottrarre la tua chiave e la tua password.
Dettagli del formato
in sintesiProgrammi che aprono file PFX
Dettagli tecnici
specifiche approfondite| Codifica del contenitore | Binario DER (Distinguished Encoding Rules) su ASN.1; il file non è leggibile dall'uomo senza un parser dedicato |
| Tipo MIME | application/x-pkcs12 |
| Magic bytes | 30 82 all'offset 0 (ASN.1 DER SEQUENCE con lunghezza di 2 byte); condiviso con altri formati codificati in DER - identificare tramite estensione o tipo MIME, non solo dai byte |
| Struttura interna | Livelli nidificati: PFX → AuthenticatedSafe → SafeContents → SafeBags; ogni SafeBag contiene un oggetto crittografico tipizzato |
| Tipi di SafeBag | KeyBag, PKCS8ShroudedKeyBag, CertBag, CRLBag, SecretBag, SafeContents - i sei tipi ufficiali di SafeBag definiti nella RFC 7292 |
| Protezione tramite password | L'intero archivio e i singoli SafeBag possono essere crittografati indipendentemente con una passphrase scelta dall'utente tramite crittografia basata su password |
| Algoritmi di crittografia | AES-256-CBC e 3DES-CBC per stack moderni; RC2 e RC4 compaiono nei file legacy (deprecati - da evitare nella generazione di nuovi archivi) |
| Integrità MAC | Un HMAC (SHA-1 nei sistemi legacy; SHA-256 o SHA-384 nelle implementazioni moderne) copre la struttura AuthenticatedSafe per rilevare manomissioni |
| Derivazione della chiave | PBKDF1 (RFC 7292 Appendice B) o PBKDF2 con conteggio delle iterazioni configurabile rafforza la crittografia basata su password contro gli attacchi brute-force |
| Nome Windows vs. IETF | .pfx è il suffisso originale coniato da Microsoft; .p12 è il nome standard IETF; i due sono identici byte per byte e completamente intercambiabili |
| Archiviazione multi-oggetto | Un singolo .pfx può contenere più certificati e chiavi - ad esempio, una catena completa di certificati foglia, intermedi e root CA più la chiave privata |
| Conversione CLI comune | «openssl pkcs12 -in file.pfx -out file.pem -nodes» estrae in testo PEM; «openssl pkcs12 -export -out file.pfx» raggruppa input PEM in un nuovo archivio |
| Supporto piattaforma | Nativo su Windows (Importazione guidata certificati, certutil, PowerShell), macOS (Accesso Portachiavi), iOS, Android, Java (keytool) e la maggior parte delle librerie TLS |
| Casi d'uso tipici | Distribuzione di certificati server TLS/SSL, identità per la firma del codice, chiavi email S/MIME, credenziali client VPN e provisioning di smart-card |
| Rilasciato | PKCS #12 v1.0 published 1999 by RSA; Microsoft .pfx predates and feeds into it |
| Standard aperto | Sì · royalty-free |
| Specifica | www.rfc-editor.org |