I recommend the native implementation of the FIDO CTAP 2.2 Hybrid Transport protocol directly at the mobile application layer. This will address two core pain points:
- Legacy Android Compatibility: It allows devices running Android versions earlier than 14 or non-GMS (Google Mobile Services) devices to function as a “Roaming Authenticator” via a native protocol stack, bypassing the limitations caused by a missing system-level WebAuthn framework.
- Secure Login on Public Terminals: Users can log in to browser extensions in untrusted environments via the FIDO Hybrid channel (“QR Code Login”). This completely bypasses keyboard input (no email or Master Password required), fundamentally preventing hardware-level keylogging attacks.
A. In-App FIDO Hybrid Protocol (Software Authenticator)
-
Concept: Encapsulate the full CTAP 2.2 Hybrid flow (the evolved version of caBLE) within the Bitwarden app, enabling it to act as a standardized software-based roaming authenticator.
-
Benefit: Decouples the feature from OS update cycles, providing a consistent cross-device Passkey roaming experience across all Android versions.
B. “QR Code Login” for Browser Extensions
-
Concept: Leverage the FIDO Hybrid channel to securely transmit authentication credentials.
-
Workflow:
-
Direct Path: The extension login page directly displays a QR code based on the Hybrid specification (containing a Session ID and ephemeral public key). No initial email entry is required.
-
Scan & Authenticate: The mobile app scans the code, completes the handshake via the Hybrid channel, and sends the signed authentication result directly to the extension.
-
Comparison with Current Flow:
The existing solution relies on OS mediation (Trigger FIDO2 → System Popup → Select Mobile Device → Windows Saving Path → Scan System QR Code), resulting in a convoluted path. By supporting Hybrid natively, we can achieve a streamlined, closed-loop “Scan-to-Login” experience.
fido-client-to-authenticator-protocol-v2.2-ps-20250714 11.5. Hybrid transports