La devaluación de los sistemas de identificación tradicionales

devaluacion contrasena

En noviembre del 2015 (ya ha llovido desde entonces…) escribía una pieza hablando de la devaluación de la firma como sistema de identificación. Y gustó tanto que llegué incluso a hablar en la radio de Caracas sobre el tema (ES).

En ella, explicaba en profundidad los elementos que conforman la firma, y cómo el único que realmente es identificativo de la persona (la rúbrica)…:

  • Se está perdiendo: Es muy raro que te echen para atrás una rúbrica por no coincidir.
  • Cambia con el tiempo: Conforme pasa el tiempo, vamos cambiando de rúbrica, así que en teoría tendríamos que cambiar también el patrón cada pocos años. Cosa que no se suele hacer (solo cuando cambiamos de tarjeta, y por motivos de vigencia de la misma).
  • No se puede hacer perfecta: Tanto del lado del usuario que intenta identificarse (cada vez que firmamos lo hacemos ligeramente distinto), como desde el punto de vista de quien debe compulsarla con la original (la mayoría de personas encargadas de hacerlo no tienen ni los conocimientos ni el expertise necesario para ello).
  • La tecnología necesaria para crearla vs la necesaria para validarla: para validar una firma con otra se requiere una tecnología que no es para nada sencilla de implementar. Hablamos de un sistema de reconocimiento de símbolos gráficos (ergo, hacer a una máquina capaz de entender un grafismo no asociado a ningún tipo de estandarización) que además debe se capaz de integrar la rúbrica en elementos más pequeños, analizarlos por separado, y sacar conjeturas (esta persona hace la “p” de esta manera, y la “a” de esta otra, además de incluir un pendón extra al final). Ergo, resulta cara y no está presente en prácticamente ningún establecimiento/servicio. Para colmo, a día de hoy existen sistemas informáticos capaces de replicar una firma de forma perfecta (más, de hecho, que el propio usuario) accesibles para cualquiera. Lo que produce un desequilibrio inasumible entre el margen de error que podemos aceptar en falsos negativos y el que vendrá dado por las tergiversaciones nocivas.

Estos días las cuatro compañías más importantes emisoras de tarjetas de crédito en los Estados Unidos (American Express, Discover, Mastercard y Visa), han anunciado que dejarán de solicitar recoger la firma de los clientes en el momento de la transacción (EN).

Un pequeño pasito, pero curiosamente la noticia coincide temporalmente con otra que bajo mi humilde opinión tiene mucho que ver, y es que por fin parece que tenemos estandarización de WebAuthn.

Que era el tema del que quería hablar hoy. Así que por un momento dejemos de lado lo de la firma (lo recuperaremos al final), y vamos al lío con esto.

Estandarizando la verificación de identidad digital

La semana pasada la W3C y la FIDO Alliance anunciaron el lanzamiento de WebAuthn (EN), que como ya adelantaba unos párrafos antes, ofrece una suerte de estandarización a la hora de verificar la identidad de un usuario en un servicio digital.

¿Que qué demonios quiere decir eso, Pablo?

Muy fácil.

Hasta ahora para loguearnos en un servicio digital habitualmente utilizamos un sistema de verificación basado en el conocimiento (usuario más contraseña), en la posesión (SMS con un código que se envía a un dispositivo específico), o en la verificación de un tercero con suficiente confianza (normalmente hablamos del inicio de sesión utilizando la cuenta de Google, de Facebook o de Twitter).

Y el problema de todos estos sistemas es que cada uno los implementa como quiere, delegando las responsabilidad en materia de seguridad y privacidad a los administradores del propio servicio, y en el último caso, también en una compañía con ánimo de lucro.

Para colmo, y como ya hemos explicado en más de una ocasión, los sistemas de verificación basados en el conocimiento han demostrado por activa y por pasiva ser sistemas que aunque resultan muy cómodos de implementar, son molestos de usar y no muy seguros. O mejor dicho, requieren de una implementación bastante más avanzada para contar con las garantías de seguridad que cabría esperar en un servicio tan crítico como es el login de usuario.

Así pues, WebAuthn lo que propone es estandarizar todos los métodos de verificación de usuario por medio de una API que ya cuente con esas garantías, y de paso, sobre todo enfocado a páginas web, dotar a estos servicios de la capacidad de hacer uso de métodos de verificación de identidad que a día de hoy se escapan de las posibilidades de implementación de la mayoría de proyectos, como es el uso tokens, de USBs identificativos, de huella dactilar o del resto de sensores cada vez más presentes en los dispositivos del usuario.

