Proibisce esplicitamente un certificato CA intermedio su OpenSSL

3

In che modo non ti fidi esplicitamente di un particolare certificato (in particolare, certificato CA) per OpenSSL?

Nelle applicazioni basate su NSS, è possibile installare il certificato con trustarg p: prohibited (explicitly distrusted) . In questo modo, diciamo che abbiamo

  Verisign --->  Some_CA_I_dont_trust ---> ... ---> Some Site

Posso rimuovere la fiducia di Some_CA_I_dont_trust senza influire su altri da Verisign.

Tuttavia, non sembra essere il caso se aggiungo una ! alla riga corrispondente in /etc/ca-certificates.conf ed esegua update-ca-certificates . OpenSSL accetta volentieri il certificato anche se la CA intermedia non si trova sul mio sistema.

    
posta phoeagon 26.02.2015 - 14:28
fonte

2 risposte

4

Affidandoti alla CA principale, ti stai fidando del loro giudizio su chi firmano. Finché la CA intermedia è valida, non revocata e ci si fida della CA radice ... la catena verrà sempre verificata. Altre applicazioni (come FireFox) possono aggiungere ulteriori controlli e funzionalità per verificare la presenza di certificati intermedi non attendibili, ma a meno che l'applicazione non lo faccia non fa parte delle specifiche SSL / TLS.

Per rimuovere CA root attendibili è possibile eseguire le seguenti operazioni:

update-ca-certificates updates /etc/ssl/certs leggendo /etc/ca-certicates.conf . /etc/ca-certificates.conf viene generato automaticamente eseguendo sudo dpkg-reconfigure ca-certificates .

Questo farà apparire una GUI di comando.

  1. Al primo prompt hai la possibilità di dire Sì / No / Richiedi nuovi certificati. Fai clic su Chiedi
  2. Ora ti verrà fornito un elenco enorme di CA con * accanto a loro. Vai in fondo all'elenco e rimuovi le CA che vuoi premendo spacebar . Il * verrà rimosso.
  3. Al termine, premi Enter .
  4. Ciò dovrebbe attivare l'aggiornamento di /etc/ssl/certs . Le CA che hai rimosso dovrebbero essere elencate al prompt dei comandi.

Se non vedi qualcosa di simile:

Processing triggers for ca-certificates ...
Updating certificates in /etc/ssl/certs... 0 added, 1 removed; done.
Running hooks in /etc/ca-certificates/update.d....
Removing debian:A-Trust-nQual-03.pem
done.
done.

Quindi eseguirò sudo update-ca-certificates per garantire che /etc/ssl/certs venga aggiornato in modo appropriato.

Ho eseguito tutto questo su un sistema basato su Debian.

    
risposta data 26.02.2015 - 14:50
fonte
1

Non penso che potresti farlo con le solite applicazioni ..

Se hai la tua applicazione utilizzando la libreria OpenSSL puoi gestire questa condizione all'interno del certificato verify_callback . Questo callback è chiamato sulla verifica per ogni certificato nella catena di fiducia e si può diffidare del certificato semplicemente restituendo 0. Si noti che questo farà fallire la verifica completa, anche se il loro sarebbe un percorso di fiducia alternativo che non usa la diffidenza certificato.

    
risposta data 26.02.2015 - 16:05
fonte