Cómo funciona el certificado de cliente para la autenticación (en la API web)

5

He estado trabajando en este escenario durante una semana. He implementado el código para autenticar el certificado del cliente usando este enlace: enlace .

Algunas preguntas siguen ahí:

  1. ¿Cómo puedo verificar que el certificado de solicitud es solo de un cliente autorizado? (Sé que uso una clave privada, pero ¿cómo?)
  2. Actualmente estoy usando un certificado de cliente y SSL autofirmado. ¿De dónde y cómo puedo obtener el certificado de confianza? (Lo sé, de una CA, pero ¿cuál es el proceso real para eso?)
  3. ¿Cómo puedo emitir un certificado de cliente a mis clientes de confianza?

Tengo tantas respuestas para las preguntas anteriores. Necesito una respuesta limpia para las preguntas anteriores. Estoy usando ASP.NET 4.5 (webAPI).

Cualquier ayuda será apreciada.

    
pregunta DSA 25.09.2015 - 11:12
fuente

1 respuesta

8

La TLS mutua (también conocida como autenticación de cliente) es una solución para esto.

En cuanto a la emisión de certificados, no haría eso. Tomaría certificados autofirmados del cliente y los asignaría directamente a los directores (usuarios) de alguna manera. Tendría una tabla de búsqueda indexada por el nombre común y la clave pública del certificado para hacer eso. Esto hace que los problemas potenciales como la revocación de certificados (eliminar la fila) y el compromiso de CA (ninguno involucrado) sean mucho más fáciles.

Como alternativa, puede solicitar los CSR a los clientes y firmarlos utilizando una CA en la que confía (ya sea un tercero o su propia CA interna si su organización tiene la experiencia y los recursos para protegerla adecuadamente).

Aquí hay una buena descripción de alto nivel de The Code Project y tienen un código de muestra .NET que lo demuestra:

  

Autenticación SSL mutua o autenticación mutua basada en certificado   se refiere a dos partes que se autentican entre sí mediante la verificación de   certificado digital proporcionado para que ambas partes estén seguras de la   La identidad de los demás. En términos de tecnología, se refiere a un cliente (web   navegador o aplicación cliente) autenticándose en un servidor   (sitio web o aplicación de servidor) y ese servidor también se autentica   En sí mismo al cliente mediante la verificación de la clave pública.   Certificado / Certificado digital emitido por el Certificado de confianza.   Autoridades (CAs). Porque la autenticación se basa en digital   Certificados, entidades de certificación como Verisign o Microsoft.   Certificate Server es una parte importante de la autenticación mutua   proceso. Desde un punto de vista de alto nivel, el proceso de   autenticar y establecer un canal encriptado usando   la autenticación mutua basada en certificados implica los siguientes pasos:

     
  1. Un cliente solicita acceso a un recurso protegido.
  2.   
  3. El servidor presenta su certificado al cliente.
  4.   
  5. El cliente verifica el certificado del servidor.
  6.   
  7. Si tiene éxito, el cliente envía su certificado al servidor.
  8.   
  9. El servidor verifica las credenciales del cliente.
  10.   
  11. Si tiene éxito, el servidor otorga acceso al recurso protegido solicitado por el cliente.
  12.   

FUENTE: enlace

    
respondido por el Alain O'Dea 25.09.2015 - 11:49
fuente

Lea otras preguntas en las etiquetas