webauthn

¿Lo mejor de todo? Que WebAuthn está basado en el protocolo de conocimiento cero, lo que en la práctica significa que un usuario puede logearse en un sistema sin necesidad de revelar su identidad al mismo. La verificación se realiza en un paso intermedio y en ambas direcciones (el servicio recibe el Ok por parte del sistema, y el usuario sabe que en efecto se está intentando identificar en un servicio que cuenta con la verificación adecuada), no siendo necesario que se produzca en el propio servicio, y por tanto, minimizando el riesgo (es mucho más difícil que dicha información se vea comprometida a nivel de API que a nivel de servicio).

Hacia un entorno libre del yugo de los sistemas basados en el conocimiento

Y decía antes que recuperaría el tema de la firma al final de esta pieza.

El caso es que al igual que la firma, como veíamos al principio, está entrando en una fase de desuso (al menos a nivel de verificación de identidad), iniciativas como la de WebAuthn, que cuentan con el beneplácito de la industria (la única que parece que quiere seguir su propio camino es Apple, para variar), plantean un escenario en el que muy probablemente el uso de sistemas basados en el conocimiento como son las contraseñas ya no tenga cabida.

Como expliqué en su momento, los sistemas basados en la inherencia son cada vez más asequibles (casi todos los smartphones actuales, y cada vez más teclados de ordenador vienen con huella dactilar), y el acercamiento a la verificación de identidad de estos sistemas además de ser más cómoda para el usuario tiende a presentar mayor seguridad.

Quien más quien menos ya ha empezado a delegar la responsabilidad de conocimiento de una contraseña en sistemas de generación de contraseñas como LastPass o 1Password, mandando al cuerno precisamente lo que los hace identificativos (estos servicios transforman una verificación basada en el conocimiento en otra basada en la posesión, que es la cuenta del propio servicio).

Sin olvidarnos que actualmente el único sistema de verificación que podemos considerar lo suficientemente seguro es el doble factor de autenticación, y precisamente por los motivos anteriormente señalados (sistemas basados en el conocimiento mal implementados y/o débiles ante el paradigma de exposición actual).

¿Cuál es la parte mala de todo esto? Principalmente dos:

  • Requiere hacer una migración por parte de toda la industria: Ya tenemos estandarización, pero hay que implementarla en los servicios actuales. Y eso requiere tiempo y recursos. Por lo que aunque ahora ya esté disponible, tardará presumiblemente años en ser la opción por defecto de la mayoría de logins en Internet. De pronto cualquier administrador puede implementar en su servidor un sistema de verificación de identidad que cuente con las garantías mínimas necesarias, que son claramente superiores a las que tenemos a día de hoy presentes en la amplia mayoría de servicios digitales.
  • Hablamos de una nueva delegación en terceros: Poniéndonos estrictos, y aunque ya digo que bajo mi humilde opinión puede ser una de las noticias más importantes del año, es cierto que estamos ante una nueva manera, hasta cierto punto, de ceder parte de esa descentralización que hizo de la Web un páramo interesante a cambio de mayor seguridad. Semejante en todo caso a esta paulatina migración hacia comunicaciones basadas en el protocolo HTTPs. Lo que podría desencadenar una futura nueva marginación de la web verdaderamente independiente (proyectos digitales que por falta de recursos o conocimiento no acaben pasándose a WebAuthn, y por tanto, no cuenten con las mismas garantías esperables en el Internet de años venideros).

A día de hoy solo Firefox es compatible. Pero vaya, que tanto Chrome como Edge lo serán en próximas versiones (amigos de Safari, ya sabéis cómo se las gasta Apple con eso de seguir las estandarizaciones…).

Y me pregunto cuánto tardará en romper la barrera de la Web y adentrarse en el mundo móvil y escritorio. Que no es que le haga falta realmente (todos los SO actuales ya cuentan con sistemas de verificación nativos), pero quizás podría ser interesante con la idea de estandarizar el proceso de identificación indistintamente de si estamos en un entorno nativo o web. Una suerte de convergencia de la identidad digital, para que nos entendamos.

En fin, que por ideas no sea.

Una gran noticia. Ahora toca que nos pongamos a trabajar en ella.