Share on Google+Share on FacebookTweet about this on Twitter

Llevo ya días que al despertarme me topo con alguna noticia relativa a HTTPS, supongo que los responsables son Mozilla y Google, que desde primeros de años decidieron aplicar algunas medidas coercitivas en sus navegadores, lo que sucede es que como siempre si el usuario medio no entiende lo que quiere decirle un cartel de advertencia, al final da igual.

 

Brevemente, sobre el mensaje “nuevo” que estas dos compañías han instaurado. Es un ejemplo más que muestra el trabajo que cuesta a veces a los usuarios de perfil medio la diferencia entre seguridad y legitimidad de una página. Muchos empezaron a decir incluso que Google iba a advertir con mensajes a los usuarios sobre que una web no era segura… no tiene nada que ver con eso, de echo tanto Firefox como Chrome muestran exactamente lo que tienen que mostrar, la lectura que otros le quieran dar es diferente:

La primera es el mensaje que muestra Firefox, el segundo Chrome, este último también traslada un mensaje en la URL. En esencia dicen exactamente lo mismo. Ambas compañías simplemente muestran en pantalla ese mensaje cuando se dan dos circunstancias: La primera, estamos en un formulario que se reconoce un campo de contraseña donde vamos a introducirla. La segunda es que la Web en cuestión en la que vamos a introducir dicha contraseña no está bajo HTTPS con un certificado válido. Dicho de otro modo, al no estar la web bajo HTTPS, los datos que pongamos tanto en la contraseña como en el nombre de usuario, es posible que sean enviados en “texto plano”, es decir, tal como los introducimos, y por ende podrían ser potencialmente interceptados por alguien que “pinchase” la conexión en cualquier punto de esta.

Hay que entenderlo, no significa que la web sea insegura realmente, o que no sea legítimas. Lo que nos avisa es que si nuestra red no es segura (nos están robando WIFI, tenemos un familiar/amigo travieso conectado a ella, usamos una red pública…), alguien podría potencialmente leer ese tráfico, y claro… a lo mejor no importa tanto saber que visitas una web concreta o incluso el contenido de ella, pero si importa y mucho si lo que capturan es la contraseña de tu correo electrónico, de acceso a un servicio. Pero repito, nada tiene que ver con legitimidad o fiabilidad, y es más, esa advertencia puede no ser importante si sabemos perfectamente desde donde nos conectamos.

 

Volviendo al asunto original del artículo, estoy aburrido de leer “noticias” sobre HTTPS, Certificados TLS/SSL, “seguridad”… y casi todos ellos sesgados. El último ha sido esta tarde… no me gusta tirar tierra a nadie y respeto el trabajo de cualquiera, pero creo que hay que ser más riguroso en lo que se escribe, y por citarlos, hablo de un artículo en Xataka. A veces una coma o el modo de decir las cosas no importa y se sobre entiende, pero otras veces el significado es muy diferente sólo con que falte un acento. En este caso, y cito textualmente encontramos el problema de siempre, algunas frases muy poco afortunadas:

“Esto quiere decir, que una dirección web en la que tengas que empezar escribiendo https:// en vez del clásico http:// será siempre mucho más segura, ya que certifica que la web visitada es legítima…”

“Chrome están empezando a señalar como inseguras todas las páginas que no lo utilicen”

No voy a valorar el resto del artículo, por supuesto dice cosas totalmente ciertas, el problema es que hay otras que no lo son.

Por un lado, sobre el comentario que se hace de Chrome, es falso, siempre he dicho que una media verdad no deja de ser una mentira, intencionada o no. Chrome NO SEÑALA las webs como inseguras cuando no están bajo HTTPS, Chrome, al igual que Firefox, lo que hacen es mostrar un aviso en el campo contraseña (y Chrome también en la URL) cuando existe un campo contraseña, y ese aviso, aunque pueda usar la palabra “insegura”, especifica bien claro a que se refiere, al envío de información cuando se rellena un formulario o cualquier otra cosa. Este aviso no aparece si dicha web carece de cualquier campo de este tipo, esté en HTTPS o no.

Sobre la primera frase, realmente es lo que me llevó a volver al blog, no por Xataka realmente, lo de ellos ha sido una noticia más haciendo alusión a eso de dar legitimidad a una web o no.

 

¿Qué es y qué no es HTTPS?

HTTPS se basa en autentificación y cifrado entre el equipo de origen, y el servidor destino, de forma bilateral (por lo general la autentificación la realiza sólo el cliente, no el servidor). Que un servidor use HTTPS para servir sus webs, poco o nada tiene que ver con que esa Web sea más segura, o que dicha web sea quien dice ser, con la única excepción de que use certificados tipo EV en todo caso (en lo relativo con la identidad, es decir legitimidad).

