Read in English · Leer en español · Auf Deutsch lesen
Chapitre 8 sur 12 · Intermédiaire à avancé
Sécurité, confidentialité et conformité dès la conception
La sécurité et la protection de la vie privée sont des qualités de la structure d’un système, déterminées par l’emplacement des frontières de confiance, par qui peut faire quoi et par le chemin que suivent les données. Ce chapitre couvre les principes de la conception sécurisée, la modélisation des menaces avec des diagrammes de flux de données, STRIDE et les arbres d’attaque, l’identité et l’accès avec OAuth 2.0 et OpenID Connect, le chiffrement, la gestion des clés et les secrets, le zero trust entre services, la sécurité de la chaîne d’approvisionnement logicielle, la protection de la vie privée dès la conception au titre du RGPD, et la sécurité en exploitation. Il s’adresse aux développeurs et aux architectes qui connaissent les architectures distribuées et les architectures de données des chapitres 6 et 7 et qui doivent maintenant les sécuriser.
Introduction vidéo au chapitre 8
8 min · narré en anglais, avec sous-titresÉcouter seulement (audio)
Lire la transcription
Bienvenue dans le chapitre 8 : Sécurité, confidentialité et conformité dès la conception. La plupart des violations graves ne sont pas dues à une attaque exotique contre la cryptographie. Elles viennent de décisions structurelles. Un service interne qui faisait confiance à tout appelant du réseau. Une API d’administration qui omettait un contrôle d’autorisation. Une clé d’accès commitée dans un dépôt. Chacune résultait d’un choix architectural sur l’emplacement de la confiance, sur ce que chaque composant peut faire et sur le chemin que suivent les données.
Ce chapitre s’adresse aux développeurs et aux architectes qui connaissent les architectures distribuées et les architectures de données des chapitres 6 et 7, et qui doivent maintenant les sécuriser. Chaque frontière de service, file, cache, réplique et copie analytique agrandit la surface d’attaque. La distribution multiplie les frontières de confiance, et l’architecture des données décide combien de copies des données à caractère personnel existent et combien de temps elles vivent. Le chapitre traite la sécurité comme un attribut de qualité intégré à la structure, au sens des scénarios de sécurité du chapitre 2, et non comme une liste de produits achetés à la fin. Il suppose aussi connue la section du chapitre 0 sur les réseaux, HTTPS et TLS. Et il mène au chapitre 9, qui garde le système sécurisé rapide et opérationnel sous contrainte.
L’exemple fil rouge est la plateforme de livraison de repas utilisée tout au long du cours : des clients, des restaurants et des livreurs, une API gateway, des services de commandes, de paiements, d’affectation et de notification, un flux d’événements et un entrepôt de données. La section huit point un pose le vocabulaire : la confidentialité, l’intégrité et la disponibilité, les principes de conception de Saltzer et Schroeder datant de 1975, comme le moindre privilège, puis la défense en profondeur, la sécurité par défaut et l’OWASP Top 10. La section huit point deux transforme ces principes en une activité de conception reproductible. Vous dessinez un diagramme de flux de données avec ses frontières de confiance, vous vous demandez ce qui peut mal tourner à l’aide de STRIDE et des arbres d’attaque, vous évaluez les risques et vous décidez des mesures d’atténuation. La section huit point trois traite de qui appelle : les mots de passe, les passkeys, les sessions et les tokens, OAuth avec PKCE, OpenID Connect, et les principaux modèles pour décider de ce que chaque appelant peut faire. La section huit point quatre couvre le chiffrement en transit et au repos, le hachage des mots de passe, la gestion des clés avec le chiffrement d’enveloppe, les secrets, la tokenisation et la décision de ce qu’il faut chiffrer et où.
Voici l’une des idées centrales de la section huit point un, la défense en profondeur, représentée le long du chemin que suit une commande à travers la plateforme. En haut se trouve l’app client, à l’extérieur de la frontière de confiance. Elle ne communique avec la plateforme que par HTTPS, et la plateforme ne fait confiance à rien de ce qui se trouve sur l’appareil. À l’intérieur de la frontière, chaque couche ajoute ses propres contrôles. La périphérie absorbe les afflux de trafic, applique des limites de débit et bloque les schémas d’attaque connus. L’API gateway vérifie chaque token et rejette les requêtes qui ne respectent pas le schéma de l’API. Le service des commandes vérifie que ce client a le droit de voir cette commande précise. La base de données utilise un compte doté du moindre privilège, et elle est chiffrée au repos, avec des sauvegardes chiffrées sous des clés distinctes. La journalisation de sécurité, la détection et les alertes couvrent toutes les couches. Comme chaque couche a ses propres contrôles, le contournement d’un seul contrôle n’expose pas les données.
Les quatre sections suivantes élargissent le regard. La section huit point cinq remplace l’idée d’un réseau interne de confiance par une authentification et une autorisation à chaque requête entre services, à l’aide du TLS mutuel, de certificats et de points distincts où la politique est décidée et appliquée. La section huit point six traite les dépendances, les systèmes de build et les images de conteneurs comme faisant partie de la surface d’attaque, avec les nomenclatures logicielles, la signature et le règlement européen sur la cyberrésilience. La section huit point sept explique comment le RGPD et le RGPD britannique façonnent l’architecture : minimisation des données, pseudonymisation, droits des personnes concernées, conservation et effacement dans les sauvegardes et les journaux d’événements. Et la section huit point huit boucle la boucle avec la journalisation de sécurité, la détection, la gestion des vulnérabilités, la réponse aux incidents et la notification des violations.
Ce diagramme de la section huit point cinq montre ce que change le zero trust. Avant, sur un réseau interne plat, n’importe quel hôte peut atteindre n’importe quel port, et tous les services partagent une seule base de données. Lorsque le service de la carte est compromis, l’attaquant peut aller directement aux paiements. Après, chaque service a sa propre base de données, et seules des identités nommées peuvent effectuer les appels autorisés. Commandes appelle Paiements en TLS mutuel, avec une politique. Lorsque le service de la carte compromis tente d’appeler Paiements, l’appel est refusé. Remarquez ce que le zero trust ne fait pas. Il n’empêche pas un service d’être compromis. Il limite ce que le service compromis peut atteindre.
Un architecte n’a pas besoin d’être testeur d’intrusion ni cryptographe, et ne doit pas inventer de cryptographie. L’architecte prend les décisions coûteuses à changer : où se situent les frontières de confiance, et quel fournisseur d’identité et quel modèle de tokens utilise toute la plateforme. Mais aussi quelles données sont classées comme restreintes, chiffrées avec quelles clés, et comment les services se prouvent mutuellement leur identité. Ces décisions ont leur place dans les enregistrements de décision d’architecture, comme toute autre décision importante. Les développeurs sont responsables d’un ensemble tout aussi important : valider les entrées, encoder les sorties, utiliser correctement les bibliothèques de sécurité de la plateforme, gérer les erreurs sans échouer en mode ouvert et tenir les dépendances à jour. Les deux se rejoignent dans la modélisation des menaces, dans les revues de conception sécurisée et dans les vérifications automatisées du pipeline de livraison.
La sécurité et la protection de la vie privée regorgent de normes numérotées et de dispositions juridiques. Le chapitre les nomme avec précision, donne l’édition en vigueur au moment de la rédaction, octobre 2026, et renvoie à la source qui fait autorité. Les passages sur la réglementation expliquent comment le droit influe sur l’architecture. Il s’agit d’informations, non de conseils juridiques. Pour une situation précise, ce sont les juristes de l’organisation et son délégué à la protection des données qu’il faut consulter.
Si vous ne deviez retenir qu’une chose de ce chapitre, ce serait celle-ci. Décidez à qui et à quoi votre système fait confiance, pour quoi et pourquoi. Décidez-le délibérément, tôt et par écrit, plutôt que de le laisser implicite. Et rendez chacune de ces décisions de confiance vérifiable. Les modèles de menaces, le moindre privilège, les scopes OAuth, le chiffrement d’enveloppe, le TLS mutuel, les builds signés et les journaux d’audit sont tous des moyens de remplacer une confiance implicite par une confiance explicite et vérifiable. Un système conçu ainsi limite les dégâts de la violation qui finira par se produire, et peut montrer à ses clients, à ses auditeurs et aux autorités de régulation comment il les protège.
Le mieux est de lire les sections dans l’ordre. Mais chacune se suffit aussi à elle-même, si bien que vous pouvez aller directement à la section dont vous avez besoin. Comptez environ trois heures et demie pour lire tout le chapitre. À la fin de chaque section, vous trouverez des questions d’autoévaluation. Répondez-y de tête avant de regarder les réponses. Quand vous serez prêt, un test du chapitre facultatif vous attend ; il prend environ quarante-cinq minutes. Il comporte vingt questions à choix multiples et deux réponses rédigées. La note de réussite est de quatre-vingts pour cent.
Voilà comment le chapitre est construit. Commencez par la section huit point un, sur les principes de sécurité pour les architectes, où est posé le vocabulaire de tout ce qui suit. À très vite.
En un coup d’œil
Vous apprendrez à
- Appliquer la triade CIA, les principes de conception de Saltzer et Schroeder, la défense en profondeur et la sécurité par défaut aux décisions d’architecture, et expliquer ce dont les architectes sont responsables dans un cycle de développement sécurisé.
- Modéliser les menaces d’une conception à l’aide d’un diagramme de flux de données avec frontières de confiance, de STRIDE et d’arbres d’attaque, puis évaluer et consigner les risques et les mesures d’atténuation qui en résultent.
- Distinguer l’authentification de l’autorisation, choisir entre sessions et tokens, et expliquer OAuth 2.0 avec PKCE, les client credentials, OpenID Connect ainsi que RBAC, ABAC et le contrôle d’accès basé sur les relations.
- Décider quoi chiffrer, où et avec quelles clés, à l’aide du chiffrement d’enveloppe, d’un KMS, du hachage des mots de passe, de la gestion des secrets et de la tokenisation.
- Expliquer l’architecture zero trust et concevoir la sécurité de service à service avec le TLS mutuel, l’identité de charge de travail et des points d’application de politique.
- Réduire le risque lié à la chaîne d’approvisionnement logicielle grâce aux SBOM, au cadre SLSA, à la signature, à l’épinglage des versions et aux builds isolés, et résumer les obligations du règlement européen sur la cyberrésilience (Cyber Resilience Act).
- Concevoir en fonction des principes du RGPD, de la protection des données dès la conception et par défaut, et des droits des personnes concernées, y compris l’effacement dans les sauvegardes, les caches et les journaux d’événements.
- Planifier la journalisation de sécurité, la détection, la gestion des vulnérabilités et la réponse aux incidents, y compris la notification des violations dans les 72 heures prévue par le RGPD.
Avant de commencer
Les chapitres 6 et 7, en particulier les microservices, l’architecture pilotée par les événements et la propriété des données ; la section du chapitre 2 sur la sécurité en tant qu’attribut de qualité ; la section du chapitre 0 sur les réseaux, HTTPS et TLS.
Durée
Environ 3 heures et demie de lecture ; 45 minutes pour le test.
Termes clés
frontière de confiance · moindre privilège · défense en profondeur · modélisation des menaces · STRIDE · OAuth 2.0 · OpenID Connect · PKCE · chiffrement d’enveloppe · zero trust · TLS mutuel · SBOM · pseudonymisation · crypto-shredding
La sécurité est une propriété de la structure
La plupart des violations graves ne sont pas dues à une attaque cryptographique exotique. Elles viennent de décisions structurelles : un service interne qui faisait confiance à tout appelant du réseau, une API d’administration qui omettait un contrôle d’autorisation, une sauvegarde de base de données copiée dans un bucket de stockage lisible par n’importe qui, une clé d’accès commitée dans un dépôt, une dépendance dont personne ne savait que le système l’utilisait. Chacune de ces situations résultait d’un choix architectural, généralement implicite, sur l’emplacement de la confiance, sur ce que chaque composant peut faire et sur le chemin que suivent les données. C’est pourquoi ce chapitre traite la sécurité comme un attribut de qualité intégré à la structure, au sens des scénarios de sécurité du chapitre 2, et non comme une liste de produits achetés à la fin.
C’est aussi pourquoi la sécurité est indissociable des styles des chapitres 6 et 7. Chaque frontière de service, file, cache, réplique et copie analytique agrandit la surface d’attaque et crée un endroit de plus où les données doivent être protégées. La distribution multiplie le nombre de frontières de confiance ; l’architecture des données décide combien de copies des données à caractère personnel existent et combien de temps elles vivent. L’exemple fil rouge est la plateforme de livraison de repas utilisée tout au long du cours : des clients, des restaurants et des livreurs, une API gateway, des services de commandes, de paiements, d’affectation et de notification, un flux d’événements et un entrepôt de données.
Comment les huit sections s’articulent
Les quatre premières sections construisent le cœur de la conception sécurisée. Principes de sécurité pose le vocabulaire : la triade CIA, les principes de conception de Saltzer et Schroeder (1975) comme le moindre privilège et les valeurs par défaut sûres, la défense en profondeur, la sécurité par défaut, l’OWASP Top 10 et un cycle de développement sécurisé fondé sur le SSDF du NIST. Modélisation des menaces transforme ces principes en une activité de conception reproductible : dessiner un diagramme de flux de données avec ses frontières de confiance, se demander ce qui peut mal tourner avec STRIDE et les arbres d’attaque, évaluer les risques et décider des mesures d’atténuation. Identité et accès traite de qui appelle : les mots de passe tels que le NIST les recommande aujourd’hui, les passkeys, les sessions et les tokens, OAuth 2.0 avec PKCE, OpenID Connect, et les modèles d’autorisation RBAC, ABAC et le contrôle d’accès basé sur les relations. Protéger les données couvre le chiffrement en transit et au repos, le hachage des mots de passe, la gestion des clés avec le chiffrement d’enveloppe, les secrets, la tokenisation et la décision de ce qu’il faut chiffrer et où.
Les quatre sections suivantes élargissent le regard. Zero trust remplace l’idée d’un réseau interne de confiance par une authentification et une autorisation à chaque requête entre services, à l’aide du TLS mutuel, de certificats et de points de décision et d’application de politique. Sécurité de la chaîne d’approvisionnement traite les dépendances, les systèmes de build et les images de conteneurs comme faisant partie de la surface d’attaque, avec les nomenclatures logicielles, le cadre SLSA, la signature et le règlement européen sur la cyberrésilience. Protection de la vie privée dès la conception explique comment le RGPD et le RGPD britannique (UK GDPR) façonnent l’architecture : minimisation des données, pseudonymisation, droits des personnes concernées, conservation et effacement dans les sauvegardes et les journaux d’événements. Sécurité en exploitation boucle la boucle avec la journalisation de sécurité, la détection, la gestion des vulnérabilités, la réponse aux incidents et la notification des violations.
Ce que les architectes décident, et ce qu’ils délèguent
Un architecte n’a pas besoin d’être testeur d’intrusion ni cryptographe, et ne doit pas inventer de cryptographie. Son rôle est de prendre les décisions coûteuses à changer et qu’aucune équipe ne peut prendre seule : où se situent les frontières de confiance, quel fournisseur d’identité et quel modèle de tokens utilise toute la plateforme, quel composant est le point de décision de politique pour quelles ressources, quelles données sont classées comme restreintes et donc chiffrées avec quelles clés, comment les services se prouvent mutuellement leur identité, et comment l’organisation détectera une attaque et y répondra. Ces décisions ont leur place dans les enregistrements de décision d’architecture et dans les concepts transversaux d’une description arc42, comme toute autre décision importante.
Les développeurs sont responsables d’un ensemble de préoccupations différent et tout aussi important : valider les entrées, encoder les sorties, utiliser correctement les bibliothèques d’authentification et d’autorisation de la plateforme, gérer les erreurs sans échouer en mode ouvert, tenir les dépendances à jour et écrire des tests pour le comportement de sécurité. Les deux se rejoignent dans la modélisation des menaces, dans les revues de conception sécurisée et dans les vérifications automatisées du pipeline de livraison. Lorsque les praticiens sont en désaccord, par exemple sur la part du travail de sécurité à transférer aux développeurs ou sur le degré de formalisme de la modélisation des menaces, le chapitre présente les deux positions.
Droit, normes et exactitude
La sécurité et la protection de la vie privée regorgent de normes numérotées et de dispositions juridiques, et ce chapitre les nomme avec précision : les publications spéciales du NIST, les RFC de l’IETF, les projets de l’OWASP, PCI DSS, le RGPD et le RGPD britannique, et le règlement européen sur la cyberrésilience. Les normes évoluent ; chaque mention donne donc l’édition en vigueur au moment de la rédaction (octobre 2026) et renvoie à la source qui fait autorité. Les passages sur la réglementation expliquent comment le droit influe sur l’architecture ; il s’agit d’informations, non de conseils juridiques, et ce sont les juristes de l’organisation et son délégué à la protection des données qu’il faut consulter pour une situation précise.
L’idée à retenir
Décidez délibérément, tôt et par écrit, à qui et à quoi votre système fait confiance, pour quoi et pourquoi, et rendez chacune de ces décisions de confiance vérifiable. La plupart des techniques de ce chapitre, des modèles de menaces et du moindre privilège aux scopes OAuth, au chiffrement d’enveloppe, au TLS mutuel, aux builds signés et aux journaux d’audit, sont des moyens de remplacer une confiance implicite par une confiance explicite et vérifiable. Un système conçu ainsi limite les dégâts de la violation qui finira par se produire, et peut montrer à ses clients, à ses auditeurs et aux autorités de régulation comment il les protège.
Les 8 sections
Test du chapitre
Vérifiez votre compréhension du chapitre 8
Facultatif : 20 questions à choix multiples et 2 courtes réponses rédigées, tirées à chaque fois d’une banque de 72 questions. Note de réussite : 80 %. Réussir tous les tests de chapitre, puis l’évaluation finale, donne droit au Certificat de fin de formation Be Wise.
Passer le test du chapitre 8 dans l’appLectures complémentaires
- Threat Modeling: Designing for Security, Adam Shostack (2014), Wiley. Le livre pratique de référence sur la modélisation des menaces : les quatre questions, les diagrammes de flux de données, STRIDE, les arbres d’attaque et la façon d’intégrer la modélisation des menaces au quotidien de l’ingénierie.
- Security Engineering: A Guide to Building Dependable Distributed Systems (3rd edition), Ross Anderson (2020), Wiley. Un panorama vaste et très documenté de la façon dont les systèmes réels échouent, des protocoles et du contrôle d’accès à la banque, aux paiements et à l’économie de la sécurité.
- Designing Secure Software: A Guide for Developers, Loren Kohnfelder (2021), No Starch Press. Les principes de sécurité dès la conception, la modélisation des menaces et les revues de conception sécurisée, par l’un des co-inventeurs de STRIDE, à l’intention des développeurs et des architectes en activité.
- API Security in Action, Neil Madden (2020), Manning. L’authentification, les tokens, OAuth 2.0, la sécurité fondée sur les capacités et la sécurisation des appels de service à service, avec du code fonctionnel.
- OAuth 2 in Action, Justin Richer and Antonio Sanso (2017), Manning. Construit pas à pas des clients, des serveurs d’autorisation et des serveurs de ressources, ce qui rend concrets les flux et leurs attaques.
- The Protection of Information in Computer Systems, Jerome H. Saltzer and Michael D. Schroeder (1975), Proceedings of the IEEE, vol. 63, no. 9. L’origine du moindre privilège, des valeurs par défaut sûres, de la médiation complète et des autres principes de conception encore cités aujourd’hui.
- SP 800-207: Zero Trust Architecture, Scott Rose, Oliver Borchert, Stu Mitchell and Sean Connelly (NIST) (2020), National Institute of Standards and Technology. La définition de référence du zero trust, de ses principes fondamentaux et de ses composants logiques (moteur de politique, administrateur de politique et point d’application).
- Regulation (EU) 2016/679 (General Data Protection Regulation), European Parliament and Council of the European Union (2016), Official Journal of the European Union (EUR-Lex). Le texte principal sur lequel s’appuie la section sur la protection de la vie privée ; les articles 5, 25 et 32 à 35 sont les plus importants pour les architectes.