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

Estoy pensando en tener solamente el cliente validar el certificado del servidor. Estoy confundido sobre cómo debería asegurar que el certificado del servidor. Me gustaría cifrar el certificado del servidor que contiene la clave privada, pero no quiero usar cualquier codificado claves para el cifrado.

¿Cuáles son algunas de las prácticas comunes, seguido por las aplicaciones utilizando SSL?

InformationsquelleAutor msvcyc | 2009-01-03

3 Comentarios

  1. 5

    Sólo para asegurarse de que tenemos nuestra terminología recta, un «certificado SSL» en el lenguaje común, es en realidad compuesto por dos componentes:

    • Un certificado público
    • Una clave privada

    El certificado público componente está firmado por su elegido CA (autoridad de certificación), tras el cual puede ser distribuido libremente. No necesita ser asegurado o cifrados, y de hecho va a ser enviados a los clientes que se conectan al servidor como parte de la negociación SSL.

    La clave privada componente que debe ser protegido. En la mayoría de los casos, esto es simplemente almacena como un archivo cifrado en el servidor. De lujo soluciones de uso dedicado «a prueba de manipulaciones» crypto hardware (HSMs — hardware security modules) para almacenar la clave privada. Estos van desde la tarjeta inteligente de soluciones basadas en las multi-key, habilitadas por la red aparatos con m/n controles, etc, etc. Hay riesgos (por no hablar de los costes) asociados con los hsm que no voy a entrar aquí.

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

    • Confiar en el sistema y los permisos de los archivos de seguridad (es decir, no cifrar la clave privada). Por ejemplo, la mayoría de ssh demonios hacer esto.
    • Uso de cualquier mecanismo de su servidor proporciona para cifrar los archivos protegidos por contraseña de cifrado es una característica estándar en la mayoría de los servidores web. (Si estás rodando por su propio uso de OpenSSL API, elige uno de los obvios nativo formatos de clave).

    Como siempre, no hay una seguridad de trade-off. En particular, si está utilizando protegido con contraseña de cifrado en el archivo de clave privada y experimentar una inesperada de la aplicación de reinicio (por ejemplo, corte de energía), entonces alguien tendrá que estar disponible para proporcionar la contraseña para la aplicación que se reinicia. Almacenar la contraseña en un archivo, que es leído por el sistema de scripts de inicialización (alentada por al menos dos de servidor web de los vendedores) añade poco en términos de seguridad real. Es difícil recomendar dejando el archivo de clave privada sin cifrar, pero si es el único admin/parámetros en una pequeña tienda, usted debe considerar definitivamente de lo que podría ocurrir si el servidor se reinicia cuando no están disponibles, y cuáles son los costos podría ser para su negocio.

    • Gracias por la respuesta. Podría por favor elaborar protegida por contraseña de cifrado? ¿Cómo la seguridad de las aplicaciones de estas contraseñas?
    • «Mal», en general. Normalmente las contraseñas ir en un archivo, sólo es legible por el usuario de la aplicación, así que todavía estás confiando en el sistema de ficheros permanentes (para proteger pw archivo en lugar de archivo de la clave). Algunas aplicaciones de la ofuscar el mp en el archivo para usted. De nuevo, esa es débil, por esperemos razones obvias.
    • No estoy seguro, me gustaría recomendar esta terminología. El «certificado SSL» (es decir, el X. 509 certificado, supongo), no es «compuesto» de un Certificado de Clave Pública (PKC) y una clave privada: es la PKC, y está asociado con la clave privada de este par de claves. La clave privada no es parte del certificado, siempre.
    • que fue exactamente el punto que estaba tratando de hacer. He añadido el aire «citas» a la primera frase para tratar de hacer que el más claro y modificado las palabras en el 3º párr ligeramente.
    • Con respecto a la CA, se usa sólo para validar/obtener la clave pública. Por ejemplo, cuando se utiliza un navegador, ya que un usuario necesita para obtener la clave pública en algún lugar. Con desktop/mobile/non-browser apps, la clave pública se encuentra en la app/propio cliente, lo que significa que el CA no es parte del proceso.
    • La terminología aquí no es la correcta. Un certificado SSL contiene una clave pública. No consta en ningún sentido de los componentes de uno de los cuales es una clave privada. La clave privada es totalmente distinta de la del certificado, relacionados únicamente con la clave pública. No me gusta el término ‘público certificado de componente de cambio». Todos los certificados son públicos.
    • Ahora con aire cotizaciones y «en el lenguaje común». Si todavía no está claro que estoy tratando de hacer una distinción entre lo que la gente en general dicen («TLS cert») y los tecnicismos que yo y los educados de los comentaristas anteriores son conscientes de (hay una clave y un cert), por favor, sugerir una edición.

  2. 0

    no muy seguro de lo que estás tratando de preguntar. el servidor cert se envía a usted, el cliente, validar el cert, mediante la comprobación de su firma (el uso de SHA-1, MD5, MD5 se ha resquebrajado.) La clave de la CA es la cara pública; el CA y el servidor cert titular de mantener sus claves privadas a sí mismos. Usted puede validar el cert porque la clave pública es suficiente para descifrar un mensaje que ha sido cifrado con la clave privada. Así que usted no tiene que preocuparse, en el ciente lado, trata de mantener el cert cifrados.

    Tener una mirada en el Artículo de Wikipedia sobre SSL/TLS.

    • Rápido punto de terminología: la clave pública no se utiliza para descifrar un mensaje cifrado con la clave privada: es utilizado para verificar (el de la firma de un mensaje que ha sido firmado con la clave privada. Descifrar se hace con la clave privada, después de seguridad con la clave privada. (No tiene sentido para cifrar con la clave privada, por lo que nadie puede descifrar con la clave pública.)
    • Verificar la firma a través de cualquier algoritmo de la firma fue creada con. Usted no puede escoger.
    • Y cuando es establecido, no uso MD-5. De hecho, ahora la gente debe estar en movimiento lejos fro0m SHA-1.
  3. 0

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

    Usted no tiene que fijan el certificado del servidor. Es un documento público

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

    El certificado del servidor no contiene la clave privada.

    pero no quiero usar cualquier codificado claves para el cifrado.

    Usted no necesita hacer ningún cifrado. El único servidor de los activos que necesita para proteger su clave privada, que es completamente distinto de su certificado. En el caso de OpenSSL puede ser incluso un archivo diferente.

Dejar respuesta

Please enter your comment!
Please enter your name here