Chaque composant a été choisi pour sa simplicité, sa standardisation et sa vérifiabilité externe.
Une administration auditrice peut vérifier ces trois preuves avec des outils standards (openssl, libsodium), sans dépendre de SYTADELUM.
SHA-256 chaîné
Aucune entrée ne peut être insérée, modifiée ou supprimée sans casser la chaîne d'intégrité du journal métier et du journal d'audit.
Ed25519 · RFC 8032
L'instance qui a écrit la décision est cryptographiquement identifiable et non répudiable. Clé privée chmod 600 hors arborescence du serveur web.
RFC 3161
Une autorité de temps tierce atteste que la décision existait à cet instant — pas plus tard. Autorité souveraine algérienne configurable.
Les bonnes pratiques OWASP et les standards de durcissement HTTP sont appliqués par défaut, sans configuration supplémentaire requise.
| Domaine | Mesure |
|---|---|
| Authentification | Argon2id (RFC 9106), paramètres OWASP. Mot de passe jamais stocké en clair. |
| Sessions | Cookies HttpOnly + SameSite=Strict + Secure conditionnel. Sessions persistées en base, révocables. |
| Habilitations | RBAC trois rôles : Opérateur, Auditeur, Administrateur. Aucune élévation implicite. |
| Durcissement HTTP | CSP stricte (no inline-script), CSRF tokens à double soumission, rate limiting par IP et par endpoint. |
| Sauvegarde | Archives chiffrées AES-256-CBC, PBKDF2, phrase de chiffrement hors infrastructure. |
| Observabilité | Logs structurés JSONL, request-id propagé, endpoint /api/healthz opérationnel. |
| Confidentialité réseau | HTTPS direct ou reverse-proxy Caddy/Nginx. TLS interne ou Let's Encrypt. |
Pas de framework propriétaire. Pas de dépendance cloud externe. Tout le code, toutes les bibliothèques sont auditables.
Python 3.10+, Flask 3, SQLAlchemy 2, SQLite (passage PostgreSQL trivial).
Empreinte serveur ~50 Mo dépendances incluses. Une décision archivée + signée + horodatée occupe ~4 Ko.
HTML5 + JS modules natifs + CSS. PWA installable, fonctionnement hors-ligne après première connexion.
Pas de React, Vue, Angular. Pas de bundler. Lecture du code possible en quelques heures.
ReportLab + arabic-reshaper + python-bidi. Polices Cairo (OFL) embarquées localement, jamais Google Fonts.
PDF arabe ~175 Ko (subset Cairo + logo optimisé), envoyable par mail institutionnel.
Poste local, serveur interne, ou conteneur Docker. Configuration TLS via Caddy ou Nginx. systemd pour démarrage automatique.
Du POC à la production, sans réécriture. Le même binaire s'adapte.
SYTADELUM est livré avec un dossier de conformité préparatoire à la Loi n° 18-07 du 10 juin 2018 relative à la protection des personnes physiques dans le traitement des données à caractère personnel.
Finalité, base légale, catégories de données, durées de conservation, grille de risques, mesures techniques et organisationnelles. 8 sections, articles 14, 18, 26, 28, 32 cités.
Modèle prêt à adapter par l'institution avec ses durées, son DPO, ses obligations. Alignée articles 32 à 38.
Convention type éditeur ↔ institution (article 22), à signer en cas de prestation de support.
Préparation à une autorité de temps souveraine (auto-hébergée, Algérie Poste, air-gapped) en remplacement de FreeTSA.