Security & Privacy
We take your privacy and data protection seriously. This page explains in simple terms how we keep your information safe.
Password Protection
Your password is never stored in plain text. When you create or change your password, it is securely processed using Argon2 — one of the strongest password hashing algorithms available today. Even if our database were ever compromised, your original password would remain unknown.
Argon2 adds a unique, random salt to every password and performs computationally expensive operations, making it nearly impossible for attackers to guess or crack passwords through brute force.
Two-Factor Authentication (2FA)
To further protect your account, two-factor authentication (2FA) is mandatory. You can choose to receive a one-time code by email or through an authenticator app. This means that even if someone knows your password, they cannot access your account without this second verification step.
Data Encryption
Sensitive information — such as medical history, allergies, or emergency contact data — is encrypted using HashiCorp Vault’s Transit Engine. This system ensures that even the application itself never stores or sees your data in plain text.
- All sensitive fields are encrypted before being saved to the database.
- Only non-sensitive fields like usernames or IDs remain readable.
- Vault performs the actual encryption and decryption through secure internal API calls.
- Automatic key rotation ensures that encryption keys are updated regularly for maximum security.
- Encryption includes a context parameter, which makes ciphertexts valid only in their intended use.
The Vault service runs in a separate container on the same server as the application. This ensures both security isolation and high performance. The communication between the app and Vault is authenticated using special credentials, known only to the Flask application.
Secure Communication & Storage
All connections to the application are encrypted using HTTPS (TLS). This ensures that data transmitted between your browser and our server cannot be intercepted or modified.
Data is stored in a PostgreSQL database, accessible only to the Flask application through a limited set of credentials that allow read/write operations — but no administrative access such as user management.
This principle of least privilege minimizes risk, even if an attacker were to gain temporary access to the system.
Your privacy is not just a feature — it’s a core design principle of the Fiche Médicale application.
If you have any questions or concerns, please don't hesitate to contact us.