MODIFICA ALLA LUCE DEI COMMENTI:
Sembra che la domanda che stai cercando di porre è:
I don't like the all-eggs-in-one-basket nature of CAs, so can we design a new TLS system where each cert needs to be signed by multiple CAs? Can we use CT for this?
Sì, è possibile progettare un sistema di questo tipo in modo che più CA debbano collaborare per emettere un certificato falso, alzando il livello. Non cambierebbe la natura fondamentale delle CA necessarie e bisognava fidarsi di loro, ma almeno non dovresti fidarti di loro individualmente.
Le attuali implementazioni TLS non possono farlo perché un oggetto certificato X.509 ha solo un singolo campo firma CA. Le attuali implementazioni CT non sono progettate anche per questo perché i registri di CT hanno lo scopo di monitorare le CA per assicurarsi che stiano svolgendo correttamente i loro lavori, non per essere esse stesse CA.
Quindi sì, è possibile ottenere la funzionalità Let's Encrypt-like con un sistema come questo, ma non sarebbe compatibile con le tecnologie attuali. Le CA non sono l'ideale, ma (almeno per ora) il mondo sembra abbastanza felice di metterle sotto un sacco di controllo pubblico e di estrarle dai browser se Google o Mozilla li catturano facendo qualcosa che non dovrebbero essere.
Tuttavia, ci sono alcuni punti più complicati sui certificati TLS che penso siano difficili da gestire:
Revoca
Una delle caratteristiche principali di PKI è la possibilità di contattare la CA che ha emesso il certificato e chiedere loro di revocare il certificato. Ciò potrebbe essere dovuto a una violazione della sicurezza (hack) e alla tua chiave privata potrebbe essere stata rubata. Potrebbe essere perché stai smantellando il tuo server e non avrai più bisogno del certificato. Qualunque sia il motivo, si desidera la prossima volta che un browser tenta di convalidare il certificato, affinché la CA restituisca "NO! Cert Revoked!".
I registri CT attualmente non tengono traccia di questo (è il lavoro del risponditore CA / OCSP). Se andassi a un modello multi-CA, allora suppongo che revocarlo su qualsiasi CA farebbe (ma poi torneremo a un singolo punto di modello di errore in cui un amministratore canaglia potrebbe causare un DOS) quindi questo avrebbe bisogno di molta attenzione pensiero.
certificati OV / EV
Dalla tua domanda, deduco che tu abbia solo esperienza con i certificati Domain Validated (DV), questi sono quelli che Let's Encrypt offre dove la proprietà può essere verificata dall'automazione. Vi sono altre due categorie: Convalida organizzativa e Convalida estesa in cui gli umani della CA effettuano controlli approfonditi sui record, telefonate e potenzialmente incontri faccia a faccia prima di rilasciare loro una cert perché a quei livelli non è solo il sito Web che viene convalidato, ma l'intera azienda che lo possiede. Ecco dove vedi una barra verde con il nome della società incorporato:
I certificati OV / EV sono costosi (da diverse centinaia a diverse migliaia di dollari all'anno) ma, vi assicuro, molte aziende li acquistano per la maggiore sicurezza. Questo sarebbe molto difficile da ottenere in qualsiasi modello PKI non CA.
RISPOSTA PRECEDENTE
There seems to be a consensus on the fact that CAs are bad, because we can not really trust them.
Bene, ma hai un'alternativa? Solo CT? Quindi, cosa mi impedisce di registrare un CERT autofirmato per google.com
e di essere in grado di MitM Google?
Dal tuo commento:
we could guarantee that only the domain owner can write to a CT log
... quindi devo inviare una prova che possiedo il dominio, e il server di registro CT deve verificare questa prova prima di aggiungerla al registro CT? Ma cosa succede se gli amministratori del registro CT non sono affidabili e se ne inseriscono uno che non ha effettivamente superato la verifica? Hai appena inventato di nuovo CA, ma ora la CA e la persona che osserva la CA per mantenerle oneste (registri CT) sono la stessa persona.
Affidabili o meno, le CA sono una parte necessaria del sistema PKI.