13.05.2014 Views

these doctorat une architecture de securité

these doctorat une architecture de securité

these doctorat une architecture de securité

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapitre 3. Étu<strong>de</strong> d’intergiciels sécurisés pour le calcul distribué<br />

système d’exploitation Microsoft Windows, l’authentification HTTP, Digest et Kerberos, ainsi que<br />

Microsoft Passport.<br />

La sécurité peut être basée sur les concepts <strong>de</strong>s Rôles au lieu d’utiliser directement les i<strong>de</strong>ntifiants<br />

<strong>de</strong>s utilisateurs. L’appartenance d’un utilisateur à un rôle est du ressort <strong>de</strong> l’administrateur<br />

<strong>de</strong> l’un <strong>de</strong>s quatre niveaux d’affinements <strong>de</strong>s politiques <strong>de</strong> sécurité.<br />

FIG. 3.12 – Sécurité utilisateur basée sur les rôles<br />

tel-00239252, version 1 - 5 Feb 2008<br />

Les permissions accordées à <strong>une</strong> action donnée correspon<strong>de</strong>nt à l’intersection <strong>de</strong>s permissions<br />

<strong>de</strong>s quatre niveaux <strong>de</strong> sécurité (tableau 3.1).<br />

Type Spécifié par S’applique à<br />

Entreprise Administrateur Tous les co<strong>de</strong>s<br />

Machine Administrateur Tous les co<strong>de</strong>s sur la machine<br />

Utilisateur Administrateur et Utilisateur Tous les co<strong>de</strong>s associés à l’utilisateur<br />

Application Application Tous les co<strong>de</strong>s chargés par l’application<br />

TAB. 3.1 – Les divers niveaux <strong>de</strong> politiques <strong>de</strong> sécurité en .Net<br />

Afin <strong>de</strong> gérer le comportement <strong>de</strong> sécurité d’<strong>une</strong> assembly, le programmeur peut avoir recours<br />

à <strong>de</strong>ux métho<strong>de</strong>s : la sécurité déclarative et la sécurité impérative.<br />

La sécurité déclarative permet aux programmeurs <strong>de</strong> spécifier les critères <strong>de</strong> sécurité d’un<br />

assembly directement dans les métadonnées du son co<strong>de</strong>. Les <strong>de</strong>man<strong>de</strong>s d’autorisation et toutes<br />

les autres formes <strong>de</strong> sécurité déclarative sont spécifiées en tant qu’attributs personnalisés dans<br />

le co<strong>de</strong>.<br />

Les annotations <strong>de</strong>s classes, <strong>de</strong>s propriétés et <strong>de</strong>s métho<strong>de</strong>s sont utilisées pour définir <strong>de</strong> manière<br />

plus précise les autorisations. La sécurité déclarative peut servir, par exemple, à vérifier<br />

que l’appelant d’<strong>une</strong> classe spécifique porte la signature d’un éditeur connu ou possè<strong>de</strong> un nom<br />

fort particulier avant l’appel d’<strong>une</strong> métho<strong>de</strong>. Dans la mesure où les attributs déclaratifs font<br />

partis <strong>de</strong>s métadonnées <strong>de</strong> l’assembly, ses besoins en matière <strong>de</strong> sécurité <strong>de</strong>viennent plus facilement<br />

i<strong>de</strong>ntifiables. Des outils peuvent analyser les assemblies pour déterminer les métho<strong>de</strong>s<br />

avec <strong>de</strong>man<strong>de</strong>s d’autorisations et celles avec assertions d’autorisations.<br />

Les vérifications déclaratives conviennent particulièrement lorsque l’action et l’autorisation<br />

<strong>de</strong>mandées sont déterminées au moment <strong>de</strong> la compilation. Si <strong>une</strong> métho<strong>de</strong> doit toujours vérifier<br />

un accès en écriture dans un répertoire par exemple, <strong>une</strong> vérification d’autorisation déclarative<br />

sera plus avantageuse. Si, par contre, l’emplacement <strong>de</strong> l’accès requis en écriture change, la<br />

sécurité impérative <strong>de</strong>vient la solution la mieux adaptée. L’exemple ci-après présente le co<strong>de</strong><br />

C# responsable du contrôle d’accès, effectué <strong>de</strong> manière déclarative, à la métho<strong>de</strong> Method. Pour<br />

qu’un utilisateur puisse avoir accès à cette métho<strong>de</strong>, il doit appartenir au rôle Responsable.<br />

[PrincipalPermission(SecurityAction.Demand, Role="Responsable")]<br />

void Method()<br />

{<br />

// la metho<strong>de</strong> est executee seulement si l’utilisateur<br />

// appartient au role "Responsable"<br />

44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!