# SQRL

SQRL o Secure, Quick, Reliable Login (pronunciado "squirrel" /ˈskwɝl/; en español: Inicio de sesión seguro, rápido y fiable) (anteriormente Secure QR Login) es un proyecto de estándar abierto para la identificación y autenticación seguras en sitios web. Este software normalmente utiliza un código QR, que proporciona autenticación, donde un usuario se identifica de forma anónima en lugar de proporcionar un ID de usuario y contraseña. Este método se cree que es inmune a un ataque de fuerza bruta para contraseñas o violación de datos. Aleja la carga de la seguridad de la compañía que solicita la autenticación, y la acerca a la implementación del sistema operativo, así como al usuario. SQRL fue propuesto por Steve Gibson de Gibson Research Corporation en octubre de 2013 como una forma de simplificar el proceso de protocolo de autenticación, sin revelar ninguna información sobre la transacción a un tercero.

## Motivación

El protocolo es una respuesta al problema de la fragmentación de identidad. Mejora protocolos como OAuth y OpenID al no exigir a un tercero que medie en la transacción, y al no dar a un servidor ningún secreto que proteger, tales como nombre de usuario y contraseña.
Además, proporciona un estándar que se puede utilizar libremente para simplificar los procesos de inicio de sesión disponibles para aplicaciones de administración de contraseñas, como LastPass. Y algo más importante, el estándar es abierto, así que ninguna empresa puede beneficiarse de poseer la tecnología.

## Casos de ejemplo

Para que el protocolo se utilice en un sitio web, se necesitan dos componentes: una implementación, que forma parte del servicio Web al que autentica la aplicación (que muestra un código QR o una dirección URL especialmente diseñada de acuerdo a las especificaciones del protocolo), y un plugin de navegador o una aplicación móvil, que pueda leer el código con el fin de proporcionar una autenticación segura.
El cliente SQRL utiliza funciones "unidireccionales" y la contraseña maestra del usuario para descifrar una clave maestra secreta, de la que se genera, en combinación con el nombre del sitio (que comprende el nombre de dominio y, opcionalmente, un identificador adicional), en un par de claves privada-pública específicas del sitio. Se firma la transacción con la clave privada y da la clave pública al sitio, para que pueda verificar los datos cifrados.
No hay "secretos compartidos" que puedan comprometer los datos al permitir ataques a cuentas en otros sitios. Lo único que el atacante podría obtener con éxito, sería la clave pública, que se limita a la verificación de firmas que sólo se utilizan en ese mismo sitio. A pesar de que el usuario abre la llave maestra con una sola contraseña, nunca deja el cliente SQRL; los sitios individuales no reciben ninguna información del proceso de SQRL que pudiera ser utilizado en cualquier otro sitio.

## Protección contra 'phishing'

SQRL tiene algunas defensas inherentes contra el phishing, pero el protocolo está destinado principalmente para la autenticación, no el anti-phishing, a pesar de tener algunas propiedades anti-phishing.

## Aspectos legales

Steve Gibson afirma que SQRL es "abierto y libre como debe ser", y que la solución está "libre de estorbos de las patentes". Aunque el SQRL aportó mucha atención a los mecanismos de autenticación basados en código QR, se dice que el protocolo fue patentado antes y no está generalmente disponible para su uso gratuito. Pero Gibson afirma que "Lo que esos chicos están haciendo, como se describe en la patente, es completamente diferente a la forma en que SQRL opera, por lo que no habría ningún conflicto entre SQRL y esa patente. Superficialmente, cualquier cosa que utiliza un código 2D para la autenticación parece "similar"... y superficialmente todas estas soluciones lo son. Pero los detalles son importantes, y la forma en que SQRL opera es totalmente diferente en los detalles".

## Historia

El acrónimo SQRL fue acuñado por Steve Gibson y una comunidad de entusiastas de la seguridad de Internet en el grupo de noticias de news.grc.com y durante su podcast semanal, Security Now!, el 2 de octubre de 2013, donde fue discutido y analizado en profundidad. A los dos días de la emisión de este podcast, tanto W3C como Google expresaron interés en trabajar en el estándar.
Una tesis sobre SQRL analizó y concluyó que "parece ser un enfoque interesante, tanto en términos de la experiencia del usuario, así como la criptografía subyacente. SQRL es la combinación de métodos de criptografía bien establecidos de una manera novedosa."
Un número de implementaciones de prueba se han hecho para varias plataformas, incluyendo para servidores:
* PHP
* Drupal
* C# .NET
Y para clientes:
* Android
* C# .NET
* Java
* Python
Hay disponibles varios sitios de prueba y depuración para servidores:
* https://www.grc.com/sqrl/demo.htm
* https://www.grc.com/sqrl/diag.htm
* https://web.archive.org/web/20150402131033/https://sqrl-test.paragon-es.de/
* https://web.archive.org/web/20150316131413/http://sw.squaltech.com:8080/