Ho difficoltà a trovare i benefici pratici della trasmissione di un certificato autofirmato semplicemente tramite una chiave pubblica. Comprendo che un certificato autofirmato dimostra la integrità della chiave pubblica e dell'ID utente (ossia la prova che il firmatario è in grado di decrittografare i messaggi crittografati dalla chiave pubblica), ma qual è il vantaggio pratico della sicurezza di questa conoscenza?
Da quanto ho capito, sia l'invio di un certificato autofirmato che l'invio semplicemente della chiave pubblica sono suscettibili agli attacchi man-in-the-middle:
- Alice e Bob vogliono comunicare in privato.
- Mallory è tra Alice e Bob.
- Mallory intercetta le chiavi pubbliche oi certificati autofirmati.
- Mallory crea una nuova coppia di chiavi e auto-firma nel caso di certificati autofirmati.
- Mallory trasmette la nuova chiave pubblica oi certificati autofirmati rispettivamente ad Alice e Bob.
- Mallory ora è trasparente tra Alice e Bob.
- Alice e Bob credono erroneamente che la loro comunicazione sia privata.
Dato che Mallory può generare solo nuovi keypair e auto-firma, un attacco man-in-the-middle può essere eseguito in modo abbastanza semplice come se fossero scambiate solo chiavi pubbliche.
Ho anche considerato un attacco denial-of-service, in cui Mallory può corrompere l'ID utente o la chiave pubblica in modo che Alice / Bob non possa decodificare i messaggi e quindi non comunicare. Un certificato autofirmato consentirebbe ad Alice / Bob di dire che c'è una corruzione non appena il certificato arriva, mentre una chiave pubblica da sola sarebbe scoperta solo come danneggiata una volta ricevuta la risposta.
Tuttavia, Mallory non ottiene alcun vantaggio nell'esecuzione di questo Denial of Service complicato: Alice e Bob non rivelano segreti in quanto non sono in grado di comunicare e il semplice blocco dei pacchetti di rete è un modo molto più semplice di negare il servizio ad Alice e Bob.
Quindi in che modo pratico è la trasmissione di un certificato autofirmato più sicuro rispetto alla trasmissione di una chiave pubblica da solo?