Documentation
/
Core Concepts
/
How It Works

How It Works

End-to-end architecture of Hawcx authentication — what happens on-device, what hits the network, and how every step is secured.

System Architecture

Hawcx splits responsibility across four layers. Cryptographic secrets never leave the device, your backend never sees them, and Hawcx Cloud only receives zero-knowledge proofs.

Loading diagram...
LayerWhat lives hereWhat it never sees
DevicePrivate keys, biometric binding
SDKState machine, UI steps, PKCE challengePrivate keys (handled by device APIs)
Your BackendOAuth client, session logicPrivate keys, raw proofs
Hawcx CloudProof verification, challenge issuancePrivate keys, session tokens

Authentication Flow

When a user authenticates, the SDK drives a state machine through a series of steps. Here is the full sequence for a returning user:

Loading diagram...

Key points:

  • Steps 3–6 happen on-device. The private key is accessed through platform secure storage (Keychain, StrongBox, TPM) and never serialized or transmitted.
  • The proof is zero-knowledge. Hawcx Cloud learns that the user controls the device — nothing more.
  • PKCE prevents interception. The codeVerifier is generated client-side and never sent to Hawcx. Only your backend can exchange the auth code.

Device-Bound Proof Generation

Unlike passkeys, Hawcx keys are non-exportable and non-syncable. Each device holds its own key material, bound to the hardware secure element.

Loading diagram...

Why this matters:

PropertyPasskeysHawcx
Key storageCloud-synced across devicesDevice-only, hardware-bound
TransferabilityCan be shared, exportedNon-exportable by design
Key lifetimeLong-lived public key on serverEphemeral per-session keys
Quantum exposureHarvest-now-decrypt-later riskNo long-lived keys to harvest

Three-Tiered Verification Chain

What makes the Hawcx protocol structurally different from FIDO2 or any other authentication system is its three-tiered sequential verification. Each tier uses a fundamentally different class of cryptographic primitive. An attacker must defeat all three — independently — to bypass authentication.

TierPrimitiveWhat it provesWhat blocks it
1. Hash commitmentSHA-256Client state is consistent (correct user, device, domain)A single bit wrong → completely different hash → instant rejection
2. Symmetric verificationAES-GCM-256 (AEAD)Client holds the correct vault-derived key + server data is untamperedWrong key → decryption fails. Tampered data → authentication tag fails
3. Asymmetric proofEd25519 signatureClient possesses the actual private keyForging a signature without the key is computationally infeasible

Why the ordering matters: The tiers are arranged from cheapest to most expensive, and from broadest to most specific. Tier 1 (hash check) rejects invalid requests instantly without any decryption. Tier 2 (symmetric) rejects without signature verification. Only legitimate requests reach the expensive Tier 3 signature check. This creates natural rate-limiting and makes denial-of-service attacks against the verification chain impractical.

Why this exceeds FIDO2: FIDO2 uses a single-tier model — challenge → signature → verify. One cryptographic barrier. Hawcx interposes two additional verification tiers (hash commitment and symmetric AEAD mutual authentication) before reaching the same asymmetric signing step. Three mathematically independent barriers built on different hardness assumptions.

Mutual Authentication

Most authentication is one-directional: the server verifies the client. But how does the client know the server is legitimate?

Hawcx provides dual-AEAD mutual authentication. During Tier 2, the symmetric verification works in both directions:

  • Client → Server: The server verifies the client's key is correct via AEAD decryption of stored data
  • Server → Client: The server returns encrypted data that only the legitimate server could produce. The client's AEAD decryption verifies the server holds the original registration data, untampered

This means a rogue server cannot impersonate Hawcx Cloud. The client cryptographically verifies server authenticity before proceeding to the signature step — a property FIDO2 does not provide at the protocol level.

Security Properties

Each layer of the architecture prevents a specific class of attack:

AttackHow Hawcx prevents itWhere
PhishingCredentials are device-bound — nothing to type, nothing to stealDevice layer
Credential stuffingNo passwords or shared secrets existDevice layer
Server breachServer stores only double-hashed indexes and encrypted keysets — no plaintext credentialsHawcx Cloud
Man-in-the-middleDual-AEAD mutual authentication + domain-bound challenge signingSDK ↔ Cloud
Token interceptionPKCE ensures only the originating client can exchange the auth codeSDK ↔ Backend
Replay attacksEphemeral keys, unique challenges, and nonces make each proof single-useDevice + Cloud
Harvest-now-decrypt-laterNo long-lived public keys stored on server. Three independent layers of quantum resistance at restDevice layer
Session hijackingYour backend controls session policy (cookies, TTL, rotation)Your Backend
Rogue serverClient verifies server authenticity via AEAD before signingSDK ↔ Cloud

What happens next

Now that you understand the architecture, you can: