Identity infrastructure is judged by how it behaves on the worst day, not the best. This page is the long-form list of what Kimezu defends against, how, and what's contractual versus aspirational.
Authentication credentials are the most sensitive surface in the system. Kimezu's approach is defensive depth (defaults that are hard to weaken, plus controls operators can tune).
Memory-hard hashing at m=64MB, t=3, p=1 by default. Operators can tune upward; we never accept downward changes that would weaken hashes.
Fail-closed exponential back-off on failed logins. Account lockouts are reversible only through a verified support workflow.
Distinct from per-account. Tarpit on probe patterns (credential stuffing, password spraying); honeypot tokens silently trigger alerts when used.
TOTP enrolment + signed-email recovery codes. SMS is not offered. WebAuthn / passkeys are on the roadmap (see Platform > Roadmap).
Operators set the policy (required for admins, optional for users, or required for everyone). Recovery is signed-email-only.
Tokens are signed with 2048-bit RSA. Public keys published via JWKS; rotation cadence is 24 hours by default, on-demand on operator action.
15-minute access, 30-day refresh by default. Refresh rotation is enforced; replay of a refresh token triggers revocation of the whole session family.
Operators set the policy per tenant; users enrol with any RFC 6238 authenticator app. SMS is intentionally not offered. Recovery codes are issued at enrolment and re-issued only through a signed-email workflow.
Authorization in Kimezu is a single function call per request, with the policy evaluated centrally and the enforcement happening in your application. This separation is the source of most of the strong guarantees we make.
Permissions in Kimezu are fine-grained statements about actions on resources, evaluated in context: who is acting, on behalf of what owner, in which application. The session JWT carries the effective can array, applications read it and decide locally without an RPC.
When a permission changes (a role is removed, a group membership ends, an agent is revoked), Kimezu invalidates the affected refresh tokens. Within fifteen minutes (or instantly via webhook push) the change has reached every connected app. There is no synchronization job; there is no "eventually consistent" identity state.
A user who is no longer a member of a group should not be a member of that group anywhere.
Principle of least privilege is enforced at grant time, not at runtime. Agents and delegated identities can never receive permissions their owner does not hold; the API call to grant such a permission is rejected before it ever produces a token.
// Application asks Kimezu before doing the thing. POST /v1/authz/decide Authorization: Bearer <session> { "action": "publish:article", "resource": "art_19f2", "owner": "grp_press_eu" } // → 200 { "allow": true, "reason": "editor-role" } // → 403 { "allow": false, "reason": "missing-grant" } // Most apps don't call this every request, the // "can" array on the JWT is enough. Use /decide // for ownership-aware authorization on hot paths.
Region is a configuration choice per tenant and a contractual one for the operator. Defaults are deliberately conservative.
Audit logs only matter if you can prove they haven't been tampered with. Kimezu's chain is HMAC-SHA-256 and the head is published hourly, any operator can verify without trusting us.
Every event that matters (sign-in, sign-out, permission grant, key rotation, agent revocation, tenant configuration change, payment-profile update) is recorded as a single entry. Each entry references the hash of the previous entry, so the whole log is a chain.
The HMAC key is tenant-scoped and never leaves the tenant's region. The chain head (the hash of the most recent entry) is published hourly to a separate observable endpoint. Anyone holding a copy of your audit log can verify its integrity by recomputing the chain and comparing against published heads.
Audit exports are available as CSV or JSONL with a stable schema. The data is shaped to drop into a SIEM without transformation (Splunk, Datadog, Sumo, or a humble Postgres table all work). We publish parsers for the common destinations.
{ "seq": 182_413, "ts": "2026-05-14T08:21:04Z", "tenant": "rozuro", "actor": "usr_8f2b3e1c", "event": "session.create", "app": "rozuro.com", "ip": "203.0.113.42", "method": "magic-link", "prev_hash": "d4f1..ab", "hash": "71e0..3c" } // hash = HMAC_SHA256(tenant_key, // prev_hash || JSON.minimal(entry))
Kimezu runs a coordinated disclosure programme. We do not threaten researchers. We pay bounties on the production environment and credit findings publicly with permission.
We are explicit about what Kimezu's contracts cover and what they don't. Compliance theatre is more dangerous than honest scoping.
| Standard | What it covers | Kimezu position | Notes |
|---|---|---|---|
| GDPREU general data protection. | Personal data lawful processing | ● Native & contractual | DPA + SCC pre-signed |
| ISO 27001Information security management. | Management system, controls catalogue | ● Certified · 2025 | Audited annually · BSI NL |
| SOC 2 Type IIUS-style controls report. | Operational controls over time | ● Report on request | NDA required · 12-mo period |
| EU NIS2EU cybersecurity directive. | Critical / important entity duties | ● Scoped in | We are an important entity |
| HIPAAUS healthcare. | Protected health information | · Self-hosted only | BAA available under Self-hosted |
| PCI-DSSPayment cards. | Cardholder data | · Out of scope | Processors handle card data, not us |
| FedRAMPUS federal cloud. | US government workloads | ○ Not pursued | Kimezu is EU-first; not a goal |
Operators evaluating Kimezu under GDPR need names, regions and signed documents, not "we sign one before you start." Below is the public list. The DPA and SCCs are downloadable PDFs.
TODO · region TODO
TODO · region TODO
Stripe, Mollie, PayPal (each governs its own data handling per the operator's payment-profile choice). Kimezu records routing and VAT treatment; processors hold the cardholder data.
TODO · specific facility TODO
We notify operators within 24 hours of confirmed incident detection, with detail sufficient for them to file their own 72-hour GDPR Art. 33 notice.
GDPR Art. 17 maps directly to DELETE /api/account, one API call, documented in the API reference. Not a support ticket.
Default retention: TODO months
Default retention: TODO days
7 years, Dutch fiscal requirement for the operator's accounting records.
This page sets no analytics, marketing, or third-party cookies. The sign-in surface for every tenant carries the same posture by default.
Multi-device desk, one identity across all of them
A tamper-evident chain is only useful if someone, somewhere, has a copy they can verify. The audit log is the document of record (exportable, externally verifiable, on every plan). Most of the work in adopting Kimezu's security posture is doing nothing surprising.
SIG, CAIQ, SCC, DPA, BAA, ISO statement of applicability, we keep them current and send them under NDA. No security-theatre PDFs.
PGP key on the security page · mirrored on Keybase.
Public scope, no NDA, credit on the security page by default.