Principes fondamentaux de conception de la sécurité
Malgré des années de recherche et de développement, il n'a pas été possible de développer des techniques de conception et de mise en œuvre de la sécurité qui excluent systématiquement les failles de sécurité et empêchent toute action non autorisée. En l'absence de telles techniques infaillibles, il est utile de disposer d'un ensemble de principes de conception largement acceptés qui peuvent guider le développement de mécanismes de protection. Les centres nationaux d'excellence académique en matière d'assurance de l'information/de cyberdéfense (National Centers of Academic Excellence in Information Assurance/Cyber Defense), qui sont parrainés conjointement par l'Agence nationale de sécurité (National Security Agency) des États-Unis et le ministère de la sécurité intérieure (Department of Homeland Security) des États-Unis, énumèrent les principes fondamentaux de conception de la sécurité suivants :
- Économie de mécanisme : L'économie de mécanisme signifie que la conception des mesures de sécurité incorporées à la fois dans le matériel et dans le logiciel doit être aussi simple et petite que possible. La petite conception est plus facile à tester et à vérifier en profondeur
- Valeurs par défaut de sécurité : Par défaut, les décisions d'accès doivent être fondées sur la permission plutôt que sur l'exclusion. Autrement dit, la situation par défaut est l'absence d'accès, et le système de protection définit les conditions dans lesquelles l'accès est autorisé.
- Médiation complète : Une médiation complète signifie que chaque accès doit être vérifié par rapport au mécanisme de contrôle d'accès. Les systèmes ne doivent pas se fier aux décisions d'accès récupérées à partir d'un cache. Dans un système conçu pour fonctionner en continu, ce principe exige que, si les décisions d'accès sont mémorisées pour une utilisation future, une attention particulière soit accordée à la manière dont les changements d'autorité sont propagés dans ces mémoires locales.
- Conception ouverte : La conception ouverte signifie que la conception d'un mécanisme de sécurité doit être ouverte plutôt que secrète. Par exemple, bien que les clés de chiffrement doivent être secrètes, les algorithmes de chiffrement doivent être soumis à un examen public. Les algorithmes peuvent ensuite être revus par de nombreux experts, et les utilisateurs peuvent donc leur accorder une grande confiance.
- Séparation des privilèges : La séparation des privilèges est définie comme une pratique dans laquelle plusieurs attributs de privilège sont requis pour accéder à une ressource restreinte. Un bon exemple en est l'authentification utilisateur multifacteur, qui nécessite l'utilisation de plusieurs techniques, telles qu'un mot de passe et une carte à puce, pour autoriser un utilisateur.
- Moins de privilège : Le moins privilège signifie que chaque processus et chaque utilisateur du système doit fonctionner en utilisant le plus petit ensemble de privilèges nécessaires pour effectuer la tâche
- Mécanisme le moins commun : Le mécanisme le moins commun signifie que la conception doit minimiser les fonctions partagées par les différents utilisateurs, assurant ainsi une sécurité mutuelle. Ce principe permet de réduire le nombre de chemins de communication involontaires et de réduire la quantité de matériel et de logiciels dont dépendent tous les utilisateurs, ce qui facilite la vérification de l'existence d'éventuelles implications indésirables en matière de sécurité.
- Acceptabilité psychologique : L'acceptabilité psychologique implique que les mécanismes de sécurité ne doivent pas interférer indûment avec le travail des utilisateurs, et en même temps répondre aux besoins de ceux qui autorisent l'accès.
- Isolation : L'isolement est un principe qui s'applique dans trois contextes. Premièrement, les systèmes d'accès public doivent être isolés des ressources critiques (données, processus, etc.) pour empêcher la divulgation ou la falsification. Deuxièmement, les processus et les fichiers des utilisateurs individuels doivent être isolés les uns des autres, sauf lorsque cela est explicitement souhaité. Et enfin, les mécanismes de sécurité devraient être isolés dans le sens d'empêcher l'accès à ces mécanismes.
- Encapsulation : L'encapsulation peut être considérée comme une forme spécifique d'isolation basée sur une fonctionnalité orientée objet. La protection est assurée en encapsulant une collection de procédures et d'objets de données dans un domaine qui lui est propre, de sorte que la structure interne d'un objet de données n'est accessible qu'aux procédures du sous-système protégé et que les procédures ne peuvent être appelées qu'à des points d'entrée de domaine désignés.
- Modularité : La modularité dans le contexte de la sécurité fait référence à la fois au développement de fonctions de sécurité en tant que modules séparés et protégés.
- Superposition : La superposition fait référence à l'utilisation de plusieurs approches de protection qui se chevauchent et qui traitent des aspects humains, technologiques et opérationnels des systèmes d'information. En utilisant plusieurs approches de protection qui se chevauchent, l'échec ou le contournement de toute approche de protection individuelle ne laissera pas le système sans protection
- Moins d'étonnement : Le moins d’étonnement signifie qu'un programme ou une interface utilisateur doit toujours répondre de la manière la moins susceptible d'étonner l'utilisateur. Par exemple, le mécanisme d'autorisation doit être suffisamment transparent pour un utilisateur afin que celui-ci ait une bonne compréhension intuitive de la manière dont les objectifs de sécurité correspondent au mécanisme de sécurité fourni.