Skip to content

Tessera

Zero-knowledge auth, open source.

Tessera is Ciphera’s open-source OPAQUE authentication library. The user proves their password without ever sending it — released under Apache-2.0 so the claim can be checked against code, not taken on trust.

Apache-2.0OPAQUE (RFC 9807)Rust · Go · TypeScript

01 · What it is

An OPAQUE library you can read

OPAQUE (RFC 9807) is an asymmetric password-authenticated key exchange: the password is proven to the server, never transmitted to it. Tessera is our implementation of it, packaged as three libraries so it can run wherever authentication happens — the server, the browser, and the cryptographic core between them.

  • Apache-2.0 — permissive, and free to inspect, fork, and reuse
  • A language-neutral conformance kit so implementations can be checked for parity
  • Rust core with a published self-audit and threat model
  • CI-gated cross-language parity tests

Honesty over marketing: Tessera has not yet had an independent third-party security audit. What exists today is a self-audit, a threat model, and conformance vectors anyone can run — see the open source & audit status on our trust hub.

02 · Packages

Three packages, one protocol

Rust

tessera

OPAQUE core + sidecar

The cryptographic core — an OPAQUE (RFC 9807) implementation and an HTTP sidecar. Configuration #1: ristretto255-SHA-512, 3DH, Argon2id.

Go

tessera-go

Server SDK

The Go server SDK — the registration and login flows a backend needs to speak OPAQUE, with the crypto handled by the Rust core.

TypeScript

tessera-ts

Browser SDK

The browser SDK that runs the client half of OPAQUE in the user’s browser. Published on npm as @ciphera-net/tessera.

03 · Why OPAQUE

The password never reaches the server

Most login systems send your password to the server, which then hashes and compares it. OPAQUE removes that step entirely. The client and server run a key exchange in which the server verifies you know the password without ever receiving it. The server stores only an OPAQUE record — not a password, and not a password hash.

Browser
tessera-ts

password

••••••••

proof

a7f3c8e1b9d2…

only the proof crosses — never the password
Server
tessera-go

proof

a7f3c8e1b9d2…

stored record

9f2c4e8a…b1d7

tessera (Rust core) runs the OPAQUE math on both sides

  • The password is never transmitted, so a compromised server cannot leak it
  • No plaintext password to phish from the wire or log by accident
  • A server breach exposes no password hashes to crack offline
  • The exchange also yields a key material the client can use to unwrap a vault key

New to the term? Read the plain-language definition of OPAQUE in our glossary.

04 · Who uses it

It runs in production at Ciphera

Tessera is not a demo. It is the authentication layer behind Ciphera ID and the auth for Pulse. The same open code you can read is the code that verifies real Ciphera logins — the cryptographic core our whole platform depends on.

For how this fits the wider architecture, see the zero-knowledge architecture section of our trust hub.

05 · Get the code

Read it, run it, build on it.

The three Tessera repositories are public on GitHub and published to crates.io, npm, and the Go module registry. Apache-2.0 throughout.