Sécurité des applications Web. Yannick Chevalier Université de Toulouse IUP NTIE M
|
|
|
- Blanche Charles
- il y a 10 ans
- Total affichages :
Transcription
1 Sécurité des applications Web Yannick Chevalier IUP NTIE M
2 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB CONTRÔLE D ACCÈS POUR LES SERVICES WEB Sécurité des applications Web 2/479
3 DOMAINE DU COURS Services Web Standards définis par W3C, Oasis Open, IETF, et soutenus par des vendeurs Services Web : services s échangeant des documents XML But : interopérabilité sécurisée des services Web Sécurité des applications Web 3/479
4 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB CONTRÔLE D ACCÈS POUR LES SERVICES WEB Sécurité des applications Web 4/479
5 HISTORIQUE AVANT LES ANNÉES 1970 Ordinateurs dans des environnements sécurisés Réinitialisation entre chaque programme DÉBUTS DE LA SÉCURITÉ Apparition d ordinateurs et de systèmes d exploitations multi-tâches ( 1970) But : garantir la même sécurité que dans la génération précédente Sécurité des applications Web 5/479
6 HISTORIQUE AVANT LES ANNÉES 1970 Ordinateurs dans des environnements sécurisés Réinitialisation entre chaque programme DÉBUTS DE LA SÉCURITÉ Apparition d ordinateurs et de systèmes d exploitations multi-tâches ( 1970) But : garantir la même sécurité que dans la génération précédente Sécurité des applications Web 6/479
7 SÉPARATION SÉPARATION L exécution d un programme ne doit pas influer sur l exécution d un autre programme DÉFINITION EXTENSIVE Exemple : même si un programme boucle, cela ne doit pas influer sur l exécution des autres programmes Exemple : même si un programme a un memory leak, cela ne doit pas influer sur l exécution des autres programmes Exemple : dans un système multi-tâches, l état du processeur lorsqu il donne la main à un programme ne doit pas dépendre des autres programmes Sécurité des applications Web 7/479
8 SÉPARATION SÉPARATION L exécution d un programme ne doit pas influer sur l exécution d un autre programme DÉFINITION EXTENSIVE Exemple : même si un programme boucle, cela ne doit pas influer sur l exécution des autres programmes Exemple : même si un programme a un memory leak, cela ne doit pas influer sur l exécution des autres programmes Exemple : dans un système multi-tâches, l état du processeur lorsqu il donne la main à un programme ne doit pas dépendre des autres programmes Sécurité des applications Web 8/479
9 SÉPARATION SÉPARATION L exécution d un programme ne doit pas influer sur l exécution d un autre programme DÉFINITION EXTENSIVE Exemple : même si un programme boucle, cela ne doit pas influer sur l exécution des autres programmes Exemple : même si un programme a un memory leak, cela ne doit pas influer sur l exécution des autres programmes Exemple : dans un système multi-tâches, l état du processeur lorsqu il donne la main à un programme ne doit pas dépendre des autres programmes Sécurité des applications Web 9/479
10 SÉPARATION SÉPARATION L exécution d un programme ne doit pas influer sur l exécution d un autre programme DÉFINITION EXTENSIVE Exemple : même si un programme boucle, cela ne doit pas influer sur l exécution des autres programmes Exemple : même si un programme a un memory leak, cela ne doit pas influer sur l exécution des autres programmes Exemple : dans un système multi-tâches, l état du processeur lorsqu il donne la main à un programme ne doit pas dépendre des autres programmes Sécurité des applications Web 10/479
11 BASE DE CONFIANCE (1/2) ASSUME/GUARANTEE En informatique, on raisonne presque toujours par contrat entre différents composants : Chaque composant est écrit d après des hypothèses sur ce que garantissent d autres composants : l OS fait des hypothèses sur le matériel sous-jacent les applications font des hypothèses sur l OS... Et chaque composant garantit certaines propriétés : absence de memory leaks, temps d exécution,... Sécurité des applications Web 11/479
12 BASE DE CONFIANCE (2/2) SÉCURITÉ Formalismes exprimant les propriétés que les OS doivent satisfaire pour obtenir une sécurité équivalente à celle de la génération précédente Base de confiance : parties du système non-vérifiées qui permettent de garantir les propriétés qu on recherche Exemple : effacement des registres par le processeur pour un système d exploitation Note : pas forcément trivial lors de l optimisation à la volée du code machine par le processeur Sécurité des applications Web 12/479
13 CONFIGURATION STATIQUE PRINCIPE GÉNÉRAL Les ressources sont allouées à chaque application de manière statique APPLICATION À LA SÉCURITÉ Les politiques de contrôle d accès sont définies avant l exécution de chacun des composants Ces politiques ne peuvent pas changer tant que le système est en cours d exécution Contrôle d accès statique En particulier, lors de l exécution, il n y a pas d administrateur qui peut changer des droits On parle de politique de contrôle d accès MAC : Mandatory Access Control Permet de simplifier l analyse de sécurité d un système Sécurité des applications Web 13/479
14 CONFIGURATION STATIQUE PRINCIPE GÉNÉRAL Les ressources sont allouées à chaque application de manière statique APPLICATION À LA SÉCURITÉ Les politiques de contrôle d accès sont définies avant l exécution de chacun des composants Ces politiques ne peuvent pas changer tant que le système est en cours d exécution Contrôle d accès statique En particulier, lors de l exécution, il n y a pas d administrateur qui peut changer des droits On parle de politique de contrôle d accès MAC : Mandatory Access Control Permet de simplifier l analyse de sécurité d un système Sécurité des applications Web 14/479
15 CONFIGURATION STATIQUE PRINCIPE GÉNÉRAL Les ressources sont allouées à chaque application de manière statique APPLICATION À LA SÉCURITÉ Les politiques de contrôle d accès sont définies avant l exécution de chacun des composants Ces politiques ne peuvent pas changer tant que le système est en cours d exécution Contrôle d accès statique En particulier, lors de l exécution, il n y a pas d administrateur qui peut changer des droits On parle de politique de contrôle d accès MAC : Mandatory Access Control Permet de simplifier l analyse de sécurité d un système Sécurité des applications Web 15/479
16 CONFIGURATION STATIQUE PRINCIPE GÉNÉRAL Les ressources sont allouées à chaque application de manière statique APPLICATION À LA SÉCURITÉ Les politiques de contrôle d accès sont définies avant l exécution de chacun des composants Ces politiques ne peuvent pas changer tant que le système est en cours d exécution Contrôle d accès statique En particulier, lors de l exécution, il n y a pas d administrateur qui peut changer des droits On parle de politique de contrôle d accès MAC : Mandatory Access Control Permet de simplifier l analyse de sécurité d un système Sécurité des applications Web 16/479
17 CONFIGURATION STATIQUE PRINCIPE GÉNÉRAL Les ressources sont allouées à chaque application de manière statique APPLICATION À LA SÉCURITÉ Les politiques de contrôle d accès sont définies avant l exécution de chacun des composants Ces politiques ne peuvent pas changer tant que le système est en cours d exécution Contrôle d accès statique En particulier, lors de l exécution, il n y a pas d administrateur qui peut changer des droits On parle de politique de contrôle d accès MAC : Mandatory Access Control Permet de simplifier l analyse de sécurité d un système Sécurité des applications Web 17/479
18 SÉPARATION TEMPORELLE ÉNONCÉ La configuration doit spécifier le temps d exécution alloué à chaque application Implémenté dans tous les systèmes temps réel dur Revient à allouer une fraction des cycles d un processeur à chaque application Même lorsqu une application plante, elle ne peut pas utiliser plus de cycles Sécurité des applications Web 18/479
19 SÉPARATION SPATIALE ÉNONCÉ La configuration doit spécifier l espace mémoire alloué à chaque application On parle aussi de partitionnement Implique l absence de communication entre deux applications (IPC système V) En pratique : On alloue une zone de la mémoire (RAM, DD,... ) à chaque application pas de malloc, ou un malloc sécurisé, allouant des zones mémoires au sein de la zone allouée pas de pointeurs, sauf s ils sont sécurisés pour ne lire que dans l espace alloué Très difficile à mettre en œuvre car : Besoin d un compilateur ou d un langage spécifique Dans un système multi-tâches, les registres d un processeurs sont forcément partagés entre plusieurs applications Sécurité des applications Web 19/479
20 CONTRÔLE D ACCÈS ET SÉPARATION SPATIALE Difficile d implémenter strictement des systèmes avec séparation Communications entre composants Importation de librairies partagées En pratique, violations du partitionnement spatial autorisé mais ces violations sont encadrées par un mécanisme de contrôle On parle de systèmes de contrôle d accès Sécurité des applications Web 20/479
21 CONTRÔLE D ACCÈS ET SÉPARATION SPATIALE Difficile d implémenter strictement des systèmes avec séparation Communications entre composants Importation de librairies partagées En pratique, violations du partitionnement spatial autorisé mais ces violations sont encadrées par un mécanisme de contrôle On parle de systèmes de contrôle d accès Sécurité des applications Web 21/479
22 CONTRÔLE D ACCÈS ET SÉPARATION SPATIALE Difficile d implémenter strictement des systèmes avec séparation Communications entre composants Importation de librairies partagées En pratique, violations du partitionnement spatial autorisé mais ces violations sont encadrées par un mécanisme de contrôle On parle de systèmes de contrôle d accès Sécurité des applications Web 22/479
23 CONTRÔLE D ACCÈS ET SÉPARATION SPATIALE Difficile d implémenter strictement des systèmes avec séparation Communications entre composants Importation de librairies partagées En pratique, violations du partitionnement spatial autorisé mais ces violations sont encadrées par un mécanisme de contrôle On parle de systèmes de contrôle d accès Sécurité des applications Web 23/479
24 CONTRÔLE D ACCÈS ET SÉPARATION SPATIALE Difficile d implémenter strictement des systèmes avec séparation Communications entre composants Importation de librairies partagées En pratique, violations du partitionnement spatial autorisé mais ces violations sont encadrées par un mécanisme de contrôle On parle de systèmes de contrôle d accès Sécurité des applications Web 24/479
25 CONTRÔLE D ACCÈS ET SÉPARATION SPATIALE Difficile d implémenter strictement des systèmes avec séparation Communications entre composants Importation de librairies partagées En pratique, violations du partitionnement spatial autorisé mais ces violations sont encadrées par un mécanisme de contrôle On parle de systèmes de contrôle d accès Sécurité des applications Web 25/479
26 BONS SYSTÈMES DE CONTRÔLE D ACCÈS NEAT SECURITY Non-bypassable : il est impossible de contourner le système de contrôle d accès Evaluatable : il doit être possible d évaluer (= décider) les conséquences d une politique Always invoked : pas de droits futurs, le système de contrôle doit être appelé lors de chaque accès Tamperproof : il est impossible d altérer le fonctionnement du système de contrôle d accès Ces critères de sécurité correspondent aussi à ce qu on attend d un système fiable (début cours sécurité) L histoire du contrôle d accès, c est aussi les recherches pour échapper à ce modèle trop rigide Constante de la sécurité : on sait sécuriser mais il est difficile de concilier l utilisabilité et la sécurité Sécurité des applications Web 26/479
27 BONS SYSTÈMES DE CONTRÔLE D ACCÈS NEAT SECURITY Non-bypassable : il est impossible de contourner le système de contrôle d accès Evaluatable : il doit être possible d évaluer (= décider) les conséquences d une politique Always invoked : pas de droits futurs, le système de contrôle doit être appelé lors de chaque accès Tamperproof : il est impossible d altérer le fonctionnement du système de contrôle d accès Ces critères de sécurité correspondent aussi à ce qu on attend d un système fiable (début cours sécurité) L histoire du contrôle d accès, c est aussi les recherches pour échapper à ce modèle trop rigide Constante de la sécurité : on sait sécuriser mais il est difficile de concilier l utilisabilité et la sécurité Sécurité des applications Web 27/479
28 BONS SYSTÈMES DE CONTRÔLE D ACCÈS NEAT SECURITY Non-bypassable : il est impossible de contourner le système de contrôle d accès Evaluatable : il doit être possible d évaluer (= décider) les conséquences d une politique Always invoked : pas de droits futurs, le système de contrôle doit être appelé lors de chaque accès Tamperproof : il est impossible d altérer le fonctionnement du système de contrôle d accès Ces critères de sécurité correspondent aussi à ce qu on attend d un système fiable (début cours sécurité) L histoire du contrôle d accès, c est aussi les recherches pour échapper à ce modèle trop rigide Constante de la sécurité : on sait sécuriser mais il est difficile de concilier l utilisabilité et la sécurité Sécurité des applications Web 28/479
29 BONS SYSTÈMES DE CONTRÔLE D ACCÈS NEAT SECURITY Non-bypassable : il est impossible de contourner le système de contrôle d accès Evaluatable : il doit être possible d évaluer (= décider) les conséquences d une politique Always invoked : pas de droits futurs, le système de contrôle doit être appelé lors de chaque accès Tamperproof : il est impossible d altérer le fonctionnement du système de contrôle d accès Ces critères de sécurité correspondent aussi à ce qu on attend d un système fiable (début cours sécurité) L histoire du contrôle d accès, c est aussi les recherches pour échapper à ce modèle trop rigide Constante de la sécurité : on sait sécuriser mais il est difficile de concilier l utilisabilité et la sécurité Sécurité des applications Web 29/479
30 BONS SYSTÈMES DE CONTRÔLE D ACCÈS NEAT SECURITY Non-bypassable : il est impossible de contourner le système de contrôle d accès Evaluatable : il doit être possible d évaluer (= décider) les conséquences d une politique Always invoked : pas de droits futurs, le système de contrôle doit être appelé lors de chaque accès Tamperproof : il est impossible d altérer le fonctionnement du système de contrôle d accès Ces critères de sécurité correspondent aussi à ce qu on attend d un système fiable (début cours sécurité) L histoire du contrôle d accès, c est aussi les recherches pour échapper à ce modèle trop rigide Constante de la sécurité : on sait sécuriser mais il est difficile de concilier l utilisabilité et la sécurité Sécurité des applications Web 30/479
31 BONS SYSTÈMES DE CONTRÔLE D ACCÈS NEAT SECURITY Non-bypassable : il est impossible de contourner le système de contrôle d accès Evaluatable : il doit être possible d évaluer (= décider) les conséquences d une politique Always invoked : pas de droits futurs, le système de contrôle doit être appelé lors de chaque accès Tamperproof : il est impossible d altérer le fonctionnement du système de contrôle d accès Ces critères de sécurité correspondent aussi à ce qu on attend d un système fiable (début cours sécurité) L histoire du contrôle d accès, c est aussi les recherches pour échapper à ce modèle trop rigide Constante de la sécurité : on sait sécuriser mais il est difficile de concilier l utilisabilité et la sécurité Sécurité des applications Web 31/479
32 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB CONTRÔLE D ACCÈS POUR LES SERVICES WEB Sécurité des applications Web 32/479
33 POURQUOI WEB? SERVICES UTILISANT LE PROTOCOLE HTTP Inconvénient : lourd, XML, couche supplémentaire Avantage : XML, permet de contourner les pare-feux, utilisables à partir d un navigateur (browser) SERVICES ET APPLICATIONS Pas réellement de différences pour un serveur Au pire, on peut qu une application va en particulier servir des pages complètes alors qu un service englobe tout ce qui répond à des requêtes HTTP Dans ce cours, on verra comment sécuriser des applications accessibles à partir d un browser. Sécurité des applications Web 33/479
34 POURQUOI WEB? SERVICES UTILISANT LE PROTOCOLE HTTP Inconvénient : lourd, XML, couche supplémentaire Avantage : XML, permet de contourner les pare-feux, utilisables à partir d un navigateur (browser) SERVICES ET APPLICATIONS Pas réellement de différences pour un serveur Au pire, on peut qu une application va en particulier servir des pages complètes alors qu un service englobe tout ce qui répond à des requêtes HTTP Dans ce cours, on verra comment sécuriser des applications accessibles à partir d un browser. Sécurité des applications Web 34/479
35 POURQUOI WEB? SERVICES UTILISANT LE PROTOCOLE HTTP Inconvénient : lourd, XML, couche supplémentaire Avantage : XML, permet de contourner les pare-feux, utilisables à partir d un navigateur (browser) SERVICES ET APPLICATIONS Pas réellement de différences pour un serveur Au pire, on peut qu une application va en particulier servir des pages complètes alors qu un service englobe tout ce qui répond à des requêtes HTTP Dans ce cours, on verra comment sécuriser des applications accessibles à partir d un browser. Sécurité des applications Web 35/479
36 SCHÉMA GÉNÉRAL 3 PARTIES : 1. Un client utilisant un browser pour émettre des requêtes vers un serveur 2. Un serveur recevant des requêtes et émettant des réponses 3. Un réseau transportant les requêtes et les réponses IMPORTANT La sécurité du client n est en général pas dans les mains du développeur d un site Web, mais il est possible de parer certaines attaques dont il pourrait être victime. Sécurité des applications Web 36/479
37 SCHÉMA GÉNÉRAL 3 PARTIES : 1. Un client utilisant un browser pour émettre des requêtes vers un serveur 2. Un serveur recevant des requêtes et émettant des réponses 3. Un réseau transportant les requêtes et les réponses IMPORTANT La sécurité du client n est en général pas dans les mains du développeur d un site Web, mais il est possible de parer certaines attaques dont il pourrait être victime. Sécurité des applications Web 37/479
38 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT Architecture du client Partitionnement spatial Attaques liées au browser Quelques solutions possibles SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB Sécurité des applications Web 38/479
39 OUTLINE SÉCURITÉ DU CLIENT Architecture du client Partitionnement spatial Attaques liées au browser Quelques solutions possibles Sécurité des applications Web 39/479
40 SÉPARATION SPATIALE PRINCIPE D UN BROWSER Il affiche un document à partir duquel il est possible de faire des requêtes vers des sites Webs Ce document contient du html, avec des requêtes formées à partir des balises a Il contient aussi des scripts, i.e., des programmes qui peuvent générer des requêtes avec ou sans l intervention de l utilisateur SANDBOXING Chaque fenêtre d un browser est isolée de son environnement : Politique de même origine : un script sur une page servie par example.com ne peut effectuer des requêtes que vers le site example.com Exception : Websockets (plus tard) Partitionnement spatial : les browsers assurent que les scripts hébergés par différentes pages : 1. ne peuvent pas avoir de variables communes 2. ne partagent pas de codes Université de fonctions de Toulouse (mais copies de code autorisées) Sécurité des applications Web 40/479
41 SÉPARATION SPATIALE PRINCIPE D UN BROWSER Il affiche un document à partir duquel il est possible de faire des requêtes vers des sites Webs Ce document contient du html, avec des requêtes formées à partir des balises a Il contient aussi des scripts, i.e., des programmes qui peuvent générer des requêtes avec ou sans l intervention de l utilisateur SANDBOXING Chaque fenêtre d un browser est isolée de son environnement : Politique de même origine : un script sur une page servie par example.com ne peut effectuer des requêtes que vers le site example.com Exception : Websockets (plus tard) Partitionnement spatial : les browsers assurent que les scripts hébergés par différentes pages : 1. ne peuvent pas avoir de variables communes 2. ne partagent pas de codes Université de fonctions de Toulouse (mais copies de code autorisées) Sécurité des applications Web 41/479
42 CONTENU D UNE PAGE WEB BASE Une page Web est représentée par l arbre des balises HTML qu elle contient DOM Une balise spéciale, script, permet d inclure en plus n importe quel programme écrit en un langage reconnu par le browser Langage universellement reconnu : JavaScript (JS) MODIFICATION D UNE PAGE WEB Un script contenu dans une page peut modifier cette page Il peut ajouter, modifier, ou supprimer des balises de n importe quel type Le browser réagit à ces modifications en temps réel Sécurité des applications Web 42/479
43 CONTENU D UNE PAGE WEB BASE Une page Web est représentée par l arbre des balises HTML qu elle contient DOM Une balise spéciale, script, permet d inclure en plus n importe quel programme écrit en un langage reconnu par le browser Langage universellement reconnu : JavaScript (JS) MODIFICATION D UNE PAGE WEB Un script contenu dans une page peut modifier cette page Il peut ajouter, modifier, ou supprimer des balises de n importe quel type Le browser réagit à ces modifications en temps réel Sécurité des applications Web 43/479
44 COMMUNICATIONS À PARTIR D UNE PAGE WEB (1/2) ÉLÉMENTS HTML Certains éléments HTML effectuent naturellement des requêtes GET (img, script, a) Ces requêtes sont définies par une url qui est recherchée L usage est d encoder des éventuelles informations à passer à un serveur dans cette url Les scripts peuvent aussi envoyer des requêtes (e.g., soumission d un formulaire) Sécurité des applications Web 44/479
45 COMMUNICATIONS À PARTIR D UNE PAGE WEB (2/2) REQUÊTES À PARTIR DE JAVASCRIPT (universel) On crée un objet XMLHttpRequest On indique : quelle méthode HTTP on désire utiliser (il n y a pas que GET!) l url à contacter éventuellement le contenu de la requête la fonction à appeler lors de la réception de la réponse (inutile si la requête est synchrone) Et voilà! Sécurité des applications Web 45/479
46 OUTLINE SÉCURITÉ DU CLIENT Architecture du client Partitionnement spatial Attaques liées au browser Quelques solutions possibles Sécurité des applications Web 46/479
47 VIOLATIONS DU PARTITIONNEMENT SPATIAL (1/5) BIBLIOTHÈQUES Il serait très gênant de demander à l utilisateur de recharger une bibliothèque très répandue (e.g., JQuery) chaque fois qu il va sur un nouveau site Solution : Utilisation du cache du browser Utilisation d un Content Distribution Network pour distribuer la version de la bibliothèque qu on utilise Pour cela, on a besoin d autoriser le chargement de scripts sur d autres sites Web IMPORTANT L importation de scripts n est jamais soumise à la politique de même origine Sécurité des applications Web 47/479
48 VIOLATIONS DU PARTITIONNEMENT SPATIAL (1/5) BIBLIOTHÈQUES Il serait très gênant de demander à l utilisateur de recharger une bibliothèque très répandue (e.g., JQuery) chaque fois qu il va sur un nouveau site Solution : Utilisation du cache du browser Utilisation d un Content Distribution Network pour distribuer la version de la bibliothèque qu on utilise Pour cela, on a besoin d autoriser le chargement de scripts sur d autres sites Web IMPORTANT L importation de scripts n est jamais soumise à la politique de même origine Sécurité des applications Web 48/479
49 VIOLATIONS DU PARTIONNEMENT SPATIAL (2/5) EXTENSIONS Les extensions des browsers peuvent définir des pages virtuelles Ces pages sont isolées des pages affichées (pour le code) Mais il est possible de faire des requêtes Javascript (XMLHttpRequest) entre ces pages et celles affichées COOKIES/LOCALSTORAGE Stockage d informations dans le browser Pas de différences pour la sécurité Définitions de domaine différente pour les cookies du reste Le code servi par un domaine ne peut utiliser que des informations définies par ce domaine Sécurité des applications Web 49/479
50 VIOLATIONS DU PARTIONNEMENT SPATIAL (3/5) LA SÉCURITÉ, C EST EMBÊTANT! D après ce qui a été écrit, il n est pas possible de faire référence à une image (une ressource) hébergée par un autre domaine d envoyer des informations personnelles sur l utilisateur à un autre site (e.g., doubleclick.com) CROSS-ORIGIN RESOURCE SHARING (CORS) Les scripts situés sur la page servie par le domaine A peuvent effectuer des requêtes vers le domaine B Mais pour avoir une réponse, le domaine B doit avoir été configuré pour accepter explicitement les requêtes venant du domaine A (ou de tout domaine) IMPORTANT Politique de contrôle d accès à compléter éventuellement au sein domaine B avec des informations Université personnelles de Toulouse de l utilisateur Sécurité des applications Web 50/479
51 VIOLATIONS DU PARTIONNEMENT SPATIAL (3/5) LA SÉCURITÉ, C EST EMBÊTANT! D après ce qui a été écrit, il n est pas possible de faire référence à une image (une ressource) hébergée par un autre domaine d envoyer des informations personnelles sur l utilisateur à un autre site (e.g., doubleclick.com) CROSS-ORIGIN RESOURCE SHARING (CORS) Les scripts situés sur la page servie par le domaine A peuvent effectuer des requêtes vers le domaine B Mais pour avoir une réponse, le domaine B doit avoir été configuré pour accepter explicitement les requêtes venant du domaine A (ou de tout domaine) IMPORTANT Politique de contrôle d accès à compléter éventuellement au sein domaine B avec des informations Université personnelles de Toulouse de l utilisateur Sécurité des applications Web 51/479
52 VIOLATIONS DU PARTIONNEMENT SPATIAL (3/5) LA SÉCURITÉ, C EST EMBÊTANT! D après ce qui a été écrit, il n est pas possible de faire référence à une image (une ressource) hébergée par un autre domaine d envoyer des informations personnelles sur l utilisateur à un autre site (e.g., doubleclick.com) CROSS-ORIGIN RESOURCE SHARING (CORS) Les scripts situés sur la page servie par le domaine A peuvent effectuer des requêtes vers le domaine B Mais pour avoir une réponse, le domaine B doit avoir été configuré pour accepter explicitement les requêtes venant du domaine A (ou de tout domaine) IMPORTANT Politique de contrôle d accès à compléter éventuellement au sein domaine B avec des informations Université personnelles de Toulouse de l utilisateur Sécurité des applications Web 52/479
53 VIOLATIONS DU PARTIONNEMENT SPATIAL (4/5) RAPPEL Les scripts peuvent être servis par n importe quel site Donc on peut effectuer une requête vers n importe quel site en utilisant une balise script avec une url forgée correctement JSON/JSONP JSON : codage d objets JavaScript simples en du texte JSONP : enrobage du texte pour fournir un code JS valide (appel d une fonction) Utilisation : insertion d une balise script dans la page avec une adresse codant les informations qu on désire envoyer on laisse le navigateur évaluer le code JS reçu en réponse de la requête Sécurité des applications Web 53/479
54 VIOLATIONS DU PARTIONNEMENT SPATIAL (4/5) RAPPEL Les scripts peuvent être servis par n importe quel site Donc on peut effectuer une requête vers n importe quel site en utilisant une balise script avec une url forgée correctement JSON/JSONP JSON : codage d objets JavaScript simples en du texte JSONP : enrobage du texte pour fournir un code JS valide (appel d une fonction) Utilisation : insertion d une balise script dans la page avec une adresse codant les informations qu on désire envoyer on laisse le navigateur évaluer le code JS reçu en réponse de la requête Sécurité des applications Web 54/479
55 VIOLATION DU PARTITIONNEMENT SPATIAL (5/5) FRAME/IFRAME Élément html permettant d inclure un autre site Les DOM sont séparés correctement VIOLATION DE PARTITION Gestion complexe de l affichage (à quels éléments un pixel est relié) Transparence En pratique, une action de l utilisateur peut toucher plusieurs éléments, y compris en dehors et à l intérieur d une (i)frame Sécurité des applications Web 55/479
56 VIOLATION DU PARTITIONNEMENT SPATIAL (5/5) FRAME/IFRAME Élément html permettant d inclure un autre site Les DOM sont séparés correctement VIOLATION DE PARTITION Gestion complexe de l affichage (à quels éléments un pixel est relié) Transparence En pratique, une action de l utilisateur peut toucher plusieurs éléments, y compris en dehors et à l intérieur d une (i)frame Sécurité des applications Web 56/479
57 OUTLINE SÉCURITÉ DU CLIENT Architecture du client Partitionnement spatial Attaques liées au browser Quelques solutions possibles Sécurité des applications Web 57/479
58 COOKIES DÉFINITION DU DOMAINE Par défaut, un cookie est lié à un domaine et un chemin dans ce domaine : dir1/dir2/ } {{ }} {{ } toto.html } {{ } domaine chemin fichier Par défaut, le protocole utilisé n est pas pris en compte Secure Cookie : en plus, il faut utiliser le protocole HTTP Il est possible de spécifier un autre domaine pour le cookie (third-party cookies), mais bloquables par l utilisateur IMPORTANT La politique de gestion des cookies est établie sur des bases différentes de celle des autres ressources, ce qui est une source potentielle de conflit Sécurité des applications Web 58/479
59 COOKIES DÉFINITION DU DOMAINE Par défaut, un cookie est lié à un domaine et un chemin dans ce domaine : dir1/dir2/ } {{ }} {{ } toto.html } {{ } domaine chemin fichier Par défaut, le protocole utilisé n est pas pris en compte Secure Cookie : en plus, il faut utiliser le protocole HTTP Il est possible de spécifier un autre domaine pour le cookie (third-party cookies), mais bloquables par l utilisateur IMPORTANT La politique de gestion des cookies est établie sur des bases différentes de celle des autres ressources, ce qui est une source potentielle de conflit Sécurité des applications Web 59/479
60 CROSS-SITE REQUEST FORGERY NON-BLOCAGE DES IMAGES + COOKIES À la différence des localstorage, pour lesquels cela demande un peu plus de travail, les cookies d un domaine sont envoyés lors de chaque requête vers ce domaine. La page d un domaine A peut donc faire une requête vers un domaine B en utilisant les cookies (e.g. identification de l utilisateur) de ce domaine Si le domaine B ne vérifie pas que la requête est issue d une page qu il a servie, et si cette requête est valide, il va l accepter. CSRF Un site malicieux utilise le fait que l utilisateur est potentiellement logué sur un autre site Il envoie des requêtes à cet autre site qui seront accompagnées des cookies de cet autre site (donc authentifiées) Ex : faire un virement si l autre site est celui d une banque, récupérer une liste de contact, etc. Sécurité des applications Web 60/479
61 CROSS-SITE REQUEST FORGERY NON-BLOCAGE DES IMAGES + COOKIES À la différence des localstorage, pour lesquels cela demande un peu plus de travail, les cookies d un domaine sont envoyés lors de chaque requête vers ce domaine. La page d un domaine A peut donc faire une requête vers un domaine B en utilisant les cookies (e.g. identification de l utilisateur) de ce domaine Si le domaine B ne vérifie pas que la requête est issue d une page qu il a servie, et si cette requête est valide, il va l accepter. CSRF Un site malicieux utilise le fait que l utilisateur est potentiellement logué sur un autre site Il envoie des requêtes à cet autre site qui seront accompagnées des cookies de cet autre site (donc authentifiées) Ex : faire un virement si l autre site est celui d une banque, récupérer une liste de contact, etc. Sécurité des applications Web 61/479
62 LOGIN CSRF ATTAQUE DÉPENDANT DU BROWSER UTILISÉ PARTITIONNEMENT SPATIAL LORS DE LA VISUALISATION un site malicieux peut superposer une image opaque pour couvrir une iframe L image contient un captcha L iframe contient la page de login d un site (Yahoo!, Google, etc.) LOGIN CSRF Le captcha demande à l utilisateur de rentrer le login et le mot de passe de l attaquant Une fois l utilisateur loggué, l attaquant récupère sur son compte les données de navigation de l utilisateur Sécurité des applications Web 62/479
63 LOGIN CSRF ATTAQUE DÉPENDANT DU BROWSER UTILISÉ PARTITIONNEMENT SPATIAL LORS DE LA VISUALISATION un site malicieux peut superposer une image opaque pour couvrir une iframe L image contient un captcha L iframe contient la page de login d un site (Yahoo!, Google, etc.) LOGIN CSRF Le captcha demande à l utilisateur de rentrer le login et le mot de passe de l attaquant Une fois l utilisateur loggué, l attaquant récupère sur son compte les données de navigation de l utilisateur Sécurité des applications Web 63/479
64 INTERCEPTION DE DONNÉES PROBLÈME DE PARTITIONNEMENT SPATIAL Couverture d une iframe par un élément presque transparent Les événements utilisateurs sont aussi envoyés à cet élément Permet au site hôte de récupérer les données envoyées au site hébergé dans l iframe PEU DE SOLUTIONS Beaucoup de sites utilisent de manière critique le recouvrement par des éléments transparents Assurer le partitionnement spatial des pixels serait très gênant (popup html, listes descendantes) Pas de solutions programmées Sécurité des applications Web 64/479
65 INTERCEPTION DE DONNÉES PROBLÈME DE PARTITIONNEMENT SPATIAL Couverture d une iframe par un élément presque transparent Les événements utilisateurs sont aussi envoyés à cet élément Permet au site hôte de récupérer les données envoyées au site hébergé dans l iframe PEU DE SOLUTIONS Beaucoup de sites utilisent de manière critique le recouvrement par des éléments transparents Assurer le partitionnement spatial des pixels serait très gênant (popup html, listes descendantes) Pas de solutions programmées Sécurité des applications Web 65/479
66 JSONP JSONP L utilisation de JSONP nécessite une bonne collaboration entre les 2 domaines Mais à cause de l évaluation, le domaine B obtient tous les pouvoirs (parce qu il peut renvoyer ce qu il veut à la requête, ce sera évalué) sur la page affichée et ses données Autrement dit, il faut avoir une confiance absolue dans le domaine B pour lui faire des requêtes via JSONP Sécurité des applications Web 66/479
67 OUTLINE SÉCURITÉ DU CLIENT Architecture du client Partitionnement spatial Attaques liées au browser Quelques solutions possibles Sécurité des applications Web 67/479
68 IFRAMES Les iframes sont des sources majeures d insécurité à cause de l absence de politique de contrôle d accès efficace sur les événements dans le browser Seule solution pour sécuriser un site : interdire au browser de l afficher dans un iframe Mais cela interdit aussi les mashup, donc rend le site moins utilisable CONFIGURATION DE APACHE Header always append X-Frame-Options SAMEORIGIN Header always append X-Frame-Options DENY Dans le premier cas, les iframes sont autorisées sur le même site Dans le second, elles sont toujours refusées Header des réponses à un GET, honoré par tous les browsers récents Sécurité des applications Web 68/479
69 IFRAMES Les iframes sont des sources majeures d insécurité à cause de l absence de politique de contrôle d accès efficace sur les événements dans le browser Seule solution pour sécuriser un site : interdire au browser de l afficher dans un iframe Mais cela interdit aussi les mashup, donc rend le site moins utilisable CONFIGURATION DE APACHE Header always append X-Frame-Options SAMEORIGIN Header always append X-Frame-Options DENY Dans le premier cas, les iframes sont autorisées sur le même site Dans le second, elles sont toujours refusées Header des réponses à un GET, honoré par tous les browsers récents Sécurité des applications Web 69/479
70 IFRAMES Les iframes sont des sources majeures d insécurité à cause de l absence de politique de contrôle d accès efficace sur les événements dans le browser Seule solution pour sécuriser un site : interdire au browser de l afficher dans un iframe Mais cela interdit aussi les mashup, donc rend le site moins utilisable CONFIGURATION DE APACHE Header always append X-Frame-Options SAMEORIGIN Header always append X-Frame-Options DENY Dans le premier cas, les iframes sont autorisées sur le même site Dans le second, elles sont toujours refusées Header des réponses à un GET, honoré par tous les browsers récents Sécurité des applications Web 70/479
71 IFRAMES Les iframes sont des sources majeures d insécurité à cause de l absence de politique de contrôle d accès efficace sur les événements dans le browser Seule solution pour sécuriser un site : interdire au browser de l afficher dans un iframe Mais cela interdit aussi les mashup, donc rend le site moins utilisable CONFIGURATION DE APACHE Header always append X-Frame-Options SAMEORIGIN Header always append X-Frame-Options DENY Dans le premier cas, les iframes sont autorisées sur le même site Dans le second, elles sont toujours refusées Header des réponses à un GET, honoré par tous les browsers récents Sécurité des applications Web 71/479
72 IFRAMES Les iframes sont des sources majeures d insécurité à cause de l absence de politique de contrôle d accès efficace sur les événements dans le browser Seule solution pour sécuriser un site : interdire au browser de l afficher dans un iframe Mais cela interdit aussi les mashup, donc rend le site moins utilisable CONFIGURATION DE APACHE Header always append X-Frame-Options SAMEORIGIN Header always append X-Frame-Options DENY Dans le premier cas, les iframes sont autorisées sur le même site Dans le second, elles sont toujours refusées Header des réponses à un GET, honoré par tous les browsers récents Sécurité des applications Web 72/479
73 CSRF BASE DES CSRF L attaquant devine que l utilisateur est loggué sur un certain site on n y peut rien s il devine correctement L attaquant peut construire des requêtes ayant du sens Par contre, on peut s arranger pour que les requêtes incluent un élément aléatoire non-devinable EMPÊCHEMENT DES REQUÊTES CSRF Demander au serveur de regarder la page d origine de la requête utile, mais pas suffisant surtout si le site peut être dans une iframe Ajouter un cookie de session aléatoire lorsqu un utilisateur est loggué Sécurité des applications Web 73/479
74 CSRF BASE DES CSRF L attaquant devine que l utilisateur est loggué sur un certain site on n y peut rien s il devine correctement L attaquant peut construire des requêtes ayant du sens Par contre, on peut s arranger pour que les requêtes incluent un élément aléatoire non-devinable EMPÊCHEMENT DES REQUÊTES CSRF Demander au serveur de regarder la page d origine de la requête utile, mais pas suffisant surtout si le site peut être dans une iframe Ajouter un cookie de session aléatoire lorsqu un utilisateur est loggué Sécurité des applications Web 74/479
75 EMPÊCHEMENT DES REQUÊTES CSRF SPÉCIFIQUE À CHAQUE SERVEUR D APPLICATION IMPORTANT Application sécurisée par défaut EXEMPLE (RAILS), APP/CONTROLLERS/APPLICATION_CONTROLLER.RB protect_from_forgery LISTE D ATTAQUES Sécurité des applications Web 75/479
76 EMPÊCHEMENT DES REQUÊTES CSRF SPÉCIFIQUE À CHAQUE SERVEUR D APPLICATION IMPORTANT Application sécurisée par défaut EXEMPLE (RAILS), APP/CONTROLLERS/APPLICATION_CONTROLLER.RB protect_from_forgery LISTE D ATTAQUES Sécurité des applications Web 76/479
77 EMPÊCHEMENT DES REQUÊTES CSRF SPÉCIFIQUE À CHAQUE SERVEUR D APPLICATION IMPORTANT Application sécurisée par défaut EXEMPLE (RAILS), APP/CONTROLLERS/APPLICATION_CONTROLLER.RB protect_from_forgery LISTE D ATTAQUES Sécurité des applications Web 77/479
78 INCLUSION DE SCRIPTS TIERS LA BATAILLE PERDUE? IMPORTANT Un script importé peut contrôler entièrement la page Web. EXTENSIONS Ajouts à un browser Les extensions de type content script sont intégrées aux pages Web Un utilisateur malicieux peut donc monter des attaques en : Créant une extension spécifique et en l intégrant à son browser Puis en visitant le site visé CONCLUSION Le serveur ne peut pas faire confiance en les requêtes qu il reçoit Mais le serveur peut s arranger pour que le client ait confiance en lui Sécurité des applications Web 78/479
79 INCLUSION DE SCRIPTS TIERS LA BATAILLE PERDUE? IMPORTANT Un script importé peut contrôler entièrement la page Web. EXTENSIONS Ajouts à un browser Les extensions de type content script sont intégrées aux pages Web Un utilisateur malicieux peut donc monter des attaques en : Créant une extension spécifique et en l intégrant à son browser Puis en visitant le site visé CONCLUSION Le serveur ne peut pas faire confiance en les requêtes qu il reçoit Mais le serveur peut s arranger pour que le client ait confiance en lui Sécurité des applications Web 79/479
80 INCLUSION DE SCRIPTS TIERS LA BATAILLE PERDUE? IMPORTANT Un script importé peut contrôler entièrement la page Web. EXTENSIONS Ajouts à un browser Les extensions de type content script sont intégrées aux pages Web Un utilisateur malicieux peut donc monter des attaques en : Créant une extension spécifique et en l intégrant à son browser Puis en visitant le site visé CONCLUSION Le serveur ne peut pas faire confiance en les requêtes qu il reçoit Mais le serveur peut s arranger pour que le client ait confiance en lui Sécurité des applications Web 80/479
81 INCLUSION DE SCRIPTS TIERS LA BATAILLE PERDUE? IMPORTANT Un script importé peut contrôler entièrement la page Web. EXTENSIONS Ajouts à un browser Les extensions de type content script sont intégrées aux pages Web Un utilisateur malicieux peut donc monter des attaques en : Créant une extension spécifique et en l intégrant à son browser Puis en visitant le site visé CONCLUSION Le serveur ne peut pas faire confiance en les requêtes qu il reçoit Mais le serveur peut s arranger pour que le client ait confiance en lui Sécurité des applications Web 81/479
82 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU Principaux protocoles utilisés TLS Sécurisation des messages SOAP Encryption et chiffrement ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB Sécurité des applications Web 82/479
83 OUTLINE SÉCURITÉ DU RÉSEAU Principaux protocoles utilisés TLS Sécurisation des messages SOAP Encryption et chiffrement Sécurité des applications Web 83/479
84 COMMUNICATION ENTRE LE BROWSER ET UN SITE HTTP Communications non-sécurisées Il est relativement facile pour un attaquant de lire des échanges et d envoyer de fausses requêtes HTTPS Requête HTTP GET pour un upgrade avec utilisation de TLS Changement de port (443 au lieu de 80) Négociation de clef et authentification Suite des communications cryptées IMPORTANT Les requêtes JS passent par HTTP/HTTPS Sécurité des applications Web 84/479
85 COMMUNICATION ENTRE LE BROWSER ET UN SITE HTTP Communications non-sécurisées Il est relativement facile pour un attaquant de lire des échanges et d envoyer de fausses requêtes HTTPS Requête HTTP GET pour un upgrade avec utilisation de TLS Changement de port (443 au lieu de 80) Négociation de clef et authentification Suite des communications cryptées IMPORTANT Les requêtes JS passent par HTTP/HTTPS Sécurité des applications Web 85/479
86 WEBSOCKET TRAITS PRINCIPAUX Protocole indépendant de HTTP Connection sur le port 80 Moins d encodage, donc plus rapide qu HTTP Passage à ce protocole avec un GET + upgrade Utilisation avec TCP (ws://) ou TLS (wss:// Sécurité des applications Web 86/479
87 TLS TRANSPORT LAYER SECURITY NÉGOCIATION Dans une phase de Rendez-vous (handshake) le client et le serveur : Présentent des certificats assurant de leur identité Vérifient que ces certificats appartiennent bien à leur pair (i.e., que la clef secrète correspondant au certificat est bien connue) Vérifient que ces certificats sont délivrés par des autorités de confiance Négocient un algorithme de chiffrement et une clef partagée IMPORTANT Cette phase de négociation peut être renouvelée périodiquement Après négociation, la clef chiffre tous les messages échangés entre le client et le serveur Sécurité des applications Web 87/479
88 TLS TRANSPORT LAYER SECURITY NÉGOCIATION Dans une phase de Rendez-vous (handshake) le client et le serveur : Présentent des certificats assurant de leur identité Vérifient que ces certificats appartiennent bien à leur pair (i.e., que la clef secrète correspondant au certificat est bien connue) Vérifient que ces certificats sont délivrés par des autorités de confiance Négocient un algorithme de chiffrement et une clef partagée IMPORTANT Cette phase de négociation peut être renouvelée périodiquement Après négociation, la clef chiffre tous les messages échangés entre le client et le serveur Sécurité des applications Web 88/479
89 OUTLINE SÉCURITÉ DU RÉSEAU Principaux protocoles utilisés TLS Sécurisation des messages SOAP Encryption et chiffrement Sécurité des applications Web 89/479
90 ATTAQUES CRYPTOGRAPHIQUES SUR TLS/SSL IMPORTANT Il existe des attaques sur tous les modes d utilisation de TLS 1.0 POINTS GÊNANTS Beaucoup d attaques découvertes depuis fin 2011 Dans la plupart des cas, il s agit d attaques connues depuis longtemps sur TLS, mais qui avaient été contrées Le contenu chiffré ou les clients et serveurs étaient adaptés Le problème vient de l utilisation de protocoles spécifiques à l intérieur de TLS (HTTP, Websocket) Sécurité des applications Web 90/479
91 ATTAQUES CRYPTOGRAPHIQUES SUR TLS/SSL IMPORTANT Il existe des attaques sur tous les modes d utilisation de TLS 1.0 POINTS GÊNANTS Beaucoup d attaques découvertes depuis fin 2011 Dans la plupart des cas, il s agit d attaques connues depuis longtemps sur TLS, mais qui avaient été contrées Le contenu chiffré ou les clients et serveurs étaient adaptés Le problème vient de l utilisation de protocoles spécifiques à l intérieur de TLS (HTTP, Websocket) Sécurité des applications Web 91/479
92 CONTRE-MESURES BROWSERS Probable que les browsers et les serveurs se mettent à supporter TLS 1.1 et 1.2 Changement des bibliothèques pour en utiliser des versions sécurisées Sécurité des applications Web 92/479
93 INTERLUDE ÉCHANGE RÉEL ENTRE DÉVELOPPEURS UN DÉVELOPPEUR FACEBOOK (WESBOS) DEMANDE : Hey guys, I m using the freshly downloaded PHP API I ve got eveything setup and when I login to authenticate, I get this error : Fatal error : Uncaught CurlException : 60 : SSL certificate problem, verify that the CA cert is OK. Details : error : :SSL routines :SSL3_GET_SERVER_CERTIFICATE :certificate verify failed thrown in /Users/wesbos/Dropbox/OrangeRhinoMedia/reporting/src/facebook.php on line 512 Sécurité des applications Web 93/479
94 INTERLUDE (SUITE) RÉPONSE DE TELEMAKO : [...] try this one : $opts[curlopt_ssl_verifypeer] = false ; $opts[curlopt_ssl_verifyhost] = 2 ; COMMENTAIRE DE PHILEO : Is there any good reason why these shouldn t be a part of the core default $CURL_OPTS? SUR UN AUTRE FORUM When you connect to a remote server with SSL, their cert might be invalid, expired, or not signed by a recognized CA. I ve never used the verifyhost option but I often have to set verifypeer = 0 (false) when the remote site is too cheap to buy a real cert for their site. Sécurité des applications Web 94/479
95 INTERLUDE (SUITE) RÉPONSE DE TELEMAKO : [...] try this one : $opts[curlopt_ssl_verifypeer] = false ; $opts[curlopt_ssl_verifyhost] = 2 ; COMMENTAIRE DE PHILEO : Is there any good reason why these shouldn t be a part of the core default $CURL_OPTS? SUR UN AUTRE FORUM When you connect to a remote server with SSL, their cert might be invalid, expired, or not signed by a recognized CA. I ve never used the verifyhost option but I often have to set verifypeer = 0 (false) when the remote site is too cheap to buy a real cert for their site. Sécurité des applications Web 95/479
96 INTERLUDE (SUITE) RÉPONSE DE TELEMAKO : [...] try this one : $opts[curlopt_ssl_verifypeer] = false ; $opts[curlopt_ssl_verifyhost] = 2 ; COMMENTAIRE DE PHILEO : Is there any good reason why these shouldn t be a part of the core default $CURL_OPTS? SUR UN AUTRE FORUM When you connect to a remote server with SSL, their cert might be invalid, expired, or not signed by a recognized CA. I ve never used the verifyhost option but I often have to set verifypeer = 0 (false) when the remote site is too cheap to buy a real cert for their site. Sécurité des applications Web 96/479
97 COMMENTAIRES VERIFY? Verify host sert à vérifier que le certificat que le serveur présente au client correspond bien au nom du serveur Verify Peer sert à vérifier que ce certificat est enregistré, et non auto-signé UTILITÉ Demander à vérifier l hôte et son certificat sont la seule protection contre une attaque MITM On va voir comment configurer correctement un serveur Mais on ne peut rien faire contre la bêtise d un développeur Sécurité des applications Web 97/479
98 COMMENTAIRES VERIFY? Verify host sert à vérifier que le certificat que le serveur présente au client correspond bien au nom du serveur Verify Peer sert à vérifier que ce certificat est enregistré, et non auto-signé UTILITÉ Demander à vérifier l hôte et son certificat sont la seule protection contre une attaque MITM On va voir comment configurer correctement un serveur Mais on ne peut rien faire contre la bêtise d un développeur Sécurité des applications Web 98/479
99 DANGER DE TLS Beaucoup d autres services dépendent de la sécurité de TLS Mea Culpa : COURS DES ANNÉES PRÉCÉDENTES Utiliser TLS c est résoudre 99% des problèmes Vu les erreurs des développeurs (pour les mash up) et les failles cryptographiques, on ne peut plus être aussi affirmatif Complaisance des industriels : les chiffrements/signatures des messages sont plus difficile à traiter que leur insertion dans un canal sécurisé comme TLS (cf. OAuth vs. OAuth 2) Sécurité des applications Web 99/479
100 DANGER DE TLS Beaucoup d autres services dépendent de la sécurité de TLS Mea Culpa : COURS DES ANNÉES PRÉCÉDENTES Utiliser TLS c est résoudre 99% des problèmes Vu les erreurs des développeurs (pour les mash up) et les failles cryptographiques, on ne peut plus être aussi affirmatif Complaisance des industriels : les chiffrements/signatures des messages sont plus difficile à traiter que leur insertion dans un canal sécurisé comme TLS (cf. OAuth vs. OAuth 2) Sécurité des applications Web 100/479
101 DANGER DE TLS Beaucoup d autres services dépendent de la sécurité de TLS Mea Culpa : COURS DES ANNÉES PRÉCÉDENTES Utiliser TLS c est résoudre 99% des problèmes Vu les erreurs des développeurs (pour les mash up) et les failles cryptographiques, on ne peut plus être aussi affirmatif Complaisance des industriels : les chiffrements/signatures des messages sont plus difficile à traiter que leur insertion dans un canal sécurisé comme TLS (cf. OAuth vs. OAuth 2) Sécurité des applications Web 101/479
102 DANGER DE TLS Beaucoup d autres services dépendent de la sécurité de TLS Mea Culpa : COURS DES ANNÉES PRÉCÉDENTES Utiliser TLS c est résoudre 99% des problèmes Vu les erreurs des développeurs (pour les mash up) et les failles cryptographiques, on ne peut plus être aussi affirmatif Complaisance des industriels : les chiffrements/signatures des messages sont plus difficile à traiter que leur insertion dans un canal sécurisé comme TLS (cf. OAuth vs. OAuth 2) Sécurité des applications Web 102/479
103 DANGER DE TLS Beaucoup d autres services dépendent de la sécurité de TLS Mea Culpa : COURS DES ANNÉES PRÉCÉDENTES Utiliser TLS c est résoudre 99% des problèmes Vu les erreurs des développeurs (pour les mash up) et les failles cryptographiques, on ne peut plus être aussi affirmatif Complaisance des industriels : les chiffrements/signatures des messages sont plus difficile à traiter que leur insertion dans un canal sécurisé comme TLS (cf. OAuth vs. OAuth 2) Sécurité des applications Web 103/479
104 CONFIGURATION DU SERVICE S E R V I C E.X M L <transports> <transport>https</transport> </transports> Le WSDL sera généré correctement à partir de ce fichier On peut avoir plusieurs éléments transport Sécurité des applications Web 104/479
105 TLS AVEC AXIS2 CONFIGURATION GLOBALE A X I S2.X M L (À DÉCOMMENTER) <!-transportsender name="https" class="axis2_http_sender"> <parameter name="protocol" locked="false">http/1.1</parameter> <parameter name="xml-declaration" insert="false"/> </transportsender> <parameter name="server_cert">/path/to/ca/certificate</parameter> (obligatoire) <parameter name="key_file">/path/to/client/certificate/chain/file</parameter (optionnel) <parameter name="ssl_passphrase">passphrase</parameter> (optionnel) -> Sécurité des applications Web 105/479
106 TLS AVEC AXIS2 NOTES SUR LA CONFIGURATION GLOBALE sous Ubuntu, /usr/lib/axis2/axis2.conf configuration de Apache (httpd.conf) pas décrite SERVER_CERT contient un certificat du serveur certifié par un CA reconnu par le client, à configurer avec Apache Il faut un certificat par nom de domaine! KEY_FILE contient un couple clef publique/clef privée pour le client SSL_PASSPHRASE sert à chiffrer le fichier qui contient ce couple de clef Sécurité des applications Web 106/479
107 LIMITATIONS APPLICATIVES DE TLS SÉCURITÉ POINT-À-POINT Garanti les communications entre 2 endpoints Ne garanti toujours pas les identités des endpoints Choix à faire : TLS avec ou sans authentification Pas de sécurité bout-à-bout : relais (SOAP) malhonnêtes Sécurité des applications Web 107/479
108 LIMITATIONS DE TLS LIMITATIONS APPLICATIVES PROBLÈMES APPLICATIFS TLS = cryptage inter-messages d un flux de données Pas vraiment possible de conserver des logs sécurisés C est un problème pour tout se qui ressemble à un contrat (repudiation) authentification d un client optionnelle, et nécessite d avoir enregistré ses clefs publiques/privées PROBLÈME D ARCHITECTURE Séparation dans le serveur entre la partie applicative (qui gère les fournisseurs de services) et la partie réseau Re-négociations au sein de TLS : il n est pas possible de garantir à une application qu un agent authentifié par TLS lors d un premier message communique ensuite avec la même authentification (similaire au cross-site scripting) Pour remédier à ces limitations, besoin de cryptographie au sein des messages Sécurité des applications Web 108/479
109 OUTLINE SÉCURITÉ DU RÉSEAU Principaux protocoles utilisés TLS Sécurisation des messages SOAP Encryption et chiffrement Sécurité des applications Web 109/479
110 PRINCIPE On veut annoter des spécifications de services par des contraintes de sécurité WS-Policy définit un cadre général pour l écriture de contraintes Essentiellement, des nœuds all, dont tous les fils doivent être satisfait des nœuds any, dont au moins un des les fils doit être satisfait Une politique peut être attachée à n importe quel nœud d un fichier WSDL (WS-I, pas standard) L attachement se fait soit en mettant un nœud Policy (mal vu) soit une référence PolicyReference (soit vers l extérieur, soit vers un nœud Policy fils de definitions) Sécurité des applications Web 110/479
111 WS-RELIABLEMESSAGING BUT : garantir l ordre des messages entre l émetteur et le récepteur CONFIGURATION : S E R V I C E.X M L <module ref="sandesha2" /> <module ref="addressing" /> module Sandesha2 méthode : compteur + ack addressing est utilisé pour définir des sessions avec un endpoint (garantie d ordre inutile s il n y a pas de session!) Permet d éviter certaines attaques (faibles) Surtout, permet d avoir une meilleure qualité de service Sécurité des applications Web 111/479
112 WS-RELIABLEMESSAGING BUT : garantir l ordre des messages entre l émetteur et le récepteur CONFIGURATION : S E R V I C E.X M L <module ref="sandesha2" /> <module ref="addressing" /> module Sandesha2 méthode : compteur + ack addressing est utilisé pour définir des sessions avec un endpoint (garantie d ordre inutile s il n y a pas de session!) Permet d éviter certaines attaques (faibles) Surtout, permet d avoir une meilleure qualité de service Sécurité des applications Web 112/479
113 WS-SECURECONVERSATION BUTS : Établissement d un contexte de sécurité pour des séquences de message Comprend des identificateurs de sessions, mais aussi l établissement de clefs partagées Dans le fichier de politique de sécurité, préciser qu on veut utiliser des clefs dérivées, implicitement ou explicitement Rampart comprend alors qu il doit utiliser WS-SC pour obtenir ces clefs Négociations possibles : bootstrap, amend, renew, cancel Pour chacune de ces négociations on peut spécifier une politique Sécurité des applications Web 113/479
114 WS-SECURECONVERSATION BUTS : Établissement d un contexte de sécurité pour des séquences de message Comprend des identificateurs de sessions, mais aussi l établissement de clefs partagées Dans le fichier de politique de sécurité, préciser qu on veut utiliser des clefs dérivées, implicitement ou explicitement Rampart comprend alors qu il doit utiliser WS-SC pour obtenir ces clefs Négociations possibles : bootstrap, amend, renew, cancel Pour chacune de ces négociations on peut spécifier une politique Sécurité des applications Web 114/479
115 WS-SECURITYPOLICY BUT : spécifier les contraintes de sécurité sur les messages Constructions de base : des Tokens, qui véhiculent des assertions des clefs, qui protègent ces assertions et des parties du message Les tokens sont placés dans le header du message Ils sont de différents types Les clefs doivent être nommées, ou leur construction doit être décrite (clefs dérivées) Sécurité des applications Web 115/479
116 WS-SECURITYPOLICY TYPES DE TOKEN Username token : identification d un utilisateur (avec mot de passe, etc.) Certificats X.509 (clefs publiques) Kerberos : implique l utilisation du protocole Kerberos (par le client ou le serveur) pour récupérer un token satisfaisant la politique et l inclure dans le message SecureConversationToken : implique l utilisation de WS-SecureConversation. Il faut alors une sous-politique pour décrire les conditions de négociation de ce token SAMLToken : certificat SAML HTTPSToken : authentification serveur et/ou client, implique l utilisation de https Sauf pour des cas très simple, nécessite la mise en place d un Security Token Server. Code à développer à la main... Sécurité des applications Web 116/479
117 SECURITY TOKEN SERVICE Rapidement : Il faut implémenter à la main des interfaces ces classes seront ensuite utilisées par Rampart lors des vérifications de message Typiquement, besoin de se connecter à une base de données utilisateur/mot de passe besoin de se connecter à une base de clefs Les configurations classiques sont automatisables (service par défaut avec juste les BD à remplir) DOCUMENTATION WSO2 Web Service Application Framework Basé sur Axis2 (pour la base) Sécurité des applications Web 117/479
118 NOTE SUR TLS SERVICES REST? Du point de vue de développeur, les services REST sont : Plus faciles à comprendre Plus rapides à mettre en œuvre Les plus utilisés pour créer des applications (RoR, node.js, wordpress,... ) CÔTÉ OBSCUR DES SERVICES REST Pas de standardisation Les clients et serveurs sont écrits par le développeur d un site Web à coups d XMLHttpRequest Le développeur moyen est incapable d ajouter une interface cryptographique propre, et encore moins un protocole correct Quelques librairies existent (pour OAuth v1), mais elles sont rares Sécurité des applications Web 118/479
119 NOTE SUR TLS SERVICES REST? Du point de vue de développeur, les services REST sont : Plus faciles à comprendre Plus rapides à mettre en œuvre Les plus utilisés pour créer des applications (RoR, node.js, wordpress,... ) CÔTÉ OBSCUR DES SERVICES REST Pas de standardisation Les clients et serveurs sont écrits par le développeur d un site Web à coups d XMLHttpRequest Le développeur moyen est incapable d ajouter une interface cryptographique propre, et encore moins un protocole correct Quelques librairies existent (pour OAuth v1), mais elles sont rares Sécurité des applications Web 119/479
120 OUTLINE SÉCURITÉ DU RÉSEAU Principaux protocoles utilisés TLS Sécurisation des messages SOAP Encryption et chiffrement Sécurité des applications Web 120/479
121 LE PROTOCOLE HTTP VERBES/MÉTHODES GET : récupérer le contenu lié à une adresse donnée POST : ajout d une ressource au serveur PUT : changement d une ressource sur un serveur DELETE : suppression d une ressource sur un serveur CODAGE DES DONNÉES GET : les paramètres sont codés dans l URL du message : POST/PUT : La requête contient un document (XML ou texte) représentant la ressource à créer ou mettre à jour Suite : chiffrer correctement les documents XML Sécurité des applications Web 121/479
122 LE PROTOCOLE HTTP VERBES/MÉTHODES GET : récupérer le contenu lié à une adresse donnée POST : ajout d une ressource au serveur PUT : changement d une ressource sur un serveur DELETE : suppression d une ressource sur un serveur CODAGE DES DONNÉES GET : les paramètres sont codés dans l URL du message : POST/PUT : La requête contient un document (XML ou texte) représentant la ressource à créer ou mettre à jour Suite : chiffrer correctement les documents XML Sécurité des applications Web 122/479
123 LE PROTOCOLE HTTP VERBES/MÉTHODES GET : récupérer le contenu lié à une adresse donnée POST : ajout d une ressource au serveur PUT : changement d une ressource sur un serveur DELETE : suppression d une ressource sur un serveur CODAGE DES DONNÉES GET : les paramètres sont codés dans l URL du message : POST/PUT : La requête contient un document (XML ou texte) représentant la ressource à créer ou mettre à jour Suite : chiffrer correctement les documents XML Sécurité des applications Web 123/479
124 CRYPTOGRAPHIE SUR LES DOCUMENTS XML UTILITÉ Pour les services REST (pour les SOAP, autant utiliser les standards) Pour les verbes POST/PUT (pour les GET, données dans l url) Lorsqu on veut un certain niveau d inter-opérabilité Sécurité des applications Web 124/479
125 XML-DSIG XML DIGITAL SIGNATURE BUT : Définit comment une signature est à appliquer sur un nœud XML Les définitions sont réutilisées pour XML-ENC (encryption) On ne verra pas les spécifications des algorithmes et clefs de chiffrement (prendre RSA-OAEP, AESxxx ou DSA/RSAwithSHA1 suivant le type de primitive voulu) Cf. cours éventuel de cryptographie Par contre, il y a des subtilités dues au XML Sécurité des applications Web 125/479
126 XML-DSIG XML DIGITAL SIGNATURE BUT : Définit comment une signature est à appliquer sur un nœud XML Les définitions sont réutilisées pour XML-ENC (encryption) On ne verra pas les spécifications des algorithmes et clefs de chiffrement (prendre RSA-OAEP, AESxxx ou DSA/RSAwithSHA1 suivant le type de primitive voulu) Cf. cours éventuel de cryptographie Par contre, il y a des subtilités dues au XML Sécurité des applications Web 126/479
127 SUBTILITÉS DE XML... CANONICALISATION Rappel : On veut signer un arbre XML pas sa représentation, qui peut changer au cours des relais À partir de SAX/DOM/AXIOM, il faut récréer du texte CANONICALISATION : écriture canonique d un fichier XML plusieurs algorithmes disponibles, il faut en choisir un Cet algorithme doit être précisé dans la signature Sécurité des applications Web 127/479
128 SUBTILITÉS DE XML... CANONICALISATION Rappel : On veut signer un arbre XML pas sa représentation, qui peut changer au cours des relais À partir de SAX/DOM/AXIOM, il faut récréer du texte CANONICALISATION : écriture canonique d un fichier XML plusieurs algorithmes disponibles, il faut en choisir un Cet algorithme doit être précisé dans la signature Sécurité des applications Web 128/479
129 SUBTILITÉS DE XML... CANONICALISATION Rappel : On veut signer un arbre XML pas sa représentation, qui peut changer au cours des relais À partir de SAX/DOM/AXIOM, il faut récréer du texte CANONICALISATION : écriture canonique d un fichier XML plusieurs algorithmes disponibles, il faut en choisir un Cet algorithme doit être précisé dans la signature Sécurité des applications Web 129/479
130 SUBTILITÉS DE XML... Dans le document : <ns1:a><ns2:b>toto</ns2:b></ns1:a> Le nom complet du nœud b est ns1:ns2:b L algorithme normal de canonicalisation commence par recréer le nom complet Problème typique : création d une signature dans le body d un message, qui devient invalide quand on place le body dans une envelope Suivant le type d application qu on veut, il faut choisir un algorithme de canonicalisation qui rend la signature portable (en enlevant les ns) ou pas. On parle de Exclusive Canonicalisation exemple d utilisation : signature de tokens... Alternative : signer le contenu textuel d un élément, pas l élément Sécurité des applications Web 130/479
131 SUBTILITÉS DE XML... Dans le document : <ns1:a><ns2:b>toto</ns2:b></ns1:a> Le nom complet du nœud b est ns1:ns2:b L algorithme normal de canonicalisation commence par recréer le nom complet Problème typique : création d une signature dans le body d un message, qui devient invalide quand on place le body dans une envelope Suivant le type d application qu on veut, il faut choisir un algorithme de canonicalisation qui rend la signature portable (en enlevant les ns) ou pas. On parle de Exclusive Canonicalisation exemple d utilisation : signature de tokens... Alternative : signer le contenu textuel d un élément, pas l élément Sécurité des applications Web 131/479
132 SUBTILITÉS DE XML... Dans le document : <ns1:a><ns2:b>toto</ns2:b></ns1:a> Le nom complet du nœud b est ns1:ns2:b L algorithme normal de canonicalisation commence par recréer le nom complet Problème typique : création d une signature dans le body d un message, qui devient invalide quand on place le body dans une envelope Suivant le type d application qu on veut, il faut choisir un algorithme de canonicalisation qui rend la signature portable (en enlevant les ns) ou pas. On parle de Exclusive Canonicalisation exemple d utilisation : signature de tokens... Alternative : signer le contenu textuel d un élément, pas l élément Sécurité des applications Web 132/479
133 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB Virtualisation Architectures d applications Web Services ReST Services SOAP CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB Sécurité des applications Web 133/479
134 UN SERVEUR WEB EN PRATIQUE SERVEUR NON-ISOLÉ Utilisation par exemple d Amazon S3 pour stocker les données importantes Utilisation d un STS pour gérer les jetons d une application professionnelle etc. (suite du cours) SERVEUR VIRTUEL De moins en moins hébergé sur un ordinateur physiquement à disposition Cloud : plusieurs sortes plus ou moins virtuelles Sécurité des applications Web 134/479
135 UN SERVEUR WEB EN PRATIQUE SERVEUR NON-ISOLÉ Utilisation par exemple d Amazon S3 pour stocker les données importantes Utilisation d un STS pour gérer les jetons d une application professionnelle etc. (suite du cours) SERVEUR VIRTUEL De moins en moins hébergé sur un ordinateur physiquement à disposition Cloud : plusieurs sortes plus ou moins virtuelles Sécurité des applications Web 135/479
136 SUITE DU COURS Impact de la virtualisation sur la sécurité des serveurs Quelques exemples de problèmes pouvant se poser Protection contre les utilisateurs malhonnêtes Quelques règles de bon sens Impact de la non-isolation sur l architecture des applications sécurisées Écriture de politiques de contrôle d accès réparties entre organisation, application, etc. Sécurité des applications Web 136/479
137 SUITE DU COURS Impact de la virtualisation sur la sécurité des serveurs Quelques exemples de problèmes pouvant se poser Protection contre les utilisateurs malhonnêtes Quelques règles de bon sens Impact de la non-isolation sur l architecture des applications sécurisées Écriture de politiques de contrôle d accès réparties entre organisation, application, etc. Sécurité des applications Web 137/479
138 SUITE DU COURS Impact de la virtualisation sur la sécurité des serveurs Quelques exemples de problèmes pouvant se poser Protection contre les utilisateurs malhonnêtes Quelques règles de bon sens Impact de la non-isolation sur l architecture des applications sécurisées Écriture de politiques de contrôle d accès réparties entre organisation, application, etc. Sécurité des applications Web 138/479
139 SUITE DU COURS Impact de la virtualisation sur la sécurité des serveurs Quelques exemples de problèmes pouvant se poser Protection contre les utilisateurs malhonnêtes Quelques règles de bon sens Impact de la non-isolation sur l architecture des applications sécurisées Écriture de politiques de contrôle d accès réparties entre organisation, application, etc. Sécurité des applications Web 139/479
140 SUITE DU COURS Impact de la virtualisation sur la sécurité des serveurs Quelques exemples de problèmes pouvant se poser Protection contre les utilisateurs malhonnêtes Quelques règles de bon sens Impact de la non-isolation sur l architecture des applications sécurisées Écriture de politiques de contrôle d accès réparties entre organisation, application, etc. Sécurité des applications Web 140/479
141 SUITE DU COURS Impact de la virtualisation sur la sécurité des serveurs Quelques exemples de problèmes pouvant se poser Protection contre les utilisateurs malhonnêtes Quelques règles de bon sens Impact de la non-isolation sur l architecture des applications sécurisées Écriture de politiques de contrôle d accès réparties entre organisation, application, etc. Sécurité des applications Web 141/479
142 SUITE DU COURS Impact de la virtualisation sur la sécurité des serveurs Quelques exemples de problèmes pouvant se poser Protection contre les utilisateurs malhonnêtes Quelques règles de bon sens Impact de la non-isolation sur l architecture des applications sécurisées Écriture de politiques de contrôle d accès réparties entre organisation, application, etc. Sécurité des applications Web 142/479
143 OUTLINE ARCHITECTURE DES SERVEURS WEB Virtualisation Architectures d applications Web Services ReST Services SOAP Sécurité des applications Web 143/479
144 VIRTUALISATION CONTEXTE D UTILISATION : Infrastructure as a Service (IaaS) systèmes d entreprise complexes PRINCIPE des machines virtuelles (invitées, guest) sont gérées par un système d exploitation sur une machine réelle (hôte,host) La virtualisation peut-être : profonde : l OS ou l architecture de la machiné invitée peuvent être différent de celui/celle de la machine hôte superficielle : l OS et l architecture de la machine invitée est exactement le même que celui de la machine hôte Sécurité des applications Web 144/479
145 VIRTUALISATION CONTEXTE D UTILISATION : Infrastructure as a Service (IaaS) systèmes d entreprise complexes PRINCIPE des machines virtuelles (invitées, guest) sont gérées par un système d exploitation sur une machine réelle (hôte,host) La virtualisation peut-être : profonde : l OS ou l architecture de la machiné invitée peuvent être différent de celui/celle de la machine hôte superficielle : l OS et l architecture de la machine invitée est exactement le même que celui de la machine hôte Sécurité des applications Web 145/479
146 EXEMPLE : VIRTUALBOX FONCTIONNEMENT DE XEN DIFFÉRENT, MAIS SÉCURITÉ IDEM EN QUELQUES MOTS logiciel fournit par Oracle (gratuit) permet la virtualisation profonde abstrait une machine réelle en interceptant tous les appels du système invité La machine communique via une carte réseau (virtuelle par défaut) avec le système hôte et l extérieur. Sécurité des applications Web 146/479
147 EXEMPLE : LXC EN QUELQUES MOTS Linux containers Très inspiré des zones de (Sun Oracle) Solaris la machine virtuelle utilise une partie des fichiers systèmes de la machine hôte La machine communique via une carte réseau (virtuelle par défaut) avec le système hôte et l extérieur. La machine hôte (jargon Solaris : zone globale) a cependant accès aux fichiers des machines invitées. Sécurité des applications Web 147/479
148 EXEMPLE : LXC EN QUELQUES MOTS Linux containers Très inspiré des zones de (Sun Oracle) Solaris la machine virtuelle utilise une partie des fichiers systèmes de la machine hôte La machine communique via une carte réseau (virtuelle par défaut) avec le système hôte et l extérieur. La machine hôte (jargon Solaris : zone globale) a cependant accès aux fichiers des machines invitées. Sécurité des applications Web 148/479
149 COMPARAISON DES MODES DE VIRTUALISATION EN QUELQUES MOTS : La virtualisation profonde implique qu il faut installer le système invité sur un fichier qui représente le disque dur auquel ce système aura accès Il vaut mieux compter quelques dizaines de Go En comparaison, le coût d une virtualisation superficielle avec des containers est de quelques dizaines de Mo La virtualisation superficielle se fait avec un minimum de perte de performance Dans les 2 cas, les machines invitées n ont pas d accès direct au contenu non-partagé de la machine hôte. La virtualisation permet donc la ségrégation. Sécurité des applications Web 149/479
150 VIRTUALISATION SUPERFICIELLE ET SÉPARATION COMMENT ÇA MARCHE? Un seul système d exploitation Le noyau de ce système est préparé pour assurer la ségrégation : file descriptors /dev/, /proc/ séparés (copie) pid séparés IMPORTANT La base de confiance est le noyau du système hôte en entier Sécurité des applications Web 150/479
151 VIRTUALISATION SUPERFICIELLE ET SÉPARATION COMMENT ÇA MARCHE? Un seul système d exploitation Le noyau de ce système est préparé pour assurer la ségrégation : file descriptors /dev/, /proc/ séparés (copie) pid séparés IMPORTANT La base de confiance est le noyau du système hôte en entier Sécurité des applications Web 151/479
152 JAILS/FAKEROOT BASE DE LA VIRTUALISATION historiquement, premières tentatives toujours utilisées (pour compiler un noyau, par exemple) change le répertoire racine du système de fichier vu par l application EXEMPLE Création d un système Linux avec debootstrap Utilisation de chroot pour créer /dev/ et l installation de packages supplémentaires dans ce système Scripts bash disponible sur demande Sécurité des applications Web 152/479
153 JAILS/FAKEROOT BASE DE LA VIRTUALISATION historiquement, premières tentatives toujours utilisées (pour compiler un noyau, par exemple) change le répertoire racine du système de fichier vu par l application EXEMPLE Création d un système Linux avec debootstrap Utilisation de chroot pour créer /dev/ et l installation de packages supplémentaires dans ce système Scripts bash disponible sur demande Sécurité des applications Web 153/479
154 JAIL ESCAPE IMPORTANT Dépend des SE, marche pour Linux SORTIE D UN ENVIRONNEMENT C H R O O TÉ En étant root dans l environnement, écrire un programme qui : 1. crée un nouveau répertoire et garde un fd sur le répertoire courant 2. fait un chroot sur ce nouveau 3. remonte au répertoire parent COMMENTAIRES ALAN COX : comportement normal de chroot, qui n a pas été conçu pour la sécurité. Un hacker root dans le sous-système a des milliers de façons de devenir root global, de toutes manières. FREEBSD : hack interdisant l appel à chroot pour un processus ayant déjà ouvert un répertoire Sécurité des applications Web 154/479
155 JAIL ESCAPE IMPORTANT Dépend des SE, marche pour Linux SORTIE D UN ENVIRONNEMENT C H R O O TÉ En étant root dans l environnement, écrire un programme qui : 1. crée un nouveau répertoire et garde un fd sur le répertoire courant 2. fait un chroot sur ce nouveau 3. remonte au répertoire parent COMMENTAIRES ALAN COX : comportement normal de chroot, qui n a pas été conçu pour la sécurité. Un hacker root dans le sous-système a des milliers de façons de devenir root global, de toutes manières. FREEBSD : hack interdisant l appel à chroot pour un processus ayant déjà ouvert un répertoire Sécurité des applications Web 155/479
156 JAIL ESCAPE IMPORTANT Dépend des SE, marche pour Linux SORTIE D UN ENVIRONNEMENT C H R O O TÉ En étant root dans l environnement, écrire un programme qui : 1. crée un nouveau répertoire et garde un fd sur le répertoire courant 2. fait un chroot sur ce nouveau 3. remonte au répertoire parent COMMENTAIRES ALAN COX : comportement normal de chroot, qui n a pas été conçu pour la sécurité. Un hacker root dans le sous-système a des milliers de façons de devenir root global, de toutes manières. FREEBSD : hack interdisant l appel à chroot pour un processus ayant déjà ouvert un répertoire Sécurité des applications Web 156/479
157 USERS ID POUR LXC UNIQUEMENT : le SE ne sépare pas les uid dans les environnements chrootés ou pas utilisateur 100 dans l un = utilisateur 100 à l extérieur Encore un problème de violation de partitionnement IMPORTANT Mais pas encore d exploitation triviale de ce problème Sécurité des applications Web 157/479
158 USERS ID POUR LXC UNIQUEMENT : le SE ne sépare pas les uid dans les environnements chrootés ou pas utilisateur 100 dans l un = utilisateur 100 à l extérieur Encore un problème de violation de partitionnement IMPORTANT Mais pas encore d exploitation triviale de ce problème Sécurité des applications Web 158/479
159 CAPACITÉS EN AVANCE SUR LE COURS CAPABILITIES Mandatory Access Control sous linux Une capability correspond à un ensemble de droits (e.g., accès carte réseau, accès système de fichiers,... ) Permet d être beaucoup plus fin que root/pas root SOLUTION IMMATURE Solution trop récente Les développeurs réutilisent toujours les mêmes capacités En pratique, CAP_SYS_ADMIN est utilisé dans 30% des cas En progrès? Avoir cette capacité est plus ou moins être root Sécurité des applications Web 159/479
160 CAPACITÉS EN AVANCE SUR LE COURS CAPABILITIES Mandatory Access Control sous linux Une capability correspond à un ensemble de droits (e.g., accès carte réseau, accès système de fichiers,... ) Permet d être beaucoup plus fin que root/pas root SOLUTION IMMATURE Solution trop récente Les développeurs réutilisent toujours les mêmes capacités En pratique, CAP_SYS_ADMIN est utilisé dans 30% des cas En progrès? Avoir cette capacité est plus ou moins être root Sécurité des applications Web 160/479
161 QUEL TYPE DE VIRTUALISATION MON HÉBERGEUR UTILISE-T-IL? D abord il faut se loguer sur l hébergeur (voir le manuel) Différence typique : les systèmes de fichiers ne sont pas montés de l intérieur du container Donc pas de /etc/mtab On peut aussi regarder /proc/mount, pour voir les fichiers montés individuellement IMPORTANT Essayer de se renseigner avant! Sécurité des applications Web 161/479
162 OUTLINE ARCHITECTURE DES SERVEURS WEB Virtualisation Architectures d applications Web Services ReST Services SOAP Sécurité des applications Web 162/479
163 PRINCIPE DE BASE APPLICATIONS contrôle de flot : if..., while..., etc. état : valeur des variables manipulées par le programme = les C et M de MVC (autre cours) CLIENT/SERVEUR SANS ÉTAT Le serveur fournit des méthodes d accès à une base de données modèle sur lequel les opérations sont effectués Le client gère la partie contrôle de l application Le client doit aussi gérer la partie de l état servant au contrôle Sécurité des applications Web 163/479
164 AVANTAGES Gestion simplifiée du serveur Basé sur les verbes de HTTP pour décrire le mode d interaction avec des requêtes avec les données (put, get, update, delete) Facile à mettre en œuvre (JavaScript/JSON(P) et python, ruby,... ) INCONVÉNIENT C est un principe, pas un standard (programmation objet vs. Java) Le format des messages n est pas uniforme Difficile à expliquer de manière uniforme Conseil : jouer un peu avec Ruby on Rails Sécurité des applications Web 164/479
165 SIMPLE OBJECT ACCESS PROTOCOL MAIS MAINTENANT, SEULEMENT SOAP! ARCHITECTURE EN COUCHE Pour les réseaux, architecture en couche classique : Une couche fournit des services à une couche supérieure Pour fonctionner, elle a besoin de services rendus par une couche inférieure Dans tout le reste du cours, cette architecture en couche est fondamentale Le Binding est ce qui relie la couche qu on est en train de définir/d étudier/d utiliser à la couche inférieure SOAP est un protocole défini dans la couche applicative Sécurité des applications Web 165/479
166 SIMPLE OBJECT ACCESS PROTOCOL MAIS MAINTENANT, SEULEMENT SOAP! ARCHITECTURE EN COUCHE Pour les réseaux, architecture en couche classique : Une couche fournit des services à une couche supérieure Pour fonctionner, elle a besoin de services rendus par une couche inférieure Dans tout le reste du cours, cette architecture en couche est fondamentale Le Binding est ce qui relie la couche qu on est en train de définir/d étudier/d utiliser à la couche inférieure SOAP est un protocole défini dans la couche applicative Sécurité des applications Web 166/479
167 CONCEPTS DE BASE H T T P://W W W.W3.O R G/TR/S O A P12- P A R T1/ SOAP NODE L émetteur d un message Son receveur ultime Ou un relais, qui fera éventuellement des opérations sur le message avant de le rediriger FORMAT D UN MESSAGE Un message est un document XML Le nœud racine est envelope Ce nœud a pour fils 0 ou un nœud header, qui a pour fils 0 ou plusieurs nœuds (header block) qui sont utilisés par les SOAP Node pour déterminer ce qu ils doivent faire du message Le nœud envelope a aussi un unique fils body, qui est traité par le receveur ultime du message Sécurité des applications Web 167/479
168 CONCEPTS DE BASE H T T P://W W W.W3.O R G/TR/S O A P12- P A R T1/ SOAP NODE L émetteur d un message Son receveur ultime Ou un relais, qui fera éventuellement des opérations sur le message avant de le rediriger FORMAT D UN MESSAGE Un message est un document XML Le nœud racine est envelope Ce nœud a pour fils 0 ou un nœud header, qui a pour fils 0 ou plusieurs nœuds (header block) qui sont utilisés par les SOAP Node pour déterminer ce qu ils doivent faire du message Le nœud envelope a aussi un unique fils body, qui est traité par le receveur ultime du message Sécurité des applications Web 168/479
169 EXEMPLE <env:envelope xmlns:env= " h t t p : / /www. w3. org /2003/05/ soap envelope " > <env:header> < n : a l e r t c o n t r o l xmlns:n= " h t t p : / / example. org / a l e r t c o n t r o l " > < n : p r i o r i t y >1< / n : p r i o r i t y > < n : e x p i r e s > T14:00:00 05:00< / n : e x p i r e s > < / n : a l e r t c o n t r o l > < / env:header> <env:body> < m : a l e r t xmlns:m= " h t t p : / / example. org / a l e r t " > <m:msg>pick up Mary at school at 2pm< / m:msg> < / m : a l e r t > < / env:body> < / env:envelope> On s intéresse surtout au cas simple, un header, un body Sécurité des applications Web 169/479
170 MESSAGE EXCHANGE PATTERNS H T T P://W W W.W3.O R G/TR/S O A P12-P A R T2/#S O A P S U P M E P Définition de conversations entre un client et un serveur : ex : request/response Statut du message dans cette conversion : ex : Inbound/outbound Informations supplémentaires : immediatesender, immediatereceiver But : faciliter le traitement du message, Aucun impact sur la sécurité, ajouté ici pour pouvoir ensuite parler du traitement des messages Sécurité des applications Web 170/479
171 BINDINGS H T T P://W W W.W3.O R G/TR/S O A P12-P A R T2/#S O A P I N H T T P SOAP définit un message comme un InfoSet XML Un Binding définit comment cet InfoSet peut être représenté comme charge dans un protocole de transport HTTP : Un binding standard, mais qui n est pas obligatoire, mais naturel pour des documents XML Note pour la sécurité : c est la destination indiquée dans le message SOAP qui est pertinente pour son traitement, pas celle indiquée dans le header du message HTTP c est une source connue de failles de sécurité Le verbe HTTP ne peut être que get (inbound) ou post (outbound) Binding alternatifs : , JMS, etc. HTTP définit lui-même des bindings pour le transport : IP, SSL (TLS) Sécurité des applications Web 171/479
172 EXEMPLE SOAP SUR HTTP POST / InStock HTTP/ 1. 1 Host: www. example. org Content Type: a p p l i c a t i o n / soap+xml ; charset= u t f 8 Content Length: nnn <?xml version= " 1.0 "?> <soap:envelope xmlns:soap= " h t t p : / /www. w3. org /2001/12/ soap envelope " soap:encodingstyle= " h t t p : / /www. w3. org /2001/12/ soap encoding " > <soap:body xmlns:m= " h t t p : / /www. example. org / stock " > <m:getstockprice> <m:stockname>ibm< / m:stockname> < / m:getstockprice> < / soap:body> < / soap:envelope> Sécurité des applications Web 172/479
173 CE QU IL FAUT RETENIR... SOAP est un protocole logique qui s intéresse à l InfoSet d un document XML plus qu à son texte Les intermédiaires peuvent changer le texte du document en : enlevant des morceaux de header qui leur étaient destinés ajoutant/enlevant des white space ajout des commentaires, ou de nouveaux headers Certaines interactions mettent en jeu plusieurs entités Sécurité des applications Web 173/479
174 WS DESCRIPTION LANGUAGE H T T P://W W W.W3.O R G/TR/W S D L RÔLE : Description de l interface (contrat) permettant d utiliser un service Analogie : le.h d une librairie C DOIT DÉFINIR : Les rôles (porttype) possibles que joue le serveur Les opérations disponibles dans chaque rôle Le type de chaque opération (e.g. consomme ou initie une requête) Le format des messages (message) pour ces opérations Un binding qui spécifie, pour chaque opération, le protocole à utiliser Un port qui spécifie l adresse (endpoint) permettant d appeler l opération Un service est un ensemble de ports Sécurité des applications Web 174/479
175 ABSTRAIT/CONCRET Dans ce que définit un fichier WSDL, il y a une partie abstraite et un concrète. PARTIE ABSTRAITE rôle porttype opérations message Sécurité des applications Web 175/479
176 ABSTRAIT/CONCRET Dans ce que définit un fichier WSDL, il y a une partie abstraite et un concrète. PARTIE CONCRÈTE binding, qui définit : le protocole (e.g. SOAP avec binding HTTP) comment le message est encodé dans un message du protocole : port, service RPC literal/encoded (= avec information de typage) Document literal (sans le nom de l opération, pas interopérable)/literal wrapped (avec) Sécurité des applications Web 176/479
177 AXIS2 Utilisable en stand-alone ou derrière Apache Permet de déployer très rapidement du code Java : génération automatisée du WSDL changement à chaud Fonctionnement basé sur : un flot de traitement sur un message un état global qui est mis à jour par chaque filtre dans la flot à la fin du flot, la classe et la méthode Java à appeler sont retrouvées dans l état global (anc. pivot) puis réponse en faisant le chemin dans l autre sens Sécurité des applications Web 177/479
178 UTILISATION DE AXIS2 POUR LA SÉCURITÉ Insertion dans le flot du module Rampart (fichier axis2.xml), automatique lors de l installation Reprendre le fichier service.xml généré automatiquement, et y ajouter un nœud wsp:policy qui contient une politique de sécurité WS-SecurityPolicy Cette politique est ensuite mappée automatiquement sur le WSDL NOTE : L ancienne méthode consistait à annoter le WSDL à la main, aux différents endroits qui conviennent (dans les bindings) avec des références vers une policy Sécurité des applications Web 178/479
179 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) Base logique Classification Modèle Bell-LaPadula Modèle Biba Le modèle Harrisson-Ruzzo-Ullman Role-Based Access Control (Généralités) Sécurité des applications Web 179/479
180 THE SHOW SO FAR... On a vu, très rapidement, comment utiliser de la cryptographie dans les messages échangés entre services Partie importante : utilisation de tokens pour valider l accès à un service Au-delà de l aspect technique, comment écrire correctement des politiques de contrôle d accès? Question annexe : que veut/doit-on protéger? À quel endroit faire les vérifications pour le contrôle d accès? Sécurité des applications Web 180/479
181 THE SHOW SO FAR... On a vu, très rapidement, comment utiliser de la cryptographie dans les messages échangés entre services Partie importante : utilisation de tokens pour valider l accès à un service Au-delà de l aspect technique, comment écrire correctement des politiques de contrôle d accès? Question annexe : que veut/doit-on protéger? À quel endroit faire les vérifications pour le contrôle d accès? Sécurité des applications Web 181/479
182 OUTLINE CONTRÔLE D ACCÈS (THÉORIE) Base logique Classification Modèle Bell-LaPadula Modèle Biba Le modèle Harrisson-Ruzzo-Ullman Role-Based Access Control (Généralités) Sécurité des applications Web 182/479
183 PRÉ-REQUIS BASES DE DONNÉES savoir écrire une requête (de base) savoir ce qu est un schéma savoir ce qu est une entrée dans une table et savoir renommer les choses noms savants : Clauses de Horn et DATALOG Sécurité des applications Web 183/479
184 PRÉ-REQUIS BASES DE DONNÉES savoir écrire une requête (de base) savoir ce qu est un schéma savoir ce qu est une entrée dans une table et savoir renommer les choses noms savants : Clauses de Horn et DATALOG Sécurité des applications Web 184/479
185 PRÉ-REQUIS BASES DE DONNÉES savoir écrire une requête (de base) savoir ce qu est un schéma savoir ce qu est une entrée dans une table et savoir renommer les choses noms savants : Clauses de Horn et DATALOG Sécurité des applications Web 185/479
186 ALGÈBRE Constantes : ce sont des valeurs dans un type donné (qui ne nous regarde pas) Exemple : "Catherine ", 5.67, 1,... Variables :.... Rappel : elles sont utilisées dans les requêtes, pas dans les entrées termes : ce sont des expressions construites à partir des constantes et des variables. Exemple : "Catherine "ˆ"Henry ", 5.67 x,... Sécurité des applications Web 186/479
187 ALGÈBRE Constantes : ce sont des valeurs dans un type donné (qui ne nous regarde pas) Exemple : "Catherine ", 5.67, 1,... Variables :.... Rappel : elles sont utilisées dans les requêtes, pas dans les entrées termes : ce sont des expressions construites à partir des constantes et des variables. Exemple : "Catherine "ˆ"Henry ", 5.67 x,... Sécurité des applications Web 187/479
188 ALGÈBRE Constantes : ce sont des valeurs dans un type donné (qui ne nous regarde pas) Exemple : "Catherine ", 5.67, 1,... Variables :.... Rappel : elles sont utilisées dans les requêtes, pas dans les entrées termes : ce sont des expressions construites à partir des constantes et des variables. Exemple : "Catherine "ˆ"Henry ", 5.67 x,... Sécurité des applications Web 188/479
189 ALGÈBRE Constantes : ce sont des valeurs dans un type donné (qui ne nous regarde pas) Exemple : "Catherine ", 5.67, 1,... Variables :.... Rappel : elles sont utilisées dans les requêtes, pas dans les entrées termes : ce sont des expressions construites à partir des constantes et des variables. Exemple : "Catherine "ˆ"Henry ", 5.67 x,... Sécurité des applications Web 189/479
190 ALGÈBRE Constantes : ce sont des valeurs dans un type donné (qui ne nous regarde pas) Exemple : "Catherine ", 5.67, 1,... Variables :.... Rappel : elles sont utilisées dans les requêtes, pas dans les entrées termes : ce sont des expressions construites à partir des constantes et des variables. Exemple : "Catherine "ˆ"Henry ", 5.67 x,... Sécurité des applications Web 190/479
191 ALGÈBRE Constantes : ce sont des valeurs dans un type donné (qui ne nous regarde pas) Exemple : "Catherine ", 5.67, 1,... Variables :.... Rappel : elles sont utilisées dans les requêtes, pas dans les entrées termes : ce sont des expressions construites à partir des constantes et des variables. Exemple : "Catherine "ˆ"Henry ", 5.67 x,... Sécurité des applications Web 191/479
192 RELATIONS Symboles dont les arguments sont des termes Fondamental en logique! Exemple 1 : schémas dans une base de données Exemple 2 : arcs dans un graphe On s intéresse plus à la première notion Sécurité des applications Web 192/479
193 RELATIONS Symboles dont les arguments sont des termes Fondamental en logique! Exemple 1 : schémas dans une base de données Exemple 2 : arcs dans un graphe On s intéresse plus à la première notion Sécurité des applications Web 193/479
194 RELATIONS Symboles dont les arguments sont des termes Fondamental en logique! Exemple 1 : schémas dans une base de données Exemple 2 : arcs dans un graphe On s intéresse plus à la première notion Sécurité des applications Web 194/479
195 RELATIONS Symboles dont les arguments sont des termes Fondamental en logique! Exemple 1 : schémas dans une base de données Exemple 2 : arcs dans un graphe On s intéresse plus à la première notion Sécurité des applications Web 195/479
196 RELATIONS Symboles dont les arguments sont des termes Fondamental en logique! Exemple 1 : schémas dans une base de données Exemple 2 : arcs dans un graphe On s intéresse plus à la première notion Sécurité des applications Web 196/479
197 RELATIONS Symboles dont les arguments sont des termes Fondamental en logique! Exemple 1 : schémas dans une base de données Exemple 2 : arcs dans un graphe On s intéresse plus à la première notion Sécurité des applications Web 197/479
198 INTERPRÉTATION on interprète les termes dans un domaine D Exemple : s(s(0)) est interprété comme l entier 2 on interprète une relation comme une relation sur le domaine Exemple : pp(x,y) est interprété comme x < y avec x,y entiers Une relation est vraie dans une interprétation si sa traduction est vraie dans le domaine Sécurité des applications Web 198/479
199 INTERPRÉTATION on interprète les termes dans un domaine D Exemple : s(s(0)) est interprété comme l entier 2 on interprète une relation comme une relation sur le domaine Exemple : pp(x,y) est interprété comme x < y avec x,y entiers Une relation est vraie dans une interprétation si sa traduction est vraie dans le domaine Sécurité des applications Web 199/479
200 INTERPRÉTATION on interprète les termes dans un domaine D Exemple : s(s(0)) est interprété comme l entier 2 on interprète une relation comme une relation sur le domaine Exemple : pp(x,y) est interprété comme x < y avec x,y entiers Une relation est vraie dans une interprétation si sa traduction est vraie dans le domaine Sécurité des applications Web 200/479
201 INTERPRÉTATION on interprète les termes dans un domaine D Exemple : s(s(0)) est interprété comme l entier 2 on interprète une relation comme une relation sur le domaine Exemple : pp(x,y) est interprété comme x < y avec x,y entiers Une relation est vraie dans une interprétation si sa traduction est vraie dans le domaine Sécurité des applications Web 201/479
202 INTERPRÉTATION on interprète les termes dans un domaine D Exemple : s(s(0)) est interprété comme l entier 2 on interprète une relation comme une relation sur le domaine Exemple : pp(x,y) est interprété comme x < y avec x,y entiers Une relation est vraie dans une interprétation si sa traduction est vraie dans le domaine Sécurité des applications Web 202/479
203 INTERPRÉTATION on interprète les termes dans un domaine D Exemple : s(s(0)) est interprété comme l entier 2 on interprète une relation comme une relation sur le domaine Exemple : pp(x,y) est interprété comme x < y avec x,y entiers Une relation est vraie dans une interprétation si sa traduction est vraie dans le domaine Sécurité des applications Web 203/479
204 UTILISATION DES RELATIONS EN LOGIQUE EXERCICE : TRADUIRE EN FORMULES LOGIQUES EN UTILISANT DES RELATIONS 1. Tout batiment d au moins 4 étages doit avoir un ascenseur, sauf s il a été construit avant Tout homme est mortel, et Socrate est un homme. Donc Socrate est mortel 3. Tout orage est accompagné de pluie ou d éclairs. Il ne pleut pas, donc il n y a pas d orage. 4. Le barbier de ce village rase exactement tous les hommes qui ne se rasent pas eux-mêmes. 5. Idem, et en plus le barbier s appelle Pierre. Dire quels ensembles de clauses sont vraies! Sécurité des applications Web 204/479
205 UTILISATION DES RELATIONS EN LOGIQUE EXERCICE : TRADUIRE EN FORMULES LOGIQUES EN UTILISANT DES RELATIONS 1. Tout batiment d au moins 4 étages doit avoir un ascenseur, sauf s il a été construit avant Tout homme est mortel, et Socrate est un homme. Donc Socrate est mortel 3. Tout orage est accompagné de pluie ou d éclairs. Il ne pleut pas, donc il n y a pas d orage. 4. Le barbier de ce village rase exactement tous les hommes qui ne se rasent pas eux-mêmes. 5. Idem, et en plus le barbier s appelle Pierre. Dire quels ensembles de clauses sont vraies! Sécurité des applications Web 205/479
206 UN DOMAINE SPÉCIAL Pour une relation R(x 1,...,x n ) On considère le domaine D de tous les termes Une interprétation de R est un sous-ensemble E de D n R(t 1,...,t n ) est vrai si (t 1,...,t n ) est dans E Mais c est déjà bien connu! Une relation, c est un schéma dans une base de données Les entrées d une table sont les éléments de E MORALE Le contenu d une base de données représente les valeurs pour lesquelles le schéma est vrai Sécurité des applications Web 206/479
207 UN DOMAINE SPÉCIAL Pour une relation R(x 1,...,x n ) On considère le domaine D de tous les termes Une interprétation de R est un sous-ensemble E de D n R(t 1,...,t n ) est vrai si (t 1,...,t n ) est dans E Mais c est déjà bien connu! Une relation, c est un schéma dans une base de données Les entrées d une table sont les éléments de E MORALE Le contenu d une base de données représente les valeurs pour lesquelles le schéma est vrai Sécurité des applications Web 207/479
208 UN DOMAINE SPÉCIAL Pour une relation R(x 1,...,x n ) On considère le domaine D de tous les termes Une interprétation de R est un sous-ensemble E de D n R(t 1,...,t n ) est vrai si (t 1,...,t n ) est dans E Mais c est déjà bien connu! Une relation, c est un schéma dans une base de données Les entrées d une table sont les éléments de E MORALE Le contenu d une base de données représente les valeurs pour lesquelles le schéma est vrai Sécurité des applications Web 208/479
209 UN DOMAINE SPÉCIAL Pour une relation R(x 1,...,x n ) On considère le domaine D de tous les termes Une interprétation de R est un sous-ensemble E de D n R(t 1,...,t n ) est vrai si (t 1,...,t n ) est dans E Mais c est déjà bien connu! Une relation, c est un schéma dans une base de données Les entrées d une table sont les éléments de E MORALE Le contenu d une base de données représente les valeurs pour lesquelles le schéma est vrai Sécurité des applications Web 209/479
210 UN DOMAINE SPÉCIAL Pour une relation R(x 1,...,x n ) On considère le domaine D de tous les termes Une interprétation de R est un sous-ensemble E de D n R(t 1,...,t n ) est vrai si (t 1,...,t n ) est dans E Mais c est déjà bien connu! Une relation, c est un schéma dans une base de données Les entrées d une table sont les éléments de E MORALE Le contenu d une base de données représente les valeurs pour lesquelles le schéma est vrai Sécurité des applications Web 210/479
211 UN DOMAINE SPÉCIAL Pour une relation R(x 1,...,x n ) On considère le domaine D de tous les termes Une interprétation de R est un sous-ensemble E de D n R(t 1,...,t n ) est vrai si (t 1,...,t n ) est dans E Mais c est déjà bien connu! Une relation, c est un schéma dans une base de données Les entrées d une table sont les éléments de E MORALE Le contenu d une base de données représente les valeurs pour lesquelles le schéma est vrai Sécurité des applications Web 211/479
212 UN DOMAINE SPÉCIAL Pour une relation R(x 1,...,x n ) On considère le domaine D de tous les termes Une interprétation de R est un sous-ensemble E de D n R(t 1,...,t n ) est vrai si (t 1,...,t n ) est dans E Mais c est déjà bien connu! Une relation, c est un schéma dans une base de données Les entrées d une table sont les éléments de E MORALE Le contenu d une base de données représente les valeurs pour lesquelles le schéma est vrai Sécurité des applications Web 212/479
213 REQUÊTES SQL ET LOGIQUE UN EXEMPLE : LE JOIN SELECT NOM, PRÉNOM, COMMUNE, FROM COMMUNES INNER JOIN PERSONNES ON COMMUNES.CODE_COMMUNE = PERSONNES.CODE_COMMUNE ; LOGIQUEMENT PARLANT... Communes(code_commune,commune) Personnes(Nom, Prénom,code_commune) La commande crée une nouvelle relation R : R(Nom, Prénom, commune) La requête consiste à rendre vraie la formule logique x,y,z,t,communes(x,y) Personnes(z,t,x) R(z,t,x) Sécurité des applications Web 213/479
214 REQUÊTES SQL ET LOGIQUE UN EXEMPLE : LE JOIN SELECT NOM, PRÉNOM, COMMUNE, FROM COMMUNES INNER JOIN PERSONNES ON COMMUNES.CODE_COMMUNE = PERSONNES.CODE_COMMUNE ; LOGIQUEMENT PARLANT... Communes(code_commune,commune) Personnes(Nom, Prénom,code_commune) La commande crée une nouvelle relation R : R(Nom, Prénom, commune) La requête consiste à rendre vraie la formule logique x,y,z,t,communes(x,y) Personnes(z,t,x) R(z,t,x) Sécurité des applications Web 214/479
215 REQUÊTES SQL ET LOGIQUE UN EXEMPLE : LE JOIN SELECT NOM, PRÉNOM, COMMUNE, FROM COMMUNES INNER JOIN PERSONNES ON COMMUNES.CODE_COMMUNE = PERSONNES.CODE_COMMUNE ; LOGIQUEMENT PARLANT... Communes(code_commune,commune) Personnes(Nom, Prénom,code_commune) La commande crée une nouvelle relation R : R(Nom, Prénom, commune) La requête consiste à rendre vraie la formule logique x,y,z,t,communes(x,y) Personnes(z,t,x) R(z,t,x) Sécurité des applications Web 215/479
216 REQUÊTES SQL ET LOGIQUE UN EXEMPLE : LE JOIN SELECT NOM, PRÉNOM, COMMUNE, FROM COMMUNES INNER JOIN PERSONNES ON COMMUNES.CODE_COMMUNE = PERSONNES.CODE_COMMUNE ; LOGIQUEMENT PARLANT... Communes(code_commune,commune) Personnes(Nom, Prénom,code_commune) La commande crée une nouvelle relation R : R(Nom, Prénom, commune) La requête consiste à rendre vraie la formule logique x,y,z,t,communes(x,y) Personnes(z,t,x) R(z,t,x) Sécurité des applications Web 216/479
217 REQUÊTES SQL ET LOGIQUE UN EXEMPLE : LE JOIN SELECT NOM, PRÉNOM, COMMUNE, FROM COMMUNES INNER JOIN PERSONNES ON COMMUNES.CODE_COMMUNE = PERSONNES.CODE_COMMUNE ; LOGIQUEMENT PARLANT... Communes(code_commune,commune) Personnes(Nom, Prénom,code_commune) La commande crée une nouvelle relation R : R(Nom, Prénom, commune) La requête consiste à rendre vraie la formule logique x,y,z,t,communes(x,y) Personnes(z,t,x) R(z,t,x) Sécurité des applications Web 217/479
218 REQUÊTES SQL ET LOGIQUE UN EXEMPLE : LE JOIN SELECT NOM, PRÉNOM, COMMUNE, FROM COMMUNES INNER JOIN PERSONNES ON COMMUNES.CODE_COMMUNE = PERSONNES.CODE_COMMUNE ; LOGIQUEMENT PARLANT... Communes(code_commune,commune) Personnes(Nom, Prénom,code_commune) La commande crée une nouvelle relation R : R(Nom, Prénom, commune) La requête consiste à rendre vraie la formule logique x,y,z,t,communes(x,y) Personnes(z,t,x) R(z,t,x) Sécurité des applications Web 218/479
219 REQUÊTES SQL ET LOGIQUE UN EXEMPLE : LE JOIN SELECT NOM, PRÉNOM, COMMUNE, FROM COMMUNES INNER JOIN PERSONNES ON COMMUNES.CODE_COMMUNE = PERSONNES.CODE_COMMUNE ; LOGIQUEMENT PARLANT... Communes(code_commune,commune) Personnes(Nom, Prénom,code_commune) La commande crée une nouvelle relation R : R(Nom, Prénom, commune) La requête consiste à rendre vraie la formule logique x,y,z,t,communes(x,y) Personnes(z,t,x) R(z,t,x) Sécurité des applications Web 219/479
220 CLAUSES DE HORN NOTATION R( x) R 1 ( y 1 ),...,R n ( y n ) avec x, y 1,..., y n des vecteurs de termes SIGNIFICATION Pour toute instance des variables de la clause : Si toutes les relations à droite de la flêche sont vraies... alors la relation à gauche de la règle doit être vraie Sécurité des applications Web 220/479
221 CLAUSES DE HORN NOTATION R( x) R 1 ( y 1 ),...,R n ( y n ) avec x, y 1,..., y n des vecteurs de termes SIGNIFICATION Pour toute instance des variables de la clause : Si toutes les relations à droite de la flêche sont vraies... alors la relation à gauche de la règle doit être vraie Sécurité des applications Web 221/479
222 CLAUSES DE HORN NOTATION R( x) R 1 ( y 1 ),...,R n ( y n ) avec x, y 1,..., y n des vecteurs de termes SIGNIFICATION Pour toute instance des variables de la clause : Si toutes les relations à droite de la flêche sont vraies... alors la relation à gauche de la règle doit être vraie Sécurité des applications Web 222/479
223 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 223/479
224 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 224/479
225 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 225/479
226 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 226/479
227 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 227/479
228 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 228/479
229 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 229/479
230 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 230/479
231 DIFFÉRENCE SQL/CLAUSES DE HORN RÉDUCTION DE SQL EN CLAUSES DE HORN Créer une nouvelle relation pour chaque requête SQL Cette relation sera la tête de la clause Mettre chaque relation utilisée par la requête à droite instancier (ou rendre égales) les variables en fonction de la requête Marche tant qu il n y a pas de bag RÉDUCTION DE CLAUSES DE HORN EN REQUÊTES SQL Marche seulement si on a un ordre sur les clauses tel que la tête d une clause n a jamais été utilisée dans le corps d une clause précédente Le but est d empêcher la récursion Récursion explicite autorisée dans SQL 3 Sécurité des applications Web 231/479
232 PROLOG ET DATALOG DÉFINITION Dans les 2 cas, on a un ensemble de clauses de Horn Pour Prolog, on a aussi des priorités sur les règles Pour Datalog, on n autorise des termes qui sont seulement des variables ou des constantes note : règles R( x) pour désigner des faits DÉCIDABILITÉ Formellement, de savoir si un ensemble de clauses est inconsistant Prolog : indécidable. Datalog : EXPTIME-complet... Mais polynomial (P-complet) pour les cas pratiques Sécurité des applications Web 232/479
233 PROLOG ET DATALOG DÉFINITION Dans les 2 cas, on a un ensemble de clauses de Horn Pour Prolog, on a aussi des priorités sur les règles Pour Datalog, on n autorise des termes qui sont seulement des variables ou des constantes note : règles R( x) pour désigner des faits DÉCIDABILITÉ Formellement, de savoir si un ensemble de clauses est inconsistant Prolog : indécidable. Datalog : EXPTIME-complet... Mais polynomial (P-complet) pour les cas pratiques Sécurité des applications Web 233/479
234 PROLOG ET DATALOG DÉFINITION Dans les 2 cas, on a un ensemble de clauses de Horn Pour Prolog, on a aussi des priorités sur les règles Pour Datalog, on n autorise des termes qui sont seulement des variables ou des constantes note : règles R( x) pour désigner des faits DÉCIDABILITÉ Formellement, de savoir si un ensemble de clauses est inconsistant Prolog : indécidable. Datalog : EXPTIME-complet... Mais polynomial (P-complet) pour les cas pratiques Sécurité des applications Web 234/479
235 PROLOG ET DATALOG DÉFINITION Dans les 2 cas, on a un ensemble de clauses de Horn Pour Prolog, on a aussi des priorités sur les règles Pour Datalog, on n autorise des termes qui sont seulement des variables ou des constantes note : règles R( x) pour désigner des faits DÉCIDABILITÉ Formellement, de savoir si un ensemble de clauses est inconsistant Prolog : indécidable. Datalog : EXPTIME-complet... Mais polynomial (P-complet) pour les cas pratiques Sécurité des applications Web 235/479
236 PROLOG ET DATALOG DÉFINITION Dans les 2 cas, on a un ensemble de clauses de Horn Pour Prolog, on a aussi des priorités sur les règles Pour Datalog, on n autorise des termes qui sont seulement des variables ou des constantes note : règles R( x) pour désigner des faits DÉCIDABILITÉ Formellement, de savoir si un ensemble de clauses est inconsistant Prolog : indécidable. Datalog : EXPTIME-complet... Mais polynomial (P-complet) pour les cas pratiques Sécurité des applications Web 236/479
237 PROLOG ET DATALOG DÉFINITION Dans les 2 cas, on a un ensemble de clauses de Horn Pour Prolog, on a aussi des priorités sur les règles Pour Datalog, on n autorise des termes qui sont seulement des variables ou des constantes note : règles R( x) pour désigner des faits DÉCIDABILITÉ Formellement, de savoir si un ensemble de clauses est inconsistant Prolog : indécidable. Datalog : EXPTIME-complet... Mais polynomial (P-complet) pour les cas pratiques Sécurité des applications Web 237/479
238 PROLOG ET DATALOG DÉFINITION Dans les 2 cas, on a un ensemble de clauses de Horn Pour Prolog, on a aussi des priorités sur les règles Pour Datalog, on n autorise des termes qui sont seulement des variables ou des constantes note : règles R( x) pour désigner des faits DÉCIDABILITÉ Formellement, de savoir si un ensemble de clauses est inconsistant Prolog : indécidable. Datalog : EXPTIME-complet... Mais polynomial (P-complet) pour les cas pratiques Sécurité des applications Web 238/479
239 CALCUL DE POINT FIXE (EXEMPLE) On part d un ensemble de faits F = /0. Tant qu on n a pas finit : pour toutes les règles regarder si une instance σ du corps d une règle est dans F, ajouter l instance σ de la tête à F recommencer Example Exemple : calcul de la clôture transitive d une relation agent(alice), agent(bob), agent(charlie) ami(alice, bob), ami(bob, charlie) ami(x,y ) ami(x,z),ami(z,y ) Sécurité des applications Web 239/479
240 CALCUL DE POINT FIXE (EXEMPLE) On part d un ensemble de faits F = /0. Tant qu on n a pas finit : pour toutes les règles regarder si une instance σ du corps d une règle est dans F, ajouter l instance σ de la tête à F recommencer Example Exemple : calcul de la clôture transitive d une relation agent(alice), agent(bob), agent(charlie) ami(alice, bob), ami(bob, charlie) ami(x,y ) ami(x,z),ami(z,y ) Sécurité des applications Web 240/479
241 CALCUL DE POINT FIXE (EXEMPLE) On part d un ensemble de faits F = /0. Tant qu on n a pas finit : pour toutes les règles regarder si une instance σ du corps d une règle est dans F, ajouter l instance σ de la tête à F recommencer Example Exemple : calcul de la clôture transitive d une relation agent(alice), agent(bob), agent(charlie) ami(alice, bob), ami(bob, charlie) ami(x,y ) ami(x,z),ami(z,y ) Sécurité des applications Web 241/479
242 CALCUL DE POINT FIXE (EXEMPLE) On part d un ensemble de faits F = /0. Tant qu on n a pas finit : pour toutes les règles regarder si une instance σ du corps d une règle est dans F, ajouter l instance σ de la tête à F recommencer Example Exemple : calcul de la clôture transitive d une relation agent(alice), agent(bob), agent(charlie) ami(alice, bob), ami(bob, charlie) ami(x,y ) ami(x,z),ami(z,y ) Sécurité des applications Web 242/479
243 OUTLINE CONTRÔLE D ACCÈS (THÉORIE) Base logique Classification Modèle Bell-LaPadula Modèle Biba Le modèle Harrisson-Ruzzo-Ullman Role-Based Access Control (Généralités) Sécurité des applications Web 243/479
244 TYPES DE CONTRÔLE D ACCÈS (1/2) UNIX WINDOWS un utilisateur est propriétaire des fichiers c est à l utilisateur de choisir les droits d accès aux fichiers qu il possède (y compris donner le fichier à un autre utilisateur) chmod, chown,... Sécurité des applications Web 244/479
245 TYPES DE CONTRÔLE D ACCÈS (2/2) SYSTÈMES D ENTREPRISES un utilisateur travaille sur des données qui ne sont pas à lui exemple : manipulation d une fiche client les lois obligent à respecter certaines conditions pour le contrôle d accès les utilisateurs ne sont pas forcément compétents Un administrateur fixe les droits d accès aux fichiers On parle de contrôle d accès discrétionnaire (laissé à la discrétion de l utilisateur) ou obligatoire (Mandatory MAC, fixé par une autorité) Sécurité des applications Web 245/479
246 MAC POUR LES GRANDS SYSTÈMES ACL ACCESS CONTROL LISTS ACL : object ( user action list ) list Un fichier est un objet L administrateur attache à chaque objet une liste contenant : les noms de tous les utilisateurs pouvant accéder à l objet Pour chaque utilisateur, la liste des actions permises (lecture, etc.) EN PRATIQUE Utilisateurs ou groupes d utilisateurs implémenté dans SELinux, Solaris et Oracle Linux, FreeBSD,... fichier au sens Unix : Pour les exécutables, possibilité de restreindre les appels systèmes (suivant implémentation) Sécurité des applications Web 246/479
247 MAC POUR LES GRANDS SYSTÈMES ACL ACCESS CONTROL LISTS ACL : object ( user action list ) list Un fichier est un objet L administrateur attache à chaque objet une liste contenant : les noms de tous les utilisateurs pouvant accéder à l objet Pour chaque utilisateur, la liste des actions permises (lecture, etc.) EN PRATIQUE Utilisateurs ou groupes d utilisateurs implémenté dans SELinux, Solaris et Oracle Linux, FreeBSD,... fichier au sens Unix : Pour les exécutables, possibilité de restreindre les appels systèmes (suivant implémentation) Sécurité des applications Web 247/479
248 OUTLINE CONTRÔLE D ACCÈS (THÉORIE) Base logique Classification Modèle Bell-LaPadula Modèle Biba Le modèle Harrisson-Ruzzo-Ullman Role-Based Access Control (Généralités) Sécurité des applications Web 248/479
249 ORIGINES CONTEXTE (1975) Début des systèmes multi-tâches, multi-utilisateurs Développé au MITRE pour des systèmes de haute-sécurité Sert de base au Trusted Computer System Evaluation Criteria (TCSEC) (DoD, Orange book) Basé sur une série d articles définissant ce qu est la sécurité INTÉRÊT DE SON ÉTUDE : Défense, aéronautique Dans l esprit NEAT Étalon pour mesurer la sécurité dans d autres systèmes Sécurité des applications Web 249/479
250 ORIGINES CONTEXTE (1975) Début des systèmes multi-tâches, multi-utilisateurs Développé au MITRE pour des systèmes de haute-sécurité Sert de base au Trusted Computer System Evaluation Criteria (TCSEC) (DoD, Orange book) Basé sur une série d articles définissant ce qu est la sécurité INTÉRÊT DE SON ÉTUDE : Défense, aéronautique Dans l esprit NEAT Étalon pour mesurer la sécurité dans d autres systèmes Sécurité des applications Web 250/479
251 BASES SUJETS ET OBJETS Un utilisateur, ou un programme incarnant l utilisateur, est un sujet Un fichier ou une ressource est un objet (Suivant le niveau d abstraction) : tout sujet est un objet ENVIRONNEMENT MILITAIRE Le contrôle d accès est exprimé par une une autorité Cette autorité a plus ou moins confiance en les sujets pour préserver la confidentialité des données : habilitation/clearance level Cette autorité veille à ce que ses données ne soient accessibles qu aux sujets habilités : niveau de sécurité Sécurité des applications Web 251/479
252 HIÉRARCHIE DE BASE EN FRANCE Très Secret Défense > Secret Défense > Confidentiel Défense > informations protégées (autre hiérarchie) Applicable aux industries connexes Gros projets industriels : Restriction sur la diffusion des données (Besoin de Savoir) Hiérarchie similaire applicable au sein d un projet Dépendances entre projets : possibilité de diffuser de l information à certains niveaux entre projets. Sécurité des applications Web 252/479
253 TREILLIS DES NIVEAUX DE SÉCURITÉ DÉFINITION PAS FORMELLE Dans un arbre, 2 nœuds ont toujours un ancêtre commun minimal Dans un treillis, en plus, deux nœuds ont toujours un descendant commun À partir de n importe quel ordre, ajouter un élément maximum et un minimum permet d obtenir un treillis Exemple : public (minimum), TSD+ (maximum) Sécurité des applications Web 253/479
254 CURIOSITÉ SOUS-BUT DU SYSTÈME DE CONTRÔLE D ACCÈS : Un sujet qui a une habilitation L s ne peut lire que des données qui sont à un niveau de sécurité L d L s. No Read UP Un sujet curieux ne peut pas ouvrir un dossier s il n a pas le niveau d habilitation suffisant Sécurité des applications Web 254/479
255 FUITES SOUS-BUT DU SYSTÈME DE CONTRÔLE D ACCÈS : Un sujet qui a une habilitation L s ne peut écrire que des données qui sont à un niveau de sécurité L d L s. No Write Down Un sujet ne peut pas divulguer le contenu d un dossier en le plaçant dans un dossier à un niveau inférieur Raisonnement en 2 temps : Si c est possible, alors écriture d une information SD dans une clef USB (publique) Lecture de la clef USB par n importe qui (autorisée) autre nom : propriété Sécurité des applications Web 255/479
256 MODÈLE LOGIQUE PRÉDICATS hab(x,l) : le sujet x a l habilitation l niv(x,l) : l objet x a le niveau de sécurité l lire(x,y) : le sujet x peut lire l objet y ecr(x,y) : le sujet x peut écrire dans l objet y l l : le niveau l est inférieur au niveau l RÈGLES DE CONTRÔLE D ACCÈS lire(x,y) hab(x,l),niv(y,l ),l l ecr(x,y) hab(x,l),niv(y,l ),l l l l l l,l l dernière règle : car l ordre est transitif Sécurité des applications Web 256/479
257 MODÈLE LOGIQUE PRÉDICATS hab(x,l) : le sujet x a l habilitation l niv(x,l) : l objet x a le niveau de sécurité l lire(x,y) : le sujet x peut lire l objet y ecr(x,y) : le sujet x peut écrire dans l objet y l l : le niveau l est inférieur au niveau l RÈGLES DE CONTRÔLE D ACCÈS lire(x,y) hab(x,l),niv(y,l ),l l ecr(x,y) hab(x,l),niv(y,l ),l l l l l l,l l dernière règle : car l ordre est transitif Sécurité des applications Web 257/479
258 MODÈLE LOGIQUE PRÉDICATS hab(x,l) : le sujet x a l habilitation l niv(x,l) : l objet x a le niveau de sécurité l lire(x,y) : le sujet x peut lire l objet y ecr(x,y) : le sujet x peut écrire dans l objet y l l : le niveau l est inférieur au niveau l RÈGLES DE CONTRÔLE D ACCÈS lire(x,y) hab(x,l),niv(y,l ),l l ecr(x,y) hab(x,l),niv(y,l ),l l l l l l,l l dernière règle : car l ordre est transitif Sécurité des applications Web 258/479
259 EXERCICE D APPLICATION Avec les règles précédentes, et : a b d et a c d hab(s, c) Quels sont les niveaux auxquels le sujet s peut lire? écrire? À SAVOIR : Calculer si un sujet peut lire/écrire un objet donné Calculer les niveaux auquel un sujet peut lire ou écrire Calculer les habilitations auxquelles un objet peut être lu ou écrit Sécurité des applications Web 259/479
260 EXERCICE D APPLICATION Avec les règles précédentes, et : a b d et a c d hab(s, c) Quels sont les niveaux auxquels le sujet s peut lire? écrire? À SAVOIR : Calculer si un sujet peut lire/écrire un objet donné Calculer les niveaux auquel un sujet peut lire ou écrire Calculer les habilitations auxquelles un objet peut être lu ou écrit Sécurité des applications Web 260/479
261 COMMUNICATIONS DANS BLP COMMUNICATIONS RIGIDES Une communication de s vers s signifie que s écrit un message et que s le lit NRU+NWD : le niveau d habilitation de s doit être supérieur à celui de s Implication : Un directeur ne pourra pas communiquer un message à des sous-traitants! Sécurité des applications Web 261/479
262 CLASSIFICATION/DÉCLASSIFICATION DÉCLASSIFICATION Il faut identifier un sous-ensemble de Trusted Users qui peuvent écrire vers le bas La manière dont ces sujets sont choisis n est pas spécifiée Les contraintes (déclaration préalable, log, etc.) auxquelles sont soumises les déclassifications ne sont pas spécifiées Le système modélise les accès informatiques. Des procédures spéciales sont mises en place pour les humains. Sécurité des applications Web 262/479
263 OUTLINE CONTRÔLE D ACCÈS (THÉORIE) Base logique Classification Modèle Bell-LaPadula Modèle Biba Le modèle Harrisson-Ruzzo-Ullman Role-Based Access Control (Généralités) Sécurité des applications Web 263/479
264 ORIGINES CONTEXTE Postérieur au modèle Bell-LaPadula Problème identifié : Lorsqu on met des niveaux de sécurité dans une arborescence de fichiers Est-ce que le niveau de sécurité doit être croissant ou décroissant? RÉPONSE : Décroissant : plus on s enfonce dans l arborescence, moins on a besoin de sécurité (comparaison / et /tmp) Croissant : car si on ne peut pas connaître un dossier, on ne peut rien savoir de son contenu Sécurité des applications Web 264/479
265 ORIGINES CONTEXTE Postérieur au modèle Bell-LaPadula Problème identifié : Lorsqu on met des niveaux de sécurité dans une arborescence de fichiers Est-ce que le niveau de sécurité doit être croissant ou décroissant? RÉPONSE : Décroissant : plus on s enfonce dans l arborescence, moins on a besoin de sécurité (comparaison / et /tmp) Croissant : car si on ne peut pas connaître un dossier, on ne peut rien savoir de son contenu Sécurité des applications Web 265/479
266 INTÉGRITÉ VERSION SIMPLIFIÉE Bell-LaPadula permet à n importe qui d écrire des informations à un haut niveau de sécurité Carnets personnels d un général Ne garantit donc pas la qualité des informations à un niveau de sécurité donné même exemple Modèle Biba : une hiérarchie permet le contrôle de la qualité d une information EXEMPLES Une rumeur est une information de très mauvaise qualité Un article sur Wikipédia est de bonne qualité Un article écrit et revu par des experts est de qualité excellente Sécurité des applications Web 266/479
267 NIVEAUX D INTÉGRITÉ Une rumeur peut être basée sur un article d experts Mais le contraire n est pas possible : il faut des vérifications supplémentaires NWU, NRD Comme pour Bell-LaPadula, le modèle Biba associe aux sujets et objets des niveaux d intégrité Au contraire de Bell-LaPadula : Un sujet peut écrire des informations à un niveau inférieur Un sujet peut lire des informations qui viennent d un niveau supérieur Sécurité des applications Web 267/479
268 CLASSIFICATION/DÉCLASSIFICATION DANS LE MODÈLE BIBA PROCÉDURES DE CONTRÔLE DE QUALITÉ Pour faire remonter une information, il faut s assurer que des précautions supplémentaires ont été prises au niveau inférieur Terme générique : procédures de contrôle de qualité, hors du champs des systèmes d informations Un expert autorise le relèvement d une information seulement si les procédures ont été bien suivies APPLICATIONS PRATIQUES Intégration de COTS (Commercial Off-The-Shelf) dans des systèmes à haut niveau d intégrité après Certification Critères Communs (EAL 1-7) Signature numérique pour le contrôle d intégrité Sécurité des applications Web 268/479
269 MODÈLE LOGIQUE Comme pour le modèle Bell-LaPadula, un treillis de niveaux d intégrité règles inversées PRÉDICATS ass(x,l) : le sujet x a le niveau d assurance l int(x,l) : l objet x a le niveau d intégrité l lire(x,y) : le sujet x peut lire l objet y ecr(x,y) : le sujet x peut écrire dans l objet y l l : le niveau l est inférieur au niveau l RÈGLES DE CONTRÔLE D ACCÈS lire(x,y) ass(x,l),int(y,l ),l l ecr(x,y) ass(x,l),int(y,l ),l l l l l l,l l Sécurité des applications Web 269/479
270 MODÈLE LOGIQUE Comme pour le modèle Bell-LaPadula, un treillis de niveaux d intégrité règles inversées PRÉDICATS ass(x,l) : le sujet x a le niveau d assurance l int(x,l) : l objet x a le niveau d intégrité l lire(x,y) : le sujet x peut lire l objet y ecr(x,y) : le sujet x peut écrire dans l objet y l l : le niveau l est inférieur au niveau l RÈGLES DE CONTRÔLE D ACCÈS lire(x,y) ass(x,l),int(y,l ),l l ecr(x,y) ass(x,l),int(y,l ),l l l l l l,l l Sécurité des applications Web 270/479
271 MODÈLE LOGIQUE Comme pour le modèle Bell-LaPadula, un treillis de niveaux d intégrité règles inversées PRÉDICATS ass(x,l) : le sujet x a le niveau d assurance l int(x,l) : l objet x a le niveau d intégrité l lire(x,y) : le sujet x peut lire l objet y ecr(x,y) : le sujet x peut écrire dans l objet y l l : le niveau l est inférieur au niveau l RÈGLES DE CONTRÔLE D ACCÈS lire(x,y) ass(x,l),int(y,l ),l l ecr(x,y) ass(x,l),int(y,l ),l l l l l l,l l Sécurité des applications Web 271/479
272 BIBA+BELL-LAPADULA Hypothèse : les niveaux d intégrité et de sécurité coïncident No Read Up, No Read Down, No Write Up, No Write Down Les informations restent confinées au niveau où elles sont créées En pratique, contrôle d accès pour réguler les échanges possibles d informations Le mécanisme de contrôle d accès utilisé revient à décrire les procédures de classification/déclassification systèmes MILS (Multiple Independent Levels of Security) Sécurité des applications Web 272/479
273 OUTLINE CONTRÔLE D ACCÈS (THÉORIE) Base logique Classification Modèle Bell-LaPadula Modèle Biba Le modèle Harrisson-Ruzzo-Ullman Role-Based Access Control (Généralités) Sécurité des applications Web 273/479
274 CONTEXTE Approches Bell-LaPadula/Biba : On décrit un système idéal, et on cherche ensuite à l implémenter approche top-down Apparition des systèmes multi-utilisateurs, multi-tâches Approche Bottom-Up : on cherche à modéliser les systèmes existant Sécurité des applications Web 274/479
275 DOMAINE Système de contrôle d accès de type Unix On a des sujets, qui sont tous les utilisateurs enregistrés dans le système (login et mot de passe) On a des objets, qui sont tous les fichiers gérés par le système Fichiers Unix : les connections réseaux, la carte son, etc. sont des fichiers Sécurité des applications Web 275/479
276 DOMAINE Système de contrôle d accès de type Unix On a des sujets, qui sont tous les utilisateurs enregistrés dans le système (login et mot de passe) On a des objets, qui sont tous les fichiers gérés par le système Fichiers Unix : les connections réseaux, la carte son, etc. sont des fichiers Sécurité des applications Web 276/479
277 DOMAINE Système de contrôle d accès de type Unix On a des sujets, qui sont tous les utilisateurs enregistrés dans le système (login et mot de passe) On a des objets, qui sont tous les fichiers gérés par le système Fichiers Unix : les connections réseaux, la carte son, etc. sont des fichiers Sécurité des applications Web 277/479
278 DOMAINE Système de contrôle d accès de type Unix On a des sujets, qui sont tous les utilisateurs enregistrés dans le système (login et mot de passe) On a des objets, qui sont tous les fichiers gérés par le système Fichiers Unix : les connections réseaux, la carte son, etc. sont des fichiers Sécurité des applications Web 278/479
279 DOMAINE Système de contrôle d accès de type Unix On a des sujets, qui sont tous les utilisateurs enregistrés dans le système (login et mot de passe) On a des objets, qui sont tous les fichiers gérés par le système Fichiers Unix : les connections réseaux, la carte son, etc. sont des fichiers Sécurité des applications Web 279/479
280 PERMISSIONS On considère un ensemble a 1,...,a n d actions On associe une permission à chaque action Une permission, c est une relation entre les sujets et les objets On a une représentation matricielle Sécurité des applications Web 280/479
281 PERMISSIONS On considère un ensemble a 1,...,a n d actions On associe une permission à chaque action Une permission, c est une relation entre les sujets et les objets On a une représentation matricielle Sécurité des applications Web 281/479
282 PERMISSIONS On considère un ensemble a 1,...,a n d actions On associe une permission à chaque action Une permission, c est une relation entre les sujets et les objets On a une représentation matricielle Sécurité des applications Web 282/479
283 PERMISSIONS On considère un ensemble a 1,...,a n d actions On associe une permission à chaque action Une permission, c est une relation entre les sujets et les objets On a une représentation matricielle Sécurité des applications Web 283/479
284 PERMISSIONS On considère un ensemble a 1,...,a n d actions On associe une permission à chaque action Une permission, c est une relation entre les sujets et les objets On a une représentation matricielle Sécurité des applications Web 284/479
285 REPRÉSENTATION MATRICIELLE a 1,...,a n sont des actions sujet objet o 1... o n s 1 a 1... a s k a 1,a 2... a 1,a 3 Sécurité des applications Web 285/479
286 COMMANDES CONTRÔLE D ACCÈS À DISCRÉTION une action spéciale représente le fait de posséder un objet Des commandes indiquent les modifications possibles dans la matrice de contrôle d accès Si ces commandes peuvent aussi ajouter des objets et des fichiers, savoir si une permission peut être obtenue devient indécidable Sécurité des applications Web 286/479
287 COMMANDES CONTRÔLE D ACCÈS À DISCRÉTION une action spéciale représente le fait de posséder un objet Des commandes indiquent les modifications possibles dans la matrice de contrôle d accès Si ces commandes peuvent aussi ajouter des objets et des fichiers, savoir si une permission peut être obtenue devient indécidable Sécurité des applications Web 287/479
288 COMMANDES CONTRÔLE D ACCÈS À DISCRÉTION une action spéciale représente le fait de posséder un objet Des commandes indiquent les modifications possibles dans la matrice de contrôle d accès Si ces commandes peuvent aussi ajouter des objets et des fichiers, savoir si une permission peut être obtenue devient indécidable Sécurité des applications Web 288/479
289 COMMANDES CONTRÔLE D ACCÈS À DISCRÉTION une action spéciale représente le fait de posséder un objet Des commandes indiquent les modifications possibles dans la matrice de contrôle d accès Si ces commandes peuvent aussi ajouter des objets et des fichiers, savoir si une permission peut être obtenue devient indécidable Sécurité des applications Web 289/479
290 COMMANDES COMMANDES ATOMIQUES enter r into M(s,o) delete r into M(s,o) create subject s delete subject s create object o delete object o COMMANDES if r in M(s,o) then + séquence de commandes atomiques Sécurité des applications Web 290/479
291 EXEMPLE DE COMMANDE HRU CRÉATION DE FICHIER Command create_file(s, f) create object f enter o into M(s,f) enter r into M(s,f) enter w into M(s,f) Sécurité des applications Web 291/479
292 EXEMPLE DE COMMANDE HRU PASSATION DU DROIT DE LECTURE Command grant_read(s,s,f) if o M(s,f) then enter r into M(s,f) Sécurité des applications Web 292/479
293 ÉVALUATION PROBLÈME On se donne : une matrice de contrôle d accès initial M 0 un ensemble de commandes un droit r Et on cherche à savoir s il existe un couple (s,o) et une séquence de commandes telles qu après ces commandes, M(s, o) contient r alors que r / M 0 (s,o) RÉSULTATS Ce problème est décidable si chaque commande ne contient qu une seule action Il est indécidable dans le cas général Il est indécidable même si toutes les actions ne font qu ajouter des droits (jolie preuve) Sécurité des applications Web 293/479
294 MODÈLE LOGIQUE PRÉDICATS : Pour chaque droit r un prédicat r(x,y), avec r(s,o) vrai si r M(s,o) Pour chaque commande c(x 1,...,x n ), un prédicat permis_c(x 1,...,x n ) PERMISSIONS POUR LES COMMANDES Pour chaque commande, une clause de Horn : Traduction des conditions r M(s,o) par un atome dans le corps de la clause permis_c(x 1,...,x n ) dans la tête de la clause EXEMPLE permis_grant_read(s,s,f) o(s,f) Sécurité des applications Web 294/479
295 MODÈLE DYNAMIQUE EFFET DES COMMANDES Chaque commande modifie la matrice de contrôle d accès Un état est défini par une matrice de contrôle d accès Les commandes font passer d un état à un autre L évaluation des permissions peut changer lorsqu on change d état DÉFINITION DE L ÉTAT SUIVANT permis_c(x 1,...,x n ) (E,A) E est un ensemble d atomes à enlever A est un ensemble d atomes à ajouter Hypothèse : Pour chaque commande : il y a un test r (s,o) remove r from (s,o) Sécurité des applications Web 295/479
296 COMMENTAIRES D autres modèles avec des commandes plus simples existent En pratique, ce sont des modèles anciens, car les droits doivent être exprimés pour tous les utilisateurs On préfère utiliser des systèmes plus modernes Pour les systèmes à sécuriser, il est aussi préférable que les utilisateurs ne puissent pas changer les droits d accès Histoire du contrôle d accès : autoriser des changements tout en ayant une évaluation décidable POINT IMPORTANT Autoriser les modifications de l état courant permet de tout coder (problème indécidable) Il faut encadrer les modifications possibles Sécurité des applications Web 296/479
297 COMMENTAIRES D autres modèles avec des commandes plus simples existent En pratique, ce sont des modèles anciens, car les droits doivent être exprimés pour tous les utilisateurs On préfère utiliser des systèmes plus modernes Pour les systèmes à sécuriser, il est aussi préférable que les utilisateurs ne puissent pas changer les droits d accès Histoire du contrôle d accès : autoriser des changements tout en ayant une évaluation décidable POINT IMPORTANT Autoriser les modifications de l état courant permet de tout coder (problème indécidable) Il faut encadrer les modifications possibles Sécurité des applications Web 297/479
298 COMMENTAIRES D autres modèles avec des commandes plus simples existent En pratique, ce sont des modèles anciens, car les droits doivent être exprimés pour tous les utilisateurs On préfère utiliser des systèmes plus modernes Pour les systèmes à sécuriser, il est aussi préférable que les utilisateurs ne puissent pas changer les droits d accès Histoire du contrôle d accès : autoriser des changements tout en ayant une évaluation décidable POINT IMPORTANT Autoriser les modifications de l état courant permet de tout coder (problème indécidable) Il faut encadrer les modifications possibles Sécurité des applications Web 298/479
299 COMMENTAIRES D autres modèles avec des commandes plus simples existent En pratique, ce sont des modèles anciens, car les droits doivent être exprimés pour tous les utilisateurs On préfère utiliser des systèmes plus modernes Pour les systèmes à sécuriser, il est aussi préférable que les utilisateurs ne puissent pas changer les droits d accès Histoire du contrôle d accès : autoriser des changements tout en ayant une évaluation décidable POINT IMPORTANT Autoriser les modifications de l état courant permet de tout coder (problème indécidable) Il faut encadrer les modifications possibles Sécurité des applications Web 299/479
300 COMMENTAIRES D autres modèles avec des commandes plus simples existent En pratique, ce sont des modèles anciens, car les droits doivent être exprimés pour tous les utilisateurs On préfère utiliser des systèmes plus modernes Pour les systèmes à sécuriser, il est aussi préférable que les utilisateurs ne puissent pas changer les droits d accès Histoire du contrôle d accès : autoriser des changements tout en ayant une évaluation décidable POINT IMPORTANT Autoriser les modifications de l état courant permet de tout coder (problème indécidable) Il faut encadrer les modifications possibles Sécurité des applications Web 300/479
301 COMMENTAIRES D autres modèles avec des commandes plus simples existent En pratique, ce sont des modèles anciens, car les droits doivent être exprimés pour tous les utilisateurs On préfère utiliser des systèmes plus modernes Pour les systèmes à sécuriser, il est aussi préférable que les utilisateurs ne puissent pas changer les droits d accès Histoire du contrôle d accès : autoriser des changements tout en ayant une évaluation décidable POINT IMPORTANT Autoriser les modifications de l état courant permet de tout coder (problème indécidable) Il faut encadrer les modifications possibles Sécurité des applications Web 301/479
302 OUTLINE CONTRÔLE D ACCÈS (THÉORIE) Base logique Classification Modèle Bell-LaPadula Modèle Biba Le modèle Harrisson-Ruzzo-Ullman Role-Based Access Control (Généralités) Sécurité des applications Web 302/479
303 GROUPES ET RÔLES NOTION DE GROUPE un groupe est un ensemble d utilisateurs Associer des droits à un groupe permet de ne pas avoir à le faire pour tous les utilisateurs du groupe NOTION DE RÔLE Les rôles sont des groupes différence : hiérarchie de rôles Comme pour les objets, un rôle peut hériter des permissions d un autre rôle intérêt 1 : refléter, dans la politique de contrôle d accès, la hiérarchie au sein d une organisation intérêt 2 : définir des rôles par rapport à des activités Sécurité des applications Web 303/479
304 GROUPES ET RÔLES NOTION DE GROUPE un groupe est un ensemble d utilisateurs Associer des droits à un groupe permet de ne pas avoir à le faire pour tous les utilisateurs du groupe NOTION DE RÔLE Les rôles sont des groupes différence : hiérarchie de rôles Comme pour les objets, un rôle peut hériter des permissions d un autre rôle intérêt 1 : refléter, dans la politique de contrôle d accès, la hiérarchie au sein d une organisation intérêt 2 : définir des rôles par rapport à des activités Sécurité des applications Web 304/479
305 GROUPES ET RÔLES NOTION DE GROUPE un groupe est un ensemble d utilisateurs Associer des droits à un groupe permet de ne pas avoir à le faire pour tous les utilisateurs du groupe NOTION DE RÔLE Les rôles sont des groupes différence : hiérarchie de rôles Comme pour les objets, un rôle peut hériter des permissions d un autre rôle intérêt 1 : refléter, dans la politique de contrôle d accès, la hiérarchie au sein d une organisation intérêt 2 : définir des rôles par rapport à des activités Sécurité des applications Web 305/479
306 GROUPES ET RÔLES NOTION DE GROUPE un groupe est un ensemble d utilisateurs Associer des droits à un groupe permet de ne pas avoir à le faire pour tous les utilisateurs du groupe NOTION DE RÔLE Les rôles sont des groupes différence : hiérarchie de rôles Comme pour les objets, un rôle peut hériter des permissions d un autre rôle intérêt 1 : refléter, dans la politique de contrôle d accès, la hiérarchie au sein d une organisation intérêt 2 : définir des rôles par rapport à des activités Sécurité des applications Web 306/479
307 ROLE-BASED ACCESS CONTROL (RBAC) (1/2) BRIQUES DE BASE D UN LANGAGE POUR,LE CONTRÔLE D ACCÈS utilisateurs : les personnes ayant accès au système sujets : les programmes personnifiant l utilisateur au sein du système actions : opérations définies dans le système rôles : ensemble de noms avec une hiérarchie. Si R 1 r 2, alors le rôle r 2 hérite des permissions du rôle r 1 Sécurité des applications Web 307/479
308 ROLE-BASED ACCESS CONTROL (RBAC) (1/2) BRIQUES DE BASE D UN LANGAGE POUR,LE CONTRÔLE D ACCÈS utilisateurs : les personnes ayant accès au système sujets : les programmes personnifiant l utilisateur au sein du système actions : opérations définies dans le système rôles : ensemble de noms avec une hiérarchie. Si R 1 r 2, alors le rôle r 2 hérite des permissions du rôle r 1 Sécurité des applications Web 308/479
309 ROLE-BASED ACCESS CONTROL (RBAC) (1/2) BRIQUES DE BASE D UN LANGAGE POUR,LE CONTRÔLE D ACCÈS utilisateurs : les personnes ayant accès au système sujets : les programmes personnifiant l utilisateur au sein du système actions : opérations définies dans le système rôles : ensemble de noms avec une hiérarchie. Si R 1 r 2, alors le rôle r 2 hérite des permissions du rôle r 1 Sécurité des applications Web 309/479
310 ROLE-BASED ACCESS CONTROL (RBAC) (1/2) BRIQUES DE BASE D UN LANGAGE POUR,LE CONTRÔLE D ACCÈS utilisateurs : les personnes ayant accès au système sujets : les programmes personnifiant l utilisateur au sein du système actions : opérations définies dans le système rôles : ensemble de noms avec une hiérarchie. Si R 1 r 2, alors le rôle r 2 hérite des permissions du rôle r 1 Sécurité des applications Web 310/479
311 ROLE-BASED ACCESS CONTROL (RBAC) (1/2) BRIQUES DE BASE D UN LANGAGE POUR,LE CONTRÔLE D ACCÈS utilisateurs : les personnes ayant accès au système sujets : les programmes personnifiant l utilisateur au sein du système actions : opérations définies dans le système rôles : ensemble de noms avec une hiérarchie. Si R 1 r 2, alors le rôle r 2 hérite des permissions du rôle r 1 Sécurité des applications Web 311/479
312 ROLE-BASED ACCESS CONTROL (RBAC) (2/2) RELATIONS DÉFINIES DANS RBAC session : sujets utilisables par un utilisateur (relation 1 n) permissions : relation n n entre les rôles et les actions indiquant les actions permises pour chaque rôle. En général (et dans la suite) les actions sont effectués sur des objets peut-jouer : relation n n entre les sujets et les rôles indiquant quels rôles (i.e. ensemble de permissions) sont accessibles à un sujet joue : relation n n indiquant les rôles utilisés par un sujet (un sujet doit jouer un rôle pour pouvoir utiliser les permissions de ce rôle) Sécurité des applications Web 312/479
313 ROLE-BASED ACCESS CONTROL (RBAC) (2/2) RELATIONS DÉFINIES DANS RBAC session : sujets utilisables par un utilisateur (relation 1 n) permissions : relation n n entre les rôles et les actions indiquant les actions permises pour chaque rôle. En général (et dans la suite) les actions sont effectués sur des objets peut-jouer : relation n n entre les sujets et les rôles indiquant quels rôles (i.e. ensemble de permissions) sont accessibles à un sujet joue : relation n n indiquant les rôles utilisés par un sujet (un sujet doit jouer un rôle pour pouvoir utiliser les permissions de ce rôle) Sécurité des applications Web 313/479
314 ROLE-BASED ACCESS CONTROL (RBAC) (2/2) RELATIONS DÉFINIES DANS RBAC session : sujets utilisables par un utilisateur (relation 1 n) permissions : relation n n entre les rôles et les actions indiquant les actions permises pour chaque rôle. En général (et dans la suite) les actions sont effectués sur des objets peut-jouer : relation n n entre les sujets et les rôles indiquant quels rôles (i.e. ensemble de permissions) sont accessibles à un sujet joue : relation n n indiquant les rôles utilisés par un sujet (un sujet doit jouer un rôle pour pouvoir utiliser les permissions de ce rôle) Sécurité des applications Web 314/479
315 ROLE-BASED ACCESS CONTROL (RBAC) (2/2) RELATIONS DÉFINIES DANS RBAC session : sujets utilisables par un utilisateur (relation 1 n) permissions : relation n n entre les rôles et les actions indiquant les actions permises pour chaque rôle. En général (et dans la suite) les actions sont effectués sur des objets peut-jouer : relation n n entre les sujets et les rôles indiquant quels rôles (i.e. ensemble de permissions) sont accessibles à un sujet joue : relation n n indiquant les rôles utilisés par un sujet (un sujet doit jouer un rôle pour pouvoir utiliser les permissions de ce rôle) Sécurité des applications Web 315/479
316 ROLE-BASED ACCESS CONTROL (RBAC) (2/2) RELATIONS DÉFINIES DANS RBAC session : sujets utilisables par un utilisateur (relation 1 n) permissions : relation n n entre les rôles et les actions indiquant les actions permises pour chaque rôle. En général (et dans la suite) les actions sont effectués sur des objets peut-jouer : relation n n entre les sujets et les rôles indiquant quels rôles (i.e. ensemble de permissions) sont accessibles à un sujet joue : relation n n indiquant les rôles utilisés par un sujet (un sujet doit jouer un rôle pour pouvoir utiliser les permissions de ce rôle) Sécurité des applications Web 316/479
317 QUELQUES REMARQUES SUR RBAC (1/2) REMARQUES TECHNIQUES Linux : newgrp permet de jouer un nouveau groupe. L activation d un nouveau groupe peut être contrôlée par un mot de passe. Windows : il y a des domaines et des groupes locaux. Un domaine peut être membre d un groupe local, ce qui permet d exprimer un héritage de permission dans un sens ACL : suivant l implémentation, un groupe peut être membre d un groupe. Là encore, on peut exprimer l héritage de permissions Sécurité des applications Web 317/479
318 QUELQUES REMARQUES SUR RBAC (1/2) REMARQUES TECHNIQUES Linux : newgrp permet de jouer un nouveau groupe. L activation d un nouveau groupe peut être contrôlée par un mot de passe. Windows : il y a des domaines et des groupes locaux. Un domaine peut être membre d un groupe local, ce qui permet d exprimer un héritage de permission dans un sens ACL : suivant l implémentation, un groupe peut être membre d un groupe. Là encore, on peut exprimer l héritage de permissions Sécurité des applications Web 318/479
319 QUELQUES REMARQUES SUR RBAC (1/2) REMARQUES TECHNIQUES Linux : newgrp permet de jouer un nouveau groupe. L activation d un nouveau groupe peut être contrôlée par un mot de passe. Windows : il y a des domaines et des groupes locaux. Un domaine peut être membre d un groupe local, ce qui permet d exprimer un héritage de permission dans un sens ACL : suivant l implémentation, un groupe peut être membre d un groupe. Là encore, on peut exprimer l héritage de permissions Sécurité des applications Web 319/479
320 QUELQUES REMARQUES SUR RBAC (1/2) REMARQUES TECHNIQUES Linux : newgrp permet de jouer un nouveau groupe. L activation d un nouveau groupe peut être contrôlée par un mot de passe. Windows : il y a des domaines et des groupes locaux. Un domaine peut être membre d un groupe local, ce qui permet d exprimer un héritage de permission dans un sens ACL : suivant l implémentation, un groupe peut être membre d un groupe. Là encore, on peut exprimer l héritage de permissions Sécurité des applications Web 320/479
321 QUELQUES REMARQUES SUR RBAC (2/2) HISTORIQUE RBAC d abord implémenté pour l accès aux bases de données (fin des années 80) Formalisé, puis standardisé par le NIST, dans les années 90 Utilisé dans tous les systèmes modernes UTILISATEURS ET SUJETS Souvent, on ne fait pas de différences entre utilisateur et sujet au niveau de la politique de contrôle d accès. La distinction est utile quand on veut spécifier comment le lien peut être fait (par exemple, utilisation d un mot de passe et via une communication locale) Sécurité des applications Web 321/479
322 QUELQUES REMARQUES SUR RBAC (2/2) HISTORIQUE RBAC d abord implémenté pour l accès aux bases de données (fin des années 80) Formalisé, puis standardisé par le NIST, dans les années 90 Utilisé dans tous les systèmes modernes UTILISATEURS ET SUJETS Souvent, on ne fait pas de différences entre utilisateur et sujet au niveau de la politique de contrôle d accès. La distinction est utile quand on veut spécifier comment le lien peut être fait (par exemple, utilisation d un mot de passe et via une communication locale) Sécurité des applications Web 322/479
323 EXERCICE : POLITIQUE DANS UN HÔPITAL DÉFINITION DES RÔLES Rôles «médicaux» : professeur, médecin, interne, infirmier Rôles administratif : comptable, directeur, réceptionniste Autres : patient, visiteur Question 1 : Donner une hiérarchie sur ces rôles Sécurité des applications Web 323/479
324 EXERCICE : POLITIQUE DANS UN HÔPITAL Cyrus est professeur, Hiram médecin et Mieszko infirmier Afonso est le directeur, Champlain est comptable et Caesar réceptionniste Catherine et Henry ne sont rien de tout ça Question 2 : Donner la relation utilisateurs/rôles Sécurité des applications Web 324/479
325 EXERCICE : POLITIQUE DANS UN HÔPITAL Cyrus est professeur, Hiram médecin et Mieszko infirmier Afonso est le directeur, Champlain est comptable et Caesar réceptionniste Catherine et Henry ne sont rien de tout ça Question 2 : Donner la relation utilisateurs/rôles Sécurité des applications Web 325/479
326 EXERCICE : POLITIQUE DANS UN HÔPITAL Cyrus est professeur, Hiram médecin et Mieszko infirmier Afonso est le directeur, Champlain est comptable et Caesar réceptionniste Catherine et Henry ne sont rien de tout ça Question 2 : Donner la relation utilisateurs/rôles Sécurité des applications Web 326/479
327 EXERCICE : POLITIQUE DANS UN HÔPITAL Cyrus est professeur, Hiram médecin et Mieszko infirmier Afonso est le directeur, Champlain est comptable et Caesar réceptionniste Catherine et Henry ne sont rien de tout ça Question 2 : Donner la relation utilisateurs/rôles Sécurité des applications Web 327/479
328 SÉPARATION DES TÂCHES Dans l exemple précédent, Cyrus peut être á la fois professeur et patient et visiteur. En pratique : on peut vouloir que personne ne puisse jouer deux rôles spécifiques exemple intuitif : un joueur ne peut pas être en même au Stade Français et au Stade Toulousain exemple réaliste : Sarbanes-Oxley/muraille de Chine/... On peut vouloir qu il ne soit pas possible de jouer deux rôles en même temps Un médecin ne peut pas être aussi patient... On parle de Séparation des tâches statique (SSoD) ou dynamique (DSoD) Question 3 : Quels rôles devraient être en séparation statique ou dynamique des tâches Sécurité des applications Web 328/479
329 SÉPARATION DES TÂCHES Dans l exemple précédent, Cyrus peut être á la fois professeur et patient et visiteur. En pratique : on peut vouloir que personne ne puisse jouer deux rôles spécifiques exemple intuitif : un joueur ne peut pas être en même au Stade Français et au Stade Toulousain exemple réaliste : Sarbanes-Oxley/muraille de Chine/... On peut vouloir qu il ne soit pas possible de jouer deux rôles en même temps Un médecin ne peut pas être aussi patient... On parle de Séparation des tâches statique (SSoD) ou dynamique (DSoD) Question 3 : Quels rôles devraient être en séparation statique ou dynamique des tâches Sécurité des applications Web 329/479
330 SÉPARATION DES TÂCHES Dans l exemple précédent, Cyrus peut être á la fois professeur et patient et visiteur. En pratique : on peut vouloir que personne ne puisse jouer deux rôles spécifiques exemple intuitif : un joueur ne peut pas être en même au Stade Français et au Stade Toulousain exemple réaliste : Sarbanes-Oxley/muraille de Chine/... On peut vouloir qu il ne soit pas possible de jouer deux rôles en même temps Un médecin ne peut pas être aussi patient... On parle de Séparation des tâches statique (SSoD) ou dynamique (DSoD) Question 3 : Quels rôles devraient être en séparation statique ou dynamique des tâches Sécurité des applications Web 330/479
331 THÉORÊME DE SÉPARATION THEOREM Deux rôles en séparation statique ne peuvent hériter des permissions l un de l autre PREUVE Un rôle est un ensemble de permissions puis définition de séparation statique. Sécurité des applications Web 331/479
332 THÉORÊME DE SÉPARATION THEOREM Deux rôles en séparation statique ne peuvent hériter des permissions l un de l autre PREUVE Un rôle est un ensemble de permissions puis définition de séparation statique. Sécurité des applications Web 332/479
333 MORALE DU THÉORÈME DE SÉPARATION Il faut faire attention, la séparation de tâches se marie mal avec l héritage ex : conflits patient/médecin, visiteur/patient,... Solution 1 (Solaris, SELinux) : strict contrôle sur la hiérarchie des rôles (aucune, ou un seul étage) Solution 2 : Ne pas définir la hiérarchie de rôles par rapport aux fonctions (médecin, etc.) mais par rapport aux activités. Formalisation (ou non) de ces activités avec un environnement qui désigne la tâche en cours. Sécurité des applications Web 333/479
334 MORALE DU THÉORÈME DE SÉPARATION Il faut faire attention, la séparation de tâches se marie mal avec l héritage ex : conflits patient/médecin, visiteur/patient,... Solution 1 (Solaris, SELinux) : strict contrôle sur la hiérarchie des rôles (aucune, ou un seul étage) Solution 2 : Ne pas définir la hiérarchie de rôles par rapport aux fonctions (médecin, etc.) mais par rapport aux activités. Formalisation (ou non) de ces activités avec un environnement qui désigne la tâche en cours. Sécurité des applications Web 334/479
335 MORALE DU THÉORÈME DE SÉPARATION Il faut faire attention, la séparation de tâches se marie mal avec l héritage ex : conflits patient/médecin, visiteur/patient,... Solution 1 (Solaris, SELinux) : strict contrôle sur la hiérarchie des rôles (aucune, ou un seul étage) Solution 2 : Ne pas définir la hiérarchie de rôles par rapport aux fonctions (médecin, etc.) mais par rapport aux activités. Formalisation (ou non) de ces activités avec un environnement qui désigne la tâche en cours. Sécurité des applications Web 335/479
336 MORALE DU THÉORÈME DE SÉPARATION Il faut faire attention, la séparation de tâches se marie mal avec l héritage ex : conflits patient/médecin, visiteur/patient,... Solution 1 (Solaris, SELinux) : strict contrôle sur la hiérarchie des rôles (aucune, ou un seul étage) Solution 2 : Ne pas définir la hiérarchie de rôles par rapport aux fonctions (médecin, etc.) mais par rapport aux activités. Formalisation (ou non) de ces activités avec un environnement qui désigne la tâche en cours. Sécurité des applications Web 336/479
337 MORALE DU THÉORÈME DE SÉPARATION Il faut faire attention, la séparation de tâches se marie mal avec l héritage ex : conflits patient/médecin, visiteur/patient,... Solution 1 (Solaris, SELinux) : strict contrôle sur la hiérarchie des rôles (aucune, ou un seul étage) Solution 2 : Ne pas définir la hiérarchie de rôles par rapport aux fonctions (médecin, etc.) mais par rapport aux activités. Formalisation (ou non) de ces activités avec un environnement qui désigne la tâche en cours. Sécurité des applications Web 337/479
338 MORALE DU THÉORÈME DE SÉPARATION Il faut faire attention, la séparation de tâches se marie mal avec l héritage ex : conflits patient/médecin, visiteur/patient,... Solution 1 (Solaris, SELinux) : strict contrôle sur la hiérarchie des rôles (aucune, ou un seul étage) Solution 2 : Ne pas définir la hiérarchie de rôles par rapport aux fonctions (médecin, etc.) mais par rapport aux activités. Formalisation (ou non) de ces activités avec un environnement qui désigne la tâche en cours. Sécurité des applications Web 338/479
339 PERMISSIONS RAPPEL Relation Perm(Role, Action, Objet) En pratique, les objets eux-mêmes sont souvent des fonctions... Le système doit garder la trace des rôles activés par un sujet s. C est représenté par le prédicat joue(s, r) Règle générale pour savoir si un sujet s peut faire une action a sur un objet o : perm(s,a,o) joue(s,r),perm(r,a,o) Sécurité des applications Web 339/479
340 ACTIVATION/DÉSACTIVATION (1/2) FOCUS SUR LE RÔLE VISITEUR La réponse à l exercice d avant était que tout le monde peut être visiteur dans l hôpital Dans le détail, il y a quand même des contraintes de temps, par exemple il doit être entre 14h et 17h Donc tout le monde peut jouer le rôle visiteur, mais pour l activer, il faudra faire un test supplémentaire activer un rôle est aussi une action, et elle est aussi soumise au contrôle d accès (récent) On est en train de rentrer dans les «détails d implémentation», qui varient suivant le système effectivement utilisé Sécurité des applications Web 340/479
341 ACTIVATION/DÉSACTIVATION (2/2) Example Exemple joue(s, r) peut-jouer(s, r), 14h Heure 17h ou joue(s, r) perm(s, active, r) Perm(x, active, patient) 14h Heure 17h Sécurité des applications Web 341/479
342 ÉCRIRE DES POLITIQUES DE CONTRÔLE D ACCÈS En reprenant l exemple du patient, il y a peut-être des contrôles à faire à la réception Avant d écrire une politique, il faut commencer par identifier les processus métiers (Business Process), et voir comment assurer que ces BP sont correctement exécutés En général des outils existent pour tester la politique qu on écrit Dans la suite, Quelques exercices : comment spécifier une politique RBAC avec des processus métiers politiques de contrôle d accès pour l informatique dans le cas de services Web protégés par XACML Sécurité des applications Web 342/479
343 ÉCRIRE DES POLITIQUES DE CONTRÔLE D ACCÈS En reprenant l exemple du patient, il y a peut-être des contrôles à faire à la réception Avant d écrire une politique, il faut commencer par identifier les processus métiers (Business Process), et voir comment assurer que ces BP sont correctement exécutés En général des outils existent pour tester la politique qu on écrit Dans la suite, Quelques exercices : comment spécifier une politique RBAC avec des processus métiers politiques de contrôle d accès pour l informatique dans le cas de services Web protégés par XACML Sécurité des applications Web 343/479
344 ÉCRIRE DES POLITIQUES DE CONTRÔLE D ACCÈS En reprenant l exemple du patient, il y a peut-être des contrôles à faire à la réception Avant d écrire une politique, il faut commencer par identifier les processus métiers (Business Process), et voir comment assurer que ces BP sont correctement exécutés En général des outils existent pour tester la politique qu on écrit Dans la suite, Quelques exercices : comment spécifier une politique RBAC avec des processus métiers politiques de contrôle d accès pour l informatique dans le cas de services Web protégés par XACML Sécurité des applications Web 344/479
345 ÉCRIRE DES POLITIQUES DE CONTRÔLE D ACCÈS En reprenant l exemple du patient, il y a peut-être des contrôles à faire à la réception Avant d écrire une politique, il faut commencer par identifier les processus métiers (Business Process), et voir comment assurer que ces BP sont correctement exécutés En général des outils existent pour tester la politique qu on écrit Dans la suite, Quelques exercices : comment spécifier une politique RBAC avec des processus métiers politiques de contrôle d accès pour l informatique dans le cas de services Web protégés par XACML Sécurité des applications Web 345/479
346 ÉCRIRE DES POLITIQUES DE CONTRÔLE D ACCÈS En reprenant l exemple du patient, il y a peut-être des contrôles à faire à la réception Avant d écrire une politique, il faut commencer par identifier les processus métiers (Business Process), et voir comment assurer que ces BP sont correctement exécutés En général des outils existent pour tester la politique qu on écrit Dans la suite, Quelques exercices : comment spécifier une politique RBAC avec des processus métiers politiques de contrôle d accès pour l informatique dans le cas de services Web protégés par XACML Sécurité des applications Web 346/479
347 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB Contrôle d accès dans les applications REST Contrôle d accès dans les applications SOAP Architecture des systèmes de contrôle d accès CONTRÔLE D ACCÈS POUR LES SERVICES WEB Sécurité des applications Web 347/479
348 OUTLINE APPLICATIONS WEB Contrôle d accès dans les applications REST Contrôle d accès dans les applications SOAP Architecture des systèmes de contrôle d accès Sécurité des applications Web 348/479
349 MODÈLE MVC MODÈLE Une application Web est organisée autour d une base de donnée Ce sont ces données qui sont la spécificité d un site (github) VUE Les réponses aux requêtes sont des messages ou des pages Web Le contenu de ces pages doit refléter les permissions du client CONTRÔLE Le routage des requêtes vers les pages et les actions internes Instanciation des paramêtres utilisés dans les vues Sécurité des applications Web 349/479
350 MODÈLE MVC MODÈLE Une application Web est organisée autour d une base de donnée Ce sont ces données qui sont la spécificité d un site (github) VUE Les réponses aux requêtes sont des messages ou des pages Web Le contenu de ces pages doit refléter les permissions du client CONTRÔLE Le routage des requêtes vers les pages et les actions internes Instanciation des paramêtres utilisés dans les vues Sécurité des applications Web 350/479
351 MODÈLE MVC MODÈLE Une application Web est organisée autour d une base de donnée Ce sont ces données qui sont la spécificité d un site (github) VUE Les réponses aux requêtes sont des messages ou des pages Web Le contenu de ces pages doit refléter les permissions du client CONTRÔLE Le routage des requêtes vers les pages et les actions internes Instanciation des paramêtres utilisés dans les vues Sécurité des applications Web 351/479
352 CONTRÔLE D ACCÈS DANS LE MODÈLE MVC PRINCIPE Les règles de contrôle d accès sont édictées au niveau des données Ces règles sont prises en compte dans les vues pour l affichage ou non de certaines portions Il est de mauvais goût de placer des règles de contrôle d accès dans les contrôleurs Suite : contrôle d accès avec Rails+Hobo (pour débutants) Sécurité des applications Web 352/479
353 CONTRÔLE D ACCÈS DANS LE MODÈLE MVC PRINCIPE Les règles de contrôle d accès sont édictées au niveau des données Ces règles sont prises en compte dans les vues pour l affichage ou non de certaines portions Il est de mauvais goût de placer des règles de contrôle d accès dans les contrôleurs Suite : contrôle d accès avec Rails+Hobo (pour débutants) Sécurité des applications Web 353/479
354 RESSOURCES UNE RESSOURCE EST : Un objet (dont on spécifie les attributs et leur type) Une table (dont les colonnes sont les attributs + admin) Un contrôleur (actions index, new, create, show, edit, update, destroy) Une vue par réponse possible (e.g., la vue correspondant à new ou à edit est un formulaire, celles de create et update sont par défaut des redirections vers la page show) HOBO Une intégration des règles de contrôle d accès dans les modèles Une librairie pour l affichage des données qui prend en compte le contrôle d accès sur les modèles Sécurité des applications Web 354/479
355 CONTRÔLE D ACCÈS : MODÈLE LE SUJET EST DÉNOMMÉ A C T I N G_U S E R class User < ActiveRecord : : Base hobo_user_model # Don t put anything above t h i s "... " def create_permitted? # Only the i n i t i a l # admin user can be created s e l f. class. count == 0 end def update_permitted? true ( acting_user. administrator? acting_user. has_role ( " Animateur " ) ) && "... " end def destroy_permitted? acting_user. a d m i n i s t r a t o r? end def view_permitted?( f i e l d ) true ( acting_user == self ) ( acting_user. administrator?) ( f i e l d == : name ) ( f i e l d == : r o l e _ i d ) end end Sécurité des applications Web 355/479
356 COMMENTAIRES VUES ET CONTRÔLE D ACCÈS Les opérations possibles ne sont pas impactées Les opérations non-réalisables sont justes cachées But : ne pas distraire l utilisateur avec des boutons qu il n a pas le droit d utiliser Sécurité : pas de changement qu on présente ou non les boutons TP OPTIONNEL À FAIRE CHEZ SOI Créer les ressources pour RBAC (quelles tables?) Écrire les règles génériques pour le contrôle d accès Sécurité des applications Web 356/479
357 COMMENTAIRES VUES ET CONTRÔLE D ACCÈS Les opérations possibles ne sont pas impactées Les opérations non-réalisables sont justes cachées But : ne pas distraire l utilisateur avec des boutons qu il n a pas le droit d utiliser Sécurité : pas de changement qu on présente ou non les boutons TP OPTIONNEL À FAIRE CHEZ SOI Créer les ressources pour RBAC (quelles tables?) Écrire les règles génériques pour le contrôle d accès Sécurité des applications Web 357/479
358 OUTLINE APPLICATIONS WEB Contrôle d accès dans les applications REST Contrôle d accès dans les applications SOAP Architecture des systèmes de contrôle d accès Sécurité des applications Web 358/479
359 PROCESSUS MÉTIERS C EST UNE ACTIVITÉ : Abréviation : BP (Business Process) Définie par un certain nombre de tâches à accomplir Un ordre sur ces tâches Des conditions à vérifier... MODÉLISATION HABITUELLE : diagramme de tâches (workflow) Sécurité des applications Web 359/479
360 PROCESSUS MÉTIERS C EST UNE ACTIVITÉ : Abréviation : BP (Business Process) Définie par un certain nombre de tâches à accomplir Un ordre sur ces tâches Des conditions à vérifier... MODÉLISATION HABITUELLE : diagramme de tâches (workflow) Sécurité des applications Web 360/479
361 PROCESSUS MÉTIERS C EST UNE ACTIVITÉ : Abréviation : BP (Business Process) Définie par un certain nombre de tâches à accomplir Un ordre sur ces tâches Des conditions à vérifier... MODÉLISATION HABITUELLE : diagramme de tâches (workflow) Sécurité des applications Web 361/479
362 PROCESSUS MÉTIERS C EST UNE ACTIVITÉ : Abréviation : BP (Business Process) Définie par un certain nombre de tâches à accomplir Un ordre sur ces tâches Des conditions à vérifier... MODÉLISATION HABITUELLE : diagramme de tâches (workflow) Sécurité des applications Web 362/479
363 PROCESSUS MÉTIERS C EST UNE ACTIVITÉ : Abréviation : BP (Business Process) Définie par un certain nombre de tâches à accomplir Un ordre sur ces tâches Des conditions à vérifier... MODÉLISATION HABITUELLE : diagramme de tâches (workflow) Sécurité des applications Web 363/479
364 PROCESSUS MÉTIERS C EST UNE ACTIVITÉ : Abréviation : BP (Business Process) Définie par un certain nombre de tâches à accomplir Un ordre sur ces tâches Des conditions à vérifier... MODÉLISATION HABITUELLE : diagramme de tâches (workflow) Sécurité des applications Web 364/479
365 CONTRÔLE D ACCÈS DANS LES PROCESSUS MÉTIERS (1/2) PRINCIPE Chaque BP doit définir un certain nombre de rôles Les tâches sont réparties entre ces rôles Il faut vérifier que les personnes qui exécutent les tâches peuvent effectivement être actives dans les rôles qui sont définis WORKFLOW ET CONTRÔLE D ACCÈS un diagramme d exécution, avec une distribution des tâches aux différents rôles Un système de contrôle d accès contrôlant l instanciation des rôles par des sujets Ce dernier doit faire le pont entre des rôles organisationnels (réceptionniste), et des rôles au sein du BP Sécurité des applications Web 365/479
366 CONTRÔLE D ACCÈS DANS LES PROCESSUS MÉTIERS (1/2) PRINCIPE Chaque BP doit définir un certain nombre de rôles Les tâches sont réparties entre ces rôles Il faut vérifier que les personnes qui exécutent les tâches peuvent effectivement être actives dans les rôles qui sont définis WORKFLOW ET CONTRÔLE D ACCÈS un diagramme d exécution, avec une distribution des tâches aux différents rôles Un système de contrôle d accès contrôlant l instanciation des rôles par des sujets Ce dernier doit faire le pont entre des rôles organisationnels (réceptionniste), et des rôles au sein du BP Sécurité des applications Web 366/479
367 CONTRÔLE D ACCÈS DANS LES PROCESSUS MÉTIERS (1/2) PRINCIPE Chaque BP doit définir un certain nombre de rôles Les tâches sont réparties entre ces rôles Il faut vérifier que les personnes qui exécutent les tâches peuvent effectivement être actives dans les rôles qui sont définis WORKFLOW ET CONTRÔLE D ACCÈS un diagramme d exécution, avec une distribution des tâches aux différents rôles Un système de contrôle d accès contrôlant l instanciation des rôles par des sujets Ce dernier doit faire le pont entre des rôles organisationnels (réceptionniste), et des rôles au sein du BP Sécurité des applications Web 367/479
368 CONTRÔLE D ACCÈS DANS LES PROCESSUS MÉTIERS (1/2) PRINCIPE Chaque BP doit définir un certain nombre de rôles Les tâches sont réparties entre ces rôles Il faut vérifier que les personnes qui exécutent les tâches peuvent effectivement être actives dans les rôles qui sont définis WORKFLOW ET CONTRÔLE D ACCÈS un diagramme d exécution, avec une distribution des tâches aux différents rôles Un système de contrôle d accès contrôlant l instanciation des rôles par des sujets Ce dernier doit faire le pont entre des rôles organisationnels (réceptionniste), et des rôles au sein du BP Sécurité des applications Web 368/479
369 CONTRÔLE D ACCÈS DANS LES PROCESSUS MÉTIERS (1/2) PRINCIPE Chaque BP doit définir un certain nombre de rôles Les tâches sont réparties entre ces rôles Il faut vérifier que les personnes qui exécutent les tâches peuvent effectivement être actives dans les rôles qui sont définis WORKFLOW ET CONTRÔLE D ACCÈS un diagramme d exécution, avec une distribution des tâches aux différents rôles Un système de contrôle d accès contrôlant l instanciation des rôles par des sujets Ce dernier doit faire le pont entre des rôles organisationnels (réceptionniste), et des rôles au sein du BP Sécurité des applications Web 369/479
370 RÉCURSIVITÉ QU EST-CE QU UNE TÂCHE? exemple : accueil d un patient Il s agit d un élément d un BP (accueillir un patient est une tâche dans le BP définissant la réaction en cas d accident) Mais c est aussi souvent un BP. Pour accueillir un patient : il faut réserver un lit récupérer (si c est possible), son identité, puis, s il existe, son dossier médical l envoyer en salle d examen... Si les tâches sont aussi des BP, elles sont aussi protégées par un système de contrôle d accès Sécurité des applications Web 370/479
371 RÉCURSIVITÉ QU EST-CE QU UNE TÂCHE? exemple : accueil d un patient Il s agit d un élément d un BP (accueillir un patient est une tâche dans le BP définissant la réaction en cas d accident) Mais c est aussi souvent un BP. Pour accueillir un patient : il faut réserver un lit récupérer (si c est possible), son identité, puis, s il existe, son dossier médical l envoyer en salle d examen... Si les tâches sont aussi des BP, elles sont aussi protégées par un système de contrôle d accès Sécurité des applications Web 371/479
372 RÉCURSIVITÉ QU EST-CE QU UNE TÂCHE? exemple : accueil d un patient Il s agit d un élément d un BP (accueillir un patient est une tâche dans le BP définissant la réaction en cas d accident) Mais c est aussi souvent un BP. Pour accueillir un patient : il faut réserver un lit récupérer (si c est possible), son identité, puis, s il existe, son dossier médical l envoyer en salle d examen... Si les tâches sont aussi des BP, elles sont aussi protégées par un système de contrôle d accès Sécurité des applications Web 372/479
373 RÉCURSIVITÉ QU EST-CE QU UNE TÂCHE? exemple : accueil d un patient Il s agit d un élément d un BP (accueillir un patient est une tâche dans le BP définissant la réaction en cas d accident) Mais c est aussi souvent un BP. Pour accueillir un patient : il faut réserver un lit récupérer (si c est possible), son identité, puis, s il existe, son dossier médical l envoyer en salle d examen... Si les tâches sont aussi des BP, elles sont aussi protégées par un système de contrôle d accès Sécurité des applications Web 373/479
374 RÉCURSIVITÉ QU EST-CE QU UNE TÂCHE? exemple : accueil d un patient Il s agit d un élément d un BP (accueillir un patient est une tâche dans le BP définissant la réaction en cas d accident) Mais c est aussi souvent un BP. Pour accueillir un patient : il faut réserver un lit récupérer (si c est possible), son identité, puis, s il existe, son dossier médical l envoyer en salle d examen... Si les tâches sont aussi des BP, elles sont aussi protégées par un système de contrôle d accès Sécurité des applications Web 374/479
375 CONTRÔLE D ACCÈS DANS LES PROCESSUS MÉTIERS (2/2) Morale : Les tâches au sein d un BP ne peuvent être effectuées par un sujet que si certaines conditions sont remplies Pouvoir jouer un rôle ne suffit pas nécessairement Il faut aussi pouvoir définir les permissions, c est-à-dire les conditions sous-lesquelles une tâche (une action) peut être effectuée mécanisme de contrôle intégré à l application ou pare-feu Sécurité des applications Web 375/479
376 EXEMPLE : LOP Loan Origination Process Processus métier du domaine bancaire Rôles impliqués : pre-clerk, post-clerk, manager, client, credit rating bureau Contraintes de contrôle d accès : Pour les trois premiers rôles, avoir un poste spécifique (rôle organisationnel) au sein de la banque Le CRB peut être joué par un organisme agréé Contraintes métiers : C est seulement un manager qui peut s occuper des gros prêts lorsque des clerks sont impliqués, les pre- et post-clerks doivent être joués par deux employés différents Les données de crédit du client ne doivent pas être fournies à la banque Sécurité des applications Web 376/479
377 DIFFÉRENTS NIVEAUX D APPLICATION DE LA POLITIQUE EXEMPLE D IMPLÉMENTATION Vérification des rôles bancaires : pare-feu applicatif intégré au serveur Vérification des contraintes métier : intégrées à l application AUTRE POSSIBILITÉ : Données de l application stockées dans une base externe Cette base est consultée par un pare-feu extérieur à l application Sécurité des applications Web 377/479
378 OUTLINE APPLICATIONS WEB Contrôle d accès dans les applications REST Contrôle d accès dans les applications SOAP Architecture des systèmes de contrôle d accès Sécurité des applications Web 378/479
379 AUTHENTIFICATION, ATTRIBUT, AUTORISATION (1/2) AUTHENTICATION, ATTRIBUTE, AUTHORIZATION MODÈLE EN COUCHES Couche Authentification : Un principal se voit attribuer une identité par une autorité appelée serveur d identité Couche Attribut : (plus ou moins optionnelle) à partir de l identité fournie par la couche d authentification, des autorités décident des attributs que possède le principal ayant l identité Couche Autorisation : En fonction des attributs qui sont attachés à l identité d un client, délivre les tokens permettant l accès à un ou plusieurs service Sécurité des applications Web 379/479
380 AUTHENTIFICATION, ATTRIBUT, AUTORISATION (2/2) EXEMPLE Authentification : login nom/mot de passe Attribut : le principal obtient un token disant qu il est actif dans un rôle r Autorisation : le principal obtient des tokens représentant des permissions en fonction du rôle dans lequel il est actif Les couches servent de guide pour structurer le contrôle d accès. Sécurité des applications Web 380/479
381 COUCHE D AUTHENTIFICATION notion centrale : le serveur d identité Toute entité (principal) est connectée à un serveur d identité Ce serveur authentifie les principaux suivant des méthodes déclarées : PKI/Cryptographie Couple username/password Mécanismes physiques Il fournit au principal un ou plusieurs certificats décrivant : Son identité dans le système La méthode d authentification choisie Anonymat : cette identité peut être à long ou à court terme (nonce) Exemple de serveur d identité : Shibboleth Sécurité des applications Web 381/479
382 COUCHE D ATTRIBUTS notion centrale : négociation de la confiance Un client initie une négociation en commençant par négocier son identité Lorsque l identité est établie par un serveur d identité, une séquence d échange d assertions commence Lorsque le client a obtenu suffisament d assertions, il arrête la négociation (nonce) Exemple de serveur d identité : Shibboleth Sécurité des applications Web 382/479
383 COUCHE D ATTRIBUTS notion centrale : négociation de la confiance Un client initie une négociation en commençant par négocier son identité Lorsque l identité est établie par un serveur d identité, une séquence d échange d assertions commence Lorsque le client a obtenu suffisament d assertions, il arrête la négociation INTUITION L échange de certificats correspond à un calcul de plus petit point fixe C est la partie clause des politiques de contrôle d accès Pour les transactions courtes, il suffit en général d avoir le username pour autoriser l accès, donc cette étape est sautée Sécurité des applications Web 383/479
384 COUCHE D ATTRIBUTS notion centrale : négociation de la confiance Un client initie une négociation en commençant par négocier son identité Lorsque l identité est établie par un serveur d identité, une séquence d échange d assertions commence Lorsque le client a obtenu suffisament d assertions, il arrête la négociation INTUITION L échange de certificats correspond à un calcul de plus petit point fixe C est la partie clause des politiques de contrôle d accès Pour les transactions courtes, il suffit en général d avoir le username pour autoriser l accès, donc cette étape est sautée Sécurité des applications Web 384/479
385 COUCHE D AUTORISATION notions principales : PDP/PEP POINT DE DÉCISION DE LA POLITIQUE Autorité qui décide des accès à un service en fonction : des attributs du requêrant de l état de l application Si l accès est autorisé, un token d autorisation est envoyé au principal, qui peut l utiliser auprès du service EN PRATIQUE : Le PDP peut être intégré à l application ou à un pare-feu indépendant Sauf dans les cas complexes, on passe directement des attributs aux autorisations Cas complexes : agilité/souplesse de la politique du service avec des niveaux d indirection dans l expression du CA Sécurité des applications Web 385/479
386 PLAN BASES DE LA SÉCURITÉ ARCHITECTURE DES APPLICATIONS WEB SÉCURITÉ DU CLIENT SÉCURITÉ DU RÉSEAU ARCHITECTURE DES SERVEURS WEB CONTRÔLE D ACCÈS (THÉORIE) APPLICATIONS WEB CONTRÔLE D ACCÈS POUR LES SERVICES WEB SAML Requêtes XACML Sécurité des applications Web 386/479
387 OUTLINE CONTRÔLE D ACCÈS POUR LES SERVICES WEB SAML Requêtes XACML Sécurité des applications Web 387/479
388 PRÉSENTATION GÉNÉRALE SAML Langage permettant d exprimer des assertions Ces assertions peuvent exprimer : un attribut d un sujet (ex : le rôle dans lequel il est actif) une autorisation (permission de faire une action sur un objet) Initialement développé pour le Single Sign On (identité fédérée par SUN Maintenant adopté par tout le monde WS Sécurité des applications Web 388/479
389 PRÉSENTATION GÉNÉRALE SAML Langage permettant d exprimer des assertions Ces assertions peuvent exprimer : un attribut d un sujet (ex : le rôle dans lequel il est actif) une autorisation (permission de faire une action sur un objet) Initialement développé pour le Single Sign On (identité fédérée par SUN Maintenant adopté par tout le monde WS Sécurité des applications Web 389/479
390 PRÉSENTATION GÉNÉRALE SAML Langage permettant d exprimer des assertions Ces assertions peuvent exprimer : un attribut d un sujet (ex : le rôle dans lequel il est actif) une autorisation (permission de faire une action sur un objet) Initialement développé pour le Single Sign On (identité fédérée par SUN Maintenant adopté par tout le monde WS Sécurité des applications Web 390/479
391 PRÉSENTATION GÉNÉRALE SAML Langage permettant d exprimer des assertions Ces assertions peuvent exprimer : un attribut d un sujet (ex : le rôle dans lequel il est actif) une autorisation (permission de faire une action sur un objet) Initialement développé pour le Single Sign On (identité fédérée par SUN Maintenant adopté par tout le monde WS Sécurité des applications Web 391/479
392 PRÉSENTATION GÉNÉRALE SAML Langage permettant d exprimer des assertions Ces assertions peuvent exprimer : un attribut d un sujet (ex : le rôle dans lequel il est actif) une autorisation (permission de faire une action sur un objet) Initialement développé pour le Single Sign On (identité fédérée par SUN Maintenant adopté par tout le monde WS Sécurité des applications Web 392/479
393 PRÉSENTATION GÉNÉRALE SAML Langage permettant d exprimer des assertions Ces assertions peuvent exprimer : un attribut d un sujet (ex : le rôle dans lequel il est actif) une autorisation (permission de faire une action sur un objet) Initialement développé pour le Single Sign On (identité fédérée par SUN Maintenant adopté par tout le monde WS Sécurité des applications Web 393/479
394 SINGLE SIGN-ON on veut éviter les identifications à répétitions des utilisateurs du Web problème encore plus crucial dans le cas de services Web (communications intensives) Single Sign-on : le premier site ayant authentifié un agent certifie son identité auprès d autres sites pendant une certaine durée on (IBM,Microsoft) parle aussi de problème d identité fédérée Sécurité des applications Web 394/479
395 SINGLE SIGN-ON on veut éviter les identifications à répétitions des utilisateurs du Web problème encore plus crucial dans le cas de services Web (communications intensives) Single Sign-on : le premier site ayant authentifié un agent certifie son identité auprès d autres sites pendant une certaine durée on (IBM,Microsoft) parle aussi de problème d identité fédérée Sécurité des applications Web 395/479
396 SINGLE SIGN-ON on veut éviter les identifications à répétitions des utilisateurs du Web problème encore plus crucial dans le cas de services Web (communications intensives) Single Sign-on : le premier site ayant authentifié un agent certifie son identité auprès d autres sites pendant une certaine durée on (IBM,Microsoft) parle aussi de problème d identité fédérée Sécurité des applications Web 396/479
397 SINGLE SIGN-ON on veut éviter les identifications à répétitions des utilisateurs du Web problème encore plus crucial dans le cas de services Web (communications intensives) Single Sign-on : le premier site ayant authentifié un agent certifie son identité auprès d autres sites pendant une certaine durée on (IBM,Microsoft) parle aussi de problème d identité fédérée Sécurité des applications Web 397/479
398 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 398/479
399 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 399/479
400 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 400/479
401 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 401/479
402 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 402/479
403 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 403/479
404 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 404/479
405 GÉNÉRALITÉS But : gérer les identités d agents principe de base : une autorité émet une affirmation (statement) sur un sujet à une date donnée Ce quadruplet est en général signé, et certaines parties peuvent être chiffrées Il peut aussi y être associé des conditions (e.g. date limite de validité) en dehors desquelles l affirmation n est plus assurée L affirmation peut porter sur une identification, une autorisation ou un attribut du sujet note : on verra plus loin que c est ce qui est demandé par XACML! Le chiffrement et la signature sont définis par XML-ENC et XML-SIG on ne rentre pas dans les détails... Sécurité des applications Web 405/479
406 INTERPRÉTATION LOGIQUE DE SAML SAML certificat ensemble des certificats Logique entrée dans une BD BD distribuée PDP ensemble de règles En plus, il est nécessaire de garder la trace de l émetteur (issuer) d un certificat pour savoir s il peut être pris en compte (= si le PDP l ajoute dans sa base de faits) lorsqu un utilisateur demande un accès IMPORTANT SAML permet de réaliser une base de donnée distribuée pour le contrôle d accès Sécurité des applications Web 406/479
407 OUTLINE CONTRÔLE D ACCÈS POUR LES SERVICES WEB SAML Requêtes XACML Sécurité des applications Web 407/479
408 REQUÊTES ET RÉPONSES le PEP reçoit une demande d accès à une ressource. cette demande peut contenir des jetons SAML, des références LDAP, etc. le PEP formule, d après cette demande, une requête auprès du PDP cette requête n est pas forcément une requête XACML, mais le PDP doit être capable dans tous les cas de la transformer en requête XACML après consultation des autorités compétentes, le PDP envoie une réponse XACML au PEP le PEP interprète cette décision, et peut soit la notifier tout de suite à l émetteur de la requête, soit consulter d autres PDP en cas d échec Sécurité des applications Web 408/479
409 REQUÊTES ET RÉPONSES le PEP reçoit une demande d accès à une ressource. cette demande peut contenir des jetons SAML, des références LDAP, etc. le PEP formule, d après cette demande, une requête auprès du PDP cette requête n est pas forcément une requête XACML, mais le PDP doit être capable dans tous les cas de la transformer en requête XACML après consultation des autorités compétentes, le PDP envoie une réponse XACML au PEP le PEP interprète cette décision, et peut soit la notifier tout de suite à l émetteur de la requête, soit consulter d autres PDP en cas d échec Sécurité des applications Web 409/479
410 REQUÊTES ET RÉPONSES le PEP reçoit une demande d accès à une ressource. cette demande peut contenir des jetons SAML, des références LDAP, etc. le PEP formule, d après cette demande, une requête auprès du PDP cette requête n est pas forcément une requête XACML, mais le PDP doit être capable dans tous les cas de la transformer en requête XACML après consultation des autorités compétentes, le PDP envoie une réponse XACML au PEP le PEP interprète cette décision, et peut soit la notifier tout de suite à l émetteur de la requête, soit consulter d autres PDP en cas d échec Sécurité des applications Web 410/479
411 REQUÊTES ET RÉPONSES le PEP reçoit une demande d accès à une ressource. cette demande peut contenir des jetons SAML, des références LDAP, etc. le PEP formule, d après cette demande, une requête auprès du PDP cette requête n est pas forcément une requête XACML, mais le PDP doit être capable dans tous les cas de la transformer en requête XACML après consultation des autorités compétentes, le PDP envoie une réponse XACML au PEP le PEP interprète cette décision, et peut soit la notifier tout de suite à l émetteur de la requête, soit consulter d autres PDP en cas d échec Sécurité des applications Web 411/479
412 REQUÊTES ET RÉPONSES le PEP reçoit une demande d accès à une ressource. cette demande peut contenir des jetons SAML, des références LDAP, etc. le PEP formule, d après cette demande, une requête auprès du PDP cette requête n est pas forcément une requête XACML, mais le PDP doit être capable dans tous les cas de la transformer en requête XACML après consultation des autorités compétentes, le PDP envoie une réponse XACML au PEP le PEP interprète cette décision, et peut soit la notifier tout de suite à l émetteur de la requête, soit consulter d autres PDP en cas d échec Sécurité des applications Web 412/479
413 REQUÊTES ET RÉPONSES le PEP reçoit une demande d accès à une ressource. cette demande peut contenir des jetons SAML, des références LDAP, etc. le PEP formule, d après cette demande, une requête auprès du PDP cette requête n est pas forcément une requête XACML, mais le PDP doit être capable dans tous les cas de la transformer en requête XACML après consultation des autorités compétentes, le PDP envoie une réponse XACML au PEP le PEP interprète cette décision, et peut soit la notifier tout de suite à l émetteur de la requête, soit consulter d autres PDP en cas d échec Sécurité des applications Web 413/479
414 REQUÊTES identification du sujet action objet de l action contexte de la requête Sécurité des applications Web 414/479
415 REQUÊTES identification du sujet action objet de l action contexte de la requête Sécurité des applications Web 415/479
416 REQUÊTES identification du sujet action objet de l action contexte de la requête Sécurité des applications Web 416/479
417 REQUÊTES identification du sujet action objet de l action contexte de la requête Sécurité des applications Web 417/479
418 DÉFINITION D ENTITÉS Permet d alléger les notations Raccourcis remplacés avant le traitement en tant que document XML Avec la déclaration : on peut noter : au lieu de : <!ENTITY xml " &xml;string Sécurité des applications Web 418/479
419 DÉFINITION D ENTITÉS Permet d alléger les notations Raccourcis remplacés avant le traitement en tant que document XML Avec la déclaration : on peut noter : au lieu de : <!ENTITY xml " &xml;string Sécurité des applications Web 419/479
420 DÉFINITION D ENTITÉS Permet d alléger les notations Raccourcis remplacés avant le traitement en tant que document XML Avec la déclaration : on peut noter : au lieu de : <!ENTITY xml " &xml;string Sécurité des applications Web 420/479
421 DÉFINITION D ENTITÉS Permet d alléger les notations Raccourcis remplacés avant le traitement en tant que document XML Avec la déclaration : on peut noter : au lieu de : <!ENTITY xml " &xml;string Sécurité des applications Web 421/479
422 ENTITÉS DANS LA SUITE DU COURS <!ENTITY xml " <!ENTITY xacml "urn:oasis:names:tc:xacml:"> <!ENTITY rcombine "&xacml;1.0:rule-combining-algorithm:"> <!ENTITY pcombine "&xacml;1.0:policy-combining-algorithm:" <!ENTITY function "&xacml;1.0:function:"> <!ENTITY subject-category "&xacml;1.0:subject-category:"> <!ENTITY subject "&xacml;1.0:subject:"> <!ENTITY context "&xacml;1.0:context"> <!ENTITY role "&xacml;2.0:subject:role"> <!ENTITY roles "urn:example:role-values:"> <!ENTITY resource "&xacml;1.0:resource:"> <!ENTITY action "&xacml;1.0:action:"> <!ENTITY actions "&xacml;2.0:actions:"> <!ENTITY environment "&xacml;1.0:environment:"> <!ENTITY datatype "&xacml;1.0:data-type:"> <!ENTITY status "&xacml;1.0:status"> Sécurité des applications Web 422/479
423 ATTRIBUTS exemple <Attribute AttributeId="&subject;subject-id" DataType="&datatype;rfc822Name"> <AttributeValue> </AttributeValue> </Attribute> tag : Attribute attributs : AttributeID : le type de l attribut dans la politique de contrôle d accès DataType : le type xml:schema de l attribut Un ou plusieurs fils AttributeValue Sécurité des applications Web 423/479
424 ATTRIBUTS exemple <Attribute AttributeId="&subject;subject-id" DataType="&datatype;rfc822Name"> <AttributeValue> </AttributeValue> </Attribute> tag : Attribute attributs : AttributeID : le type de l attribut dans la politique de contrôle d accès DataType : le type xml:schema de l attribut Un ou plusieurs fils AttributeValue Sécurité des applications Web 424/479
425 ATTRIBUTS exemple <Attribute AttributeId="&subject;subject-id" DataType="&datatype;rfc822Name"> <AttributeValue> </AttributeValue> </Attribute> tag : Attribute attributs : AttributeID : le type de l attribut dans la politique de contrôle d accès DataType : le type xml:schema de l attribut Un ou plusieurs fils AttributeValue Sécurité des applications Web 425/479
426 ATTRIBUTS exemple <Attribute AttributeId="&subject;subject-id" DataType="&datatype;rfc822Name"> <AttributeValue> </AttributeValue> </Attribute> tag : Attribute attributs : AttributeID : le type de l attribut dans la politique de contrôle d accès DataType : le type xml:schema de l attribut Un ou plusieurs fils AttributeValue Sécurité des applications Web 426/479
427 ATTRIBUTS exemple <Attribute AttributeId="&subject;subject-id" DataType="&datatype;rfc822Name"> <AttributeValue> </AttributeValue> </Attribute> tag : Attribute attributs : AttributeID : le type de l attribut dans la politique de contrôle d accès DataType : le type xml:schema de l attribut Un ou plusieurs fils AttributeValue Sécurité des applications Web 427/479
428 ATTRIBUTS exemple <Attribute AttributeId="&subject;subject-id" DataType="&datatype;rfc822Name"> <AttributeValue> </AttributeValue> </Attribute> tag : Attribute attributs : AttributeID : le type de l attribut dans la politique de contrôle d accès DataType : le type xml:schema de l attribut Un ou plusieurs fils AttributeValue Sécurité des applications Web 428/479
429 ATTRIBUTS (SCHÉMA) <xs:element name="attribute" type="xacml-context:attributetype"/> <xs:complextype name="attributetype"> <xs:sequence> <xs:element ref="xacml-context:attributevalue" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="attributeid" type="xs:anyuri" use="required"/> <xs:attribute name="datatype" type="xs:anyuri" use="required"/> <xs:attribute name="issuer" type="xs:string" use="optional"/> </xs:complextype> AttributeId sert à identifier l attribut auquel on va donner une valeur. Un attribut peut avoir plusieurs valeurs possibles (ex. groups dans LDAP) Sécurité des applications Web 429/479
430 VALEURS D ATTRIBUTS (SCHÉMA) <xs:element name="attributevalue" type="xacml-context:attributevaluetype"/> <xs:complextype name="attributevaluetype" mixed="true <xs:sequence> <xs:any namespace="##any" processcontents="lax" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:anyattribute namespace="##any" processcontents="lax"/> </xs:complextype> Les valeurs possibles des attributs dépendent de l élément (sujet, resource,etc.) qu ils qualifient. Ce ne sont pas des attributs au sens XML du terme. Sécurité des applications Web 430/479
431 EXEMPLE REQUÊTE <Request xmlns="&context;" xmlns:xsi=" <Subject>... </Subject> <Resource>... </Resource> <Action>... </Action> </Request> Sécurité des applications Web 431/479
432 REQUÊTE (SCHÉMA) <xs:element name="request" type="xacml-context:requesttype"/> <xs:complextype name="requesttype"> <xs:sequence> <xs:element ref="xacml-context:subject" maxoccurs="unbounded <xs:element ref="xacml-context:resource" maxoccurs="unbounde <xs:element ref="xacml-context:action"/> <xs:element ref="xacml-context:environment"/> </xs:sequence> </xs:complextype> Sécurité des applications Web 432/479
433 SUJET (EXEMPLE) <Subject> <Attribute AttributeId="&xacml;2.0:subject-category" DataType="&xml;anyURI" <AttributeValue> &xacml;1.0:subject-category:access-subject </AttributeValue> </Attribute> </Subject> Sécurité des applications Web 433/479
434 SUJET (SCHÉMA) <xs:element name="subject" type="xacml-context:subjecttype"/> <xs:complextype name="subjecttype"> <xs:sequence> <xs:element ref="xacml-context:attribute" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="subjectcategory" type="xs:anyuri" default="&xacml;1.0:subject-category:access-subjec </xs:complextype> Sécurité des applications Web 434/479
435 SUJETS (COMMENTAIRES) Les sujets peuvent être de différentes catégories suivant le statut du sujet dans le cadre de la requête : access-subject : sujet qui a initié la requête recipient-subject : sujet qui recevra le résultat de la requête intermediary-subject : sujet qui sert d intermédiaire dans la requête (plusieurs possibles) codebase : sujet lorsqu il s agit d une requête demandée par un système d information requesting-machine : identité la machine d où est issue la requête Sécurité des applications Web 435/479
436 SUJETS (COMMENTAIRES) Les sujets peuvent être de différentes catégories suivant le statut du sujet dans le cadre de la requête : access-subject : sujet qui a initié la requête recipient-subject : sujet qui recevra le résultat de la requête intermediary-subject : sujet qui sert d intermédiaire dans la requête (plusieurs possibles) codebase : sujet lorsqu il s agit d une requête demandée par un système d information requesting-machine : identité la machine d où est issue la requête Sécurité des applications Web 436/479
437 SUJETS (COMMENTAIRES) Les sujets peuvent être de différentes catégories suivant le statut du sujet dans le cadre de la requête : access-subject : sujet qui a initié la requête recipient-subject : sujet qui recevra le résultat de la requête intermediary-subject : sujet qui sert d intermédiaire dans la requête (plusieurs possibles) codebase : sujet lorsqu il s agit d une requête demandée par un système d information requesting-machine : identité la machine d où est issue la requête Sécurité des applications Web 437/479
438 SUJETS (COMMENTAIRES) Les sujets peuvent être de différentes catégories suivant le statut du sujet dans le cadre de la requête : access-subject : sujet qui a initié la requête recipient-subject : sujet qui recevra le résultat de la requête intermediary-subject : sujet qui sert d intermédiaire dans la requête (plusieurs possibles) codebase : sujet lorsqu il s agit d une requête demandée par un système d information requesting-machine : identité la machine d où est issue la requête Sécurité des applications Web 438/479
439 SUJETS (COMMENTAIRES) Les sujets peuvent être de différentes catégories suivant le statut du sujet dans le cadre de la requête : access-subject : sujet qui a initié la requête recipient-subject : sujet qui recevra le résultat de la requête intermediary-subject : sujet qui sert d intermédiaire dans la requête (plusieurs possibles) codebase : sujet lorsqu il s agit d une requête demandée par un système d information requesting-machine : identité la machine d où est issue la requête Sécurité des applications Web 439/479
440 SUJETS (COMMENTAIRES) Il est possible d utiliser les types de données simples définis dans XMLSchema ou des types définis dans XACML : x500name : structure contenant des données relatives à un utilisateur ( , pays,etc.) rfc822name : adresse ipadresse : adresse IP dnsname : nom Web ( Sécurité des applications Web 440/479
441 SUJETS (COMMENTAIRES) Il est possible d utiliser les types de données simples définis dans XMLSchema ou des types définis dans XACML : x500name : structure contenant des données relatives à un utilisateur ( , pays,etc.) rfc822name : adresse ipadresse : adresse IP dnsname : nom Web ( Sécurité des applications Web 441/479
442 SUJETS (COMMENTAIRES) Il est possible d utiliser les types de données simples définis dans XMLSchema ou des types définis dans XACML : x500name : structure contenant des données relatives à un utilisateur ( , pays,etc.) rfc822name : adresse ipadresse : adresse IP dnsname : nom Web ( Sécurité des applications Web 442/479
443 SUJETS (COMMENTAIRES) Il est possible d utiliser les types de données simples définis dans XMLSchema ou des types définis dans XACML : x500name : structure contenant des données relatives à un utilisateur ( , pays,etc.) rfc822name : adresse ipadresse : adresse IP dnsname : nom Web ( Sécurité des applications Web 443/479
444 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 444/479
445 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 445/479
446 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 446/479
447 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 447/479
448 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 448/479
449 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 449/479
450 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 450/479
451 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 451/479
452 SUJETS (COMMENTAIRES) Les attributs sont importants, car le contrôle d accès se fonde sur ces valeurs pour former une décision subject-category : type du sujet (voir 2 planches plus haut) subject-id : nom (type string) du sujet. Un autre format peut être précisé avec un type de la planche précédente subject-id-qualifier : cet attribut indique le serveur qui administre l identité de sujet de la requête key-info : indique la clef publique utilisée pour vérifier l identité du sujet authentication-time et authn-locality:authentication-method : date et méthode utilisée pour l authentification request-time : indique l heure à laquelle la requête a été formulée start-session-time : heure à laquelle la session a débuté Il est aussi possible d utiliser les attributs LDAP ou SAML Sécurité des applications Web 452/479
453 RESSOURCES (EXEMPLE) <Resource> <Attribute AttributeId="&resource;resource-id" DataType="&xml;anyURI"> <AttributeValue> </AttributeValue> </Attribute> </Resource> Sécurité des applications Web 453/479
454 RESSOURCES (SCHÉMA) <xs:element name="resource" type="xacml-context:resourcetype"/> <xs:complextype name="resourcetype"> <xs:sequence> <xs:element ref="xacml-context:resourcecontent" minoccurs="0 <xs:element ref="xacml-context:attribute" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> ResourceContent est un nœud pouvant contenir n importe quoi Sécurité des applications Web 454/479
455 RESSOURCES (COMMENTAIRES) resource-id : identifie la resource target-namespace : ns de l élément fils de ResourceContent Sécurité des applications Web 455/479
456 RESSOURCES (COMMENTAIRES) resource-id : identifie la resource target-namespace : ns de l élément fils de ResourceContent Sécurité des applications Web 456/479
457 ACTION (SCHÉMA) <xs:element name="action" type="xacml-context:actiontype"/> <xs:complextype name="actiontype"> <xs:sequence> <xs:element ref="xacml-context:attribute" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> Sécurité des applications Web 457/479
458 ACTIONS (COMMENTAIRES) Plusieurs attributs possibles action-id : identificateur de l action. Cet identificateur doit avoir un sens dans le ns action-namespace (qui doit être défini) implied-action : attribut à positionner lorsque l action peut être déduite du contexte d exécution Sécurité des applications Web 458/479
459 ACTIONS (COMMENTAIRES) Plusieurs attributs possibles action-id : identificateur de l action. Cet identificateur doit avoir un sens dans le ns action-namespace (qui doit être défini) implied-action : attribut à positionner lorsque l action peut être déduite du contexte d exécution Sécurité des applications Web 459/479
460 ENVIRONNEMENT (SCHÉMA) <xs:element name="environment" type="xacml-context:environmenttype"/> <xs:complextype name="environmenttype"> <xs:sequence> <xs:element ref="xacml-context:attribute" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> Sécurité des applications Web 460/479
461 EXEMPLE RÉPONSE <Response> <Result ResourceID= " <Decision>Permit</Decision> <Status> <StatusCode Value= "&status;ok"/> </Status> <Obligations>... </Obligations> </Result> </Response> Sécurité des applications Web 461/479
462 RÉPONSE (SCHÉMA) <xs:element name="result" type="xacml-context:resulttype"/> <xs:complextype name="resulttype"> <xs:sequence> <xs:element ref="xacml-context:decision"/> <xs:element ref="xacml-context:status" minoccurs="0"/> <xs:element ref="xacml:obligations" minoccurs="0"/> </xs:sequence> <xs:attribute name="resourceid" type="xs:string" use="optional </xs:complextype> ResourceId permet d identifier la ressource sur laquelle s applique la décision Sécurité des applications Web 462/479
463 RÉPONSE (COMMENTAIRES) Une réponse encapsule le résultat du PDP envoyé au PEP Elle peut contenir plusieurs résultats en cas de requête multiple Les requêtes multiples sont optionnelles Le résultat s applique à la ressource donnée dans l attribut optionnel de Result si elle est précisé Sécurité des applications Web 463/479
464 RÉPONSE (COMMENTAIRES) Une réponse encapsule le résultat du PDP envoyé au PEP Elle peut contenir plusieurs résultats en cas de requête multiple Les requêtes multiples sont optionnelles Le résultat s applique à la ressource donnée dans l attribut optionnel de Result si elle est précisé Sécurité des applications Web 464/479
465 RÉPONSE (COMMENTAIRES) Une réponse encapsule le résultat du PDP envoyé au PEP Elle peut contenir plusieurs résultats en cas de requête multiple Les requêtes multiples sont optionnelles Le résultat s applique à la ressource donnée dans l attribut optionnel de Result si elle est précisé Sécurité des applications Web 465/479
466 RÉPONSE (COMMENTAIRES) Une réponse encapsule le résultat du PDP envoyé au PEP Elle peut contenir plusieurs résultats en cas de requête multiple Les requêtes multiples sont optionnelles Le résultat s applique à la ressource donnée dans l attribut optionnel de Result si elle est précisé Sécurité des applications Web 466/479
467 DÉCISION (SCHÉMA) <xs:element name="decision" type="xacml-context:decisiontype"/> <xs:simpletype name="decisiontype"> <xs:restriction base="xs:string"> <xs:enumeration value="permit"/> <xs:enumeration value="deny"/> <xs:enumeration value="indeterminate"/> <xs:enumeration value="notapplicable"/> </xs:restriction> </xs:simpletype> Sécurité des applications Web 467/479
468 DÉCISION Permit : la requête est accepté sous réserve que les obligations soient remplies Deny : la politique refuse l accès à la ressource Indeterminate : il n est pas possible d appliquer la politique à la requête, parce qu un élément (sujet,etc.) est inconnu ou parce que la construction de la politique ne permet pas d aboutir à une décision (erreur) NotApplicable : il n est pas possible d appliquer la politique à la requête parce que le service n est pas compétent pour répondre Sécurité des applications Web 468/479
469 DÉCISION Permit : la requête est accepté sous réserve que les obligations soient remplies Deny : la politique refuse l accès à la ressource Indeterminate : il n est pas possible d appliquer la politique à la requête, parce qu un élément (sujet,etc.) est inconnu ou parce que la construction de la politique ne permet pas d aboutir à une décision (erreur) NotApplicable : il n est pas possible d appliquer la politique à la requête parce que le service n est pas compétent pour répondre Sécurité des applications Web 469/479
470 DÉCISION Permit : la requête est accepté sous réserve que les obligations soient remplies Deny : la politique refuse l accès à la ressource Indeterminate : il n est pas possible d appliquer la politique à la requête, parce qu un élément (sujet,etc.) est inconnu ou parce que la construction de la politique ne permet pas d aboutir à une décision (erreur) NotApplicable : il n est pas possible d appliquer la politique à la requête parce que le service n est pas compétent pour répondre Sécurité des applications Web 470/479
471 DÉCISION Permit : la requête est accepté sous réserve que les obligations soient remplies Deny : la politique refuse l accès à la ressource Indeterminate : il n est pas possible d appliquer la politique à la requête, parce qu un élément (sujet,etc.) est inconnu ou parce que la construction de la politique ne permet pas d aboutir à une décision (erreur) NotApplicable : il n est pas possible d appliquer la politique à la requête parce que le service n est pas compétent pour répondre Sécurité des applications Web 471/479
472 STATUS (SCHÉMA) <xs:element name="status" type="xacml-context:statustype"/> <xs:complextype name="statustype"> <xs:sequence> <xs:element ref="xacml-context:statuscode"/> <xs:element ref="xacml-context:statusmessage" minoccurs="0"/ <xs:element ref="xacml-context:statusdetail" minoccurs="0"/> </xs:sequence> </xs:complextype> Sécurité des applications Web 472/479
473 STATUS (SUITE DU SCHÉMA) <xs:element name="statuscode" type="xacml-context:statuscodetype"/> <xs:complextype name="statuscodetype"> <xs:sequence> <xs:element ref="xacml-context:statuscode" minoccurs="0"/> </xs:sequence> <xs:attribute name="value" type="xs:anyuri" use="required"/> </xs:complextype> Sécurité des applications Web 473/479
474 STATUS (SUITE DU SCHÉMA) <xs:element name="statusmessage" type="xs:string"/> <xs:element name="statusdetail" type="xacml-context:statusdetailtype"/> <xs:complextype name="statusdetailtype"> <xs:sequence> <xs:any namespace="##any" processcontents="lax" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> Sécurité des applications Web 474/479
475 ERREUR <xs:element name="missingattributedetail" type="xacml-context:missingattributedetailtype"/ <xs:complextype name="missingattributedetailtype"> <xs:sequence> <xs:element ref="xacml-context:attributevalue" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="attributeid" type="xs:anyuri" use="required"/> <xs:attribute name="datatype" type="xs:anyuri" use="required"/> <xs:attribute name="issuer" type="xs:string" use="optional"/> </xs:complextype> Élément optionel en général, et ne doit pas être inclus dans une requête dont le statut est ok Sécurité des applications Web 475/479
476 OBLIGATIONS Les obligations sont à remplir par le PEP exemple : tracer la requête dans un log Si le PEP ne comprend pas ou ne peut pas accomplir l obligation, la requête est considérée comme refusée (deny) Cette partie est définie selon l implémentation Sécurité des applications Web 476/479
477 OBLIGATIONS Les obligations sont à remplir par le PEP exemple : tracer la requête dans un log Si le PEP ne comprend pas ou ne peut pas accomplir l obligation, la requête est considérée comme refusée (deny) Cette partie est définie selon l implémentation Sécurité des applications Web 477/479
478 OBLIGATIONS Les obligations sont à remplir par le PEP exemple : tracer la requête dans un log Si le PEP ne comprend pas ou ne peut pas accomplir l obligation, la requête est considérée comme refusée (deny) Cette partie est définie selon l implémentation Sécurité des applications Web 478/479
479 OBLIGATIONS Les obligations sont à remplir par le PEP exemple : tracer la requête dans un log Si le PEP ne comprend pas ou ne peut pas accomplir l obligation, la requête est considérée comme refusée (deny) Cette partie est définie selon l implémentation Sécurité des applications Web 479/479
OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI
OWASP Open Web Application Security Project Jean-Marc Robert Génie logiciel et des TI A1: Injection Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit quand une donnée non fiable est
Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement
Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.
4. SERVICES WEB REST 46
4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,
Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin
Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse
OZSSI NORD 4 JUIN 2015 - LILLE. Conférence thématique: Sécurité des applications
OZSSI NORD 4 JUIN 2015 - LILLE Conférence thématique: Sécurité des applications www.advens.fr Document confidentiel - Advens 2015 Présentation de la société Advens 2 La sécurité est source de valeur Pas
Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de
Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de la PCI (PCI DSS) Version : 1.2 Date : Octobre 2008
Failles XSS : Principes, Catégories Démonstrations, Contre mesures
HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,
Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)
Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Sommaire : Contenu I. Introduction:... 2 II. Présentation de l atelier :... 2 1) Attaque persistante :... 3 2) Attaque non persistante :...
Tech-Evenings Sécurité des applications Web Sébastien LEBRETON
Tech-Evenings Sécurité des applications Web Sébastien LEBRETON Pourquoi revoir la sécurité des applications Web Des technologies omniprésentes Facilité de mise en œuvre et de déploiement. Commerce en ligne,
INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)
CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.
Serveurs de noms Protocoles HTTP et FTP
Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et
La mémorisation des mots de passe dans les navigateurs web modernes
1 La mémorisation des mots de passe dans les navigateurs web modernes Didier Chassignol Frédéric Giquel 6 décembre 2005 - Congrès JRES 2 La problématique Multiplication des applications web nécessitant
Cours 14. Crypto. 2004, Marc-André Léger
Cours 14 Crypto Cryptographie Définition Science du chiffrement Meilleur moyen de protéger une information = la rendre illisible ou incompréhensible Bases Une clé = chaîne de nombres binaires (0 et 1)
Le protocole SSH (Secure Shell)
Solution transparente pour la constitution de réseaux privés virtuels (RPV) INEO.VPN Le protocole SSH (Secure Shell) Tous droits réservés à INEOVATION. INEOVATION est une marque protégée PLAN Introduction
Vulnérabilités et sécurisation des applications Web
OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants [email protected] http://www.edelweb.fr http://www.chambet.com Page 1 Planning
Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi
Un exemple d'authentification sécurisée utilisant les outils du Web : CAS 111 L authentification CAS : «Central Authentication Service» CAS ou le service central d authentification Le système CAS, développé
E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1
E-TRANSACTIONS Guide du programmeur API Plug-in Version 1.1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation de l API sur tout
L3 informatique TP n o 2 : Les applications réseau
L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique
Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net
Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net : Champ Encodé SKWRITTEN() : Champ Variable défini Précédemment & définissant l état des champs à suivre ECT
18 TCP Les protocoles de domaines d applications
18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles
Par KENFACK Patrick MIF30 19 Mai 2009
Par KENFACK Patrick MIF30 19 Mai 2009 1 Introduction II. Qu est ce qu un OpenId? III. Acteurs IV. Principe V. Implémentation VI. Sécurité VII. conclusion I. 2 Vue le nombre croissant de sites web nous
Protection des protocoles www.ofppt.info
ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2
CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)
CIBLE DE SECURITE CSPN DU PRODUIT PASS (Product for Advanced SSO) Préparé pour : ANSSI Préparé par: Thales Communications & Security S.A. 4 Avenue des Louvresses 92622 GENNEVILLIERS CEDEX France This document
Cours CCNA 1. Exercices
Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.
PASS v2.0 : solution d authentification unique basée sur les composants Shibboleth Service Provider v2.5.1 et Identity Provider v2.3.
PREM IE R M IN IS T R E Secrétariat général de la défense et de la sécurité nationale Agence nationale de la sécurité des systèmes d information PASS v2.0 : solution d authentification unique basée sur
Sécurité des réseaux IPSec
Sécurité des réseaux IPSec A. Guermouche A. Guermouche Cours 4 : IPSec 1 Plan 1. A. Guermouche Cours 4 : IPSec 2 Plan 1. A. Guermouche Cours 4 : IPSec 3 Pourquoi? Premier constat sur l aspect critique
Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE
Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE sommaire MIEUX COMPRENDRE LES CERTIFICATS SSL...1 SSL et certificats SSL : définition...1
Architecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
Les sites Internet dynamiques. contact : Patrick VINCENT [email protected]
Les sites Internet dynamiques contact : Patrick VINCENT [email protected] Qu est-ce qu un site Web? ensemble de pages multimédia (texte, images, son, vidéo, ) organisées autour d une page d accueil et
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage
Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site
SSL ET IPSEC. Licence Pro ATC Amel Guetat
SSL ET IPSEC Licence Pro ATC Amel Guetat LES APPLICATIONS DU CHIFFREMENT Le protocole SSL (Secure Socket Layer) La sécurité réseau avec IPSec (IP Security Protocol) SSL - SECURE SOCKET LAYER Historique
Hébergement de sites Web
Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise
EMV, S.E.T et 3D Secure
Sécurité des transactionsti A Carte Bancaire EMV, S.E.T et 3D Secure Dr. Nabil EL KADHI [email protected]; Directeur du Laboratoire L.E.R.I.A. www.leria.eu Professeur permanant A EPITECH www.epitech.net
Tour d horizon des différents SSO disponibles
Tour d horizon des différents SSO disponibles L. Facq, P. Depouilly, B. Métrot, R. Ferrere ANF Les systèmes d authentification dans la communauté ESR : étude, mise en oeuvre et interfaçage dans un laboratoire
ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques
Introduction 1. Introduction 11 2. La plateforme de développement web de Microsoft 11 3. Définition du modèle de programmation MVC 14 4. L'historique d'asp.net MVC 17 4.1 ASP.NET MVC 1 (2008) 17 4.2 ASP.NET
Programmation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Hébergement de site web Damien Nouvel
Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture
FileMaker Server 11. Publication Web personnalisée avec XML et XSLT
FileMaker Server 11 Publication Web personnalisée avec XML et XSLT 2007-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker est une
2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.
2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement
Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales
Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales D 1.3.2 Rapport d analyse Auteurs: Johann Luethi, Laurent Opprecht, Patrick Roth
Application Web et J2EE
Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis
les techniques d'extraction, les formulaires et intégration dans un site WEB
les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents
Manuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
Devenez un véritable développeur web en 3 mois!
Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web
Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte
Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte UN GUIDE ÉTAPE PAR ÉTAPE, pour tester, acheter et utiliser un certificat numérique
Guide d administration de Microsoft Exchange ActiveSync
Guide d administration de Microsoft Exchange ActiveSync Copyright 2005 palmone, Inc. Tous droits réservés. palmone, HotSync, Treo, VersaMail et Palm OS sont des marques commerciales ou déposées dont palmone,
Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple
Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises La banque en ligne et le protocole TLS : exemple 1 Introduction Définition du protocole TLS Transport Layer Security
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server Sébastien Boutard Thomas David Le plan de la présentation Petit retour sur les environnements de développement ArcGIS Server
Guide d implémentation. Réussir l intégration de Systempay
Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa
Vulnérabilités et solutions de sécurisation des applications Web
Vulnérabilités et solutions de sécurisation des applications Web Patrick CHAMBET EdelWeb ON-X Consulting [email protected] http://www.edelweb.fr http://www.chambet.com Eric Larcher RSSI Accor
Rapport de certification
Rapport de certification Évaluation EAL 4 + du produit VMware ESX 4.0 Update 1 and vcenter Server 4.0 Update 1 Préparé par : Le Centre de la sécurité des télécommunications Canada à titre d organisme de
PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward
PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP
Fiche Technique. Cisco Security Agent
Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit
Cisco Certified Network Associate
Cisco Certified Network Associate Version 4 Notions de base sur les réseaux Chapitre 3 01 Quel protocole de la couche application sert couramment à prendre en charge les transferts de fichiers entre un
XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)
Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du
BES WEBDEVELOPER ACTIVITÉ RÔLE
BES WEBDEVELOPER ACTIVITÉ Le web developer participe aux activités concernant la conception, la réalisation, la mise à jour, la maintenance et l évolution d applications internet/intranet statiques et
Firewall IDS Architecture. Assurer le contrôle des connexions au. [email protected] Sécurité 1
Sécurité Firewall IDS Architecture sécurisée d un réseau Assurer le contrôle des connexions au réseau [email protected] Sécurité 1 Sommaire général Mise en oeuvre d une politique de sécurité
Programmation Internet Cours 4
Programmation Internet Cours 4 Kim Nguy ên http://www.lri.fr/~kn 17 octobre 2011 1 / 23 Plan 1. Système d exploitation 2. Réseau et Internet 3. Web 3.1 Internet et ses services 3.1 Fonctionnement du Web
Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <[email protected]> Centrale Réseaux
Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un
Signature électronique. Romain Kolb 31/10/2008
Romain Kolb 31/10/2008 Signature électronique Sommaire I. Introduction... 3 1. Motivations... 3 2. Définition... 3 3. La signature électronique en bref... 3 II. Fonctionnement... 4 1. Notions requises...
Cloud public d Ikoula Documentation de prise en main 2.0
Cloud public d Ikoula Documentation de prise en main 2.0 PREMIERS PAS AVEC LE CLOUD PUBLIC D IKOULA Déployez vos premières instances depuis l interface web ou grâce à l API. V2.0 Mai 2015 Siège Social
Compte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Module BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Un serveur web léger et ouvert
Un serveur web léger et ouvert A propos de moi Nenad Rakocevic Programmeur depuis 25 ans: C/C++, *Basic, ASM, REBOL, Javascript, Co-fondateur de Softinnov, entreprise IT à Paris Auteur de plusieurs librairies
NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web
NFA016 : Introduction O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Pour naviguer sur le Web, il faut : 1. Une connexion au réseau Réseau Connexion physique (câbles,sans fils, ) à des
PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE
PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE Protéger sa clé USB avec un système de cryptage par mot de passe peut s avérer très utile si l on veut cacher certaines données sensibles, ou bien rendre ces données
Responsable du cours : Héla Hachicha. Année Universitaire : 2011-2012
Chapitre 4- WS-Security Responsable du cours : Héla Hachicha Année Universitaire : 2011-2012 1 WS-Security (Microsoft) WS-Security est le standard proposé par IBM, Microsoft, VeriSign et Forum Systems
Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria
Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria 1 Philippe Lecler TutoJRES «Sécurité des sites WEB» 4 février 2010 Contexte 2 PCI-DSS : Payment Card Industry Data Security
FileMaker Server 14. Guide de démarrage
FileMaker Server 14 Guide de démarrage 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques
FileMaker Server 12. publication Web personnalisée avec XML
FileMaker Server 12 publication Web personnalisée avec XML 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont
www.netexplorer.fr [email protected]
www.netexplorer.fr 05 61 61 20 10 [email protected] Sommaire Sécurité applicative... 3 Authentification... 3 Chiffrement... 4 Traçabilité... 4 Audits... 5 Sécurité infrastructure... 6 Datacenters...
Oauth : un protocole d'autorisation qui authentifie?
Oauth : un protocole d'autorisation qui authentifie? Maxime Féroul Directeur Technique / KYOS IT SECURITY Application Security Forum - 2012 Western Switzerland 7-8 novembre 2012 - Y-Parc / Yverdon-les-Bains
Programmation Web. Introduction
Programmation Web Introduction 1 Introduction 10 séances 1 h cours + 1h TD Notes : contrôle continu DS 1 TP : note de groupe : rapport + code source + démo TD : note personnelle (=0 si 2 absences non justifiées)
MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15
MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué
DenyAll Protect. Sécurité & accélération. Parefeux pour applications et services Web. de vos applications. www.denyall.com.
DenyAll Protect DenyAll Protect Parefeux pour applications et services Web Sécurité & accélération de vos applications Sites institutionnels ou marchands, messageries, outils collaboratifs, portails d
Information sur l accés sécurisé aux services Baer Online Monaco
Information sur l accés sécurisé aux services Baer Online Monaco Avant de commencer, nettoyez la mémoire cache de votre navigateur internet: Exemple pour les versions à partir d Internet Explorer 6.x:
Proxy et reverse proxy. Serveurs mandataires et relais inverses
Serveurs mandataires et relais inverses Qu'est-ce qu'un proxy? Proxy = mandataire (traduction) Un proxy est un service mandataire pour une application donnée. C'est à dire qu'il sert d'intermédiaire dans
«clustering» et «load balancing» avec Zope et ZEO
IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4
Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux
Réseaux Evolutions topologiques des réseaux locaux Plan Infrastructures d entreprises Routeurs et Firewall Topologie et DMZ Proxy VPN PPTP IPSEC VPN SSL Du concentrateur à la commutation Hubs et switchs
Application des Spécifications détaillées pour la Retraite, architecture portail à portail
Pour Application des Spécifications détaillées pour la Retraite, architecture portail à portail Version 1.0 ON-X S.A. est une société du Groupe ON-X 15, quai Dion Bouton 92816 PUTEAUX cedex. Tél : 01 40
Définition des Webservices Ordre de paiement par email. Version 1.0
Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document
Plateforme PAYZEN. Définition de Web-services
Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network
Petite définition : Présentation :
Petite définition : Le Web 2.0 est une technologie qui permet la création de réseaux sociaux, de communautés, via divers produits (des sites communautaires, des blogs, des forums, des wiki ), qui vise
Rapport de certification ANSSI-CSPN-2011/14. Fonctionnalités de pare-feu de StoneGate Firewall/VPN 5.2.4 build 8069
PREM IE R M IN IS T R E Secrétariat général de la défense et de la sécurité nationale Agence nationale de la sécurité des systèmes d information Rapport de certification ANSSI-CSPN-2011/14 Fonctionnalités
Aperçu technique Projet «Internet à l école» (SAI)
Aperçu technique Projet «Internet à l école» (SAI) Contenu 1. Objectif 2 2. Principes 3 3. Résumé de la solution 4 4. Adressage IP 4 5. Politique de sécurité 4 6. Mise en réseau Inhouse LAN 4 7. Organisation
Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.
PERSPECTIVES Le Single Sign-On mobile vers Microsoft Exchange avec OWA et ActiveSync Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des
Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET http://www.chambet.com
Urbanisation des SI Conduite du changement IT 20/03/09 Sécuriser ses Web Services Patrick CHAMBET http://www.chambet.com Bouygues Telecom Direction Gouvernance, Outils et Architecture / Sécurité du SI
FileMaker Server 14. Aide FileMaker Server
FileMaker Server 14 Aide FileMaker Server 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques
Devoir Surveillé de Sécurité des Réseaux
Année scolaire 2009-2010 IG2I L5GRM Devoir Surveillé de Sécurité des Réseaux Enseignant : Armand Toguyéni Durée : 2h Documents : Polycopiés de cours autorisés Note : Ce sujet comporte deux parties. La
Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application
Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces
Alfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: [email protected] Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Préparation d un serveur Apache pour Zend Framework
Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine
Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?
Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:[email protected]
Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86
Tunnels et VPN 22/01/2009 Formation Permanente Paris6 86 Sécurisation des communications Remplacement ou sécurisation de tous les protocoles ne chiffrant pas l authentification + éventuellement chiffrement
FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières
FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE Table des matières Principes de FTPS... 2 Généralités... 2 FTPS en mode implicite... 2 FTPS en mode explicite... 3 Certificats SSL / TLS... 3 Atelier de tests
JRES 2005 : La mémorisation des mots de passe dans les navigateurs web modernes
JRES 2005 : La mémorisation des mots de passe dans les navigateurs web modernes Didier Chassignol, Frédéric Giquel To cite this version: Didier Chassignol, Frédéric Giquel. JRES 2005 : La mémorisation
