Rimuovere CA dall'elenco di CA attendibili mentre si fidano delle vecchie certificazioni

4

Diciamo che alcune autorità di certificazione hanno cambiato la sua politica di sicurezza e non ci fidiamo delle sue nuove certificazioni.

Esiste un modo conveniente per un'organizzazione di rimuovere questa autorità di certificazione dal suo elenco di CA attendibili, pur continuando a tracciare e fidandosi delle vecchie certificazioni valide che sono state emesse?

    
posta Neo 12.08.2013 - 22:35
fonte

1 risposta

2

I certificati di gestione software usuali (ad esempio i browser Web) non vengono convalidati in passato; quando considerano un certificato (ad esempio per un server SSL), vogliono sapere se i contenuti del certificato sono attendibili ora . Gli "archivi certificati" gestiti dai sistemi operativi si riferiscono a questo modello. Un "trust anchor" (ovvero "root CA") è affidabile o non affidabile. Non c'è idea che "sia stato fidato".

La convalida in passato ha senso solo in presenza di timestamp : un documento è firmato e viene applicata una marca temporale sulla firma (o sulla codifica del documento e sulla sua firma). La data e l'ora devono essere verificate alla data corrente (quindi il certificato TSA deve essere valido ora ), ma la firma stessa e il certificato del firmatario possono essere convalidati alla data del timbro dell'ora. Ciò consente di verificare le firme anche molto tempo dopo che i relativi certificati sono scaduti, sebbene richieda che anche oggetti aggiuntivi come le risposte CRL o OCSP siano timestampati; potrebbe essere necessario applicare timbri aggiuntivi a intervalli regolari. Esistono alcuni standard emergenti per tale processo, ad es. PAdES (con il formato "a lungo termine") o ERS (che si occupa solo della parte data / ora, ma lo fa bene).

In ogni caso, tali usi richiedono una nozione di intervalli di tempo allegati a trust ancore. Vi sono sforzi in corso (soprattutto nell'UE) per definire un formato standard per questo (denominato TSL ) (l'UE prova con vero non per dire che questa è una lista di" buona CA radice ", ma tutti la comprendono in questo modo). Le date di validità sono allegate a ciascuna CA radice in questo elenco.

Alcuni software che in passato possono utilizzare direttamente l'archivio certificati "CA radice attendibile" del sistema operativo. In effetti, una "ancora di fiducia" è, nominalmente, la combinazione di un nome (un nome distinto X.500) e una chiave pubblica (vedere RFC 5280 , sezione 6.1.1, articolo (d)). Tuttavia, è pratica diffusa utilizzare certificates come formato di codifica per la CA principale. Tale certificato includerà il nome e la chiave pubblica, ma anche altri campi, in particolare due date per un intervallo di validità. Pertanto, alcune applicazioni utilizzeranno le date CA principali come indicative dell'intervallo di tempo durante il quale la CA radice era effettivamente attendibile.

In quel contesto, ciò che stai cercando è fattibile. In effetti, è sufficiente modificare le date nel "certificato" CA principale. Per prima cosa esportalo come "raw DER" (non PEM / Base64). Quindi apri un editor binario e modifica le date in esso; usano UTCTime o GeneralizedTime , quindi la loro rappresentazione interna è basata su ASCII. UTCTime utilizza il formato YYMMDDhhmmss (due cifre per l'anno, due per il mese e così via); con GeneralizedTime , le cose sono simili tranne che ci sono quattro cifre per l'anno (e ci possono essere millisecondi). Basta modificare i campi anno, mese e giorno per soddisfare le tue esigenze. Una volta che il certificato è stato modificato, importalo nuovamente nel tuo negozio di fiducia e rimuovi quello originale. E voilà! hai la CA radice con le date modificate.

Ovviamente, la modifica dei contenuti del certificato in questo modo interrompe la firma che è stata applicata sul certificato. Ma questa è una CA radice: utilizza il formato di codifica di un certificato per comodità, ma questo non è un certificato "reale". La firma è lì perché il formato del certificato ha uno slot non opzionale per una firma, ma in realtà verifica quella firma. In effetti, il certificato è spesso autofirmato. Pertanto, rompere la firma non dovrebbe avere alcuna importanza.

Ripeto, tuttavia, che queste date sono importanti solo nel contesto di alcuni software che eseguono la "validazione nel passato", quindi tutto dipende da ciò che effettivamente fa questo software: i certificati di root CA nella validità di Embedded Store dell'OS Trust date (e puoi modificarle "manualmente", come descritto sopra), ma il software che esegue la convalida passata non utilizza necessariamente queste date per gestire i certificati della CA radice. Potrebbe benissimo usare un'altra fonte, ad es. un TSL.

    
risposta data 13.08.2013 - 14:48
fonte

Leggi altre domande sui tag