Architecture & sécurité

Conçu pour le contexte institutionnel.

Chaque composant a été choisi pour sa simplicité, sa standardisation et sa vérifiabilité externe.

Preuve cryptographique

Trois preuves indépendantes, vérifiables hors logiciel.

Une administration auditrice peut vérifier ces trois preuves avec des outils standards (openssl, libsodium), sans dépendre de SYTADELUM.

I.

Ordre

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.

II.

Auteur

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.

III.

Date

RFC 3161

Une autorité de temps tierce atteste que la décision existait à cet instant — pas plus tard. Autorité souveraine algérienne configurable.

Sécurité applicative

Durcissement complet.

Les bonnes pratiques OWASP et les standards de durcissement HTTP sont appliqués par défaut, sans configuration supplémentaire requise.

DomaineMesure
AuthentificationArgon2id (RFC 9106), paramètres OWASP. Mot de passe jamais stocké en clair.
SessionsCookies HttpOnly + SameSite=Strict + Secure conditionnel. Sessions persistées en base, révocables.
HabilitationsRBAC trois rôles : Opérateur, Auditeur, Administrateur. Aucune élévation implicite.
Durcissement HTTPCSP stricte (no inline-script), CSRF tokens à double soumission, rate limiting par IP et par endpoint.
SauvegardeArchives 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éseauHTTPS direct ou reverse-proxy Caddy/Nginx. TLS interne ou Let's Encrypt.
Architecture

Sobre, standard, ré-auditable.

Pas de framework propriétaire. Pas de dépendance cloud externe. Tout le code, toutes les bibliothèques sont auditables.

Backend

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.

Frontend

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.

PDF arabe natif

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.

Déploiement

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.

Conformité

Loi 18-07 — dossier préparatoire fourni.

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.

Analyse d'impact

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.

Politique de confidentialité

Modèle prêt à adapter par l'institution avec ses durées, son DPO, ses obligations. Alignée articles 32 à 38.

Engagement de sous-traitance

Convention type éditeur ↔ institution (article 22), à signer en cas de prestation de support.

TSA souveraine

Préparation à une autorité de temps souveraine (auto-hébergée, Algérie Poste, air-gapped) en remplacement de FreeTSA.