services para crear cliente certificados certificado autenticación security ssl cryptography openssl ssl-certificate

security - para - ¿Cómo puede el cliente SSL validar el certificado del servidor?



certificados para web services (3)

Estoy confundido sobre cómo debería asegurar el certificado del servidor.

No es necesario que asegures el certificado del servidor. Es un documento público

Me gustaría encriptar el certificado del servidor que contiene la clave privada

El certificado del servidor no contiene la clave privada.

pero no quiero usar claves codificadas para esta encriptación.

No necesita hacer ningún cifrado. El único activo del servidor que necesita proteger es su clave privada, que es completamente distinta de su certificado. En el caso de OpenSSL, incluso puede ser un archivo diferente.

Estoy creando una aplicación y estoy planeando usar OpenSSL para asegurar las transferencias de datos.

Estoy planeando solo hacer que el cliente valide el certificado del servidor. Estoy confundido sobre cómo debería asegurar el certificado del servidor. Me gustaría encriptar el certificado del servidor que contiene la clave privada, pero no quiero usar claves codificadas para este cifrado.

¿Cuáles son algunas de las prácticas comunes seguidas por las aplicaciones que emplean SSL?


no estoy seguro de lo que intentas preguntar el certificado del servidor se le envía a usted, el cliente; usted valida el certificado al verificar su firma (use SHA-1 no MD5, MD5 ha sido descifrado). La clave que tiene de CA es el lado público; el CA y el titular del certificado del servidor mantienen sus claves privadas para ellos. Puede validar el certificado porque la clave pública es suficiente para descifrar un mensaje cifrado con la clave privada. Entonces, no tiene que preocuparse, por el lado de la gente, por mantener encriptado el certificado.

Eche un vistazo al artículo de Wikipedia sobre SSL / TLS .


Solo para asegurarnos de que tenemos nuestra terminología correcta, un "certificado SSL" en lenguaje común se compone realmente de dos componentes:

  • Un certificado público
  • Una clave privada

El componente de certificado público está firmado por la CA (autoridad de certificación) elegida, después de lo cual puede distribuirse libremente. No necesita ser asegurado o cifrado, y de hecho será enviado a los clientes que se conectan a su servidor como parte de la negociación de SSL.

El componente de clave privada debe estar protegido. En la mayoría de los casos, esto simplemente se almacena como un archivo cifrado en el servidor. Las soluciones exclusivas usan un hardware criptográfico dedicado "a prueba de manipulaciones" (HSM, por sus siglas en inglés, módulos de seguridad de hardware) para almacenar la clave privada. Estos van desde soluciones basadas en tarjetas inteligentes hasta aplicaciones con varias teclas y habilitadas para la red con controles m / n, etc. Hay riesgos (sin mencionar los costos) asociados con los HSM que no entraré aquí.

Muchas aplicaciones simplemente conservan la clave privada en el disco. Hay un par de opciones para proteger el archivo de clave:

  • Confíe en la seguridad de los permisos del sistema y archivo (es decir, no cifre la clave privada). Por ejemplo, la mayoría de los daemons ssh hacen esto.
  • Utilice cualquier mecanismo que su servidor proporcione para encriptar el archivo: el cifrado protegido con contraseña es una característica estándar en la mayoría de los servidores web. (Si está haciendo su propio uso de la API de OpenSSL, elija uno de los formatos de clave nativos obvios).

Como siempre, hay una compensación de seguridad. En particular, si utiliza un cifrado protegido con contraseña en el archivo de clave privada y experimenta un reinicio inesperado de la aplicación (por ejemplo, un corte de energía), entonces alguien deberá estar disponible para proporcionar la contraseña a la aplicación cuando se reinicie. Almacenar la contraseña en un archivo que es leído por los scripts de inicialización del sistema (como lo recomiendan al menos dos proveedores de servidores web) agrega poco en términos de seguridad real. Es difícil recomendar dejar sin cifrar el archivo de clave privada, pero si usted es el único administrador / techy en una tienda pequeña, definitivamente debe considerar lo que podría suceder si el servidor se reinicia cuando no está disponible y cuáles podrían ser los costos para su negocio. .