Security architecture

Ultra safe by design, verifiable in code.

Security decisions follow OWASP ASVS 5.0, OWASP Top 10:2025, NIST SP 800-63B-4 and the OWASP cheat sheets. Here is what that means in practice.

In short: HealthIntelligence reaches HealthVault only through four independent locks, requires two-step sign-in, stores no health records, encrypts every secret, and runs as a sandboxed service with strict browser security policies.

Last updated

Four locks to HealthVault

Only HealthIntelligence can call the HealthVault integration API, and only with all four: a client certificate from a private authority over TLS 1.3, an Ed25519 signature on every request with single-use nonces and a 60 second clock window, your own scoped and revocable connection code, and responses encrypted to our key with X25519, HKDF-SHA256 and AES-256-GCM and signed by HealthVault. A response that fails any check is discarded.

Accounts and sign-in

Passphrases of at least 15 characters (any language and symbols), checked against common and breached passwords using k-anonymity, stored with Argon2id and a separate server secret. Two-step sign-in with an authenticator app is mandatory, codes are single use, recovery codes are one-time, and repeated failures lock the account.

Data minimisation

HealthIntelligence does not keep your health records. They are read when you run an analysis, processed in memory and dropped after at most 10 minutes or when you sign out. The connection code, the authenticator secret and your optional profile are encrypted with AES-256-GCM, bound to your account.

Web hardening

Strict Content Security Policy with no inline code, HSTS, frame blocking, cross-origin isolation, SameSite=Strict host-only cookies, CSRF checks on every write, request size limits, generic error messages and no third-party scripts, fonts or trackers.

Service isolation

The service runs as its own unprivileged user under systemd sandboxing (read-only system, private temp, no new privileges, restricted system calls and address families), listens only on the local interface behind the TLS proxy, and receives keys as systemd credentials.

Tested continuously

More than 270 automated tests, including 100 synthetic European personas and dedicated security tests for sessions, CSRF, throttling, enumeration, encryption, tampered HealthVault responses and replay. Static analysis and dependency audits run before every release.

At a glance
Locks to HealthVault4 independent (mTLS 1.3, Ed25519 signature, your grant, sealed response)
Passphrase15 to 128 characters, breach-checked
Password hashingArgon2id, 19 MiB, 2 passes, plus server pepper
Two-step sign-inMandatory, 30 second codes, 10 recovery codes
Session15 minutes idle, 8 hours maximum
Health data storedNone (in memory for at most 10 minutes)
Automated tests377, including 46 security tests and 100 personas
Sandbox exposure score1.2 (systemd, "OK")
Price0 EUR during the pilot

Is any AI language model used on my health data?

No.

Records are parsed by deterministic, auditable code. Content inside your documents is treated as untrusted data: it is pattern-matched, never followed. Nothing is sent to analytics, advertising or AI services.

How do I report a vulnerability?

Found a vulnerability? See security.txt and write to me@karllillrud.com. Please do not access other people's data.

Security questions

Can HealthIntelligence staff read my health records?

No health records are stored, so there is nothing to browse. Records are read from HealthVault only while you run an analysis and are dropped within 10 minutes.

What happens if someone steals my password?

They still need your authenticator code. After 10 failed attempts the account locks for 15 minutes, and every sign-in appears in your security events.

Can another app use my HealthVault connection code?

No. The code only works together with the HealthIntelligence client certificate and signing key, and you can revoke it in HealthVault at any time.

Is my data used to train AI?

No. No health content is sent to any AI language model, analytics or advertising service.