Certificates
Last updated
Last updated
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Usa Trickest per costruire e automatizzare flussi di lavoro facilmente, alimentati dagli strumenti della comunità più avanzati al mondo. Accedi oggi:
Un certificato di chiave pubblica è un ID digitale utilizzato nella crittografia per dimostrare che qualcuno possiede una chiave pubblica. Include i dettagli della chiave, l'identità del proprietario (il soggetto) e una firma digitale da un'autorità fidata (l'emittente). Se il software si fida dell'emittente e la firma è valida, è possibile una comunicazione sicura con il proprietario della chiave.
I certificati sono principalmente emessi da autorità di certificazione (CA) in un'architettura di infrastruttura a chiave pubblica (PKI). Un altro metodo è il web of trust, dove gli utenti verificano direttamente le chiavi degli altri. Il formato comune per i certificati è X.509, che può essere adattato per esigenze specifiche come delineato nell'RFC 5280.
Nei certificati x509, diversi campi svolgono ruoli critici nel garantire la validità e la sicurezza del certificato. Ecco una suddivisione di questi campi:
Numero di Versione indica la versione del formato x509.
Numero di Serie identifica univocamente il certificato all'interno del sistema di un'Autorità di Certificazione (CA), principalmente per il tracciamento delle revoche.
Il campo Soggetto rappresenta il proprietario del certificato, che potrebbe essere una macchina, un individuo o un'organizzazione. Include identificazione dettagliata come:
Nome Comune (CN): Domini coperti dal certificato.
Paese (C), Località (L), Stato o Provincia (ST, S, o P), Organizzazione (O) e Unità Organizzativa (OU) forniscono dettagli geografici e organizzativi.
Nome Distinto (DN) racchiude l'intera identificazione del soggetto.
Emittente dettaglia chi ha verificato e firmato il certificato, inclusi campi simili a quelli del Soggetto per la CA.
Il Periodo di Validità è contrassegnato dai timestamp Non Prima e Non Dopo, assicurando che il certificato non venga utilizzato prima o dopo una certa data.
La sezione Chiave Pubblica, cruciale per la sicurezza del certificato, specifica l'algoritmo, la dimensione e altri dettagli tecnici della chiave pubblica.
Le estensioni x509v3 migliorano la funzionalità del certificato, specificando Utilizzo della Chiave, Utilizzo Esteso della Chiave, Nome Alternativo del Soggetto e altre proprietà per affinare l'applicazione del certificato.
Utilizzo della Chiave identifica le applicazioni crittografiche della chiave pubblica, come la firma digitale o la cifratura della chiave.
Utilizzo Esteso della Chiave restringe ulteriormente i casi d'uso del certificato, ad esempio, per l'autenticazione del server TLS.
Nome Alternativo del Soggetto e Vincolo di Base definiscono nomi host aggiuntivi coperti dal certificato e se si tratta di un certificato CA o di entità finale, rispettivamente.
Identificatori come Identificatore della Chiave del Soggetto e Identificatore della Chiave dell'Autorità garantiscono l'unicità e la tracciabilità delle chiavi.
Accesso alle Informazioni dell'Autorità e Punti di Distribuzione CRL forniscono percorsi per verificare la CA emittente e controllare lo stato di revoca del certificato.
SCT Precertificate CT offrono registri di trasparenza, cruciali per la fiducia pubblica nel certificato.
OCSP (RFC 2560) coinvolge un client e un risponditore che lavorano insieme per controllare se un certificato digitale a chiave pubblica è stato revocato, senza la necessità di scaricare l'intero CRL. Questo metodo è più efficiente rispetto al tradizionale CRL, che fornisce un elenco di numeri di serie di certificati revocati ma richiede il download di un file potenzialmente grande. I CRL possono includere fino a 512 voci. Maggiori dettagli sono disponibili qui.
La Trasparenza dei Certificati aiuta a combattere le minacce legate ai certificati garantendo che l'emissione e l'esistenza dei certificati SSL siano visibili ai proprietari di domini, CA e utenti. I suoi obiettivi sono:
Prevenire che le CA emettano certificati SSL per un dominio senza la conoscenza del proprietario del dominio.
Stabilire un sistema di auditing aperto per tracciare certificati emessi erroneamente o in modo malevolo.
Proteggere gli utenti contro certificati fraudolenti.
I log dei certificati sono registri pubblicamente auditabili, solo in append, di certificati, mantenuti dai servizi di rete. Questi log forniscono prove crittografiche per scopi di auditing. Sia le autorità di emissione che il pubblico possono inviare certificati a questi log o interrogarli per verifica. Sebbene il numero esatto di server di log non sia fisso, si prevede che sia inferiore a mille a livello globale. Questi server possono essere gestiti in modo indipendente da CA, ISP o qualsiasi entità interessata.
Per esplorare i log della Trasparenza dei Certificati per qualsiasi dominio, visita https://crt.sh/.
Esistono diversi formati per memorizzare i certificati, ognuno con i propri casi d'uso e compatibilità. Questo riepilogo copre i formati principali e fornisce indicazioni sulla conversione tra di essi.
Formato più ampiamente utilizzato per i certificati.
Richiede file separati per certificati e chiavi private, codificati in Base64 ASCII.
Estensioni comuni: .cer, .crt, .pem, .key.
Utilizzato principalmente da Apache e server simili.
Un formato binario di certificati.
Mancano le dichiarazioni "BEGIN/END CERTIFICATE" presenti nei file PEM.
Estensioni comuni: .cer, .der.
Spesso utilizzato con piattaforme Java.
Memorizzato in Base64 ASCII, con estensioni .p7b o .p7c.
Contiene solo certificati e certificati di catena, escludendo la chiave privata.
Supportato da Microsoft Windows e Java Tomcat.
Un formato binario che incapsula certificati server, certificati intermedi e chiavi private in un unico file.
Estensioni: .pfx, .p12.
Utilizzato principalmente su Windows per l'importazione e l'esportazione dei certificati.
Le conversioni PEM sono essenziali per la compatibilità:
x509 a PEM
PEM a DER
DER a PEM
PEM a P7B
PKCS7 a PEM
Le conversioni PFX sono cruciali per la gestione dei certificati su Windows:
PFX a PEM
PFX a PKCS#8 comporta due passaggi:
Convertire PFX in PEM
Convertire PEM in PKCS8
P7B a PFX richiede anche due comandi:
Convertire P7B in CER
Convertire CER e chiave privata in PFX
Modifica ASN.1 (DER/PEM) (funziona con certificati o quasi qualsiasi altra struttura ASN.1):
Clona asn1template
Convertire DER/PEM nel formato di generazione di OpenSSL
Modifica certificatename.tpl secondo le tue esigenze
Ricostruire il certificato modificato
Usa Trickest per costruire e automatizzare flussi di lavoro facilmente, alimentati dagli strumenti della comunità più avanzati al mondo. Accedi oggi:
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)