Ironia della sorte, i certificati X.509 possono teoricamente essere ambiti a domini specifici e sub -dominio, tramite l'estensione Limitazioni nome : se un certificato CA contiene un'estensione Name Constraints
con un campo permittedSubtrees
contenente un dNSName
del valore example.com
può emettere certificati solo se i nomi host che compaiono nelle estensioni Subject Alt Names
di questi certificati provengono dal dominio example.com o da un sottodominio di questi. Questo vincolo si propaga lungo la catena, quindi anche i certificati emessi dalla CA secondaria devono essere conformi.
Sfortunatamente, questo schema fallisce nella pratica, per due motivi:
-
Quando il certificato del server non include affatto un'estensione Subject Alt Name
, i client SSL hanno l'abitudine di usare il nome comune da subjectDN
come sostituto. Secondo le regole X.509, il Common Name è non coperto da Name Constraints
di tipo dNSName
. L'utilizzo del nome comune è esplicitamente consentito da RFC 2818 .
-
Nessuno implementa il supporto per Name Constraints
. Se non si contrassegna l'estensione come critica, i client la ignoreranno. Se si contrassegna l'estensione come critica, i client rifiuteranno il certificato. Pertanto, non puoi davvero usarli.
La mancanza di supporto implica che nessuno cerchi di eseguire l'analisi dei certificati con Name Constraints
. Poiché nessuno ci prova, gli implementatori non hanno alcun incentivo a implementare realmente il supporto.
La conseguenza generale è che, al momento, le CA non hanno ambito. Pertanto, qualsiasi CA radice attendibile dai client SSL e qualsiasi CA intermedia emessa (direttamente o meno) da una di queste CA radice, sarà tecnicamente attendibile per la convalida dei certificati server SSL per ogni possibile nome di dominio.
Tuttavia, CA canaglia sono un evento abbastanza raro. Il motivo è che un certificato contraffatto, con un nome falso, indica anche chiaramente la CA che lo ha emesso. I certificati falsi sono molto rischiosi per una CA; c'è quasi la certezza di essere scoperti dopo il fatto. La CA principale viene inclusa nel sistema operativo e nei browser firmando contratti che impongono severe sanzioni in caso di comportamento scorretto; quando la CA radice emette certificati di sub-CA, impongono nuovamente lo stesso tipo di penalità contrattualmente. Stiamo parlando di milioni di dollari qui.
I casi reali di certificati falsi sono per lo più dovuti a compromessi, di natura transitoria e accadono circa una volta all'anno.