Encrypted secrets
- Checks show up here as soon as the server answers.
Private and secure
Your school logins, your grades, your messages: here is how they are protected, and the results of the automatic checks that run on the real server every hour, following OWASP standards.
The proof
Each check tests the running service, not a copy: the database, the API, the public addresses and the libraries. The references point to the OWASP requirements it covers. Details are in French.
Your school logins
To fetch your grades and homework every 5 minutes, CoolRoom has to log in to Pronote or Skolengo for you. So it keeps your login, but never in plain text.
Each login is encrypted with its own random 256-bit key, using AES-256-GCM.
That key is itself encrypted by a master key kept outside the database (AES Key Wrap).
The encryption is tied to your account and your school: copied anywhere else, it no longer opens.
It is only decrypted to talk to your school, and never shows up in the logs.
A stolen database alone is not enough: without the master key it only holds unreadable text. CoolRoom's server itself can decrypt, because it needs to in order to sync: so this is not end-to-end encryption.
In place
Your CoolRoom password is never stored, only an Argon2id fingerprint. Very common passwords are refused.
The server checks every request: without a valid session, no private route answers. Parents only get a limited, read-only view.
By default a notification says "New grade", never the subject, the sender or the message. You can show the content in Settings.
Login, two-factor, class and parent codes, connecting your school: after a few tries, you have to wait.
Passwords, tokens, keys and cookies are masked before anything is written, and the server re-reads its logs every hour.
Photos read by OCR are not kept; chat photos leave the server after their time, and you can erase everything.
The server's libraries are compared to known flaws every hour (OSV.dev), and the live version passed all its security tests.
HTTPS everywhere, a strict Content Security Policy, no unknown script, no page that can be framed.
Our reference
OWASP is the foundation that publishes the security standards for web applications. We follow its ASVS 5.0 at level 2, the level meant for apps handling sensitive data, and its API Security Top 10.
The requirement-by-requirement detail is kept in our documentation and reviewed at every version. Internal assessment: no external audit has taken place yet.
253 requirements
Honestly
Report
Thank you! Tell us privately and don't publish the details before it is fixed. Describe what you saw and how to reproduce it, without touching other students' data.
We answer, we tell you when it is fixed, and we thank you here if you wish.
No address at hand? In the app, tap the BETA badge on the home screen ("Report a bug") and start your message with "Security".
Page reviewed on 15 October 2026 · version 0.9.4