Come funzionano le chiavi e i certificati specifici del cliente?

2

Ho clienti che comunicano con il mio server. I client inviano un ID univoco (guid) al server con la sua richiesta su un canale https sicuro. Anche per aumentare la sicurezza, utilizzo la mia coppia di chiavi privata-pubblica per crittografare le richieste e amp; risposte.

Se qualcuno trova questa chiave pubblica (fornita con il software client) e esegue il reverse engineering del software, penso che possano inviare richieste fatte a mano con un ID personalizzato. Voglio prevenire questo tipo di attacchi. Ho un paio di domande:

  • La generazione di coppie di chiavi private-pubbliche per ogni cliente è una buona pratica? Poiché ogni cliente invia le sue richieste con la propria chiave pubblica, sarà facile rilevare questo tipo di anomalie.
  • È possibile fornire ai client certificati che li identificano solo loro? Vedo questo certificato del cliente ovunque, ma non c'è una spiegazione chiara. Puoi ragazzi spiegarmi come funzionano i certificati client? Penso che questo sia quello di cui ho bisogno ma non ne ho idea.
posta Batuhan 24.02.2015 - 09:38
fonte

1 risposta

1

Se vuoi autenticare un client sul tuo server, avrai bisogno di una chiave privata per ogni cliente.

Il solito metodo HTTPS (TLS) utilizza un solo certificato per autenticare un server. Il server ha la sua chiave pubblica pubblicata e firmata da un'autorità, il client verifica il certificato e la firma dell'autorità del certificato, quindi il client è sicuro di comunicare con il server giusto, poiché solo questo server può firmare la comunicazione con il proprio ( corrispondente) chiave privata.

Il metodo usuale HTTPS autentica solo il server .

Se vuoi che il client sia autenticato, hanno bisogno della loro coppia di chiavi privata / pubblica. Dopo aver autenticato il server, il client invierà la propria chiave pubblica e il server potrà quindi verificare il certificato su un database locale o un'infrastruttura più globale se i certificati (dei client) sono firmati da un'autorità.

Altre parti del protocollo HTTPS supportano l'autenticazione client in questo modo.

    
risposta data 24.02.2015 - 15:40
fonte