|
Cuando un recurso de un sitio web accede a una cookie que coincide el sitio web que visita el usuario, es un contexto same-site o "de primera mano".
|
Un nuevo modelo para la seguridad y la transparencia de las cookies
Actualmente, si un desarrollador desea que solo sea posible acceder a una cookie en un contexto de primera mano, tiene la opción de aplicar una de dos configuraciones (
SameSite=Lax o
SameSite=Strict) para evitar el acceso externo. Sin embargo, son muy pocos los desarrolladores que aplican esta práctica recomendada, por lo que muchas cookies same-site quedan innecesariamente expuestas a riesgos, como los ataques de
falsificación de solicitudes entre sitios.
A fin de proteger más sitios web y a sus usuarios, el nuevo modelo seguro de forma predeterminada da por sentado que todas las cookies deben protegerse del acceso externo a menos que se especifique lo contrario. Los desarrolladores deben usar una nueva configuración,
SameSite=None, para designar aquellas cookies que admiten el acceso cross-site. Si se incluye el atributo
SameSite=None, es necesario usar un atributo
Secure adicional para que solo sea posible acceder a las cookies cross-site mediante conexiones HTTPS. El modelo no mitiga todos los riesgos relacionados con el acceso cross-site, pero ofrece protección contra los ataques de red.
Más allá de las ventajas inmediatas en términos de seguridad, la declaración explícita del uso de cookies cross-site implica una mayor transparencia y una mejor decisión del usuario. Por ejemplo, los sitios web podrían ofrecer a los usuarios controles minuciosos para administrar las cookies a las que solo se accede desde un solo sitio independientemente de aquellas a las que se accede desde varios sitios.
Implementación en Chrome a partir de febrero de 2020
A partir del lanzamiento de Chrome 80 en febrero, Chrome tratará las cookies sin un valor SameSite declarado como cookies
SameSite=Lax. Solo las cookies con la opción
SameSite=None; Secure estarán disponibles para acceso externo, siempre y cuando se acceda a ellas desde conexiones seguras. Los dispositivos de seguimiento de estado de la plataforma Chrome de
SameSite=None y
Secure seguirán actualizándose con la información de lanzamiento más reciente.
Mozilla reafirmó su compromiso con el nuevo modelo de clasificación de cookies mediante la declaración de su
intención de implementar los requisitos
SameSite=None; Secure para las cookies cross-site en Firefox. Microsoft
anunció recientemente sus planes de comenzar a implementar el modelo de forma experimental en Microsoft Edge 80.
Cómo prepararse; complejidades conocidas
Si administras cookies cross-site, debes aplicar la opción SameSite=None; Secure a esas cookies. Si bien la implementación no debería resultar problemática para la mayoría de los desarrolladores, recomendamos que comiencen a hacer pruebas para identificar complejidades y casos especiales como los siguientes:
- Por el momento, no todos los lenguajes ni todas las bibliotecas admiten el valor "None", por lo que los desarrolladores tienen que configurar el encabezado de la cookie directamente. En este repositorio de GitHub se incluyen instrucciones para implementar SameSite=None; Secure en distintos lenguajes, bibliotecas y marcos.
- Es posible que algunos navegadores (incluidas algunas versiones de Chrome, Safari y UC Browser) interpreten el valor None de maneras inesperadas, lo que exige que los desarrolladores programen excepciones para esos clientes. Esta situación afecta a Android WebViews con tecnología de versiones anteriores de Chrome. Esta es una lista de clientes incompatibles conocidos.
- Se recomienda que los desarrolladores de apps declaren la opción de cookie SameSite adecuada para Android WebViews con tecnología de versiones de Chrome compatibles con el valor None, tanto para las cookies a las que se accede mediante encabezados HTTP(S) como a las que se accede mediante la API de CookieManager de Android WebView, aunque el nuevo modelo no se aplicará en Android WebView sino hasta dentro de cierto tiempo.
- Es posible que los administradores de TI empresariales tengan que implementar políticas especiales para revertir el navegador Chrome al comportamiento anterior transitoriamente si algunos servicios, como el inicio de sesión único o las aplicaciones internas, no están listos para el lanzamiento de febrero.
- Si tienes cookies a las que accedes en contextos de primera mano y de terceros, contempla la posibilidad de usar cookies separadas para obtener las ventajas en términos de seguridad del valor "SameSite=Lax" en un contexto de primera mano.
En
Explicación de las cookies SameSite se ofrece información específica sobre las situaciones antes descritas y sobre los canales para plantear problemas y dudas.
Para probar el efecto del nuevo comportamiento de Chrome en tu sitio o las cookies que administras, puedes ir a chrome://flags en Chrome 76+ y activar los experimentos "SameSite by default cookies" y "Cookies without SameSite must be secure". Además, estos experimentos se activarán de forma automática para un subconjunto de usuarios de Chrome 79 Beta. Es posible que algunos usuarios beta con los experimentos activados experimenten problemas de compatibilidad con los servicios que todavía no admiten el nuevo modelo. Para abandonar los experimentos beta, los usuarios pueden desactivarlos en chrome://flgas.
Si administras cookies a las que solo se accede en un contexto same-site (cookies same-site), no debes hacer nada; Chrome evitará automáticamente que las entidades externas accedan a esas cookies, incluso si falta el atributo "SameSite" o si no se definió un valor. Dicho eso, recomendamos que apliques un valor SameSite adecuado (
Lax o
Strict) y que no dependas del comportamiento predeterminado del navegador, ya que no todos los navegadores protegen las cookies same-site de forma predeterminada.
Por último, si te preocupa la preparación de los proveedores y de las otras partes que prestan servicios a tu sitio web, puedes buscar advertencias de la consola de las herramientas del desarrollador de Chrome 77+ respecto de las páginas con cookies cross-site que no tienen la configuración necesaria:
Algunos proveedores (lo que incluye algunos servicios de Google) implementarán los cambios necesarios en los meses previos al lanzamiento de Chrome 80 en febrero. Es recomendable que te pongas en contacto con tus socios para confirmar si están preparados.