Estoy diseñando un servicio web B2B basado en WCF. Como el número de clientes es relativamente pequeño y la seguridad es una prioridad, elegí los certificados de cliente X509 para la autenticación del cliente.
Estoy firmando los certificados de cliente con mi propia CA autofirmada (que, por supuesto, se mantiene segura). También he verificado que la configuración está funcionando en un conjunto local de computadoras.
Un problema me sigue molestando. Siempre que los certificados puedan ser entregados "físicamente" no tengo ningún problema. Sin embargo, parece que no puedo encontrar una solución para transferir de forma segura los certificados de cliente a los clientes reales. Estas son las opciones que he encontrado hasta ahora:
1) Encriptación de certificados utilizando encriptación simétrica en formato PFX. Luego enviaré el certificado por correo electrónico y enviaré la clave para descifrar el certificado con un correo postal antiguo (es decir, una carta física)
2) Cree un sitio web sencillo que permita a los clientes iniciar sesión con una URL temporal (las credenciales enviadas a la dirección de correo electrónico) y luego descargar el certificado. El sitio sería asegurado utilizando HTTPS. Entonces, la seguridad se basa totalmente en la seguridad del correo electrónico de los clientes y nadie lo recoge en la dirección de correo electrónico
Tiendo a preferir la opción 1) como la única falla de seguridad que existe para que alguien robe la clave de la letra física. Sin embargo, parece un poco tedioso usar una carta física.
¿Hay algún estándar de facto para resolver este problema que estoy pasando por alto y ofrece una seguridad razonable?