1 / 32

Sécurité

Sécurité. Protection Principes de base Matrice d’accès Encryption. Sécurité et protection. La protection d'un système, c'est l'ensemble des mécanismes pour contrôler l'accès aux programmes, processus, fichiers et autres ressources d'un système

barry-colon
Download Presentation

Sécurité

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sécurité Protection Principes de base Matrice d’accès Encryption

  2. Sécurité et protection • La protection d'un système, c'est l'ensemble des mécanismes pour contrôler l'accès aux programmes, processus, fichiers et autres ressources d'un système • Le niveau de sécurité d'un système représente la confiance qu'on peut avoir dans la protection des éléments d'un système

  3. Protection contre la perte de données • Pour protéger l'utilisateur contre la perte de ses données (dues à des désastres naturels, des erreurs de matériel ou de logiciel, ou des erreurs humaines) la meilleure protection est de conserver une copie des fichiers (un backup) • Idéalement, les fichiers doivent être copiés fréquemment, et la copie gardée dans un endroit sûr, typiquement ailleurs que là où se trouve le disque • Il existe des compagnies, comme Data Secure, qui font la tournée quotidienne des backups

  4. Pourquoi protéger un système? • Empêcher les actes malicieux • Augmenter la fiabilité du système • Protéger contre la perte de données

  5. Protection contre la perte de données (2) • Les copies de fichiers devraient se faire au moins hebdomadairement • Exemple d’horaire de backups: • Faire un backup incrémental par jour, et conserver: • Tous les jours de la semaine pendant une semaine • Tous les samedis pendant 1 mois (backup complet) • Tous les derniers samedis du mois pendant 6 mois • Certains systèmes à disques optiques enregistrent TOUTES les versions des fichiers, faisant une copie des modifications de fichiers à mesure qu'elles arrivent.

  6. Protection contre les actes malicieux • Il existe plusieurs catégories d'intrus qui tentent d'accéder à de l'information à laquelle ils n'ont pas droit: • Intrus « du dimanche» • Intrus interne • Tentative de faire un gain (argent, notoriété) • Espionnage militaire et commercial.

  7. Protection contre les actes malicieux (2) • Intrus « du dimanche » : • La nature humaine étant ce qu'elle est, quelqu'un peut vouloir lire des fichiers appartenant à d'autres personnes (e.g. courrier électronique, fichiers confidentiels, etc.). Par exemple, sur beaucoup de systèmes UNIX, les nouveaux fichiers sont lisibles par défaut • Intrus interne: • Les étudiants, les programmeurs de système, les opérateurs et d'autre personnel technique vont souvent considérer comme un défi intéressant d'essayer de percer les mécanismes de sécurité d'un système.

  8. Protection contre les actes malicieux • Gain: • Notoriété: • Création de virus, de vers, de cheval de Troie, etc. sans autre but que de causer des problèmes sur le système visé • Tentative de faire de l'argent • Exemple: programmeurs de banque, personnel technique dans des entreprises de haute technologie • Espionnage militaire et commercial: • Tentatives d'extorquer des programmes, des secrets de fabrication, des brevets, des technologies, des design de circuits, des plans de marketings, etc.

  9. Niveau de protection • Les méthodes de protection utilisées par le système d'exploitation dépendent du niveau de sécurité désiré.Note: il faut aussi protéger la "vie privée" de l'utilisateur. C'est-à-dire, certaines informations à propos de l'utilisateur doivent être traitées avec beaucoup de doigté pour que même le système d'exploitation n'ait pas la possibilité d'y accéder

  10. Principes de base de sécurité • Saltzer et Schroeder (1975) ont émis un ensemble de principes généraux pour le design d'un système sécuritaire: • Le design du système devrait être public. Supposer que personne ne connaît l'architecture interne d'un système et faire reposer la sécurité là-dessus est très risqué. • Par défaut, il ne devrait jamais y avoir d'accès à quoi que ce soit. Les erreurs où l'accès admis est refusé seront soulevées beaucoup plus rapidement que celles où l'accès non-authorisé est permis... • On doit toujours vérifier les permissions au moment de l'accès. Plusieurs systèmes vont vérifier lors de l'accès initial (e.g. ouverture d'un fichier), mais non par la suite.

  11. Principes de base de sécurité (2) • Suite des principes de sécurité de Saltzer et Schroeder : • Par défaut, chaque processus devrait avoir le moins de privilèges possible. • Le système de protection devrait être simple, uniforme, et bâti au plus bas niveau du système d'exploitation • Le mécanisme de protection choisi doit être acceptable par les utilisateurs

  12. Mécanismes de protection • Tous les systèmes d'ordinateurs possèdent un ensemble de ressources qui doivent être protégées. Ces ressources peuvent être matérielles (CPU, segments de mémoire, disques, imprimantes) ou logicielles (processus, fichiers, bases de données, sémaphores) • Pour représenter ce qui est accessible par quoi, on utilise le concept de domaine de protection • Un domaine, c'est un ensemble de paires (ressources,droits d'accès). Chaque paire représente une ressource et le sous-ensemble des opérations qui peuvent s'y appliquer

  13. Domaines de protection • Les domaines de protection ne sont pas nécessairement disjoints: certaines paires (ressource, droits d'accès) peuvent se retrouver dans plus d'un domaine à la fois • Lors de son exécution, chaque processus sera associé à un domaine spécifique. Cette association peut être statique ou dynamique: • Association statique: on doit pouvoir modifier le contenu des domaines de façon dynamique • Association dynamique: le lien entre un processus et un domaine peut être modifié de façon dynamique

  14. Réalisation des domaines de protection • On peut réaliser les domaines de protection de différentes façons: • Chaque utilisateur peut être un domaine. Dans ce cas, l'ensemble des ressources accessibles dépend de l'identité de l'utilisateur. Le changement de domaine change lorsque l'utilisateur change (e.g. par les commandes login, logoff et su sous UNIX) • Chaque processus peut être un domaine. Dans ce cas, les ressources accessibles sont déterminées par l'identité du processus qui tente de les utiliser. Le changement de domaine se fait lorsque par exemple un processus envoie un message à un autre processus et attend une réponse • Chaque procédure peut être un domaine. Dans ce cas, les ressources accessibles dépendent des variables locales dans la procédure. Le changement de domaine se fait lors d'un appel à une procédure.

  15. Matrice d'accès • On peut visualiser les domaines de protection par une matrice dont les lignes représentent les domaines, et les colonnes représentent les ressources • Chaque case de la matrice, qui correspond à une paire (domaine, ressource) contient alors le niveau d'accès correspondant • Le mécanisme de protection devient alors un système qui s'assure que les niveaux de protection incrits dans la matrice sont respectés.

  16. Matrice d'accès (2) • Il faut également décider du domaine de protection assigné à chaque processus dans le système: • Lorsqu'un processus change de domaine, cela veut dire qu'une ligne différente de la matrice d'accès est utilisée • On peut gérer les changements de domaines eux-mêmes, en incluant les domaines dans la matrice • De même, lorsqu'on modifie le contenu de la matrice, c'est aussi une opération sur une ressource protégée (la matrice elle-même). On peut donc inclure l'accès à la matrice comme un domaine, et régir ainsi les modifications de la matrice.

  17. Matrice d'accès (3) • En plus des droits de base (lecture, écriture, exécution, impression), la matrice d'accès doit permettre les valeurs suivantes: • copier: pour permettre de copier les droits d'une ressource particulière à partir d'un certain domaine vers d'autres domaines. On distingue entre copier, transférer (les droits du domaine originaux sont effacés après la copie) et copier de façon limitée (le droit de copier n'est lui-même pas copié) • propriétaire: le propriétaire d'une ressources peut en modifier l'accès dans tous les domaines • contrôle: ce droit ne s'applique qu'aux domaines. Il permet à un domaine A de contrôler (limiter) les accès d'un domaine B.

  18. Implémentation de la matrice d'accès • On peut implémenter la matrice d'accès de différentes façons. En général, cette matrice est très peu dense, et qu'il est donc possible d'utiliser des représentation compactes. • Tableau global: on utilise un tableau qui contient toutes les lignes et toutes les colonnes. Ce tableau sera en général très gros, et donc ne pourra demeurer en mémoire • Listes d'accès: chaque colonne de la matrice est implémentée par une liste liée. Avec cette méthode, on peut aussi utiliser des valeurs d'accès par défaut • Listes de possibilités: Chaque ligne de la matrice est représentée par une liste liée. Ces listes ne sont directement accessible que par le noyau. Cette méthode est utilisée dans le système MACH

  19. Encryption • Utilisé depuis des temps immémoriaux: • Tablettes de cire en Grèce (messages cachés) • Ruban et bâton en Asie (décalage des lettres d’un texte) • Méthode de César (décalage des lettres de l’alphabet) • Enigma durant la 2e guerre mondiale • (rôle de Alan Turing) • Problèmes de sécurité: • Fréquence des lettres et des mots utilisée pour percer les méthodes simples

  20. Encryption (2) • Méthodes modernes: • DES • RSA • Utilisation des méthodes modernes • Nombres aléatoires d’utilisation unique • Utilisation de clé privée • Utilisation de clé publique

  21. DES • DES est une méthode d’encryption mise au point à l’origine chez IBM, et appelé à l’origine Lucifer (1974) • Le texte à encrypter est traité en blocs de 64 bits, qui sont modifiés à l’aide d’une série de permutations, de décalages et de rotations (voir http://www.tropsoft.com/strongenc/des.htm pour plus de détails)

  22. DES – problèmes des systèmes à clé privée • DES (et plusieurs autres systèmes d’encryption) utilisent une clé d’encryption unique, qui ne doit être connue que de l’envoyeur et du destinataire • Comment faire pour s’assurer que la clé unique se rend sans être interceptée?

  23. RSA: système à clé publique • RSA: Rivest, Shamir et Adleman • Algorithme: • TrouverPetQ, deux grandsnombres premiers (par exemple des nombres de 1024-bit) • ChoisirEtel queEest plus grand que 1, Eest plus petit que P*Q, etEet(P-1)(Q-1)n’ont pas de facteurs premiers communs (ce sont des nombres premiers relatifs). En’a pas besoin d’être premier, mais il doit être impair. (P-1)(Q-1)ne peut être premier puisque c’est un nombre pair. • CalculerDtel que(D*E - 1)peut se diviser un nombre entier de fois par(P-1)(Q-1). Mathématiquement cela veut dire que:DE = 1 (mod (P-1)(Q-1)), et on appelleDl’inverse multiplicatifdeE. Ceci est facile à faire – il s’agit de simplement trouver un entier X qui fait queD = (X(P-1)(Q-1) + 1)/Eest un entier, et ensuite on utilise cette valeur pour D. (tiré de http://world.std.com/~franl/crypto/rsa-guts.html)

  24. RSA (suite) • RSA: Rivest, Shamir et Adleman • Algorithme: • La fonction d’encryption estC = (T^E) mod PQ, ouCest le texte encrypté (c’est un nombre entier positif), Test le texteà encrypter (aussi en nombre entier positif), et ^ indiquel’usage d’un exposant. Le message à encrypter, T, doit être plus petit que le module, P*Q. • La fonction de décryption estT = (C^D) mod PQ, ouCest le texte encrypté (un nombre positif), Test le message (un nombre positif), et ^ indique l’utilisation d’un exposant.

  25. RSA (suite) • Votre clé publique est la paire (P*Q, E). Votre clé privée est le nombreD (qu’il ne faut révéler à personne). Le produitP*Qest le module (on l’appelle souvent N dans les articles). Eest l’exposant public. Dest l’exposant secret. • Vous pouvez distribuer votre clé publique sans danger, parce qu’il n’y a pas de méthode simple de calculerD, P, ouQen ayant seulement(P*Q, E) (votre clé publique). SiPetQont chacun 1024 bits de long, le système solaire aura cessé d’exister avant que les systèmes les plus performants puisse factoriser le module P*Q et obtenirPetQ.

  26. RSA - exemple • P = 61 <- premier nombre premier (détruire après le calcul de E et D) • Q = 53 <- deuxième nombre premier (détruire après le calcul de E et D) • PQ = 3233 <- module (public) • E = 17 <- exposant public • D = 2753 <- exposant privé (garder secret!) • Votre clé publique est (E,PQ) • Votre clé privée est D • La fonction d’encryption est: encrypte(T): (T^E) mod PQ = (T^17) mod 3233 = C • La function de décryption est: decrypte(C) = (C^D) mod PQ = (C^2753) mod 3233 = T

  27. RSA – exemple (suite) • Pour encrypter le texte 123, faire ceci: encrypte(123) = (123^17) mod 3233 = 337587917446653715596592958817679803 mod 3233 = 855 • Pour décrypter le message codé 855, faire ceci: decrypte(855) = (855^2753) mod 3233 = 123

  28. RSA – exemple (suite) • Une façon de calculer 855^2753 mod 3233 est de procéder comme ceci: 2753 = 101011000001 base 2, alors 2753 = 1 + 2^6 + 2^7 + 2^9 + 2^11 = 1 + 64 + 128 + 512 + 2048

  29. RSA – exemple (suite) • Soit le tableau suivant des puissances de 855 modulo 3233: 855^1 = 855 (mod 3233) 855^2 = 367 (mod 3233) 855^4 = 367^2 (mod 3233) = 2136 (mod 3233) 855^8 = 2136^2 (mod 3233) = 733 (mod 3233) 855^16 = 733^2 (mod 3233) = 611 (mod 3233) 855^32 = 611^2 (mod 3233) = 1526 (mod 3233) 855^64 = 1526^2 (mod 3233) = 916 (mod 3233) 855^128 = 916^2 (mod 3233) = 1709 (mod 3233) 855^256 = 1709^2 (mod 3233) = 1282 (mod 3233) 855^512 = 1282^2 (mod 3233) = 1160 (mod 3233) 855^1024 = 1160^2 (mod 3233) = 672 (mod 3233) 855^2048 = 672^2 (mod 3233) = 2197 (mod 3233)

  30. RSA – exemple (suite) • En utilisant le tableau, nous savons que: 855^2753 (mod 3233) = 855^(1 + 64 + 128 + 512 + 2048) (mod 3233) = 855^1 * 855^64 * 855^128 * 855^512 * 855^2048 (mod 3233) = 855 * 916 * 1709 * 1160 * 2197 (mod 3233) = 794 * 1709 * 1160 * 2197 (mod 3233) = 2319 * 1160 * 2197 (mod 3233) = 184 * 2197 (mod 3233) = 123 (mod 3233) = 123

  31. Systèmes d’encryption actuels • L’algorithme RSA est très sécuritaire, mais il exige des temps de calculs très grands • Les systèmes à clé privée comme DES (et autres) sont beaucoup (beaucoup) plus rapides, mais ils exigent le partage d’une clé unique (privée) entre les deux intervenants • Que faire?

  32. Systèmes d’encryption actuels (suite) • On utilise les deux systèmes!!! • On produit une clé unique privée nouvelle pour chaque communication • Le message est encrypté (rapidement) avec cette clé privée • La clé privée est encryptée avec le système à clé publique (type RSA), et est incluse dans le message encrypté • Pour décrypter le message, on décrypte d’abord la clé privée unique à l’aide de RSA, puis on l’utilise pour décrypter le message original

More Related