Non fidarsi di una CA intermedia in Linux?


18

Da questo blog .

Le CA intermedie sono certificati firmati da una CA radice che possono firmare certificati arbitrari per qualsiasi sito Web.

Sono potenti quanto le CA di root, ma non esiste un elenco completo di quelli di cui il tuo sistema si fida, perché le CA di root possono crearne di nuove a piacimento e il tuo sistema si fiderà di loro a prima vista. Ci sono MIGLIAIA registrati in CT.

Questo mese è emerso un interessante, apparentemente generato a settembre 2015: "Blue Coat Public Services Intermediate CA", firmato da Symantec. (Finora nessun certificato firmato da questa CA ha raggiunto i registri CT o Censys.)

Ho pensato che sarebbe stata una buona occasione per scrivere come cancellare esplicitamente una CA intermedia che sarebbe altrimenti attendibile in OS X. Non impedirà alla CA principale di consegnare un nuovo intermedio alla stessa organizzazione, ma meglio di niente.

Quando ho provato i passaggi nel blog di Ubuntu, ho scaricato questo certificato https://crt.sh/?id=19538258 . Quando apro il .crt, questo viene importato nel Portachiavi di Gnome, ma non sono riuscito a trovare un modo per "non fidare" del certificato dopo averlo importato.

Risposte:


8

Giusto per rendere le cose difficili, Linux ha più di una libreria per lavorare con i certificati.

Se stai usando l'NSS di Mozilla, puoi Diffidare attivamente (la loro terminologia) di un certificato usando l' opzione di certutil-t trustargs :

$ certutil -d <path to directory containing database> -M -t p -n "Blue Coat Public Services Intermediate CA"

Per Firefox, di <path to directory containing database>solito è ~/.mozilla/firefox/<???>.profiledove ci <???>sono alcuni personaggi dall'aspetto casuale. (certutil è ad es. nel pacchetto libnss3-tools di ubuntu)

La ripartizione è la seguente:

-M per modificare il database

-t p per impostare la fiducia su Proibito

-n per eseguire l'operazione sul certificato indicato

Anche all'interno di NSS, non tutte le applicazioni condividono lo stesso database; quindi potresti dover ripetere questo processo. Ad esempio, per fare lo stesso con Chrome, modifica -d <path>in -d sql:.pki/nssdb/.

$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"

Tuttavia, non tutte le applicazioni utilizzano NSS, quindi questa non è una soluzione completa. Ad esempio, non credo sia possibile farlo con la libreria OpenSSL.

Di conseguenza, qualsiasi applicazione che utilizza OpenSSL per fornire la sua costruzione di catene di certificati (TLS, IPSec ecc.) Si fiderebbe di una catena con un certificato Blue Coat e non c'è nulla che tu possa fare al di fuori della rimozione della CA principale da cui l'ha firmata il tuo negozio di ancoraggio di fiducia (che sarebbe sciocco considerando che è una CA radice di Symantec poiché finiresti per diffidare di metà di Internet), mentre le applicazioni che si basano su NSS possono essere configurate in modo più granulare per diffidare di qualsiasi catena che ha il certificato Blue Coat al suo interno .

Ad esempio, credo che OpenVPN utilizzi OpenSSL come libreria per i certificati, quindi il fratello maggiore potrebbe ascoltare il tuo traffico OpenVPN a tua insaputa se ti connetti a un provider VPN commerciale che utilizza OpenVPN. Se sei davvero preoccupato per questo, controlla chi è la CA principale del tuo provider VPN commerciale - se è Symantec / Verisign, allora forse è il momento di abbandonarli per qualcun altro?

Nota che SSH non utilizza i certificati X509, quindi puoi connetterti e creare tunnel usando SSH senza preoccuparti degli attacchi Blue Coat MITM.


Ho aggiornato la domanda per indicare che quando ho fatto doppio clic sul certificato è stato importato nel portachiavi di gnome. Sono riuscito a trovare un modo per importarlo in Firefox nella mia risposta di seguito.
Raffaello,

Per OpenSSL la rimozione del certificato non equivarrebbe a non fidarsene? Dopotutto può solo validare certificati che conosce.
Bratchley,

1
@Bratchley - Cosa succede se il certificato sospetto è stato inviato (come dovrebbe essere) come parte dell'handshake TLS? Sarebbe semplicemente attendibile, a meno che non ci sia un modo (come accade con Mozilla NSS, Windows e OS-X) di insistere sul fatto che non è sempre affidabile.
garethTheRed,

@garethTheRed Potrei mancare qualcosa, ma se la libreria richiede la convalida del certificato non farebbe un CRL o rimuoverà la CA radice attendibile per risolvere il problema? Che si tratti di certificati client o server, dovrebbe comunque richiedere la convalida.
Bratchley,

1
Sì. A Bluecoat è stato rilasciato un certificato CA da Verisign per l'uso in dispositivi man-in-the-middle. L'OP chiede come diffidare di questo certificato. Quindi si tratta di diffidare di un certificato subordinato che la CA di emissione superiore (Root in questo caso) non revoca, quando, come dici tu, non vuoi fidarti della radice (Verisign).
garethTheRed

0

Non posso ancora commentare, quindi dovrò commentare qui che su Ubuntu Gnome 15.10, quando uso l'approccio di @ garethTheRed, ottengo:

~$ certutil -d ~/.mozilla/firefox/<directory>.default -M -t p -n "Blue Coat Public Services Intermediate CA" 
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_BAD_DATABASE: security library: bad database.

~$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_UNRECOGNIZED_OID: Unrecognized Object Identifier.

"Blue Coat Systems, Inc." non funziona neanche.

(Questo è il certificato che ho importato: https://crt.sh/?id=19538258 )


Hai scaricato e importato prima il certificato?
Raffaello,

Sì, ho importato questo: crt.sh/?id=19538258 . (Sembra che posso commentare ora! :)
Diagon,

Penso che puoi solo commentare la tua risposta. Non ho ancora provato la procedura.
Raffaello,

vedi la mia risposta qui sotto
Raffaello,

@raphael - Ho provato a modificare di seguito, facendoti sapere che: Mentre il link sopra descrive "-t p" come "proibito (esplicitamente diffidato)", la pagina man di Ubuntu 15.10 lo descrive come "p - Valido peer". Spero che tu non abbia fatto la cosa sbagliata.
Diagon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.