TIW4 TD Book PDF
TIW4 TD Book PDF
TIW4 TD Book PDF
Livret d’exercices
Romuald Thion
Master 2 Technologies de l’Information et Web (TIW) – 2019–2020
Table des matières
2 Principes de la cryptographie 13
2.1 Principes de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Analyse d’algorithmes de chiffrement simples . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Protocoles cryptographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Cas d’étude : sauvegarde de clef pour un dossier médical . . . . . . . . . . . . . . . 19
A Appendice 43
A.1 Traces nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A.2 Syntaxe concrète web.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A.3 Exemple XACML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
A.4 Délibérations de la CNIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
A.5 Grille de critères pour l’analyse de la vie privée . . . . . . . . . . . . . . . . . . . . . 52
3
Liste des exercices
Exercice 1 Bien supports et menaces génériques . . . . . . . . . . . . . . . . . . . . . . 7
Exercice 2 Évaluation des risques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Exercice 3 Étude du contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Exercice 4 Détermination des objectifs de sécurité . . . . . . . . . . . . . . . . . . . . . 8
Exercice 5 étude du contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Exercice 6 étude des événements redoutés . . . . . . . . . . . . . . . . . . . . . . . . . 10
Exercice 7 étude des scénarios de menaces . . . . . . . . . . . . . . . . . . . . . . . . . 10
Exercice 8 détermination des objectifs de sécurité . . . . . . . . . . . . . . . . . . . . . 10
Exercice 9 Critères non-fonctionnels des systèmes . . . . . . . . . . . . . . . . . . . . . 11
Exercice 10 Rentabilité d’une politique de sécurité . . . . . . . . . . . . . . . . . . . . . 11
Exercice 11 Niveau de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Exercice 12 Audit de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Exercice 13 Principe de Kerckhoffs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Exercice 14 Recherche exhaustive de clefs symétriques . . . . . . . . . . . . . . . . . . . 13
Exercice 15 Chiffrement symétrique et asymétrique . . . . . . . . . . . . . . . . . . . . 13
Exercice 16 Certificats x509 avec openssl . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Exercice 17 Chiffrement de César . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Exercice 18 Analyse du chiffrement de Vigenère . . . . . . . . . . . . . . . . . . . . . . 15
Exercice 19 Chiffrement et déchiffrement avec RSA . . . . . . . . . . . . . . . . . . . . 16
Exercice 20 Catégorie de procédés d’authentification . . . . . . . . . . . . . . . . . . . . 16
Exercice 21 Authentification par mots de passe . . . . . . . . . . . . . . . . . . . . . . . 16
Exercice 22 Protocole imparfait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Exercice 23 Vulnérabilité du protocole Wide Mouthed Frog . . . . . . . . . . . . . . . . 17
Exercice 24 Protocole d’échange de clefs de Diffie-Hellman . . . . . . . . . . . . . . . . 17
Exercice 25 Protocole d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Exercice 26 Andrew Secure RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Exercice 27 Déploiement de PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Exercice 28 Serveur de clef Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Exercice 29 Sauvegarde de la clef maître d’un token . . . . . . . . . . . . . . . . . . . . 20
Exercice 30 Authentification en PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Exercice 31 Bonnes et mauvaises pratique du PhP . . . . . . . . . . . . . . . . . . . . . 23
Exercice 32 Conseils pour du code sûr . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Exercice 33 Guide de style pour du code robuste . . . . . . . . . . . . . . . . . . . . . . 24
Exercice 34 SYN flooding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Exercice 35 Analyse de ports avec nmap . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Exercice 36 Vulnérabilité logicielle directory traversal . . . . . . . . . . . . . . . . . . . 27
Exercice 37 La faille CVE-2011-4029 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Exercice 38 Analyse du bulletin MS10-092 . . . . . . . . . . . . . . . . . . . . . . . . . 29
Exercice 39 Modèle Harrison-Ruzo-Ullman . . . . . . . . . . . . . . . . . . . . . . . . . 31
Exercice 40 Modèles mandataires à niveaux . . . . . . . . . . . . . . . . . . . . . . . . 32
Exercice 41 Hiérarchisation des rôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Exercice 42 Erreurs dans une politique . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Exercice 43 Propriétés de l’exclusion mutuelle entre rôles . . . . . . . . . . . . . . . . . 34
Exercice 44 Modélisation avec les rôles : département informatique . . . . . . . . . . . . 34
Exercice 45 Modélisation avec les rôles : entreprise de plâtrerie & peintures . . . . . . . 35
Exercice 46 Implémentation de RBAC avec un SGBD-R . . . . . . . . . . . . . . . . . . 35
Exercice 47 Modélisation des droits d’accès à la FST . . . . . . . . . . . . . . . . . . . 36
Exercice 48 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Exercice 49 Combinaisons de politiques XACML . . . . . . . . . . . . . . . . . . . . . . 38
Exercice 50 Principes de la configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Exercice 51 Règles de filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Exercice 52 Analyse de décisions de la CNIL . . . . . . . . . . . . . . . . . . . . . . . . 41
Exercice 53 Bases de données hippocratiques . . . . . . . . . . . . . . . . . . . . . . . . 41
Chapitre 1
Conjoncture La mise en réseau des systèmes informatiques s’est effectuée avec succès et a permis
de réduire encore plus les délais de réalisation des travaux. L’entreprise doit maintenant répondre
au souhait de la majorité des clients qui est de correspondre directement avec le bureau d’étude
via Internet pour transmettre tous les types de documents (dossiers techniques, devis, appel d’offre,
messages...).
L’entreprise a dernièrement perdu un marché : la rénovation de la mairie de Draguignan. Lors
de la présentation des projets, il est apparu de curieuses similitudes entre la maquette virtuelle
d’@RCHIMED et la proposition d’un concurrent de Nice. Le directeur d’@RCHIMED soupçonne une
compromission du projet qu’il avait présenté. Il a maintenant des craintes sur la confidentialité de
certains projets.
D’autre part, de plus en plus de contrats pour lesquels @ARCHIMED souhaite se positionner sont
conditionné par la capacité du cabinet à assurer la confidentialité relative aux aspects techniques
du projet. Par exemple, L’appel d’offre pour la rénovation de certaines installations de la marine
nationale de l’arsenal de Toulon entre dans ce cadre.
Compte tenu de son volume et de sa disposition, la société travaille de façon très ouverte.
Cependant, les experts du bureau d’études sont les seuls à pouvoir accéder aux logiciels les plus
performants de conception et de maquettage. Ces experts ont par ailleurs bénéficié d’une formation
à la manipulation de ces outils. Chacun est conscient de ces responsabilités financières, civiles et
pénales associées à l’usage des informations qu’il manipule : dossier client, données nominatives. . .
Le choix d’une étude de sécurité s’impose donc pour, d’une part, déterminer les conditions qui
permettent l’ouverture du système informatique vers l’extérieur et d’autre part pour déterminer les
mesures de sécurité nécessaires à la protection des projets sensibles.
Exercice 5 : étude du contexte ([Age10b, p. 15, p.18])
1. Donner des exemples de sources de menaces à prendre en compte dans l’étude pour les types
de sources de menaces suivants :
1. Source humaine interne, sans intention de nuire, avec de faibles capacités ;
2. Source humaine interne, sans intention de nuire, avec des capacités illimitées ;
3. Source humaine externe, malveillante, avec des capacités importantes ;
4. Source humaine externe, malveillante, avec des capacités illimitée ;
5. Source humaine externe, sans intention de nuire, avec de faibles capacités ;
6. Événement interne.
2. Identifier 3 processus (métiers) essentiels du cabinet. Quelles sont les informations essentielles
concernées ?
Principes de la cryptographie
1. S’agit-il d’un chiffrement à flux ou à bloc ? Combien existe-t-il de secrets pour ce chiffrement ?
2. On souhaite chiffrer le texte « Attaquez, maintenant ! ». Préciser les pré-traitements à effec-
tuer avant de chiffrer le message et calculer son chiffré avec la clef 6.
3. Expliquer la procédure de déchiffrement et déchiffrer dwwdtxhcpdlqwhqdqw avec la clef 3.
4. Sachant qu’un chiffré est issu d’un clair en français, expliquer comment casser le code de
César en utilisant un argument sur la fréquence des lettres.
5. Déchiffrer le message jlzabullupntl.
6. On propose une modification du chiffre de César où l’on utilise non plus un décalage à pas
constant mais une bijection quelconque de l’alphabet dans lui-même. Comparer le nombre de
clefs possibles dans ce cas au précédent. L’analyse fréquentielle est-elle encore envisageable ?
clair a t t a q u e z m a i n t e n a n t
clef a b c d a b c d a b c d a b c d a b
chiffré a u v d q v g c m b k q t f p d n u
1. L’augmentation artificielle par répétition d’une clef augmente-t-elle la sécurité, par exemple,
bonjourbonjourbonjour ?
2. Chiffrer le clair « Attaquez, maintenant ! » avec la clef crypto.
3. Si le texte clair est suffisamment long, il est possible d’avoir des séquences de lettres qui se
répètent. À quelle conditions ces séquences auront-elles les mêmes chiffrés ?
4. Si plusieurs séquences différentes sont répétées à des intervalles différents, que peut-on en
déduire sur la longueur de la clef utilisée ?
5. Déterminer les longueurs possibles de la clef utilisée pour chiffrer la séquence
eiwemcgjratpdickwseiwemciiyeawg.
6. Une fois la longueur de clef déterminée, expliquer comment utiliser l’attaque fréquentielle de
l’exercice précédent.
7. Quelle serait la solidité d’un système où l’on utiliserait des clefs à usage unique de longueurs
toujours supérieures au clair. Est-ce envisageable en pratique ?
2.3 Authentification
5. Pour diviser a par b modulo P, on va chercher le plus petit entier congru à a modulo P divisible par b. Par
exemple pour a = 65 et b = 3 on obtient (65 ÷ 3) mod 127 = ((65 + 127) ÷ 3) mod 127 = (192 ÷ 3) mod 127 = 64
mod 127 = 64. Pour la soustraction, c’est similaire : 3 − 65 mod 127 = (127 + 3) − 65 mod 127 = 130 − 65
mod 127 = 65.
6. Pour rappel, on note {hx , h(y )i}K −1 la concaténation d’un message x avec le haché d’un message y , le tout
A
chiffré avec la clef publique de A.
Chapitre 3
Exercice 32 : Conseils pour du code sûr (Michael Howard & Steve Lipner)
Dans le chapitre 11 Secure Coding Policies de l’ouvrage The Security Development Lifecycle :
SDL : A Process for Developing Demonstrably More Secure Software, Michael Howard & Steve
Lipner, on trouve les bonnes pratiques suivantes pour l’écriture de code sûr, expliquer et justifier
chacune de ces pratiques :
1. use the latest compiler and supporting tool versions ;
2. use defenses added by the compiler ;
3. use source-code analysis tools ;
4. do not use banned functions.
Exercice 33 : Guide de style pour du code robuste (Matt Bishop & Chip Elliott)
L’objectif de l’exercice est d’arriver, en critiquant un code C, à produire des recommandations
issues de Robust Programming by Example, Matt Bishop & Chip Elliott, sur les bonnes pratiques
pour écrire du code robuste.
1. Que font les appels qmanage(&qptr,85,1), qmanage(&qptr,1,85) et qmanage(&qptr,0,85).
Quelle(s) recommandation(s) suggérer concernant les paramètres des fonctions (en C) ?
2. Que se passe-t’il si qptr ou *qptr est 0 dans un appel à qmanage(&qptr,0,42). Que se
passe-t’il lorsque cet appel est passé plusieurs fois ? Quelle(s) recommandation(s) supplémen-
taire(s) suggérer concernant les paramètres ?
Pour une référence en ligne exhaustive et de première qualité sur la programmation C/C++
sûre, voir http://www.securecoding.cert.org/. Pour un exemple de vulnérabilité cau-
sée par une double libération de la mémoire, voir par exemple http://www.cert.org/
advisories/CA-2002-07.html
1 t y p e d e f s t r u c t queue {
2 i n t ∗ que ; /∗ t h e a c t u a l a r r a y o f queue
e l e m e n t s ∗/
3 i n t head ; /∗ head i n d e x i n que o f t h e queue
∗/
4 i n t count ; /∗ number o f e l e m e n t s i n queue ∗/
5 int size ; /∗ max number o f e l e m e n t s i n queue
∗/
6 } QUEUE ;
7
8 v o i d qmanage ( QUEUE ∗∗ , i n t , i n t ) ; /∗ c r e a t e , d e l e t e queue ∗/
9 v o i d qputon ( QUEUE ∗ , i n t ) ; /∗ add t o queue ∗/
10 v o i d q t a k e o f f ( QUEUE ∗ , i n t ∗ ) ; /∗ remove from queue ∗/
11
12 v o i d qmanage ( QUEUE ∗∗ q p t r , i n t f l a g , i n t s i z e ) {
13 if ( flag ) { /∗ a l l o c a t e a new queue ∗/
14 ( ∗ q p t r ) = m a l l o c ( s i z e o f ( QUEUE ) ) ;
15 ( ∗ q p t r )−>head = ( ∗ q p t r )−> c o u n t = 0 ;
16 ( ∗ q p t r )−>que = malloc ( s i z e ∗ sizeof ( int ) ) ;
17 ( ∗ q p t r )−> s i z e = s i z e ;
18 } else { /∗ d e l e t e t h e c u r r e n t queue ∗/
19 ( v o i d ) f r e e ( ( ∗ q p t r )−>que ) ;
20 ( void ) f r e e (∗ qptr ) ;
21 }
22 }
3.2 Reconnaissance et réseaux
1. Que se passe-t’il lorsque un client essaie de se connecter légitime au serveur victime de cette
attaque ?
2. Le problème du SYN flooding est inhérent à la façon dont une connexion TCP est établie.
Comment réduire voire supprimer cette vulnérabilité ?
3. Une attaque de SYN flooding distribué (Distributed Deny of Service, DDoS) consiste à lancer
des attaques SYN flooding simultanées depuis de multiples sources. Comment s’en protéger ?
# strace X:1
open("/tmp/.tX1-lock", O_WRONLY|O_CREAT|O_EXCL, 0644) = 0
write(0, " 20093\n", 11) = 11
chmod("/tmp/.tX1-lock", 0444) = 0
close(0) = 0
link("/tmp/.tX1-lock", "/tmp/.X1-lock") = 0
unlink("/tmp/.tX1-lock") = 0
La fonction open() permet la création du fichier tmp : en cas de réussite, open() assure qu’aucun
fichier du même nom n’était présent sur le disque et renvoie un descripteur de fichier. A l’inverse de
fchmod(), la fonction chmod() opère sur un nom de fichier et non sur un descripteur de fichier.
La difficulté de l’exploit est de réussir à intercaler précisément ces actions dans l’exécution de
LockServer(). Le principe général de l’exploit, résumé par la figure 1, consiste :
— à exécuter une première instance (P1) de Xorg contrôlée via les signaux SIGSTOP et SIGCONT
qui permettent respectivement de mettre en pause un processus et de le relancer là ou il s’était
arrêté. L’arrêt de la première instance d’Xorg doit se faire immédiatement après la création
du fichier temporaire (ligne 296) ;
— à exécuter une deuxième instance (P2) qui supprimera le fichier tmp pendant que (P1) est
stoppé ;
— à scruter efficacement le système de fichier. Pour cela, l’API Inotify permet de reporter
à une application tout changement sur un système de fichier au lieu de guetter l’apparition
d’un fichier en testant sa présence avec une boucle while().
(Figure 1) Fonctionnement de l’exploit
Bulletin MS10-092 : This security update resolves a publicly disclosed vulnerability in Windows
Task Scheduler. The vulnerability could allow elevation of privilege if an attacker logged on to an
affected system and ran a specially crafted application. An attacker must have valid logon credentials
and be able to log on locally to exploit this vulnerability. The vulnerability could not be exploited
remotely or by anonymous users. [. . . ]
An elevation of privilege vulnerability exists in the way that the Windows Task Scheduler im-
properly validates whether scheduled tasks run within the intended security context. An attacker
who successfully exploited this vulnerability could run arbitrary code in the security context of the
local system. An attacker could then install programs ; view, change, or delete data ; or create new
accounts with full user rights.
Les jobs du Task Scheduler sont décrits par des fichiers xml de la forme suivante. Notons qu’il est
possible d’ajouter des commentaires dans ce fichier avec les balises <!- - comment - ->. Le dossier
où sont stockés ces fichiers est lisible par LocalSystem et les administrateurs locaux. Un utilisateur
(sauf guest) peut écrire dans ce dossier. Pour protéger l’intégrité des commandes (qui sont exécutée
par le Task Scheduler qui est un utilisateur privilégié), un checksum est calculé à la création de la
tâche. Quand le job est lancé, le checksum est recalculé et comparé à celui enregistré avant d’être
exécuté. Un algorithme de cyclic redundancy check (CRC) est utilisé pour cela (en l’espèce, CRC32).
La description de l’exploit est la suivante :
1. Create a job that will be run under the current user account with the least available privileges ;
2. Read the task configuration file corresponding to the task created at step 1 and calculate its
CRC32 checksum ;
3. Modify the task configuration file corresponding to the task created at step 1 so that it
matches the same check sum as the original file and set the following properties :
(a) Run the task.Principal Id=LocalSystem (principal for the task that provides security cre-
dentials) ;
(b) Run the task.UserId=S-1-5-18 (SID of the LocalSystem) ;
(c) Run the task.RunLevel=HighestAvailable (run with the highest available privileges) ;
(d) Run the task.Actions Context=LocalSystem (security context under which the actions of
the task are performed) ;
4. Run the task.
1. Quel est le problème qui rend l’étape 3 de cet exploit possible ? De quelle forme d’attaque
cryptographique s’agit-il ? Quelle solution proposeriez-vous ?
2. Dans quelle catégorie de la classification SANS classeriez-vous cet exploit ? (à voir après le
cours sur les vulnérabilités).
Chapitre 4
Fichier2
Fichier3
Fichier4
Le modèle HRU définit un ensemble de 6 opérations primitives pour modifier un état (S, O, M) :
— enter a into M(s, o)
— delete a into M(s, o)
— create subject s
— delete subject s
— create object o
— delete object o
1. On note (S, O, M) `c (S 0 , O 0 , M 0 ) le changement d’état associé à la commande c. Donner,
formellement ou en pseudo-code, la définition des quatre premières opérations primitives.
2. On considère comme état initial la matrice donnée en exemple. Donner l’état obtenu après
l’exécution de la séquence d’opérations suivante :
1. enter w into M(a, 3)
2. create object 5
3. create object 5
4. enter owns into M(e, 5)
5. delete object 2
3. À partir des opérations et des structures de contrôle de base, on peut construire des opérations
complexes :
31
command confer .read(s1, s2, o)
if owns ∈ M(s1, o) then
enter r into M(s2, o)
end if
Que fait cette commande ?
4. Similairement, définir les commandes
— confer .write(s1, s2, o)
— revoke.read(s1, s2, o)
5. Définir une commande create.file(s, o) qui crée un fichier o dont s est le propriétaire de o et
sur lequel tous les utilisateurs peuvent lire le fichier nouvellement crée.
6. La matrice des droits n’est généralement pas gérée telle que par les systèmes. On lui préfère
une représentation sous forme de listes chaînées, où les chaînes sont indexées soit par les
objets (access control list), soit par les sujets (capabilities list).
Les systèmes de gestion de fichier privilégient la forme access control list. Pourquoi ? Quelles
applications seraient susceptibles de privilégier la forme capabilities list ?
2. http://www.cis.syr.edu/~sueo/774/
1. Dessiner le diagramme de Hasse de . Enrichir ce diagramme en ajoutant les exclusions
mutuelles, les affectations d’utilisateurs et de permissions.
2. Identifier des erreurs dans l’état actuel du système.
1. Formaliser ces règles en logique du premier ordre avec les prédicats Ssd/2 et /2 qui
dénotent respectivement l’exclusion mutuelle et l’héritage entre rôles (a b pour a hérite
de b).
2. Montrer que les règles 3 et 4 peuvent être déduites des autres.
3. Quels intérêts peut-on trouver aux preuves de la question 2 ?
Il s’agit de définir une politique Rbac qui répond au cahier des charges de ce système (ne pas
faire d’hypothèse sur des droits supplémentaires).
1. Définir une hiérarchie de rôle ;
2. Définir une affectation de permissions aux rôles (PRA) ;
3. Définir une relation d’exclusion mutuelle statique binaire entre rôles ;
4. On souhaiterait ajouter les contraintes suivantes, comment les prendre en compte :
— « les responsabilités d’UE sont incompatible »
— « aucun étudiant en thèse ne peut être chargé de TD de plus d’une UE. »
— « chaque UE doit avoir au moins un responsable. »
Exercice 45 : Modélisation avec les rôles : entreprise de plâtrerie & peintures
On considère la description de l’entreprise Plâtrerie & Peintures Montiliennes pour laquelle on
va définir une politique RBAC dans une application de gestion.
— Alexandre (A) est un plâtrier qui est aussi quelques fois chef de chantier.
— Bernadette (B) est une électricienne.
— Charles (C) est un apprenti plombier qui est aussi quelques fois attaché de direction.
— Denis (D) est un plombier confirmé.
— Edouard (E) est un apprenti plâtrier et aussi un apprenti électricien.
— Françoise (F) est la chef de l’entreprise et quelques fois électricienne.
A cause de la prolifération de normes et règlements, un ensemble de règle interne définit quelles
sont les opérations autorisées sur les chantiers. Les intitulés de permissions à utiliser par la suite sont
donnés en italique.
— Les plâtriers peuvent poser des revêtement de sol, de mur et de plafond.
— Les électriciens peuvent installer des câblages ou des disjoncteurs et tester les câblages.
— Les plombiers peuvent poser de la tuyauterie et des vannes.
— Les apprentis peuvent aider et peuvent réaliser eux-mêmes quelques tâches :
— les apprentis plâtriers peuvent poser des revêtements de sol,
— les apprentis électriciens peuvent tester les câblages,
— les apprentis plombiers peuvent poser de la tuyauterie.
— Les électriciens et les plombiers peuvent réaliser les plans de leurs installations.
— Les chefs de chantier peuvent superviser les travaux et aider quand nécessaire.
— Les attachés de direction peuvent réaliser les plannings, commander les fournitures et facturer
les clients.
— Tous les employés peuvent consulter les plans.
1. Définir un ensemble de rôle hiérarchisés qui modélise ce problème. On donnera des noms
évocateurs aux rôles et on précisera la hiérarchie en la dessinant. Définir les relations User-
Role Assignment et Permission-Role Assignment en faisant en sorte que chaque permission
soit associée à exactement un seul rôle. (Note : pour respecter cette consigne il faut intégrer
quelques rôles techniques qui ne correspondent pas directement à des métiers)
2. On désire s’assurer d’une règle de séparation des tâches précisant que plâtrier, électricien
et plombier sont des fonctions incompatibles. Discuter de la validité de cette règle et de sa
réalisation sur le cas d’étude.
Exercice 48 : Questions
1. Pour faire le parallèle avec les modèles déjà vus, indiquer quels sont les sujets, actions et
objets considérés dans ce modèle. Préciser l’ensemble des décisions.
2. Remplir le tableau suivant, en indiquant quels sont les rôles autorisés
url-pattern http-method roles
/* DELETE
/* PUT
/acme/wholesale/* DELETE
/acme/wholesale/* GET
/acme/wholesale/* POST
/acme/wholesale/* PUT
/acme/retail/* DELETE
/acme/retail/* GET
/acme/retail/* POST
/acme/retail/* PUT
3. On ajoute la règle suivante
SC5 = {/acme/} [GET] <HOMEOWNER>
Remplir le tableau suivant en conséquence :
url-pattern http-method roles
/acme/ PUT
/acme/ DELETE
/acme/ GET
4. On désigne par R la collection des rôles existants et par L l’ensemble de tous les sous-
ensembles de R auquel on ajoute un élément > pour les accès non authentifiés : L =
℘(R)∪{>} avec > ∈ / R. Un ordre partiel ≤ sur L est défini par RA ≤ RB ≡ RB = >∨(RA 6=
> ∧ RA ⊆ RB ). Définir (formellement ou en pseudo-code) l’opération ⊗ : L × L → L qui
combine deux éléments de L quand plusieurs règles sont applicables.
5. Sachant que l’exemple de la question 2 est à peu près le seul de la spécification, critiquer
constructivement la sémantique des security constraints des descripteurs de déploiement.
41
Annexe A
Appendice
Trace B
SENT (0.2300s) TCP 134.214.235.21:53 > 134.214.142.10:443 S ttl=64 id=49208 iplen=44
SENT (0.2300s) TCP 134.214.235.21:53 > 134.214.142.10:80 S ttl=64 id=32073 iplen=44
SENT (0.2300s) TCP 134.214.235.21:53 > 134.214.142.10:8080 S ttl=64 id=30178 iplen=44
SENT (0.2300s) TCP 134.214.235.21:53 > 134.214.142.10:22 S ttl=64 id=38225 iplen=44
SENT (0.2300s) TCP 134.214.235.21:53 > 134.214.142.10:631 S ttl=64 id=9262 iplen=44
RCVD (0.2320s) TCP 134.214.142.10:443 > 134.214.235.21:53 SA ttl=64 id=0 iplen=44
RCVD (0.2330s) TCP 134.214.142.10:80 > 134.214.235.21:53 SA ttl=64 id=0 iplen=44
RCVD (0.2340s) TCP 134.214.142.10:8080 > 134.214.235.21:53 SA ttl=64 id=0 iplen=44
SENT (1.3310s) TCP 134.214.235.21:53 > 134.214.142.10:631 S ttl=64 id=39325 iplen=44
SENT (1.3310s) TCP 134.214.235.21:53 > 134.214.142.10:22 S ttl=64 id=370 iplen=44
RP1 =
< p,
subject(patient) /\ action(read) /\ resource(patient_record),
patient(id,X) /\ patient_record(id,Y) /\
(X = Y \/ (age(Y) < 18 /\ guardian(X,Y))>
RP2 =
< p,
subject(patient) /\ action(write) /\ resource(patient_survey),
patient(id,X) /\ patient_survey(id, X)>
RP3=
< p,
(subject(doctor) \/ subject(nurse)) /\ action(read) /\ resource(patient_record),
true>
RM1 =
< p,
subject(doctor) /\ action(write) /\ resource(medical_record),
doctor(id,X) /\ patient(id,Y) /\ medical_record(id, Y) /\ patient_doctor(Y,X)>
RM2 =
< d,
subject(doctor) /\ action(write) /\ resource(medical_record),
doctor(id,X), patient(id,Y), medical_record(id, Y), not
patient_doctor(Y,X)>
Délibération refusant la mise en oeuvre par l'Autorité de contrôle des assurances et des
mutuelles CAM) d'un traitement automatisé de données à caractère personnel reposant sur la
reconnaissance des empreintes digitales et ayant pour finalité le contrôle de l'accès au réseau
informatique (postes de travail fixes et portables).
Vu la Convention n° 108 du Conseil de l'Europe pour la protection des personnes à l'égard du traitement
automatisé des données à caractère personnel ;
Vu la directive 95/46/CE du Parlement européen et du Conseil du 24 octobre 1995 relative à la protection des
personnes physiques à l'égard du traitement de données à caractère personnel et la libre circulation de ces
données ;
Vu la loi n° 78-17 du 6 janvier 1978 relative à l'informatique, aux fichiers et aux libertés modifiée par la loi n°
2004-801 du 6 août 2004 relative à la protection des personnes physiques à l'égard des traitements de données
à caractère personnel, notamment son article 25-8° ;
Vu le décret n° 2005-1309 du 20 octobre 2005 pris pour l'application de la loi n° 78-17 du 6 janvier 1978
relative à l'informatique, aux fichiers et aux libertés, modifiée par la loi n° 2004-801 du 6 août 2004 modifié par
le décret n° 2007-451 du 25 mars 2007 ;
Vu la demande d'autorisation, présentée par l'Autorité de contrôle des assurances et des mutuelles (ACAM) d'un
traitement automatisé de données à caractère personnel reposant sur la reconnaissance des empreintes digitales
et ayant pour finalité le contrôle de l'accès au réseau informatique (postes de travail fixes et portables) ;
Après avoir entendu M. Hubert BOUCHET, commissaire en son rapport et Mme Pascale COMPAGNIE,
commissaire du Gouvernement, en ses observations.
La Commission nationale de l'informatique et des libertés a été saisie par l'Autorité de contrôle des assurances et
des mutuelles (ACAM) d'un traitement automatisé de données à caractère personnel reposant sur la
reconnaissance des empreintes digitales et ayant pour finalité le contrôle de l'accès au réseau informatique
(postes de travail fixes et portables).
Il y a lieu de faire application des dispositions prévues à l'article 25-8° de la loi du 6 janvier 1978 modifiée qui
soumet à autorisation les traitements comportant des données biométriques nécessaires au contrôle de l'identité
des personnes.
L'ACAM est chargée de contrôler le respect par les entreprises d'assurance et de réassurance, les mutuelles, les
institutions de prévoyance et les institutions de prévoyance et les institutions de retraite supplémentaire, des
dispositions législatives et réglementaires qui leur sont applicables et de sanctionner les manquements constatés.
Le dispositif a pour objet de contrôler l'accès au réseau informatique (postes de travail fixes et portables).
La Commission considère que la constitution de bases de données d'empreintes digitales ne peut être admise que
dans certaines circonstances particulières où l'exigence d'identification des personnes résulte d'un fort impératif
de sécurité, conformément aux dispositions de l'article 6-3° de la loi du 6 janvier 1978 modifiée. En effet, cet
article dispose que les traitements ne peuvent porter que sur des données à caractère personnel adéquates,
pertinentes et non excessives au regard des finalités pour lesquelles elles sont collectées et de leurs traitements
ultérieurs.
En l'espèce, l'objectif poursuivi par l'ACAM tendant au contrôle de l'accès au réseau informatique (postes de
travail fixes et portables), s'il est légitime, n'est associé à aucune circonstance particulière justifiant la
conservation dans une base de données des empreintes digitales des employés habilités à accéder au réseau
informatique (postes de travail fixes et portables). En conséquence, le traitement pris dans son ensemble
n'apparaît ni adapté ni proportionné à l'objectif poursuivi.
1 of 2 11/17/2010 06:30 PM
Détail d'une délibération de la CNIL http://www.legifrance.gouv.fr/affichCnil.do?oldAc...
Dès lors, la Commission n'autorise pas, en l'état, l'Autorité de contrôle des assurances et des mutuelles (ACAM)
sise au 54 rue de Châteaudun 75436 Paris Cedex 09, à mettre en oeuvre un traitement de données à caractère
personnel reposant sur l'utilisation d'un dispositif biométrique de reconnaissance des empreintes digitales et dont
la finalité est le contrôle de l'accès au réseau informatique (postes de travail fixes et portables).
2 of 2 11/17/2010 06:30 PM
Détail d'une délibération de la CNIL http://www.legifrance.gouv.fr/affichCnil.do?oldAc...
Délibération portant autorisation de mise en oeuvre par le collège "Les Mimosas" d'un
traitement automatisé de données à caractère personnel reposant sur la reconnaissance du
contour de la main et ayant pour finalité de contrôler l'accès au restaurant scolaire.
Vu la convention n° 108 du Conseil de l'Europe pour la protection des personnes à l'égard du traitement
automatisé des données à caractère personnel ;
Vu la directive 95/46/CE du Parlement européen et du Conseil du 24 octobre 1995 relative à la protection des
personnes physiques à l'égard du traitement de données à caractère personnel et à la libre circulation de ces
données ;
Vu la loi n° 78-17 du 6 janvier 1978 relative à l'informatique, aux fichiers et aux libertés modifiée par la loi n°
2004-801 du 6 août 2004 relative à la protection des personnes physiques à l'égard des traitements de données
à caractère personnel, et notamment son article 25-8° ;
Vu la déclaration présentée par le principal du collège "Les Mimosas", d'un traitement automatisé de données à
caractère personnel ayant pour finalité le contrôle de l'accès au restaurant scolaire par la reconnaissance du
contour de la main ;
Après avoir entendu M. Francis Delattre, Commissaire, en son rapport, et Mme Charlotte-Marie Pitrat,
Commissaire du Gouvernement, en ses observations,
Le collège "Les Mimosas", situé à Mandelieu, a saisi la CNIL d'une déclaration relative à la mise en oeuvre d'un
traitement de données à caractère personnel ayant pour finalité le contrôle de l'accès des élèves et des
personnels au restaurant scolaire par le recours à un dispositif biométrique reposant sur la reconnaissance du
contour de la main.
La Commission considère qu'il y a lieu de faire application des dispositions prévues à l'article 25-8° de la loi du 6
janvier 1978 modifiée qui soumet à autorisation les traitements comportant des données biométriques
nécessaires au contrôle de l'identité des personnes.
Le système envisagé reposera d'une part, sur la mise en oeuvre d'un fichier de gestion recensant les élèves et
les personnels fréquentant la cantine scolaire et d'autre part, sur un dispositif de contrôle d'accès. Ce dernier
sera composé d'une borne d'accès, située à l'entrée du restaurant, reliée à un lecteur biométrique, lequel
contiendra une base de données comportant les gabarits biométriques et les codes d'accès. L'enregistrement de
l'image de la main de chaque personne sera effectué au début de l'année scolaire.
Le contour de la main fait partie des données qui ne laissent pas de traces susceptibles d'être utilisées à des fins
étrangères à la finalité recherchée par le responsable du traitement. Le lecteur biométrique utilisé sera
accompagné d'un dispositif de nature à garantir la sécurité des données.
Le recours à la technique de reconnaissance du contour de la main permettra de s'assurer que les données
nécessaires au contrôle de l'accès ne sont ni perdues, ni échangées et que seules les personnes habilitées
peuvent accéder au service.
Les personnes concernées qui ne seront pas désireuses d'utiliser la technologie biométrique seront dotées d'une
carte à code-barre pour accéder au restaurant scolaire.
Compte tenu des caractéristiques du dispositif présenté à la Commission et en l'état actuel des connaissances sur
la technologie utilisée, la mise en oeuvre d'un traitement reposant sur la reconnaissance de la géométrie de la
main est adaptée et proportionnée à la finalité assignée au dispositif.
1 of 2 11/17/2010 06:29 PM
Détail d'une délibération de la CNIL http://www.legifrance.gouv.fr/affichCnil.do?oldAc...
- s'agissant des élèves : les gabarits biométriques de la main associés à un code d'accès personnel, et les
données de gestion utiles pour l'accès au restaurant, à savoir, l'identité de l'élève, la classe, le numéro d'ordre
dans l'établissement, les coordonnées du responsable légal, un code horaire et un code tarif.
S'agissant des personnels : les gabarits biométriques de la main associés à un code d'accès personnel, l'identité,
les codes horaire et tarif.
Les destinataires des informations seront les seuls utilisateurs du dispositif autorisés : le principal et le conseiller
principal d'éducation.
Autorise, dans ces conditions, le collège "Les Mimosas", à mettre en oeuvre un traitement de données à
caractère personnel ayant pour finalité de contrôler l'accès au restaurant scolaire par la mise en oeuvre d'un
dispositif de reconnaissance du contour de la main.
2 of 2 11/17/2010 06:29 PM
Détail d'une délibération de la CNIL http://www.legifrance.gouv.fr/affichCnil.do?oldAc...
Saisie le 29 juillet 2004 d'une déclaration portant sur la mise en oeuvre d'un dispositif de "ligne éthique" au sein
de la Compagnie européenne d'accumulateurs,
Vu la Convention n° 108 du Conseil de l'Europe pour la protection des personnes à l'égard du traitement
automatisé des données à caractère personnel,
Vu la directive 95/46/CE du Parlement européen et du Conseil du 24 octobre 1995 relative à la protection des
personnes physiques à l'égard du traitement de données à caractère personnel et la libre circulation de ces
données,
Vu la loi n° 78-17 du 6 janvier 1978 relative à l'informatique, aux fichiers et aux libertés modifiée par la loi n°
2004-801 du 6 août 2004 relative à la protection des personnes physiques à l'égard des traitements de données
à caractère personnel,
Après avoir entendu M. Hubert Bouchet, commissaire, en son rapport, et Mme Charlotte-Marie Pitrat,
commissaire du Gouvernement, en ses observations,
La Compagnie européenne d'accumulateurs (CEAC) a saisi la CNIL d'une déclaration concernant la mise en
oeuvre d'une "hotline" (ligne téléphonique dédiée) à destination de ses 1500 employés.
Ce dispositif de "ligne éthique", conçu par sa société mère Exide Technologies afin de se conformer aux
dispositions de la loi américaine dite "Sarbanes-Oxley", devrait permettre à l'ensemble des salariés du groupe
"de communiquer avec le comité de surveillance comptable du conseil d'administration d'Exide sur des sujets tels
que les inexactitudes ou les irrégularités comptables qui pourraient être commises".
La "hotline" devrait également permettre aux salariés d'alerter les dirigeants du groupe sur les éventuelles
violations des principes en vigueur dans l'entreprise (règles de conduite éthique ou commerciale) ou des lois en
vigueur.
Le dispositif s'appuierait à la fois sur un numéro vert et sur une adresse électronique.
Dans les deux cas, les alertes et les demandes d'information seraient en fait adressées à un sous-traitant
américain pour le compte de Exide Technologies. S'agissant des appels passés en langue française, un second
prestataire de service américain interviendrait.
Les sous-traitants seraient chargés d'enregistrer sur support informatique le contenu des demandes et des
alertes selon la classification suivante : "(1) ressources humaines ou problèmes de travail, (2) fraude ou vol, (3)
erreur comptable, (4) problèmes liés aux principes de conduite et d'éthique".
En fonction de cette classification, un résumé écrit des appels et des messages électroniques reçus devrait
ensuite être transmis, par e-mail crypté, aux personnes nommément désignées à cet effet par la société-mère
(département juridique, département comptabilité, comité international, comité de vérification des comptes du
conseil d'administration).
Le destinataire de l'information au sein d'Exide Technologies réaliserait ensuite, le cas échéant, une enquête
interne. Celle-ci s'effectuerait en liaison avec le responsable juridique France (CEAC) qui recevrait les données
nécessaires par courrier électronique.
1 of 2 11/17/2010 06:28 PM
Détail d'une délibération de la CNIL http://www.legifrance.gouv.fr/affichCnil.do?oldAc...
Un "suivi de dossier" serait également adressé, par voie électronique, par la société-mère au responsable
juridique France, qui le transmettrait au responsable des ressources humaines France.
Tout salarié concerné par un appel serait informé "le plus tôt possible des allégations prononcées à son encontre
de telle sorte qu'il puisse s'expliquer".
L'article 3 de la loi du 6 janvier 1978 modifiée dispose que le responsable d'un traitement de données à
caractère personnel est, sauf désignation expresse par les dispositions législatives ou réglementaires relatives à
ce traitement, la personne, l'autorité publique, le service ou l'organisme qui détermine ses finalités et ses
moyens.
Il ressort du dossier de formalités préalables présenté par la société CEAC que cette dernière agit auprès de la
CNIL en qualité de responsable du dispositif de "ligne éthique" qu'elle envisage de mettre en oeuvre, et en
particulier des traitements de données opérés lors des enquêtes diligentées sur des employés déterminés à la
suite d'un signalement opéré dans le cadre du dispositif.
Dès lors, la Commission constate que la loi du 6 janvier 1978 relative à l'informatique, aux fichiers et aux libertés
est applicable au dispositif de "ligne éthique" présenté et qu'elle est donc compétente pour se prononcer sur la
conformité du projet à cette loi.
La Commission relève que le dispositif envisagé est susceptible de conduire la société CEAC à décider, au titre
des mesures correctives qu'elle doit prendre à la suite d'un signalement, à exclure des employés considérés
fautifs du bénéfice de leur contrat de travail en l'absence de toute disposition législative ou réglementaire
encadrant ce type de traitement.
Dès lors, la procédure d'autorisation prévue à l'article 25-1, 4° de la loi du 6 janvier 1978 modifiée doit être
appliquée au traitement de données personnelles présenté.
La Commission considère que la mise en oeuvre par un employeur d'un dispositif destiné à organiser auprès de
ses employés le recueil, quelle qu'en soit la forme, de données personnelles concernant des faits contraires aux
règles de l'entreprise ou à la loi imputables à leurs collègues de travail, en ce qu'il pourrait conduire à un
système organisé de délation professionnelle, ne peut qu'appeler de sa part une réserve de principe au regard
de la loi du 6 janvier 1978 modifiée, et en particulier de son article 1er.
En ce sens, la Commission observe que la possibilité de réaliser une "alerte éthique" de façon anonyme ne
pourrait que renforcer le risque de dénonciation calomnieuse.
Au surplus, la Commission estime que le dispositif présenté est disproportionné au regard des objectifs poursuivis
et des risques de dénonciations calomnieuses et de stigmatisation des employés objets d'une "alerte éthique".
Elle relève à cet égard que d'autres moyens prévus par la loi existent d'ores et déjà afin de garantir le respect
des dispositions légales et des règles fixées par l'entreprise (actions de sensibilisation par l'information et la
formation des personnels, rôle d'audit et d'alerte des commissaires aux comptes en matière financière et
comptable, saisine de l'inspection du travail ou des juridictions compétentes).
La Commission relève enfin que les employés objets d'un signalement ne seraient, par définition, pas informés
dès l'enregistrement de données mettant en cause leur intégrité professionnelle ou de citoyen, et n'auraient donc
pas les moyens de s'opposer à ce traitement de données les concernant. Les modalités de collecte et de
traitement de ces données, dont certaines pourraient concerner des faits susceptibles d'être constitutifs
d'infractions pénales, ne peuvent dès lors être considérées comme loyales au sens de l'article 6 de la loi du 6
janvier 1978 modifiée.
Compte tenu de ces observations, la Commission n'autorise pas la mise en oeuvre du dispositif de "ligne éthique"
présenté par la Compagnie européenne d'accumulateurs.
2 of 2 11/17/2010 06:28 PM
A.5 Grille de critères pour l’analyse de la vie privée
ANALYSE DE RISQUE
[Age10a] Agence Nationale de la Sécurité des Systèmes d’Information. Expression des Besoins et
Identification des Objectifs de Sécurité – Bases De Connaissances. Technical report, 2010.
[Age10b] Agence Nationale de la Sécurité des Systèmes d’Information. Expression des Besoins et
Identification des Objectifs de Sécurité – Étude de cas Archimed. Technical report, 2010.
[Age10c] Agence Nationale de la Sécurité des Systèmes d’Information. Expression des Besoins et
Identification des Objectifs de Sécurité – Méthode de Gestion des Risques. Technical
report, 2010.
[AJO10] Gildas Avoine, Pascal Junod, and Philippe Balbiani Oechslin. Sécurité informatique. Vui-
bert, deuxième edition, 2010.
[CY03] Danny Coward and Yutaka Yoshida. Java servlet specification, version 2.4. Technical
report, Sun Microsystems, Inc, November 2003.
[DH76] Whitfield Diffie and Martin E. Hellman. New directions in cryptography. IEEE Transactions
on Information Theory, IT-22(6) :644–654, 1976.
[GB98] Serban I. Gavrila and John F. Barkley. Formal specification for role based access control
user/role and role/role relationship management. In RBAC’98 : 3rd ACM workshop on
Role-based access control, pages 81–90, 1998.
[GH11] Solange Ghernaouti-Hélie. Sécurité informatique et réseaux. Dunod, troisième edition,
2011.
55