Vai al contenuto
buybitcoinsmart

Glossario / Riferimento per sviluppatori

Certificato X.509

Noto anche come certificati X.509.

Che cos'è un certificato X.509?
Un certificato X.509 è un file firmato che associa una chiave pubblica a un nome e a un periodo di validità, ed è il formato alla base di ogni connessione HTTPS che apri verso un exchange.

Il formato è vecchio e si vede: X.509 è arrivato nel 1988 come parte di uno standard per le directory, e il profilo per internet ancora in uso, RFC 5280, risale a maggio 2008. Un certificato è un record strutturato firmato da un emittente, non un segreto, quindi può essere distribuito senza rischi. Ciò che dimostra è limitato: qualcuno ha convinto un'autorità di avere il controllo di un nome.

Come funziona

Un certificato è una lista di campi più una firma che li copre tutti.

I campi che contano per chi legge sono pochi. Un numero di serie identifica il certificato presso il suo emittente. Il campo dell'emittente indica chi lo ha firmato, il campo del soggetto indica di chi parla, e due marche temporali delimitano la finestra in cui vale. Un blocco di informazioni sulla chiave pubblica del soggetto contiene la chiave stessa. Le estensioni portano il resto, e una di esse fa gran parte del lavoro: subjectAltName elenca i nomi di dominio coperti dal certificato.

Il campo del nome comune è la trappola classica. Sembra il posto dove è memorizzato un dominio, e per anni lo è stato, ma RFC 6125 ne ha deprecato la lettura a marzo 2011 e ora i browser lo ignorano. Un certificato il cui subjectAltName non elenca il sito che stai visitando fallisce, qualunque cosa dica il suo nome comune.

Le durate si sono ridotte molto nell'ultimo decennio. I certificati TLS di fiducia pubblica emessi dal 1º settembre 2020 non possono avere una validità superiore a 398 giorni, in calo rispetto ai limiti precedenti di tre anni e poi di due anni, e Let's Encrypt emette abitualmente certificati da 90 giorni perché il rinnovo è automatizzato. Una finestra breve sostituisce la revoca, che non ha mai funzionato in modo affidabile.

Chiunque può crearne uno. Firmare un certificato con la propria chiave produce un certificato autofirmato, in cui emittente e soggetto coincidono, ed è un file perfettamente valido che nessun archivio di certificati attendibili riconosce. Non è la firma a rendere affidabile un certificato, ma l'identità di chi firma.

Dove lo vedi

Clicca sul lucchetto in qualsiasi browser e stai guardando un certificato X.509.

Lo stesso formato di file compare ovunque un software debba verificare che qualcosa provenga da un determinato fornitore: binari delle applicazioni firmati, aggiornamenti firmware firmati e i certificati di attestazione che alcuni wallet hardware portano con sé, così che l'app di un fornitore possa distinguere un dispositivo autentico da un clone. BIP70 incorporava i certificati direttamente nelle richieste di pagamento bitcoin, l'unica volta in cui il formato è stato parte di un protocollo bitcoin.

Due abitudini proteggono un acquirente in questo ambito. Non proseguire mai oltre un avviso sul certificato di un sito che custodisce denaro, perché il browser sta segnalando che il nome e la chiave non corrispondono, e sul dominio di un exchange non esiste una versione innocua di questo avviso. E ricorda che un certificato valido su un sito fraudolento è normale, non contraddittorio: la verifica riguarda il nome, quindi se il nome è quasi identico a quello vero, il certificato sta facendo il suo lavoro mentre tu perdi i tuoi fondi.

Certificato X.509 vs certificato foglia

X.509 è un formato; foglia descrive una posizione. Ogni certificato di una catena è un certificato X.509, compresi gli intermedi e la radice autofirmata, e chiamarne uno foglia dice solo che si trova alla fine, identifica un server reale invece di autorizzare ulteriori emissioni. La differenza si vede in una sola estensione, perché un certificato il cui basicConstraints lo indica come autorità può firmarne altri e un certificato foglia no.

Da non confondere con

Domande frequenti

Perché oggi i certificati scadono così in fretta?

Perché la revoca non è affidabile, quindi durate brevi limitano il danno di un certificato di cui non ci si dovrebbe più fidare. I certificati di fiducia pubblica emessi dal 1º settembre 2020 sono limitati a 398 giorni, e Let's Encrypt usa 90 giorni.

Un certificato autofirmato è pericoloso?

Non è di per sé difettoso, ma nulla lo garantisce. Emittente e soggetto sono la stessa parte, quindi accettarne uno significa fidarsi di chi te lo ha consegnato, ed è per questo che i browser avvertono invece di connettersi in silenzio.

Termini correlati

Altro in Riferimento per sviluppatori

Leggi questa pagina in inglese