2009-02-09 15 views
10

Actualmente estoy trabajando en un proyecto en el que creé un certificado de CA y un par de certificados secundarios para ese certificado de CA. Los certificados se usarán para proteger la comunicación entre servidores en una configuración SAMLV2, así que tendré un certificado para el proveedor de identidades y un cert para el proveedor de servicios. El usuario/navegador no va a validar los certificados, por lo que solo los servidores necesitan confiar en mi CA personalizada. Mi árbol de cert es como la siguiente:¿Por qué está mal el uso de un certificado, hecho con la herramienta MakeCert?

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

Ahora, he oído a mucha gente decir que es malo para utilizar una certificado hecho en casa en producción. Pero cuando pregunto por qué, la gente generalmente solo murmura algo acerca de la seguridad, pero nunca profundiza en los detalles. ¿Existen razones técnicas para no usar mis propios certs en producción? No se me ocurre ninguna ... Por supuesto, me doy cuenta de que si pierdo el control de mi certificado raíz, cualquiera podría comenzar a crear todo tipo de certificados. Pero en este caso también tendrían que instalar los certificados en mis servidores y configurar la aplicación saml para usarlos. Solo entonces podrían comenzar a generar solicitudes y respuestas saml falsas a mis aplicaciones.

Si este es el único problema, esta solución (el uso de certificaciones caseras en producción) sería mejor que la configuración de inicio de sesión que tenemos hoy.

Respuesta

18

Pregúntese lo que demuestra un certificado.

Si obtiene un certificado emitido por una CA acreditada, entonces prueba que el titular del certificado ha verificado su identidad con esa CA, con sus estándares de prueba.

Si obtiene un certificado emitido por una CA ad-hoc, entonces prueba que alguien sabe cómo hacer certificados.

Si controla ambos extremos de la conversación, creo que está bien tener su propia CA privada para este propósito. Probablemente pueda hacer esto muy seguro (manteniendo la clave privada de CA en un lugar seguro fuera de línea, y haciendo que la firma de un ejercicio de sneakernet).

3

No existe un problema real con el uso de un certificado autofirmado en uso privado, que se utiliza cuando se controlan todos los sistemas que necesitan confiar en el certificado raíz homebrew.

Instale manualmente su certificado raíz en cada uno de los sistemas que necesitan confiar en él.

Puede hacerlo en producción y para el uso del navegador; por ejemplo, en una organización donde la raíz se puede implementar mediante el método de distribución de software; no hay razón para pagar una Autorización de certificación que Microsoft pasa a confiar

[editar] En términos de secruity el tema es uno de que contiene la clave privada para el certificado raíz, siempre y cuando se puede asegurar que se mantiene privado, puede validar cualquier certificado de esa raíz.

5

SI los certificados solo se transfieren internamente, entre sus propios servidores (y no utilizados por el cliente, de una forma u otra), entonces es perfectamente aceptable usar su propia CA interna.
SIN EMBARGO, una sugerencia: no tenga su problema de CA raíz con los certificados de su proveedor.En su lugar, utilice su CA raíz para crear una CA intermedia y luego utilícela para emitir certificados de proveedor. Esto le ayudará a largo plazo, cuando deba comenzar a administrar la caducidad del certificado, ampliando el sistema/infraestructura, listas de revocación, etc.

+0

¡Gracias por el consejo! ¿Tiene algún enlace a más información sobre esta práctica? – JohannesH

+0

intente esto: http://technet.microsoft.com/en-us/library/dd277378.aspx#EGAA. Al menos para comenzar con ... – AviD

+0

Wow eso es enorme ... ¡Gracias! :) – JohannesH

7

Dado que solo está utilizando el certificado para proteger el tráfico de red y no autenticar usuarios/computadoras, entonces parece que tiene un uso legítimo para usar MakeCert.exe.

Creo que hay una cosa que vale la pena mencionar. Después de pasar algún tiempo trabajando con la interfaz MakeCert.exe, puede considerar usar un servidor de certificados raíz independiente.

Considere los siguientes aspectos:

  • (casi) todas las versiones de Windows Server incluyen certificado de servidor Servicios de forma gratuita
  • de Windows Stand-Alone CA Server es extremadamente fácil de instalar y configurar
  • de Windows Stand Alone CA Server se puede instalar en una máquina virtual y encender/apagar cada vez que necesite emitir un certificado adicional
  • Un servidor de CA autónomo Windows basado en VM puede ejecutarse usando muy poca memoria (por ejemplo, 256mb)
  • Windows Stand-Alone CA Server incluye una agradable y limpia interfaz de inscripción basada en web para simplificar la solicitud de certificados.
  • La verificación de CRL se puede utilizar o no, según sus necesidades.

En el pasado, primero comencé con selfssl.exe y, finalmente, pasé a MakeCert.exe para generar un certificado raíz y luego emití mis certificados de cliente. Pero después de luchar con la sintaxis y siempre tener que recordar dónde puse ese Certificado de Root, cambié a usar una CA Raíz Stand-Alone en una máquina virtual.

+0

Gracias por la sugerencia. +1;) – JohannesH

Cuestiones relacionadas