====== Vue d'ensemble ====== ==== 1.1.2 Besoins ==== L'objectif de base est de pouvoir controller l'accès aux objets du système par les acteurs l'utilisant. Pour ce faire un OS devant fournir un fonctionnement sécurisé à besoin de: * **Identifier** ses utilisateurs * Le système doit pouvoir faire la distinction entre les différentes identités opérant sur le système * **Authentifier** ses utilisateurs * Le système doit pouvoir s'assurer que les identités sont authentiques * **Autoriser** les actions des utilisateurs * Le système doit pouvoir connaître les droits et privilèges d'une identité par rapport à l'action qu'elle est en train d'effectuer * **Cloisoner** son fonctionnement * Les opérations sensibles doivent être isolées des opérations potentiellement dangereuses * Les processus doivent isolés les uns des autres * **Résilience** face aux modifications hostiles * Le système doit être difficile à corrompre * Assurer la **Rétrocompatibilité** ==== 1.1.3 Concepts Clés ==== :!: plus de contenu Le système fournit un mécanisme global et homogène de contrôle des autorisations et de l'audit des objets. Certains acteurs doivent posséder un accès privilégié sur les objets. ==== 1.1.4 Contrôle d'accés ==== Windows possède une autorité de gestion d'autorisation centralisée, le [[glossaire#SRM]]. Le rôle du SRM est de vérifier les autorisations d'un //Sujet// vis à vis d'un //Objet// et de déterminer si l'accès est possible. {{ :heig:sos:schema-srm.jpg?nolink&500 | Security Reference Monitor }} ==== 1.1.5 Access Token local ==== Lorsqu'une authentification est un succès, Windows crée alors une //Session// et lui affecte un //Access Token// qui contient les accréditations, droits, privilèges et niveau d'intégrité du propriétaire de la session. Un //Access Token// est troujours local à une machine et ne transite pas sur le réseau. Par défaut il est hérité du context parent (session => process => thread) et contient les autorisations du compte. ==== 1.1.6 Security Descriptor ==== Les objets sont protégés par un //Security Descriptor//. Le SD d'un objet indique les autorisations en fonction du demandeur (Access Token) et de l'action demandée. L'emplacement ou il est stocké est dépendant du type d'objet. ==== 1.1.7 Security Identifier ==== Le //Security Identifier// ou //SID// est un identifiant unique identifiant une ressource (machine, utilisateur, groupe, ...). ==== 1.1.8 Architecture du Système ==== {{ :heig:sos:windows:windows-simple-architecture.png?nolink&600 | Simplified Windows Architecture }} ... ==== 1.1.9 Composants de Sécurité ==== {{ :heig:sos:windows:windows-security-components.png?nolink&600 | Windows Security Components }} ... ==== 1.1.10 EXEs & DLLs === * SRM (Security Reference Monitor) * Gère l'autorisation (droits d'accés aux objets) * Ecrit les traces d'audit * LSASS (Local Security Authority SubSystem) * Gère l'authentification * Ecrit les traces d'audit * SAM (Security Accounts Manager) * Base de donnée de comptes locaux * AD (Active Directory) * Gestion centralisée des utilisateurs (Serveur LDAP) * WinLogon (Windows Logon) * ''Winlogon.exe'' * //Authentication Packages// * MSV1_0 (Authentification NTLM) * Kerberos * LogonUI (Logon User Interface) * ''LoginUI.exe'' * //Credentials Providers// * CP mot-de-passe * CP smartcard * ALPC (Advanced Local Procedure Call)