Biometric gating
Every assertion is gated by Face ID or Touch ID — no passcode fallback. SecAccessControl enforces it at the hardware level, not a checkbox in software.
Titanium Passkey is an offline credential provider for iPhone, iPad, and Mac. Private keys live in the Secure Enclave, gated by Face ID or Touch ID. No cloud. No sync. No account. Just signatures that never leave the device.
Every passkey is a P-256 key pair generated inside Apple’s dedicated security coprocessor. The private half can never be exported — not by us, not by iOS, not by you.
Every assertion is gated by Face ID or Touch ID — no passcode fallback. SecAccessControl enforces it at the hardware level, not a checkbox in software.
EC P-256 keys created with kSecAttrTokenIDSecureEnclave. Signatures happen on-chip. Private key material never touches RAM accessible to iOS.
No backend. No telemetry. No analytics. The Credential Provider extension — the process that touches every passkey — ships without a network entitlement. Nothing to exfiltrate, even if we wanted to.
Standard ES256 (COSE alg -7) over WebAuthn. Works with every passkey-capable site — GitHub, Google, your bank, your self-hosted app.
Registers as a Credential Provider via AuthenticationServices. Sign-in sheets appear natively in Safari and every iOS app that speaks WebAuthn.
Delete the app and the keys go with it — exactly as they should. Nothing to cancel, no backups to shred, no account to close.
Most authenticators implement the core create and get operations and stop there. Titanium Passkey goes further — so the sites that care about modern passkey UX can use it.
When exactly one passkey matches the request, skip the picker. Face ID or Touch ID fires immediately — one glance and you’re in. Turn it off if you prefer explicit confirmation.
Sites that ask for passkeys through the conditional UI flow get offered a matching credential inline, without interrupting the password field. Native support, no shims.
Upgrade a password login to a passkey in the background while the user signs in. iOS’s SupportsConditionalPasskeyRegistration flag is on — sites that opt in get seamless upgrades.
The prf extension (WebAuthn’s hmac-secret) is fully supported. Web apps that bind encrypted data to a passkey — e.g. E2EE document apps — get deterministic, per-site secrets derived in the Secure Enclave.
The default tier is silicon-bound, single-device. If you want a specific credential to sync through iCloud Keychain instead, flip it on per-passkey. The trade-off is explained in-app, not hidden in settings.
Sign in from any desktop — Windows, macOS, Linux, Chromebook — without a passkey manager installed there. On the browser’s passkey prompt pick “Use a Device Nearby” / “Other Options”, scan the QR code, approve with Face ID or Touch ID on your iPhone. Over Bluetooth, the way Apple’s spec intends.
iOS routes WebAuthn requests to the Credential Provider extension. Titanium Passkey responds — or stays out of the way.
A website or app issues a WebAuthn challenge. iOS surfaces enrolled providers.
Select Titanium Passkey from the AutoFill sheet. The extension wakes up in-process.
Face ID or Touch ID unlocks the private key inside the Secure Enclave. One glance.
The assertion is signed on-chip and handed back to iOS. You’re in. No round-trips.
There are three rough schools of passkey storage. Each trades something different away. Titanium Passkey is built for the threat model the other two don’t fully cover — theft of the device itself.
iCloud Keychain · Google · Microsoft
YubiKey · Titan · SoloKey
Secure Enclave · biometric-gated
YubiKey Bio and similar models do add on-device fingerprint verification — they’re closer to what we do, but the sensor is tiny, fingerprint-only, and newer. Face ID adds depth and liveness detection that a capacitive pad on a USB token can’t match. Titanium Passkey rides on hardware that’s had a decade of anti-spoof work baked in.
Most password managers are built around sync.
We built this one around the opposite idea.
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly.
For the engineers.
ES256 (COSE -7)
kSecClassKey + metadata
biometryCurrentSet + privateKeyUsage
AuthenticationServices
none — privacy-preserving
Titanium Passkey is in development. Follow along for the App Store release.