Explore ChatGPT Atlas passkey implementation: device-bound credentials, new AAGUID, QR code authentication. Technical breakdown & future outlook.

Vincent
Created: October 21, 2025
Updated: October 24, 2025

Passkeys for Super Funds and Financial Institutions
Join our Webinar on 7th November to learn how Super Funds and Financial Institutions can implement passkeys
With ChatGPT Atlas, OpenAI's new browser embedded with ChatGPT, users naturally wonder: How well does ChatGPT Atlas support passkeys? Does it support platform passkeys and access to existing credential stores and password managers?
This article examines Atlas's passkey implementation, explores its technical characteristics and answers these critical questions about compatibility and limitations.
Recent Articles
🔑
FTC Safeguards Rule: MFA for non-bank Financial Institutions
📖
Credential Manager Trust Group Keys: WebAuthn Extension
🔑
10 Biggest Data Breaches in India [2025]
♟️
Passkeys vs. 2FA: Why Passkeys are More Secure than Regular 2FA
♟️
3-D Secure (3DS) & WebAuthn for Payment Providers
♟️
EMV 3DS Access Control Server: Passkeys, FIDO and SPC
This article covers:
ChatGPT Atlas supports creating platform passkeys through the WebAuthn API, but with a critical constraint: these passkeys are device-bound and cannot sync across devices or integrate with existing password managers.
When creating a passkey in Atlas, the authentication response reveals key characteristics. View the complete passkey debugger result.
The complete attestation response structure:
{ "authenticatorAttachment": "platform", "id": "3WdZppEzL4aki7N5rYDZkN4AMebVxQKKCCw5-Nr48Kk", "rawId": "3WdZppEzL4aki7N5rYDZkN4AMebVxQKKCCw5-Nr48Kk", "response": { "attestationObject": "o2NmbXRmcGFja2VkZ2F0dFN0bXSiY2FsZyZjc2lnWEcwRQIgJqZ34SrRZDef5wwv9HivRVeBV1TbtXdSf02ZPlrFny4CIQDDp3nuUZc8iSlfjMd1U5ahTY6eFRIOn7a7H9SBg5Q-TWhhdXRoRGF0YVikPpZrl-Wqt-OFfBpyy2SraN1m7LT0GZORwGA7-6ujYkNFAAAAAMNZbku1oUftuXkLQng2jR4AIN1nWaaRMy-GpIuzea2A2ZDeADHm1cUCiggsOfja-PCppQECAyYgASFYIBvmw3MGkihD6xtMJGHGuVppqiyIBAwTceS3IZv7PtDSIlggHHerXJuTzxnMtVghblDP10UA-V9OhSGWDRsyoLfU6yE", "clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiVlFHME1EQkVFVEg4Q3NaZGd6ZVh5Wno4VGwwaGU0OWNKMENfYjlJQ3RGdyIsIm9yaWdpbiI6Imh0dHBzOi8vd3d3LnBhc3NrZXlzLWRlYnVnZ2VyLmlvIiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ", "transports": ["internal"], "authenticatorData": "PpZrl-Wqt-OFfBpyy2SraN1m7LT0GZORwGA7-6ujYkNFAAAAAMNZbku1oUftuXkLQng2jR4AIN1nWaaRMy-GpIuzea2A2ZDeADHm1cUCiggsOfja-PCppQECAyYgASFYIBvmw3MGkihD6xtMJGHGuVppqiyIBAwTceS3IZv7PtDSIlggHHerXJuTzxnMtVghblDP10UA-V9OhSGWDRsyoLfU6yE", "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEG-bDcwaSKEPrG0wkYca5WmmqLIgEDBNx5Lchm_s-0NIcd6tcm5PPGcy1WCFuUM_XRQD5X06FIZYNGzKgt9TrIQ", "publicKeyAlgorithm": -7 }, "type": "public-key", "clientExtensionResults": {} }
Key fields from the attestation response:
Authenticator Attachment: "authenticatorAttachment": "platform" indicates the
passkey uses a platform authenticator (device-bound),
not a cross-platform authenticator.
Transport: "transports": ["internal"] confirms the credential is stored internally
on the device, with no external synchronization mechanism.
Credential ID: "id": "3WdZppEzL4aki7N5rYDZkN4AMebVxQKKCCw5-Nr48Kk" uniquely
identifies this passkey but provides no link to external credential stores.
The parsed attestation response reveals additional details:
{ "authenticatorAttachment": "platform", "id": "3WdZppEzL4aki7N5rYDZkN4AMebVxQKKCCw5-Nr48Kk", "rawId": "3WdZppEzL4aki7N5rYDZkN4AMebVxQKKCCw5-Nr48Kk", "response": { "attestationObject": { "fmt": "packed", "attStmt": { "alg": "ES256 (-7)", "sig": "MEUCICamd-Eq0WQ3n-cML_R4r0VXgVdU27V3Un9NmT5axZ8uAiEAw6d57lGXPIkpX4zHdVOWoU2OnhUSDp-2ux_UgYOUPk0" }, "authData": { "rpIdHash": "PpZrl-Wqt-OFfBpyy2SraN1m7LT0GZORwGA7-6ujYkM", "flags": { "userPresent": true, "userVerified": true, "backupEligible": false, "backupStatus": false, "attestedData": true, "extensionData": false }, "counter": 0, "aaguid": { "raw": "c3596e4b-b5a1-47ed-b979-0b4278368d1e", "name": "Unknown" }, "credentialID": "3WdZppEzL4aki7N5rYDZkN4AMebVxQKKCCw5-Nr48Kk", "credentialPublicKey": "pQECAyYgASFYIBvmw3MGkihD6xtMJGHGuVppqiyIBAwTceS3IZv7PtDSIlggHHerXJuTzxnMtVghblDP10UA-V9OhSGWDRsyoLfU6yE", "parsedCredentialPublicKey": { "keyType": "EC2 (2)", "algorithm": "ES256 (-7)", "curve": 1, "x": "G-bDcwaSKEPrG0wkYca5WmmqLIgEDBNx5Lchm_s-0NI", "y": "HHerXJuTzxnMtVghblDP10UA-V9OhSGWDRsyoLfU6yE" } } }, "clientDataJSON": { "type": "webauthn.create", "challenge": "VQG0MDBEETH8CsZdgzeXyZz8Tl0he49cJ0C_b9ICtFw", "origin": "https://www.passkeys-debugger.io", "crossOrigin": false }, "transports": ["internal"], "authenticatorData": "PpZrl-Wqt-OFfBpyy2SraN1m7LT0GZORwGA7-6ujYkNFAAAAAMNZbku1oUftuXkLQng2jR4AIN1nWaaRMy-GpIuzea2A2ZDeADHm1cUCiggsOfja-PCppQECAyYgASFYIBvmw3MGkihD6xtMJGHGuVppqiyIBAwTceS3IZv7PtDSIlggHHerXJuTzxnMtVghblDP10UA-V9OhSGWDRsyoLfU6yE", "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEG-bDcwaSKEPrG0wkYca5WmmqLIgEDBNx5Lchm_s-0NIcd6tcm5PPGcy1WCFuUM_XRQD5X06FIZYNGzKgt9TrIQ", "publicKeyAlgorithm": -7 }, "type": "public-key", "clientExtensionResults": {} }
Notable parsed values: "backupEligible": false and "backupStatus": false confirm these
credentials cannot be backed up or synced and the AAGUID
"raw": "c3596e4b-b5a1-47ed-b979-0b4278368d1e".
Atlas's client capabilities show broad WebAuthn feature support:
{ "conditionalCreate": true, "conditionalGet": true, "extension:appid": true, "extension:appidExclude": true, "extension:credBlob": true, "extension:credProps": true, "extension:credentialProtectionPolicy": true, "extension:enforceCredentialProtectionPolicy": true, "extension:getCredBlob": true, "extension:hmacCreateSecret": true, "extension:largeBlob": true, "extension:minPinLength": true, "extension:payment": true, "extension:prf": true, "hybridTransport": true, "passkeyPlatformAuthenticator": true, "relatedOrigins": true, "signalAllAcceptedCredentials": true, "signalCurrentUserDetails": true, "signalUnknownCredential": true, "userVerifyingPlatformAuthenticator": true }
Despite comprehensive WebAuthn capability support (including "hybridTransport": true for
QR code authentication), the device-bound nature
limits practical usability.
Platform passkeys in Atlas work similarly to security keys tied to specific devices. If you create a passkey on your laptop running Atlas, that passkey exists only on that laptop. You cannot:
ChatGPT Atlas introduces a new
Authenticator Attestation Global Unique Identifier (AAGUID):
c3596e4b-b5a1-47ed-b979-0b4278368d1e.
The AAGUID is a 128-bit identifier that indicates the
authenticator model. This identifier appears in the
authenticatorData (specifically in the attestationObject) during
passkey creation, allowing websites to determine
what type of authenticator created the credential.
For comparison, Chrome on Mac uses:
adce0002-35bc-c60a-648b-0b25f1f05503
Atlas's unique AAGUID signals that this is a distinct authenticator implementation, separate from existing browser-based credential managers.
By assigning its own AAGUID, OpenAI has created an independent passkey manager. This mirrors Google's early approach when they introduced Chrome Profile passkeys - device-bound credentials that predated Google Password Manager's synchronized passkeys.
Historical Context: Google initially launched passkeys tied to Chrome profiles without synchronization support. Only later did they enable syncing via Google Password Manager. Atlas appears to be following a similar trajectory: starting with device-bound, non-syncable passkeys that work only locally on the device where they're created, much like Chrome Profile passkeys before Google Password Manager integration.
While Atlas supports WebAuthn's cross-device authentication flow, the experience differs significantly from cloud-synced passkey ecosystems.
QR Code Flow: When accessing a website that requires authentication:
Practical Impact: This works but adds friction. Instead of seamlessly accessing your passkeys stored in iCloud or Google Password Manager directly within Atlas, you must use your phone as an intermediary.
Passkeys stored in iCloud Keychain or Google Password Manager: These remain accessible only via your mobile phone when using Atlas. You cannot directly access your synced passkey vault from within the Atlas browser.
Logging in to Google: Basic authentication to Google services works in Atlas (via OAuth / OIDC), but don't expect the seamless passkey experience you get in Chrome or Safari where your credentials are readily available.
The current limitations suggest Atlas's passkey implementation is in its early stages. Several developments seem likely:
Synchronization: OpenAI may eventually enable passkey synchronization across Atlas installations, similar to how Google evolved Chrome Profile passkeys into the synchronized Google Password Manager system.
Password Manager Integration: Future versions might integrate with existing credential stores (iCloud Keychain, Google Password Manager, 1Password, etc.), removing the current isolation.
OpenAI Agent Access: A compelling possibility is that OpenAI could make Atlas passkeys accessible to OpenAI agents. Imagine AI assistants that can authenticate on your behalf using securely managed passkeys - a natural extension of OpenAI's broader agent vision. This could enable agents to perform authenticated actions across services while maintaining security through passkey-based authentication.
ChatGPT Atlas represents OpenAI's ambitious entry into the browser space, but its passkey implementation remains limited. Let's answer the questions posed at the beginning:
Atlas supports passkeys, but only device-bound platform passkeys. These passkeys are created locally and cannot sync across devices or integrate with external credential stores. The implementation uses WebAuthn correctly but lacks the synchronization features users expect from modern passkey systems.
Yes, Atlas supports platform passkeys. The "authenticatorAttachment": "platform"
parameter and "transports": ["internal"] confirm that passkeys are created using the
device's platform authenticator. However, these are
isolated to the specific device where they're created.
No, Atlas cannot access existing credential stores like Google Password Manager or
iCloud Keychain. The unique AAGUID
(c3596e4b-b5a1-47ed-b979-0b4278368d1e) indicates a separate implementation that doesn't
integrate with external password managers. Your existing synced passkeys remain
inaccessible from within Atlas.
Do:
Don't:
For now, Atlas passkeys are best avoided for critical accounts. The infrastructure exists but lacks the polish and integration of mature passkey implementations in Chrome, Safari or Edge. As OpenAI develops Atlas, expect these capabilities to evolve - particularly if they pursue the vision of agent-accessible authentication.
Best Approach: Continue using established browsers and password managers for critical authentication while monitoring Atlas's evolution. When (and if) OpenAI enhances passkey support, the foundation they're building today will become more useful.
Related Articles
Table of Contents