Determina l'identità del chiamante

0

Lascia che ti spieghi la mia situazione.

Ho un fornitore che è composto da una pagina di registrazione e un servizio web. I fornitori online (clienti) si registrano al fornitore fornendo dettagli come nome utente, password, indirizzo e-mail, numero di telefono ecc. Prima che possano utilizzare il servizio web.

Ora, in ogni metodo di servizio web, controllo il certificato inviato dal venditore per determinare chi è. Come posso collegare le informazioni nel certificato con i dettagli della registrazione?

Per esempio, stavo pensando di chiedere al venditore il numero di serie del certificato sulla pagina di registrazione. Quindi, quando viene effettuata la chiamata al servizio web, ottengo semplicemente il numero seriale dal certificato inviato e lo confronta con tutte le voci nel database. Se c'è un record corrispondente, il venditore è stato localizzato nel database. Tuttavia, non penso che questo sia sicuro perché chiunque può conoscere il numero seriale di un certificato specifico e registrarsi con esso. Inoltre, cosa succede se il certificato del venditore è stato rubato e utilizzato da qualcun altro?

Ho anche avuto un'idea di confrontare l'URL da cui proviene la chiamata al servizio web con il dominio host nel certificato. Tuttavia, recentemente ho scoperto che questo non è possibile poiché un servizio Web può essere chiamato da un'applicazione console, ad esempio. Quello che potevo è confrontare l'indirizzo IP da cui è originata la chiamata al servizio web. Tuttavia, ci sono due problemi associati:

1) Sto lavorando su una macchina, il che significa che ogni indirizzo IP inviato dai miei fornitori sarà 127.0.0.1

2) I grandi fornitori online come Amazon di solito hanno molti indirizzi IP e server secondari.

Come posso risolvere questo problema? Come posso collegare le informazioni trovate nel certificato inviato con la richiesta di servizio web con i dettagli che il fornitore ha fornito nel processo di registrazione per garantire che sia lui chi afferma di essere e per individuarlo nel database?

Come viene implementato nel settore?

Grazie.

    
posta Matthew 28.04.2013 - 16:59
fonte

1 risposta

0

Ho risolto il problema inviando al fornitore il certificato pubblico e una firma digitale insieme al testo firmato.

Il server dovrebbe quindi verificare la firma digitale utilizzando la chiave pubblica del certificato.

    
risposta data 28.04.2013 - 19:26
fonte

Leggi altre domande sui tag