L'autenticazione basata su chiavi asimmetriche è già supportata da SSL sotto il nome "certificato client". In effetti, è coinvolta una firma. Se si desidera utilizzare una chiave asimmetrica del client, si consiglia di utilizzare questa funzione SSL che è già implementata dalle librerie SSL.
L'uso di una chiave asimmetrica per l'autenticazione è utile quando l'identità del client è asserita da una terza parte: un'entità, distinta dal server , rende l'identificazione iniziale (ovvero "certificazione" con certificati ), e il server si basa su questa identificazione. Questa è una separazione di ruoli che possono o non possono essere utili nel tuo contesto. Un altro modo di vederlo è il seguente: quando il client si connette al server, in uno scenario di login + password, il client invia la sua password al server. Pertanto il server impara la password. Una conseguenza è che il client non deve utilizzare la stessa password se si connette a diversi server che non si fidano l'uno dell'altro. Con un certificato client, il client può utilizzare lo stesso certificato con ogni server.
Se non hai bisogno delle funzionalità extra dei certificati, allora una login + password va bene. In realtà, se il client lavora in modo automatico senza una voce utente, la "password" viene memorizzata da qualche parte nel client, non digitata da un essere umano. Pertanto, tale password può essere un gruppo di byte casuali, che sarà molto più robusto rispetto alla ricerca esaustiva di una password memorizzata dall'uomo. In queste condizioni, potresti utilizzare SSL / TLS-PSK che si baserà su questa "chiave pre-condivisa" e evitare la necessità di qualsiasi certificato, né client o server.
Allo stesso modo, se la password è effettivamente digitata o ricordata da un essere umano, prendi in considerazione TLS-SRP che non richiede alcun client o certificato del server e, inoltre, tollera le password di entropia limitata.