cliente de autenticación SSL archivo .pem y archivos .crt

1

En realidad, tengo un conocimiento mínimo de la seguridad, pero soy un desarrollador principal de una aplicación que maneja algunos datos confidenciales que queremos proteger. La aplicación se comunica con otro servidor (el otro servidor es la interfaz, mi servidor es básicamente el servidor). Nuestro experto en seguridad (que no está disponible actualmente) ha explicado que necesitamos autenticación SSL mutua para la conexión entre los servidores. Nuestro administrador de sistemas ha configurado la autenticación del lado del cliente y me ha dado un archivo .pem y ahora, si alguien intenta acceder a la aplicación, obtiene un error de SSL porque no está pasando la autenticación SSL del cliente. Necesito dar a otro desarrollador que esté en otro estado la capacidad de acceder a la aplicación. ¿Puedo simplemente enviarle el archivo .pem (por ejemplo, por correo electrónico)? ¿Necesito hacer un archivo .crt y enviárselo? Básicamente, ¿qué información necesito dar al otro desarrollador para que tenga toda la información necesaria para acceder a la aplicación? ¿Qué hay en un archivo .pem? ¿Solo la clave pública o más que eso?

    
pregunta Jake 26.07.2014 - 16:29
fuente

2 respuestas

4

PEM significa Correo con privacidad mejorada , pero el formato de archivo ha superado el acrónimo. El formato "PEM" es un método para codificar datos binarios en texto, de modo que los datos puedan sobrevivir al transporte a través de un medio que está basado en texto y no es muy cuidadoso con los datos (generalmente correos electrónicos).

Básicamente, PEM comienza con un encabezado:

-----BEGIN FOOBAR-----

seguido de la codificación Base64 de los datos binarios, y una línea de pie de página que marca el final del elemento:

-----END FOOBAR-----

Por lo tanto, el formato PEM es bastante genérico, y hay que mirar el encabezado para saber lo que realmente tiene en el archivo.

En su caso, debe hacer una distinción entre el certificado y la clave privada . El certificado es la parte pública; es algo que el cliente y el servidor SSL se envían entre sí durante el protocolo de enlace inicial. Los certificados pueden viajar por correo electrónico; Ya que contienen solo datos públicos y además están firmados, no necesitan ninguna protección adicional.

Las claves privadas son otro negocio. En el protocolo de enlace SSL, el cliente envía al servidor una copia del certificado (para que el servidor pueda conocer cuál es la clave pública del cliente), y luego el cliente demuestra su dominio de la clave privada correspondiente (internamente, se calcula una firma). sobre un desafío desde el servidor). La clave privada es lo que hace que el cliente sea "especial": el atacante no lo sabe. Si el atacante conocía la clave privada, entonces podría hacerse pasar por el cliente, y eso es exactamente lo que quiere evitar.

Por lo tanto, el envío de una clave privada "tal cual" por correo electrónico no debería ocurrir realmente .

Sin embargo, en su situación, desea que el cliente ("el desarrollador en otro estado") obtenga el certificado y la clave privada. Por lo tanto, necesita una forma de transmitir tanto el certificado como la clave privada a ese cliente. El método habitual utiliza el formato PKCS # 12 , que permite el cifrado basado en contraseña:

  • Envuelva el certificado y su clave privada en un archivo PKCS # 12 protegido con una contraseña enorme, grande y muy aleatoria.
  • Envíe el archivo resultante (llamado convencionalmente ".p12" o ".pfx") al destinatario.
  • Llame al destinatario para darle la contraseña, para que pueda descifrar el paquete y así obtener el certificado y la clave privada.

Si no hay nadie disponible en su organización, quién sabe qué es un certificado o una clave privada, entonces tiene un problema. Es decir, que está utilizando la criptografía sin entenderlo. En algún momento tenías un "experto en seguridad": recupéralo. La seguridad no tolera bien la improvisación.

    
respondido por el Thomas Pornin 28.07.2014 - 17:58
fuente
0

Si todo lo que tiene es un archivo .pem para acceder al sistema, parece que el archivo contiene el certificado y la clave privada asociada. Puede verificar esto abriendo el archivo en un editor de texto y observando que contiene un "BEGIN CERTIFICATE" y una sección "BEGIN RSA PRIVATE KEY".

Lo ideal sería que, en esta situación, hiciera que su administrador del sistema genere un nuevo certificado para el otro desarrollador. Esto le permitiría a ambos acceder al sistema sin compartir credenciales.

    
respondido por el John Downey 26.07.2014 - 16:37
fuente

Lea otras preguntas en las etiquetas