"Comprometida una autoridad certificadora, todos sus certificados revocados". Suena mal, ¿verdad? Es probable que hayáis leído algo parecido a esto durante los últimos días a raíz de un descubrimiento de Google, o incluso con lo del desastre de Superfish y Lenovo. La cuestión es, ¿qué significa eso? ¿Qué es un certificado? ¿Qué es una autoridad certificadora (o CA)?
Desde luego, son cosas que no necesitas saber para vivir un día más. Pero igual que la mayoría sabréis qué es un troyano o qué hace un antivirus, saber qué es un certificado viene bien: al fin y al cabo, es una de las cosas que evita que alguien pueda ver qué páginas visitas y tus datos personales. Así que hoy nos vamos a dedicar a explicar qué son los certificados SSL.
"Hola, ¿quién eres?"
Supongamos que estás buscando a Pepe Pérez para contarle algo privado. No parece difícil, pero no sabes quién es Pepe. No sabes siquiera cómo es, si es un anciano, si es rubio... sólo sabes dónde está. Así que vas a donde suele estar, y ves a un hombre. Puedes preguntarle si él es Pepe Pérez, pero sería un poco ingenuo fiarse de lo que te dice un desconocido por la calle. Igual no es Pepe. Una forma de asegurarse de que es realmente él sería pedirle un documento, algo que certifique que esa persona se llama Pepe Pérez. En la vida real (pasando por alto lo poco real de esta situación) le pedirías su DNI, por ejemplo.

Pues bien, en Internet pasa lo mismo. Necesitas un "DNI" para los servidores, un documento "oficial" que te asegure que ese servidor es el de Google y no un impostor. La cuestión es cómo lo hacemos oficial: necesitamos una autoridad de la que nos fiemos (como en el ejemplo de Pepe Pérez nos fiamos del Estado para expedir DNIs).
La solución a este problema son los certificados SSL, que más que un documento como el DNI son sellos. Tienen una parte privada, que se queda el servidor, con la que "sella" y deja una firma en las comunicaciones. El sello contiene el nombre de dominio y acredita que efectivamente te estás comunicando con Google. Además, nadie más puede replicarlo: no puedes coger un documento, recortar el sello y pegarlo en otro documento. De la misma forma, un intruso no puede interceptar una petición a un servidor, modificarla y reenviártela porque entonces el "sello" (firma) no sería válido.
La cuestión es que el proceso para hacer certificados SSL es público. Igual que puedes hacerte un sello que ponga "Presidente del Gobierno", puedes hacerte tú un certificado SSL para _google.com_. Para solucionar este fallo, los certificados SSL vienen firmados por las autoridades certificadoras (CA), o terceros de confianza. Estas autoridades se encargan de expedir los certificados, y sólo lo hacen si la organización o persona que los pide puede probar que efectivamente es propietario del dominio. En otras palabras: si vas a la autoridad certificadora a pedir un dominio para _google.com_ se van a reír de ti y te vas a quedar con las manos en los bolsillos.
Los navegadores y sistemas operativos se guardan las claves públicas de las autoridades certificadoras en sus almacenes. Con esas claves públicas, son capaces de verificar las firmas y comprobar que los certificados SSL de los servidores a los que te conectas son válidos y que por lo tanto no te estás conectando con un impostor.
Una vez que te has asegurado de que el servidor es quien dice ser, ya se puede establecer la comunicación cifrada con HTTPS (que ya vimos cómo funcionaba) y empezar a intercambiar datos privados sin que nadie más los vea.
Cuando el sistema falla

