Six pillars
Each pillar maps to controls your IT or DPO will ask about.
EU data residency
Customer data is stored on EU infrastructure. Sub-processors are listed in the DPA and reviewed annually.
Encryption everywhere
TLS 1.2+ in transit. AES-256 at rest. Webcam evidence is stored in a private bucket and signed-URL only.
Row-level tenant isolation
Every table is protected by Postgres Row-Level Security. A university admin only ever sees their own institution's data — enforced at the database, not the app.
Least-privilege access
Roles: student, university_admin, super_admin. Server functions check role on every call. Anon and authenticated database roles have minimum surface.
Auditable proctoring
Every snapshot, flag, and admin action is logged with timestamp, actor, and rationale. Admins can export the full session evidence pack.
Hardened infrastructure
Edge-deployed application, managed Postgres, signed-URL storage, daily backups with point-in-time recovery.
Compliance posture
GDPR-aligned
Clear lawful basis (legitimate interest + consent for biometrics where applicable), data subject access workflow, 30-day evidence retention default.
Standard DPA
Signed Data Processing Agreement available before pilot. Lists sub-processors, retention, and data export commitments.
Right to erasure
Per-student deletion endpoint. Removes profile, evidence, and analytics within 30 days of request.
Breach notification
Customer notified within 72 hours of confirmed personal data breach, with scope and remediation plan.
We're not yet ISO 27001 certified. We follow the controls but don't claim the badge — happy to share our control mapping under NDA.
Application security
Password security
Have-I-Been-Pwned leaked-password protection enabled. Minimum 8 characters. Optional SSO via Google.
Session integrity
Short-lived JWTs, refresh rotation, exam sessions tied to a single browser+IP+camera token. SEB header verification on the live exam page.
Rate limiting
Demo requests: 3/min/email. Snapshots: 60/min/session. Flagged events: 120/min/session. Server-enforced via Postgres triggers.
Code review
All schema changes go through migration review. Security linter runs on every backend change.
Evidence lifecycle
The most sensitive data we hold is webcam evidence. Here's exactly what happens to it.
- Step 1
During exam
Snapshots and audio captured locally in the browser, uploaded over TLS to a private bucket. Only the student and authorised admins can read them.
- Step 2
Review window
Admins can replay the session, view flags, and export an evidence pack (zipped snapshots + event log + timeline).
- Step 3
Retention
Evidence auto-purges after the contracted retention period (default 30 days). Per-student deletion is available on request.
Found something?
We welcome responsible disclosure. Email security@examguard.app with steps to reproduce. We acknowledge within one business day, fix critical issues within 7 days, and credit the reporter unless asked otherwise.
