apache / apache/cloudstack

DUO Authenticator returns a different number than Google and Microsoft for CloudStack's TOTP.

Abierto
#11,776 3 comentarios 0 reacciones 0 asignados Ver en GitHub
status:needs-functional-definition
Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.4k
Merge medio
6 d 19 h
PR fusionados (30 d)
32

Descripción

### problem

The title mentions DUO Authenticator because I want to stay consistent with the issue I already reported in DUO Security’s GitHub.

The problem occurs when setting up TOTP 2FA for a user in CloudStack. The QR code and seed work correctly in Google Authenticator, Microsoft Authenticator, and my password manager. However, DUO Authenticator generates the wrong rolling PIN (it looks out of sync).

Since the same QR code/seed works in four other apps, I believe this is a bug in DUO Authenticator. Still, since DUO is widely used as an enterprise-grade app, I wonder if CloudStack might be missing some information DUO needs when generating the TOTP.

Below are some sample TOTPs for a test user.

Revealing the Seed : LGV3KCWF3AFZKYB4MWSZBH3R6YWBINJI
QRCode content: otpauth://totp/Company:username?secret=LGV3KCWF3AFZKYB4MWSZBH3R6YWBINJI&issuer=Company

Revealing the Seed : 3JLPXCKBHYR3CHE73T7FNGBS5CDMQRBG
QRCode content: otpauth://totp/Company:username?secret=3JLPXCKBHYR3CHE73T7FNGBS5CDMQRBG&issuer=Company

### versions

ACS 4.20.1

### The steps to reproduce the bug

Setup TOTP on DUO and another app and compare the rolling PIN.

### What to do about it?

Maybe there are optional parameters that can be provided to the Authenticator app while scanning the QRCode that would inform some missing parameters that it fails to assume.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza reproduciendo la discrepancia con el contenido otpauth del código QR proporcionado y la versión 4.20.1 de ACS indicada, comparando DUO con los demás autenticadores. Después, sigue la configuración de TOTP y la generación del código QR de CloudStack para determinar si faltan parámetros necesarios o si la incompatibilidad está en DUO. Se considera terminado cuando se haya identificado qué lado es responsable y se haya documentado o probado el comportamiento confirmado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
authentication
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.