Qué es y para qué sirve el protocolo CTAP

Qué es y para qué sirve el protocolo CTAP

Oscar Espinosa

La gran mayoría de usuarios deciden realizar sus compras por Internet gracias a la comodidad y rapidez en las que puede adquirir un determinado producto, sin necesidad de buscar el producto físicamente en la tienda, hacer cola para pagar, y llevarlo hasta su casa. Debido al aumento de las compras online, un tema fundamental es la seguridad. Hoy en RedesZone os vamos a explicar qué es y para qué sirve el protocolo CTAP.

Desde la última década, cualquier sitio web al que accedemos para realizar una compra, si accedemos a una red social, un foro, etc. Nos pide siempre para iniciar sesión un nombre de usuario o correo electrónico, junto con la correspondiente contraseña con la que registramos la cuenta. El principal problema de utilizar este método de inicio de sesión, es decir, de identificarnos en el sitio web, es que puede ser muy sencillo que nos roben los datos o descubran nuestra contraseña de inicio de sesión. Normalmente esto suele suceder por no utilizar contraseñas seguras, ya que pueden ser más difíciles de memorizar.

Debido a todas estas cuestiones de seguridad, la FIDO Alliance junto a World Wide Web Consortium, más conocidos como W3C han desarrollado un sistema muchísimo más seguro y cómodo para el inicio de sesión en los sitios web. Dicho desarrollo a concluido con la creación de FIDO2 y WebAuthn del que os hemos hablado ya en Redes Zone, pero otro mecanismo igual o más importante y que la mayoría de los usuarios no lo conoces es CTAP (Client to Authenticator Protocol).

Qué es CTAP

Lo primero que tenemos que saber es que FIDO2 y WebAuthn, son sistemas que están diseñados para reemplazar al sistema de contraseña que hoy en día usamos todos los usuarios. Con FIDO2 y WebAuthn se pueden usar datos biométricos para iniciar sesión, un ejemplo sencillo lo tenéis en los portátiles, móviles, y otros dispositivos que, por ejemplo, incorporan lector huella dactilar. Gracias a la huella dactilar podemos hacer que nuestra contraseña sea la misma huella. Es muy importante que no lo confundáis con los sistemas que hay actualmente en diferentes dispositivos, para que, al requerir el inicio de sesión, tenga la contraseña memorizada (gestor de contraseñas). Este sistema no es el FIDO2 ni el WebAuthn, ya que estamos solamente accediendo a una base de datos memorizada en nuestro dispositivo para que introduzca la clave automáticamente para ese sitio web.

Otra opción que también existe, y cada vez se usa más en empresas, es un dispositivo que se conecte a nuestro ordenador como una llave USB, donde internamente incorpora un hardware para autenticarnos y tener un inicio de sesión seguro.

Visto este punto anterior, os queremos explicar cómo funciona el CTAP. El CTAP en este caso anterior sería el protocolo encargado de controlar la comunicación entre la llave USB y el token del autenticador. Es decir, CTAP sería el protocolo que se encarga de la comunicación segura entre las dos partes, para que primero se comuniquen, segundo se autentifiquen y tercero, se pueda iniciar sesión finalmente.

Versiones de CTAP

Una vez visto qué es CTAP y cómo trabaja, es importante saber que actualmente existen dos versiones totalmente diferentes de CTAP que vamos a ver a continuación:

  • U2F (Universal 2nd Factor): La primera versión que se creó de CTAP, es justamente también la primera versión que se creó del protocolo y es más conocida como U2F que quiere decir “Universal 2nd Factor”. Esta versión hace referencia a la autenticación de dos factores, o como seguramente conoceréis muchos, la autenticación en dos pasos que tan de moda está en los últimos años.
  • CTAP2: La segunda versión que se creó de CTAP, es CTAP2. CTAP2 se utiliza junto a WebAuthn, y lo que permite es que pueda funcionar FIDO2. Es decir, mientras WebAuth se encarga de la conexión entre el equipo del usuario y el sitio web, el protocolo CTAP2 es el responsable de la conexión entre el equipo del usuario y el sitio web utilizando el autentificador. Es decir, WebAuthn se encarga de la conexión y CTAP2 de la conexión del autenticador.

Cómo funciona el protocolo CTAP

Lo primero que tenemos que tener claro es que CTAP y WebAuthn tienen que trabajar de forma conjunta para que sea posible FIDO2.

Todos sabemos que, para poder iniciar sesión en un sitio web, aplicación online, etc. Este debe tener implementado un sistema de autenticación para poder iniciar sesión FIDO2, se realiza gracias a un dispositivo externo, como, por ejemplo, hemos comentado más arriba de una llave USB, que en realidad sería un token, se pueda identificar al usuario propietario de ese dispositivo y así poder identificarse en el sitio web, aplicación, etc. Gracias al token evitamos tener que usar una contraseña que sería muy fácil de que nos la robaran o averiguaran.

Métodos de conexión del autentificador

Actualmente existen diferentes métodos de poder conectar a nuestro equipo nuestro dispositivo de autenticación. Aunque el más común hoy en día es utilizar un dispositivo que se conecte al puerto USB, ya que fueron de los primeros diseñados, también podemos conectar por conexión NFC o Bluetooth el dispositivo que nos daría nuestro token de inicio de sesión seguro.

Qué es necesario para que funcione nuestro dispositivo de inicio de sesión seguro

Para que podamos utilizar un dispositivo para poder autenticarnos, debemos tener como mínimo un navegador web que sea compatible con los nuevos estándares de CTAP, WebAuthn y FIDO2. Actualmente si tenemos el navegador actualizado, tanto Google Chrome, como Mozilla Firefox son compatibles con FIDO2 en sus últimas versiones.

Otro tipo de autenticadores:

Como hemos hablado anteriormente, los smartphones con huella dactilar, reconocimiento de iris, e incluso reconocimiento de nuestra cara, podremos autenticarnos en diferentes servicios. Estos métodos de autenticación, al estar incorporados dentro del hardware no necesitan ningún componente externo, y, por lo tanto, no es necesario un protocolo de comunicación por separado de los dispositivos, es decir, lo que realiza el CTAP.

Cómo funciona la comunicación de CTAP

La comunicación de CTAP funciona de la siguiente manera:

  • Primero: el navegador web se conecta a nuestro dispositivo de autenticación y le solicita información.
  • Segundo: una vez se ha comunicado con el dispositivo, este le envía información sobre el método de autenticación que puede ofrecer al navegador.
  • Tercero: según la información recibida por el navegador, este enviará una orden al autenticador, que puede ser de iniciar sesión o de error.

Una vez visto cómo funciona la comunicación de CTAP, podemos entender mejor cómo funcionan los sistemas que utilizan los fabricantes como Apple. Al estar incorporado el hardware de autenticación dentro del hardware físico del dispositivo, los datos de inicio de sesión como son nuestra huella dactilar o nuestra cara, nunca salen del dispositivo, es decir, el navegador web solo envía a través de WebAuthn la confirmación de si el inicio de sesión es válido, pero nunca comprueba que la huella dactilar o la imagen de nuestra cara sea auténtica, ya que de eso se encarga el dispositivo al incorporar todo dentro del mismo hardware.

Podemos decir que gracias a utilizar CTAP, WebAuthn y FIDO2 se consigue finalmente poder eliminar los ataques man-in-the-middle para robar contraseñas y phishing, ya que los usuarios no tienen que facilitar ninguna contraseña para iniciar la sesión.