Possiamo eliminare CA con CT?

9

Sembra esserci un consenso sul fatto che le CA sono cattive, perché non possiamo davvero fidarci di loro.

Le persone intelligenti hanno cercato di trovare alternative, come convergenza e prospettive, ma in qualche modo non riuscivano a tenere il passo.

Ora abbiamo la trasparenza del certificato, ma le CA sono ancora qui. Possiamo sbarazzarci di loro?

Per esempio, i browser iniziano a controllare se un certificato è registrato su un registro CT e smettono di controllare se è firmato da una CA attendibile. Il proprietario del dominio potrebbe utilizzare un protocollo come ACME per registrare un certificato autofirmato e il browser potrebbe gestirlo come affidabile.

Potrebbe funzionare?

I log di CT potrebbero essere sufficienti per l'infrastruttura PKI TLS di Internet e per stabilire la fiducia?

    
posta Simon 25.09.2017 - 15:23
fonte

2 risposte

11

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.

    
risposta data 25.09.2017 - 17:02
fonte
5

CT in nessun modo sostituisce effettivamente la funzione originale di una CA; lo rende tracciabile e pubblico.

Le CA hanno anche una funzione da svolgere nella distribuzione e nella delega della fiducia che non è coperta da ACME o CT (direttamente).

I problemi principali con CA sono che sono costosi (o troppo costosi) e che in passato alcuni non hanno svolto il loro lavoro come previsto / richiesto, ovvero per verificare, autorizzare e autenticare richieste di certificazione e rilasciare certificati alle persone diverso dai proprietari di domini. CT risolve questo problema almeno in parte con una fonte tracciabile di chi ha creato il certificato e insieme ai registri privati possiamo recuperare chi ha fatto la richiesta.

La tua soluzione proposta non elimina il rischio attualmente presente (e come tale non è migliore), ovvero quello di qualcuno che impersona un proprietario di dominio e richiede certificati per un dominio che non è sotto il loro controllo.

Tutte le attuali sostituzioni per il compito di CA di delegare la fiducia (come il web-of-trust) sono limitate dall'effetto bootstrap (ovvero l'effetto chicken-or-the-egg) in quanto è necessario un gruppo più ampio di fidati siti / utenti per usarlo.

Per restituire il controllo ai controller di dominio e dare loro gli strumenti per dire quali certificati sono validi, abbiamo l'iniziativa DANE. Questo è tuttavia altamente dipendente da DNSSEC, e anche questo non è abbastanza diffuso da rendere DANE vitale come sostituto.

Quindi attualmente non abbiamo altro modo di delegare la fiducia che utilizzare CA per fare quel lavoro per tutti noi finché le altre tecnologie non maturano abbastanza e sono abbastanza in uso da poter finalmente sostituire le CA.

    
risposta data 25.09.2017 - 16:09
fonte