EduBoard

Security overview

For a school's IT or data protection review · 28 September 2026

In short
  • The teacher's app keeps student data on the teacher's computer, not in a cloud. It can encrypt everything and lock itself.
  • The Portal holds only what the teacher publishes and what families add. It uses HTTPS only, hashed passwords, rate limits, and checks on every request that a family sees only their own children.
  • What isn't done yet is listed at the end: no code signing, no independent audit or certification, and no two-step sign-in so far.
What is kept, where and for how long is in the privacy notice; the commitments a school can sign are in the data processing terms.

1. The teacher's app

Where data lives A database file on the teacher's computer, and backups the teacher makes. There is no EduBoard account and no cloud copy.
Encryption With password protection on, the database and its backups are encrypted with a random 256-bit key (ChaCha20-Poly1305, SQLite3 Multiple Ciphers). That key is stored only encrypted (AES-256-GCM) under the teacher's password and under a recovery key, each stretched with scrypt; it is never stored in plain form.
Locking With password protection on, a lock screen at start and automatic locking after a set idle time (10 minutes unless the teacher changes it). Presenting mode shows only class screens and hides pages with private details while the screen is shown to a class.
Record of changes Every grade, attendance, enrolment and homework change is logged with when it happened. A removed student's entries are kept for 12 months, then deleted. A student can be erased completely, including from the Portal.
Network Only what the teacher sets up: publishing to the Portal (HTTPS), AI suggestions with the teacher's own key (sent only when the teacher asks), DingTalk or WeCom group posts, update checks, and an anonymous weekly count that is off unless turned on. Exit tickets stay on the classroom Wi-Fi. Files downloaded from the Portal are marked as coming from the internet, so the operating system checks them.
Updates From EduBoard's GitHub releases over HTTPS (relayed by the Portal where GitHub is blocked), with the file size checked. A backup is made before an update installs.

2. The Portal

Connections HTTPS only, with certificates from Let's Encrypt (Caddy). Browsers are told to use HTTPS for the site from then on (HSTS).
Passwords At least 8 characters, stored only as bcrypt hashes. A family changes their own password with the current one; a forgotten one is reset by the teacher, which signs the account out everywhere.
Sessions A signed cookie that scripts can't read (HttpOnly, Secure, SameSite=Lax), valid for 30 days, cancelled everywhere when the password changes or is reset.
Who sees what Checked on every request: a family sees only the children linked to their login, and only those children's classes. Each teacher publishes with their own sync secret and sees only their own classes. Sync and admin secrets are stored only as hashes, and a teacher's secret is shown once, when it's made.
Guessing and flooding Limits on sign-in attempts per address (50 in 15 minutes) and per username (10 failures in 15 minutes), on invite and QR links, on wrong secrets, on password changes and on AI use. Request sizes are limited before anything is read.
Uploaded files Checked by their contents, not their names: programs and Office documents with macros are refused, and only expected types are accepted (PDF, Office, images, text). Size limits: 20 MB for handed-in work, 25 MB for teachers' attachments, 10 MB for a report card.
Pages Nothing is loaded from other websites: no analytics, advertising, outside scripts or fonts. Pages can't be framed by other sites, links don't leak addresses (no referrer), and errors never show internal details, only a code and a reference.
AI keys The teacher's AI key for the Study Helper and translation stays on the server and is never sent to a browser.
Demo login The public demo (username demo) sees only a made-up class under its own teacher, and its password, email and QR logins can't be changed.

3. Running portal.edu-board.com

4. Not done yet

5. Reporting a problem

If you find a security problem, write to privacy@edu-board.com, or report it privately on GitHub, with what you found and how to see it. Please don't test against other people's accounts or data. You'll get an answer, and a fix as soon as it can be made.