La necesidad de HTTPS nace precisamente de los cartelitos que ahora muestran Firefox o Chrome. Cada vez más usamos las conexiones inalámbricas, cada vez más hay desconfianza de los ISP (proveedores de internet) e incluso de los propios estados!! Quien no conoce a día de hoy los casos de Wikileaks y tantos otros. El cifrado no es algo nuevo, y creo que todos lo entendemos bien… algo que no esté cifrado no significa que no sea seguro, significa que si alguien lo intercepta lo va a poder leer.

No veamos HTTPS como un ente tan extraño, se puede simplificar enormemente, pensemos en vez de HTTPS y páginas web en una carta, en que quiero hacer llegar una carta a mi amada, y para ello no tengo más opción que dársela a un amigo para que a su vez se la entregue a ella. A nadie se le escapa el problema, incluso si pusiésemos un lacre sellado, mi amigo podría abrirla y leer el contenido, y si el contenido de la carta no usa un código secreto que sólo entendiese ella y yo, pues mi amigo se enteraría de todo. En función de la relevancia de las letras que ponga en esa carta, usar un código secreto entre los dos puede ser simplemente un juego, a ser totalmente necesario.

En Internet, el amigo puede ser tu hermano conectado a tu misma red, puede ser un vecino que te roba WIFI, puede ser un desconocido conectado a la misma red pública (WIFI o cable), puede ser incluso si quisiese tu ISP, por supuesto el gobierno… y eso sin contar absolutamente cualquier punto por el que tus datos son transferidos hasta llegar al servidor final. Al margen de conspiraónicos y que los gobiernos y los ISP nos espíen, el principal problema no son ellos, son las redes en las que nos conectamos. Puede que no me haga gracia que, en caso de hacerlo, un gobierno quiera interceptar mis comunicaciones, pero a fin de cuentas tampoco tengo nada que considere “personal” para ellos, más me preocupa que desconocidos puedan conocer mis datos personales, cuentas y otros.

 Sí, el cifrado puede ser algo positivo, pero desde luego desde mi punto de vista indispensable cuando manejamos información personal o evidentemente confidencial, y HTTPS soluciona esto. Ya hablé en su día largo y tendido sobre ello en uno de mis artículos, y recientemente también en el de Let’s Encrypt, donde por encima explicaba todo esto, aunque en menor medida.

Inicialmente hablaba de legitimidad… HTTPS trata sobre cifrado de datos, no sobre legitimidad. Sí, el servidor se autentifica/identifica de cara al usuario, pero no para certificar que el contenido de la página es legítimo, ni siquiera que la propia web lo sea!! Lo que certifica en todo caso (de tener un certificado digital reconocido y excluyendo los certificados EV que veremos luego) es que dicho certificado fue emitido para dicho dominio específicamente, nada más. Dicho de otro modo, que el certificado que nos llegue a nuestro equipo, poder ser validado para estar seguros que quien nos los mandó es la web que tenemos delante.

Y en ese párrafo está toda la madre del cordero. Xataka dice que certifica que la web que tenemos delante es legítima… no es cierto, la web puede decir que es Paypal, la web puede ser un calco perfecto de cualquier página de un banco, e incluso podrían tener un dominio similar!! y por supuesto, podrían usar perfectamente un certificado digital (y usar HTTPS) validado. Evidentemente a mi modo de ver las cosas, no considero eso como una web legítima. Esto es algo que se está empezando a hacer de forma masiva, por la falsa creencia precisamente del usuario de creer que si ve el candado verde la web es fiable, y es un error de base. Sí, la comunicación con dicha web se hace de forma cifrada y ningún vecino nos intercepta la comunicación, pero los datos que enviamos llegan igualmente al servidor, y si esa web la hace una persona malintencionada, evidentemente tiene acceso a dichos datos, datos que nos acaba de robar por creer nosotros que por tener candadito verde la web era legítima de fiar.

