Sfortunatamente, la parola certificato si riferisce a cose diverse in contesti simili. Anche all'interno di TLS / SSL, può significare (almeno):
- Un server / certificato di dominio
- Un certificato CA (Certificate Authority)
- Un certificato client
Molto probabilmente non hai mai usato un certificato client. Questi sono installati nel tuo browser e autenticano il browser su un determinato server. Al contrario, tutti i siti Web utilizzano le password per adempiere a questa funzione.
Un certificato del server autentica un determinato server sul tuo browser - fa sì che il tuo browser sia sicuro che stia parlando con il server corretto, e non con un server imitatore. Ogni server o dominio di solito utilizza un certificato diverso, quindi un certificato del server è valido solo lì. Poiché ci sono molti milioni di server e domini su Internet, il tuo browser non può essere spedito con certificati a tutti loro. Chiunque può generare qualsiasi certificato (autofirmato) per qualsiasi dominio è necessario un altro modo per stabilire la fiducia. È qui che arrivano le CA.
Le CA agiscono come terze parti attendibili : hanno ampia autorità per affermare l'identità (certificati server) di tutte le domini internet. Questa autorizzazione è concessa dagli sviluppatori del browser, che spediscono i loro certificati incorporati nei browser
Ora che conosciamo un po 'di più sui certificati TLS, possiamo rispondere alle tue domande:
the questions below suggest that
trusting ONE certificate would put everything you do online at risk.
Questo è vero se è un certificato CA - non un certificato server. La procedura per installarli varia. Poiché una CA è in grado di identificare QUALSIASI dominio su Internet, se si installa una CA "cattiva", tutte le comunicazioni basate su browser possono essere immediatamente compromesse.
I have trusted self-signed certificates more than once from many
websites because they simply can't afford to pay for a certificate.
Does this mean everything I do is vulnerable to MitM?
No. Questi sono certificati server , sono validi solo per i domini a cui sono rilasciati. È possibile visualizzare queste informazioni se si ispezionano i dettagli del certificato. Il tuo browser potrebbe effettivamente accettare il certificato come valido per il dominio che stai visitando anche se è diverso dai domini elencati nel certificato, ma non ha alcun effetto sugli altri domini.