veyns

Security

Protocol

OpenID Connect Authorization Code with PKCE (S256) only, following the OAuth 2.0 Security BCP (RFC 9700): exact redirect URI matching, single-use short-lived codes, rotating refresh tokens with family revocation on reuse, and token revocation.

Ceremony

Every approval requires two independent proofs verified by the service: a post-quantum wallet signature (ML-DSA-44) over a server-built envelope covering the registered application, the intent, the exact action digest, and the transaction lifetime; and a WebAuthn assertion with user verification, checked against the credential registered at enrollment. The consent screen renders only registered application data, never request parameters.

Keys

ID tokens are signed ES256 by default (verifiable by any library) or ML-DSA-44 by choice; both public keys are published in the JWKS. Wallet private keys never leave the person's device; the service stores public keys only.

Known sandbox limits

Stated plainly: storage is file-backed (hourly backups) rather than a replicated database; wallet private keys live in browser storage guarded by the WebAuthn ceremony rather than hardware key stores; palm-vein hardware assurance is not yet live; and the deployment has no formal SLA. These are engineering milestones, not marketing footnotes.

Reporting

Found something? Write to info@veyns.io. We prefer honest bad news early.