De acuerdo con PSD2, los elementos de la autenticación multifactor deben ser independientes para que el compromiso de un elemento no comprometa al otro.
Aquí está el artículo de la directiva:
* Artículo 9
Independencia de los elementos,
- Los proveedores de servicios de pago garantizarán que el uso de los elementos de autenticación fuerte del cliente a los que se hace referencia en los artículos 6, 7 y 8 estarán sujetos a medidas en términos de tecnología, algoritmos y parámetros, que aseguran que el incumplimiento de uno de los elementos no no comprometer la fiabilidad de los otros elementos.
- Donde cualquiera de los elementos de la autenticación fuerte del cliente o el código de autenticación se use a través de un dispositivo de usos múltiples, incluido teléfonos móviles y tabletas, los proveedores de servicios de pago adoptarán medidas de seguridad para mitigar el riesgo resultante de la dispositivo multiusos comprometido.
- A los efectos del párrafo 2, las medidas de mitigación incluirán cada uno de los siguientes: (a) El uso de seguros separados. entornos de ejecución a través del software instalado en el interior del dispositivo multiusos; (b) mecanismos para garantizar que el software o dispositivo no ha sido alterado por el pagador o por un tercero o mecanismos para mitigar las consecuencias de dicha alteración cuando este ha tenido lugar. *
La pregunta es ¿qué podría considerarse independiente en este caso?
Imaginemos el siguiente escenario:
El cliente utiliza el navegador de su teléfono para acceder al sitio web de banca en línea. Se requiere contraseña y otro elemento (basado en la posesión) para la autenticación.
En caso de que el segundo factor sea una contraseña de una sola vez enviada por SMS al teléfono, un solo malware es suficiente para comprometer el teléfono, instalar un keylogger para robar la contraseña y robar el SMS a medida que llega.
Basado en esta OTP a través de SMS es un no ir.
Ahora supongamos que el SMS OTP se reemplaza por una notificación de inserción (el cliente debe instalar la aplicación móvil del Banco anteriormente). Hay pocas posibilidades para la implementación exacta:
-
se envía un OTP a través de push
-
aparece una ventana de aprobación y el usuario debe tocar el botón de aprobación (tal como lo hace Google)
-
aparece un CAPTCHA y el usuario necesita resolverlo
-
Generación de OTP con token suave
etc.
En el caso de cualquiera de las soluciones mencionadas anteriormente, si el atacante podría explotar una vulnerabilidad en el sistema operativo del teléfono y obtener permiso de root, puede robar la contraseña de los clientes y validar la transacción con el segundo factor de autenticación, al menos en teoría ( instalando algún tipo de herramienta de acceso remoto).
Los tokens duros no sirven tampoco por razones de experiencia de usuario.
¿La caja de arena separada que utilizan tanto Android como iOS se considera un entorno de ejecución seguro que cumple con la siguiente parte de la directiva?
El uso de entornos de ejecución seguros separados a través de software instalado dentro del dispositivo multiuso
¿Cuál podría ser una solución efectiva que cumpla con la regulación y que también sea conveniente para el cliente?