Determine la identidad del llamante

0

Déjame explicarte mi situación.

Tengo un proveedor que se compone de una página de registro y un servicio web. Los proveedores en línea (clientes) se registran con el proveedor al proporcionar detalles como el nombre de usuario, contraseña, dirección de correo electrónico, número de teléfono, etc. antes de que puedan usar el servicio web.

Ahora, en cada método de servicio web, reviso el certificado enviado por el proveedor para determinar quién es. ¿Cómo puedo vincular la información del certificado con los detalles de registro?

Por ejemplo, estaba pensando en pedirle al proveedor el número de serie del certificado en la página de registro. Luego, cuando se realiza la llamada al servicio web, simplemente obtengo el número de serie del certificado enviado y lo comparo con todas las entradas en la base de datos. Si hay un registro coincidente, entonces el proveedor se ha ubicado dentro de la base de datos. Sin embargo, no creo que esto sea seguro porque cualquiera puede conocer el número de serie de un certificado específico y registrarse con él. Además, ¿qué sucede si el certificado del proveedor fue robado y utilizado por otra persona?

También tuve una idea de comparar la URL desde donde se originó la llamada del servicio web con el dominio del host en el certificado. Sin embargo, recientemente descubrí que esto no es posible, ya que se puede llamar a un servicio web desde una aplicación de consola, por ejemplo. Lo que podría hacer es comparar la dirección IP desde donde se originó la llamada del servicio web. Sin embargo, hay dos problemas asociados con él:

1) Estoy trabajando en una máquina, lo que significa que todas las direcciones IP enviadas por mis proveedores serán 127.0.0.1

2) Los grandes proveedores en línea, como Amazon, suelen tener muchas direcciones IP y servidores sub.

¿Cómo puedo resolver este problema? ¿Cómo puedo vincular la información que se encuentra en el certificado enviado con la solicitud de servicio web con los detalles que el proveedor proporcionó en el proceso de registro para garantizar que él es quien dice ser y ubicarlo en la base de datos?

¿Cómo se implementa esto en la industria?

Gracias.

    
pregunta Matthew 28.04.2013 - 16:59
fuente

1 respuesta

0

Resolví el problema haciendo que el proveedor enviara el certificado público, así como una firma digital junto con el texto firmado.

El servidor verificará la firma digital utilizando la clave pública del certificado.

    
respondido por el Matthew 28.04.2013 - 19:26
fuente

Lea otras preguntas en las etiquetas