Las autoridades certificadoras o CA no son más que empresas gestionadas por personas. Y las personas fallan (fallamos). A veces, esos fallos se convierten en fallos de seguridad enormes. Por ejemplo, en 2011, un _hacker_ entró en DigiNotar, una CA holandesa, y consiguió las claves privadas para firmar certificados SSL.
¿Qué se puede hacer con esas claves? Pues firmar certificados SSL, obviamente. El _quid_ de la cuestión está en que si la clave la tiene un _hacker_, lo más posible es que decida firmar certificados SSL para dominios que no tiene. Es decir, que puede hacerle creer a tu ordenador que su servidor "malvado" es el de Google y le engañe para que le envíe tu correo y contraseña (por poner un ejemplo). Divertido, ¿verdad?
En algún otro caso, directamente son las autoridades certificadoras las que hacen lo que no deben. En el caso del lunes, una CA estaba usando su certificado raíz para interceptar las comunicaciones seguras de sus empleados con Google. La polémica con Lenovo y Superfish era similar. La diferencia es que Superfish no era una CA, sino que instalaba su certificado raíz en los almacenes de los ordenadores para que la considerasen como tal y confiasen en sus certificados falsos.
Cuando esto ocurre, cuando las CA son comprometidas, hay varias formas de mitigar el impacto. Una de ellas son los certificados fijos (_certificate pinning_). Con ella, los últimos navegadores no sólo piden un certificado SSL válido para conectarse a ciertos sitios como Google sino un certificado con una huella concreta. De esta forma, forma aunque una CA confiable firme un certificado nuevo, no lo tomarán como válido. El problema es que sólo se pueden usar certificados fijos para los sitios más conocidos: sería absurdo guardar las huellas de todos los certificados de todas las páginas web seguras de Internet.
Por otra parte, también hay métodos para revocar certificados. Periódicamente, los navegadores y sistemas se conectan a los servidores de actualización y recuperan listas de certificados que han dejado de ser válidos, y van manteniendo el almacén actualizado y sin certificados comprometidos. Además, tú puedes acceder a tu almacén de certificados del navegador/sistema y quitar CA que no te gusten (aunque es posible que algunos sitios dejen de funcionar bien).
En definitiva, los certificados son lo que te permite confiar en que tus conexiones seguras son seguras de verdad y no estás hablando con impostores. Así, ya sabréis por qué frases como las que encabezan el artículo suenan realmente mal.
Imagen | devdsp
Ver 24 comentarios
24 comentarios
asturtorque
Muy buen articulo
kongratuleisions
razhan
¿Ayer criptografia cuantica y hoy SSL y certificados? Vaya lujo
pablosar
Hoy aprendí algo nuevo, gracias
cefalopodo
Un concepto sencillo pero de aplicación compleja. Buen artículo si ya se entienden los conceptos de clave pública (la que compartimos) y la privada (la que sólo nosotros conocemos). De esta forma:
+ Usamos la clave privada para firmar y solo con nuestra clave pública se puede descifrar el mensaje. Así nos aseguramos que quién firma es quien escribe el mensaje
+ Usamos la clave pública del destinatario para encriptar el mensaje así solo el destinatario con su clave privada puede desencriptarlo. Nos aseguramos que solo quién queremos entiende el mensaje
Así con la firma y el mensaje encriptados nos garantizamos dos cosas, que el destinatario sabe que somos nosotros y que solo el va a poder leerlo.
No siempre se utilizan ambos conjuntos, eso ya depende de lo que se quiera.
Juan Manuel
De la misma forma, un intruso no puede interceptar una petición a un servidor, modificarla y reenviártela porque entonces el "sello" (firma) no sería válido.
-------------------------------
En teoría no puede, en teoría...
shotokan
Sirve para que solo la NSA pueda espiarte.
xelux
Al final todo gira en torno a las claves publica y privada (es lo que deberías haber incluido en el artículo).
sergio.mendez
Es importante saber de estos temas para estar mas seguros al estar en Internet, muy buen texto.
sergio.mendez
Es importante saber de estos términos SSL, HTTPS y HTTP para conocer sobre que tan expuestos estamos si no utilizamos estos protocolos.
wokan
A mi con KIS 2015 me salta que el certificado de https://www.ebay.es no es correcto lo que me parece muyyyyy estraño.
Si alguien es experto en el tema podría aclararlo para los "profanos".
Un saludo. ;)
davidavila2
Me parece un buen articulo introductorio, sin embargo, como propuesta, deberiais hablar más sobre los riesgos que existen con HTTPS, por ejemplo, HTTPS no es mas que una redirección que se realiza desde el puerto 80, en una Defcon diseñaron una herramienta que evita dicha redirección, así te saltas el certificado, o también explotando alguna vulnerabilidad de POODLE o Heartbleed (Os sorprendería saber cuantas páginas a fecha de hoy tienen esa vulnerabilidad, o que usan SSLv2), así como tener en cuenta los algoritmos de cifrado que estas implementando (ojo con FREAK), en mi concepto, SSL sirve para asegurar gran parte de las comunicaciones, pero se deben tener controles adicionales para la implementación de los servicios WEB
singularweb
A enterarse un poco mas de estos protocolos que son muy interesantes.
palbin
¡Excelente post! En el blog de Palbin también hemos hablado esta semana de la importancia de un Certificado SSL y hacemos referencia esta publicación :-)
antivirus
Muy buena información, siempre es interesante este tipo de datos pero, ante todo, también es importante tener instalado en nuestro ordenador un antivirus potente y que detecte cualquier tipo de amenazas que pueda afectar negativamente a la seguridad informática de nuestro ordenador o dispositivo móvil.
fgks
Hace como 12 años era super sencillo robarse los cetificados ssl. Poniendo la paguina legitima. En. Un frame. Super pequeño dentro de tu paguina actual. Asi. Activando el ssl. En la paguina corriente y mostrar como que era. valida. Tambien habia un escript ya. ( desactivado ) te permitia. Cambiar. Tu orijinal url. Ha la que tu quisieras usar haciendo un super. Clon. Del sitio real. Buenos tiempos. Entonces. ...
Dead1.4