Google quiere matar la URL y ha empezado por los subdominios

martes, 18 de septiembre de 2018

Tras el repaso que dimos en la entrada anterior el trato que Chrome dispensa a las URLs, hablamos en esta ocasión del curioso, al menos, paso que ha dado Google ocultando el subdominio de la barra de direcciones cuando éste es considerado "trivial". Aunque esta polémica característica ha tenido un paso fugaz (ya ha sido descartada en una nueva actualización del navegador) no se cae totalmente de la agenda y podríamos verla de nuevo activada en una próxima versión.

Decimos "activada" porque la opción no lo está por defecto en la última versión, sin embargo, es posible reactivarla para comprobar como es el funcionamiento y experimentar con este cambio. Solo hay que activar esta opción chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains y en la opción "Omnibox UI Hide Steady-State URL Scheme and Trivial Subdomains" seleccionar "Enabled". Reiniciamos el navegador para aplicar el cambio y lo podremos comprobar con cualquier dominio con subdominio “www”.

Chroome: Modificar opción
Aquí se puede modificar esta nueva opción en Chrome

Chrome se ha distinguido en los últimos tiempos como un navegador que ha repensado el panorama de seguridad en un elemento tan vital para los usuarios: la web. Entre otros pasos adelante, Chrome ha ofrecido:
  • En primer lugar, nos trajo las actualizaciones en background, progresivas y sin esperar a que el usuario procediese a su descarga. Esto representó un paso hacia delante, tapando agujeros de seguridad tan pronto como los parches iban saliendo del horno; ayudando a recortar la ventana de exposición. 
  • Trabajó intensamente en aislar los procesos que interpretaban las pestañas y por tanto las páginas web, añadiendo una de las sandbox más robustas que existen, aprovechando los recursos del propio sistema operativo, como los niveles de integridad.
  • Posteriormente invirtió la lógica en la representación de lo que era un "sitio seguro" (mala distinción en cualquier caso, pues un certificado y cifrado correctos no es condición suficiente para confirmar esa afirmación). Ahora un sitio seguro (https) representa la normalidad, mientras que uno que no posee certificado y conexión cifrada pasa a destacarse, en rojo peligro, como "inseguro". Hasta aquí todo bien. 
Sin embargo, algunos usuarios han entendido que ocultar parte del dominio (y ya de paso el esquema) no aporta nada a la seguridad sino más bien lo contrario. ¿Qué ganamos con mutilar las www? De hecho, un domino raíz no tiene por qué estar en el mismo servidor que ‘www’. Todo esto produce confusión:

Pongamos un ejemplo cualquiera, al azar: ¿Seguro que es about.github.com?

dominio real de google imagen
about.www.www.github.io representado sin las www en Chrome
No, Chrome elimina la cadena ‘www’ de la presentación al usuario, pero entrando en el modo edición de la barra nos desvela el dominio real:

dominio real de google imagen
about.www.www.github.io representado con las www en Chrome
Supongamos un escenario en el que una aplicación web registre subdominios con el nombre de usuario (hosting gratuito, etc.). En este caso, si un atacante registra el nombre de usuario ‘www’ u otro considerado por Chrome como trivial, podría efectuar un ataque engañando a otros usuarios, ya que el prefijo ‘www’ sería eliminado visualmente en Chrome, mientras que el domino real sería el del atacante.

Si observamos los otros navegadores (últimas versiones en Microsoft Windows) junto con Chrome, podemos ver como existe una diferencia notable en el comportamiento:

comportamiento de dominios edge imagen
comportamiento de dominios firefox imagencomportamiento de dominios opera imagen
comportamiento de dominios chrome imagen
De arriba a abajo: Edge, Firefox, Opera y Chrome representando un dominio EV con www
Además, se puede apreciar cómo en la última versión de Chrome el color verde del certificado EV ha desaparecido.  Ni rastro del subdominio en Chrome, ni tampoco del esquema empleado. Si bien en el terreno de juego de las plataformas móviles puede entenderse la lucha de economía del espacio útil, resulta cuanto menos extraño que se integre está funcionalidad en el escritorio, donde las resoluciones dan para mostrar URL de longitudes muy generosas.
Si la intención es facilitar la navegación a los usuarios menos expertos, creemos que no ganamos mucho. La URL lleva con nosotros de forma popular desde los 90, donde incluso en ciertos ámbitos populares se deletreaban hasta el esquema (Sí, "hachetetepe, dospuntos, barrabarra…"). Ver la URL completa (al menos a quien posee unos mínimos conocimientos) nos permite disipar dudas acerca de donde nos encontramos, qué esquema estamos usando, etc. Si bien es cierto que simplificar las cosas permite una adaptación más rápida y fideliza al cliente, en este caso no existía una necesidad clara que justificara la ocultación de información. Quizás mejor invertir en la educación del usuario para interpretarlos que ocultarle los datos.

¿Qué dicen los estándares?
Hay un grupo de ellos que definen la URL y su interacción con otros componentes, principalmente los RFC 3986, 1738 y 2616 entre otros. Sí buscáramos qué es un "trivial subdomain" no encontraremos ninguna definición que lo recoja. Esto es, Chrome se aparta de los estándares y define por su cuenta qué es y qué no es un subdominio trivial y cómo debe comportarse el navegador respecto a la presentación.

Aunque esto nos pueda parecer trivial, no lo es. Pensamos que es importante que un comportamiento pase por una definición estándar, que sea regulada y conformada. Que sea consensuado de mutuo acuerdo el cómo y el qué se debe procesar. Sin este orden, se pueden llegar a producir situaciones dispares entre lo que un usuario espera encontrar y la respuesta que obtiene en diferentes experiencias. 

En algunos foros se han preguntado si existe una lista de dominios triviales. En el código de Chromium, la base de código libre de Chrome, no existe tal lista. El "experimento" abarca solo al subdominio www; aunque en commits anteriores revertieron el mismo comportamiento para el subdominio ‘m’, característico de la versión móvil del sitio, para el escritorio. Puede verse exactamente aquí:

versión movil imagen
https://github.com/chromium/chromium/commit/14b83d2a1be977527aec9136fbd65f8e7d02436f#diff-f68269600d10997882aa2ea163c65f07

Por cierto, allá por la versión 36 de Chrome, ya se hizo un experimento bastante relacionado con el tema que nos ocupa. Se modificó la barra de direcciones para indicar el dominio (sin subdominio ni esquema) en el lugar donde se suele encontrar la validación del certificado, algo tal que así:

Lo denominó "origin chip" y no duró mucho. En la siguiente revisión se devolvió a su aspecto original.

Muestra de Chrome en los dominios versión 36 img
Así mostraba Chrome los dominios en su versión 36

Idealmente deberíamos adaptar los sistemas en general para que estos faciliten la seguridad, no ocultarla para crear una falsa sensación. Ver e interpretar una URL no es complejo, quizás es algo a lo que el usuario medio se ha acostumbrado con el uso paulatino. Además, por muy triviales que sean los subdominios, un dominio raíz es o puede resultar totalmente distinto al servidor que entregue ‘www’ y eso ya debería ser cultura informática elemental.

» Google quiere matar la URL para salvar Internet y aún no sabe cómo

David García
david.garcianunez@telefonica.com
Equipo de Innovación y Laboratorio de ElevenPaths

No hay comentarios:

Publicar un comentario