Llaves privadas y su seguridad

El Blog de LatSSL

Estás leyendo:

Llaves privadas y su seguridad

Durante el proceso de solicitud de un certificado SSL/TLS siempre el primer paso es generar una Solicitud de Firma de Certificado (CSR por sus siglas en inglés) que a su vez genera también una llave privada. La llave privada se vuelve una contraparte indispensable del certificado, pues sin llave privada es imposible instalar o usar el certificado ya firmado.

Lamentablemente muchas personas no entienden la importancia de la llave privada, por lo que en esta ocasión trataremos de profundizar mas en el tema buscando compartir la importancia de la seguridad de dicha llave.

Debemos empezar por aclarar un punto muy importante: Cualquier persona puede obtener una copia de tu certificado SSL/TLS. Si, es muy sencillo capturar el certificado sin necesidad de conocimientos avanzados de hacking, basta con usar herramientas de código abierto para poder obtener el certificado SSL/TLS de cualquier servidor o conexión en Internet. Pero esto no es malo, de hecho así es como debe de funcionar. Aunque tú no lo veas, tu navegador recibe una copia del certificado cada vez que accedes a un sitio web protegido por HTTPS.

Sin embargo el certificado se vuelve inútil para cualquier persona si no cuenta con la llave privada de dicho certificado, pues es la llave privada la que se usará del lado del servidor para “firmar” y encriptar las conexiones.

Esto nos lleva a la pregunta ¿qué pasa si mi llave privada cae en manos de terceros? y la respuesta no es sencilla. Supongamos que obtenemos la llave privada del certificado SSL de granbancointernacional.com. Con la llave privada podríamos generar un sitio que se identifique como granbancointernacional.com y que los navegadores lo acepten como confiable. Pero no tenemos control sobre el dominio granbancointernacional.com, por lo que de cierta forma los usuarios están seguros… ¿o no?

Si quisieramos completar el ataque, el siguiente paso sería realizar técnicas de “envenenamiento de DNS”, o incluso buscar insertar registros para que para algunas redes y usuarios, el dominio granbancointernacional.com direccione a una dirección IP bajo nuestro control, la misma IP donde hemos montado el sitio fraudulento con la llave y certificado reales. Los usuarios de dichas redes llegarían a nuestro sitio creyendo que están accediendo al sitio del banco sin sospechar que realmente es una copia destinada a robarles su información financiera.

Sí, lo sabemos, eso requiere de mucho trabajo y de altos conocimientos en el “lado oscuro” de la informática… pero no es imposible y de hecho ha pasado.

Ahora, recordemos que no todo es web en el mundo de PKI, supongamos que se trata de un certificado de firma de código. Con dicho certificado y su llave privada, podríamos generar instaladores de programas maliciosos, pero que el usuario vería como provenientes de un editor confiable y no recibiría ningún tipo de alerta en su equipo de cómputo. En este caso es mucho más fácil hacer la suplantación y mucho mayor el daño que se puede generar. De hecho hace no mucho le sucedió a uno de los grandes de la informática, el fabricante de dispositivos NVIDIA, pero ya detallaremos ese caso en una publicación futura.

Es por ello que las llaves privadas siempre deben almacenarse de forma segura, ya sea en una sección solo accesible por el superusuario del servidor o incluso en un dispositivo HSM (Hardware Security Module o Módulo de Seguridad por Hardware) y si vamos a realizar copias de respaldo de nuestras llaves privadas, asegurarnos que no se encuentren accesibles de forma remota.

Incluso aunque pareciera tomado de una película al puro estilo de Hollywood, las llaves privadas de las autoridades certificadoras para sus certificados raíz si están resguardadas en bóvedas con los mas altos estándares de seguridad y protección, puesto que la obtención de personas ajenas de dichas llaves privadas comprometería en su totalidad el esquema de seguridad PKI del que depende nuestra seguridad en la red.