Sto cercando di capire come funziona la crittografia a chiave pubblica, o meglio come funziona il processo di autenticazione.
Per quanto comprendo, le CA sono qui per fissare una determinata chiave pubblica a una certa organizzazione o persona in modo che da una parte una persona che ha firmato qualcosa con la sua chiave privata non può dire "questa non è la mia chiave pubblica" (non ripudio), e d'altra parte nessun attaccante può mandare la sua chiave pubblica e dirla da qualcun altro (altrimenti cripterebbe il tuo messaggio con la chiave dell'attaccante).
Ma ora l'intera sicurezza dipende da:
- sviluppatori di browser che aggiungono certificati al browser
- CA che crea certificati
Non è uno standard molto basso? Ho letto articoli sui governi che obbligano CA a distribuire certificati falsi (per esempio link ) o forse i CA vengono hackerati da soli. E mette le CA in una posizione molto potente, che non è mai una buona cosa. Quindi gli sviluppatori del browser decidono quali certificati andare nel browser.
Inoltre, sembra che il problema sia stato appena spostato, dal momento che è necessario ottenere la chiave pubblica della CA per verificare il certificato che a sua volta può anche essere una chiave pubblica di un utente malintenzionato (come ha scritto Thomas Pomin qui: come funziona il processo di verifica della firma digitale ) Dice che il problema è anche concentrato il che ha senso, ma ancora, non riesco davvero a vedere come questo dovrebbe essere affidabile.
Quindi per avere l'autenticazione è necessario disporre di un segreto condiviso prima dell'inizio della comunicazione vera e propria, che non è possibile quando non si conosce l'altra persona (Internet, ecc.). Quindi l'autenticazione a chiave pubblica "reale" non esiste, giusto? O meglio formulato, non puoi proteggerti da un aggressore sofisticato.
Ho anche letto che molti problemi con SSL sono dovuti principalmente agli utenti che non sono ben istruiti in questo argomento (ad esempio, potresti usare i certificati client che il server sa anche con chi sta parlando, ma lo sarebbe anche complicato per l'utente medio). Ma la distribuzione delle chiavi sembra anche tecnicamente irrisolvibile, cosa ne pensi?