Controls in release 1.0, known gaps and what must be in place before real patient data is entered. Not legal advice.
Release 1.0 keeps all patient data encrypted in the user’s browser and sends nothing to a server. That removes server-side attack surface but puts the weight on the device, the sign-in and the backup routine. It is suitable for synthetic data, pilots and single-user clinical work on a managed device. Multi-user clinical production needs the server edition.
| Area | Control |
|---|---|
| Authentication | Password checked against a salted PBKDF2-SHA256 hash (310,000 rounds); optional authenticator app (TOTP) with recovery codes; lockout after repeated failures; automatic lock after 15 minutes idle. |
| Encryption at rest | AES-GCM vault; key derived from the password and never stored. |
| Encryption in transit | Not applicable to patient data (none is transmitted). The page itself must be served over HTTPS. |
| Content security | Strict Content-Security-Policy: no external scripts; network requests limited to the same site. |
| Roles | Clinician, data manager, administrator, researcher. Researcher is read-only, sees no names or dates of birth, gets de-identified exports only and masked small counts. |
| Audit | Every create, change, state change, extraction review, ranking run and export is logged with time, role and user. |
| Data minimisation | Optional fields for gender identity and ancestry; research exports drop names, dates of birth, contacts, clinician names and free text. |
| Pseudonymisation | Random research key per patient, unrelated to the patient ID. |
| Consent | Recorded per purpose; withdrawal blocks research exports. |
| Integrity | Verified records are locked; changes need an amendment with a reason. |
| Risk | Effect | Mitigation |
|---|---|---|
| One shared sign-in | Roles are a working mode, not separate accounts; the audit trail records the name typed in settings. | Use on a personal managed device; move to the server edition for teams. |
| Data lives in one browser | Clearing site data or losing the device loses the data. | Export a backup after each session to approved secure storage; the backup file is not encrypted. |
| Backup file is plain JSON | Anyone with the file can read it. | Store only on encrypted, access-controlled storage; never email. |
| Malware or shared device | An unlocked session exposes data. | Managed device, screen lock, authenticator app enabled. |
| Free-text notes | May contain identifiers that structured de-identification misses. | Free text is left out of research exports. |
| Re-identification from rare phenotypes | A rare combination of findings can identify a person even without a name. | Minimum cell size on counts; governance review before any external sharing. |
| Decision support | Ranking or extraction could be over-trusted. | Labelled as research-use; human acceptance required; not a diagnosis. |
© Tribro-Omics · Security and privacy assessment · Version 1.0 · 11 November 2026