DUO Authenticator returns a different number than Google and Microsoft for CloudStack's TOTP.
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.4k
- Avg merge
- 6d 19h
- Merged PRs (30d)
- 32
Description
### 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.
Contributor guide
Research direction
Start by reproducing the mismatch with the supplied otpauth QR-code contents and the listed ACS 4.20.1 version, comparing DUO with the other authenticators. Then trace CloudStack's TOTP setup and QR-code generation to determine whether required parameters are missing or whether the incompatibility is in DUO. Done means identifying the responsible side and documenting or testing the confirmed behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authentication
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100