Pero por supuesto, que son unas letras sin una buena imagen. Ni siquiera he tenido que invertir tiempo en hacer una prueba propia sobre esto, simplemente me ha bastado con  mirar en cualquiera de los servidores usados para los registros de transparencia de certificados (por ejemplo https://crt.sh), que registran los certificados emitidos por las diferentes agencias CA que los usan, y mirar los dominios para los cuales se registran. Yo he buscado por Paypal, que contengan los dominios “Paypal”, por ejemplo, y el primer certificado que he encontrado que contenía su nombre ha sido el que pongo ahora en la imagen:

Antes de terminar de escribir este artículo, habré reportado dicha web, con lo que es posible que si alguien intenta acceder Google SafeBrowser la esté ya indicando como página de Phising, pero ahora mismo esta totalmente operativa. Como podemos ver perfectamente, la web está protegida por HTTPS, con su candadito verde, su “Es seguro”, con una URL similar a alguna que pueda tener una página real de Paypal, y por supuesto su contenido un calco. Bien, este es un ejemplo sencillo, poco o nada tiene que ver con que esté bajo HTTPS y el certificado sea válido, el contenido puede ser totalmente fraudulento. Ni que decir tiene que posiblemente de meter ahí los datos, se los enviaríamos a una personal mal intencionada, pero muchos creerían que como la URL parece ser “buena”, y que pone “es seguro”, es de fiar. ERROR!!

 

Let’s Encrypt, el CA del que ya hemos hablado en otra ocasión, está siendo foco de grandes críticas por muchos (no hace falta ser un genio para saber que la mayoría de todas ellas por no decir todas vienen de los otros CA). Se les acusa de emitir certificados fraudulentos. Bien, primero tendríamos que matizar que es un certificado fraudulento, porque el ejemplo que he puesto anterior de Paypal, no es un certificado fraudulento, es un certificado totalmente legítimo, lo que no es legítimo y lo que es fraudulento es el contenido de la web mostrada, así como el uso evidentemente de la propiedad intelectual de Paypal y la suplantación de identidad. El certificado es legítimo siempre y cuando quien lo solicitó demostrase que era el dueño de dicho dominio, y recordemos que el dominio no es Paypal.com, el dominio comprado en este caso es “paypal-secure-info.gq”. Dado que las normativas sobre dominio permiten el registro de dicho dominio (lo cual es normal, no pueden vetar un dominio simplemente porque contenga una palabra que es marca comercial), sería totalmente injusto vetar la emisión de un certificado para dicho dominio. El problema no es el dominio, el problema no es el certificado… el problema es el uso que se haga de ello.

Algunos dicen que Let’s Encrypt en la “poca” vida que llevan, ya ha emitido muchísimos más certificados de este tipo que llaman “fraudulentos” que el resto de CA juntos. No lo dudo, es muy posible, pero por una razón sencilla… con los otros CA tienes que rascarte el bolsillo, 50-100€, pero te los emitirían igualmente por mucho que digan algunos que no permitirían certificados en dichos dominios, a fin de cuentas si el dominio está registrado correctamente, la emisión de un certificado estándar (de tipo DV, validación de Dominio) solo requiere para cumplir con las estrictas normas de seguridad la validación del propio dominio, nada más.

Ante esto Let’s Encrypt ya ha dicho más de una vez lo mismo. Ellos no son la policía ni el organismo competente para censurar el uso que puedan o no dar otros a las web, eso será cuestión de otros, y que por suerte herramientas como Google SafeBrowser o Internet SmartScreen, están para eso. Repito, lo mismo sucede con cualquier otro CA. De echo, para curarse en salud, Let’s Encrypt tan solo emite certificados DV.

Muy diferente es el caso cuando se desea un certificado EV, esos certificados que añaden antes de la URL el nombre de la compañía. Esos certificados emitidos por un CA requieren una serie de verificaciones y burocracia muy superior, que precisamente buscan eso, que se pueda tener cierta confianza de que la web visitada corresponde al contenido que tienen. En el caso de la web de paypal fraudulenta puesta arriba, les sería imposible lograr que pusiese delante de la URL lo que realmente veríamos en una web de Paypal:


El contenido es exactamente el mismo, y al margen de que la URL sean diferentes, evidentemente, en esta vemos el “sello” del certificado EV “Paypal, Inc. US”. La anterior sería imposible que lo lograse, incuso lograr algo similar sería casi imposible, a caso iban a crear una empresa llamada Paypal Secure bla bla bla y lograr todo lo que se requiere?? No, no lo lograría. Pero eso no invalida el certificado DV, ni tampoco le quita la gran importancia/necesidad que estos certificados (DV) tienen. De echo, como explicaba en el artículo de Let’s Encrypt, los certificados EV son muy caros, y la mayoría de entidades no los usan por no ser necesarios, mucho más importante que mirar el sello EV es mirar la URL, que ojo… puede engañar también (otro día hablaré de ello), pero pensar que si tomásemos una empresa no conocida podría tener legítimamente su sello EV y ser igualmente fraudulenta por el contenido que tiene.

 

Hace unos días apareció la noticia de que Google castigaba duramente a los certificados EV de Symantec (uno de los grandes CA) por detectar durante años la emisión de EVs de estos sin las necesarias y más estrictas condiciones. Recordar que un CA es fiable sólo en la medida que los navegadores Web y otros software se fían de ellos y añaden en sus productos los certificados raíces de estos. Dicho de otro modo, en cualquier momento tanto Google, Mozilla, Microsoft… podrían bloquear/anular los certificados raíces del CA que quisieran, dejando los miles o millones de certificados emitidos por ellas totalmente inservibles. Es por eso que son aquellos que crean el software que nos conecta los que deciden que certificados añadir y que normas y condiciones tienen que cumplir para permitirles estar dentro de su software, y si no lo cumplen o detectan irregularidades, no tienen problemas en eliminarlos o castigarlos del modo que estimen. Y sí, han caído empresas grandes cuyo principal volumen de ingresos era la emisión de certificados porque los navegadores los bloquearon por emitir certificados fraudulentos.

Vale, pero he dicho que los certificados fraudulentos no son tales… en que quedamos. Bueno, he dicho que el ejemplo anterior no es un certificado fraudulento, pero claro que se pueden emitir certificados fraudulento. El ejemplo más sencillo, si mañana me pongo en contacto con un CA y les pido que me emitan un certificado para google.es, y me lo mandan, es un certificado fraudulento, y no porque ya exista uno legítimo, eso es indiferente, es fraudulento porque el dominio google.es no es mío, e incluso un certificado DV se debe de emitir sólo si se puede verificar la propiedad de dicho dominio. Peor aun si hablamos de certificados OV o EV.

En el caso de Google y Symantec, según se ha dicho en la nota de prensa, Google detectó irregularidades en la emisión de certificados tipo EVs, y ha optado por medidas bastante serias, y durante un año irá invalidando dependiendo de las fechas de emisión de estos, los certificados EVs de Symantec (si leí bien). Y esto no es poca cosa, eso causa un daño enorme a Symantec. Es en una de esas pocas cosas que vemos el tremendo poder que puede tener una empresa que desarrolla una navegador Web para con otras multinacionales de gran peso e importancia.. bueno, google es un gigante, pero pensemos en Google como desarrollador de Chrome. Por supuesto Symantec les ha respondido, que han exagerado los datos, que les parece un “castigo” desmedido, que en el peor de los casos que Google lo lleve a cabo re-emitirá certificados nuevos para todos los afectos para que no se vean afectos… etc etc etc.

 

Conclusión

Por supuesto la credibilidad y fiabilidad de un sitio es o debería de ser muy importante, el problema es que no existe un sistema para ello. La mejor forma de legitimar una web es conociéndola, mirando siempre muy bien las URL, usar tecnologías como Google SafeBrowser (usada en Firefox o Chrome) o Smart-Screen usada en Internet Explorer. Tener siempre la seguridad, sobre todo cuando vamos a introducir cualquier dato sensible que la web que tenemos delante ES la web que dice ser, y no fiarnos de si usa HTTPS para eso o no. HTTPS nos asegura un cifrado, no la identidad que pueda parecer decir ya sea por el contenido o por la URL. Eso no invalida para nada la necesidad de HTTPS, puesto que incluso aunque una web sea fraudulenta, puestos a escoger, dentro de los males el menos malo sería que usase HTTPS, al menos tendremos la seguridad de que los datos sólo nos lo roba quien hizo la web fraudulenta, y no además otro que nos espíe la conexión por no usar HTTPS.

Con la aparición de Let’s Encrytp la web ha dado un buen giro, y donde antes nadie usaría certificados, ahora el uso se está expandiendo enormemente, ya sea un blog personal (ya, lo sé, no se lo tengo puesto al blog, en casa del herrero cuchillo de palo), ya sean empresas, tiendas online… y eso es bueno, con independencia de que algunos los quieran usar para otros fines.

Pero no nos equivoquemos, la culpa no la tienen esos desalmados, ellos simplemente se aprovechan como siempre del desconocimiento de los usuarios, las empresas de CA se han empeñado durante años a decir que los certificados son necesario para la confianza, para la fiabilidad… y muchas campañas se han hecho acerca de esto, así que el usuario normal ha tomado por válido ciertas cuestiones, como que si la web tiene un certificado seguro, la página es segura = fiable = de_confianza.

HTTPS sí, siempre que sea posible y el certificado sea válido, pero por favor… no dejéis nunca de revisar bien y mucho ante la duda la web que los use.