0% ont trouvé ce document utile (0 vote)
74 vues67 pages

Sécurité Informatique Essentielle

Transféré par

jrakoto777
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
74 vues67 pages

Sécurité Informatique Essentielle

Transféré par

jrakoto777
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SECURITE INFORMATIQUE

Jean-Charles Fabre

Septembre 2005

Page 1

SOMMAIRE

Chapitre I : INTRODUCTION A LA SECURITE DES SYSTEMES INFORMATIQUES 3

I.1. GENERALITES 3
I.2. LES ATTAQUES 11
I.3. LES DEFENSES 20
- Chiffrement symétrique – à clé secrète (exemples: le DES, l'AES)
- Chiffrement asymétrique – à clé publique (exemples: le RSA, Diffie-Hellman)
- Signatures électroniques et certificats
I.4. EVALUATION 61

Chapitre II : AUTHENTIFICATION DANS LES SYSTEMES INFORMATIQUES 74

II.1. PRINCIPE 74
II.2. EXEMPLE D'AUTHENTIFICATION PAR MOT-DE-PASSE : UNIX 75
II.3. AUTHENTIFICATION A DISTANCE 77
- Authentification à chiffre symétrique – à clé secrète (exemple: Kerberos)
- Authentification à chiffre asymétrique – à clé publique (exemple: Protocole Needham- Schroeder
II.4. AUTHENTIFICATION PAR CARTE A PUCE 86

Chapitre III : PROTECTION DANS LES SYSTEMES INFORMATIQUES 88

III.1. POLITIQUES D’AUTORISATION 88


III.2. IMPLEMENTATION DE L’AUTORISATION 96
III.3. UN EXEMPLE TYPIQUE : UNIX 108

Chapitre IV : NOTIONS DE TOLERANCE AUX INTRUSIONS 126

Page 2
Chapitre I : INTRODUCTION A LA SECURITE DES SYSTEMES
INFORMATIQUES
I.1. GENERALITES

Définition : Systèmes d'information : ensemble des moyens dont le


fonctionnement fait appel, d'une façon ou d'une autre, à l'électricité et
destinés à élaborer, traiter, stocker, acheminer ou présenter
l'information
Exemples : système informatique classique, micro-informatique, bureautique,
productique, robotique, réseau informatique, télématique
mais aussi : téléphones, télécopieurs, monétique, domotique, imprimantes,
machines à écrire, photocopieurs, ...

Risques : divulgation d'informations confidentielles, modification ou


destruction frauduleuses, utilisation frauduleuse des systèmes, ...

Page 3

Différents aspects de la sécurité


ASPECTS TECHNIQUES :

"Confidentialité" : • empêcher les utilisateurs de lire une information confidentielle


(sauf s’ils y sont autorisés)
• empêcher les utilisateurs autorisés à lire une information de la
divulguer à d’autres utilisateurs (sauf autorisation)
"Intégrité" : • empêcher une modification (création, mise à jour ou
destruction) indue de l’information : modification par des
utilisateurs non autorisés ou modification incorrecte par des
utlisateurs autorisés
• faire en sorte qu’aucun utilisateur ne puisse empêcher la
modification légitime de l’information
"Disponibilité" : • fournir l’accès à l’information pour que les utilisateurs
autorisés puissent la lire ou la modifier
• faire en sorte qu’aucun utilisateur ne puisse empêcher les
utilisateurs autorisés d’accéder à l’information.
Exemple : domaine militaire : confidentialité >> intégrité > disponibilité
Exemple : domaine financier : intégrité >> disponibilité > confidentialité
Exemple : domaine administratif : intégrité > confidentialité > disponibilité
Exemple : domaine industriel, médical, ... : ça dépend !
Page 4
AUTRES FACETTES DE LA SECURITE :

"Intimité"(privacy) : respect des libertés individuelles, protection de la vie privée :


CNIL, loi Informatique et Libertés
“Authenticité” : intégrité de l’information + intégrité de l’origine (et de sa
destination)
“Pérennité” : ~ disponibilité, mais durabilité de la validité de l’information
plutôt qu’accessibilité immédiate
“Exclusivité” : ne fournir le service qu’aux seuls utilisateurs autorisés
(~ intégrité du service)
“Protection contre la copie illicite de logiciels” :
~ confidentialité (ne pas révéler le programme à des individus
non autorisés) et intégrité (ne pas permettre la création d’une
copie illicite).

Page 5

Pourquoi est-ce plus important aujourd'hui ?


EVOLUTION ACTUELLE :

Communication électronique : papier ! électronique


fichier manuel ! base de données
matériel ! immatériel
lent ! rapide
isolé ! réseaux
faible quantité d'informations ! grande quantité
Fraude facilitée : concentration des informations
rapidité d'exécution
facilité de furetage
pas de trace des accès (lectures, modifications, destructions)
les faux sont identiques aux informations licites
difficile d'établir la preuve de la fraude
Environnement favorable à la fraude :
les mentalités n'ont pas évolué…piratage
multiplication des micro-ordinateurs
interconnexion des réseaux informatiques
dépendance des entreprises vis-à-vis de l’ informatique

Page 6
Sécurité et sûreté de fonctionnement

La sûreté de fonctionnement d'un système informatique est la propriété qui permet à


ses utilisateurs de placer une confiance justifiée dans le service qu'il leur délivre.
" Service = comportement du système tel qu'il est perçu par les utilisateurs.
" Utilisateur = un autre système avec lequel il interagit (humain ou physique)

ATTRIBUTS PERCEPTIFS DE LA SURETE DE FONCTIONNEMENT

Selon les points de vue (et les domaines d'application du système),


sûreté de fonctionnement =
# capacité à être prêt à délivrer le service $ disponibilité
# continuité du service $ fiabilité
# empêcher les défaillances catastrophiques $ sécurité-innocuité (safety)
# confidentialité, disponibilité, intégrité de l’information $ sécurité (security)

Page 7

Entraves à la sûreté de fonctionnement


" Défaillance : le service délivré par le système dévie du service spécifié
" Erreur : partie de l'état du système ayant un comportement erroné, suscep-
tible d'entraîner une défaillance
" Faute : cause adjugée ou supposée d'une erreur

Cause État Service

Faute Erreur Défaillance

Page 8
Moyens pour la sûreté de fonctionnement
! méthodes, outils et solutions pour :
1. fournir au système l'aptitude à délivrer un service conforme au service spécifié
(fourniture de la sûreté de fonctionnement)
2. donner confiance dans cette aptitude (validation de la sûreté de fonctionnement)
FOURNITURE

La sûreté de fonctionnement s'obtient par :


• la prévention des fautes : empêcher, par construction, l'occurrence ou
l'introduction de fautes
• la tolérance aux fautes : fournir, par redondance, un service conforme à
la spécification en dépit des fautes
VALIDATION

La sûreté de fonctionnement est validée par :


• l'élimination des fautes : réduire, par vérification, la présence de fautes
• la prévision des fautes : estimer, par évaluation, la présence, la création et
les conséquences des fautes.

Page 9

FAUTES

NATURE ORIGINE PERSISTANCE


TEMPORELLE

CAUSE FRONTIERES PHASE


PHENOMENOLOGIQUE DU SYSTEME DE CREATION

FAUTES FAUTES FAUTES FAUTES FAUTES


ACCIDENTELLES PHYSIQUES INTERNES DE CONCEPTION PERMANENTES
FAUTES FAUTES FAUTES FAUTES FAUTES
INTENTIONNELLES HUMAINES EXTERNES OPERATIONNELLES TEMPORAIRES

Page 10
I.2. LES ATTAQUES
Motivations des attaquants

% "sport", défi intellectuel : hackers


% vandalisme
% vengeance
% motifs politiques ou idéologiques : ex.: Chaos Computer Club (CCC)
! terrorisme, espionnage
% profit : espionnage, vol, fraude, chantage, extorsion de fonds, concurrence
déloyale, etc.
% pour restreindre la diffusion d'informations, sensibiliser les cibles éventuelles (?)

Page 11

Qui sont les intrus ?

Page 12
Classification des attaques
Ecoute passive : accéder sans modification aux informations générées, transmises,
stockées ou affichées (confidentialité)
% voies de communication : accès physique au médium ou analyse du rayon-
nement émis
% mémoires ou disques : accès en lecture
% périphériques : écrans, claviers, imprimantes : analyse du rayonnement
% unités centrales : analyse du rayonnement
! matériels TEMPEST
Interception : modifier des informations transmises (intégrité)
% destruction de messages, “éblouissement”
% modification de messages
% insertion de messages (ex: rejeu)
Répudiation : refuser de reconnaître qu'on a effectué une opération (intégrité)
% l'émetteur refuse de reconnaître qu'il a émis un message
% le récepteur refuse de reconnaître qu'il l'a reçu
Cryptanalyse : obtenir des informations secrètes à partir d'informations publiques
(confidentialité et intégrité)
% message clair, clés, algorithme de chiffrement

Page 13

Déduction par inférence : recouper des informations auxquelles on a légitimement


accès pour obtenir des informations secrètes (confidentialité)
% bases de données, requêtes statistiques, furetage
Exemple :
Base de données : Dossier Médical :
Nom : Dupont
Prénom : Jean
Date de naissance : 6 juin 1944
Lieu de naissance : Caen (Calvados)
...
Fonction : Chef de service
Division : Avions
Département : Etudes
Service : Informatique
...
Groupe sanguin : B+
Tuberculose : Non depuis le :
Cirrhose du foie : Non depuis le :
Séropositivité : Oui depuis le : 18 août 1989
...
Question 1 : combien de chefs de service entre 45 et 48 ans ? Réponse : 1
Question 2 : combien de chefs de service entre 45 et 48 ans séropositifs ? ...
Page 14
Déguisement : se faire passer pour quelqu'un d'autre ("masquerade")
% tromper les mécanismes d'authentification

Utilisation de canaux couverts : transmettre des informations secrètes à un utili-


sateur non-autorisé (confidentialité)
% canaux de mémoire directs (réutilisation de tampons, de fichiers temporaires)
ou indirects (variables du système)
% canaux temporels (modulation de l'utilisation de ressources communes : unité
centrale, disques, imprimante, réseau, etc.)

Bombe logique : fonction dévastatrice déclenchée à retardement ou par certaines


conditions (présence de certains utilisateurs, certains logiciels ou
matériels), ou après un certain nombre d'activations, etc.
% destruction d'informations stockées : données, programmes, informations de
sécurité (ex: par formatage de disque)
% diffusion d'informations de diagnostic fausses
% dégâts matériels : usure anormale de périphériques, destruction d'écrans, de
disquettes, d'imprimantes, etc.

Page 15

Porte dérobée : contourner les contrôles d'accès ("trap-door")

Exemple : "Le nid du coucou" (Clifford Stoll, Ed. Albin Michel)


Août 1986, Lawrence Berkeley Laboratory : la comptabilité d'un système informa-
tique fait apparaître une incohérence de quelques cents :
• un intrus utilise le compte d’un utilisateur (déguisement), puis acquiert les
privilèges systèmes : faille banale (mauvaise installation de Gnu-emacs sur Unix
BSD -> porte dérobée)
• plutôt que de corriger la faille, il est décidé d'observer
• en 10 mois, l'intrus a tenté de pénétrer dans 450 ordinateurs reliés à Internet,
principalement militaires
• il a réussi dans 30 cas; il s'intéressait à des sujets sensibles : SDI, nuclear...
• il a été possible de localiser et d'identifier l'intrus : un allemand de Hanovre,
Markus Hess, lié au Chaos Computer Club et travaillant pour le KGB
• condamné le 15 février 1990 à 20 mois de prison avec sursis et 10.000 DM
d'amende
Début avril 1990 : 3 australiens ont été arrêtés pour des attaques analogues sur les
réseaux américains en mars 1990
Page 16
Cheval de Troie : programme effectuant une fonction illicite tout en donnant
l'apparence d'effectuer une fonction légitime
(cas particulier du déguisement)
" divulguer ou modifier des informations, ou bombe logique
Exemple : AIDS
Entre le 8 et le 12 décembre 1989, environ 10.000 disquettes "publicitaires" ont été
envoyées à 7.000 abonnés de PC Business World (GB) et à 3.000 participants
européens d'une conférence de l'OMS sur le SIDA en octobre 1988.
L'enveloppe contenait :
• texte d'une "licence"
• mode d'emploi pour l'installation sur disque dur de PC
Objet (prétendu) du programme : évaluer le risque d'être atteint par le SIDA
En fait, après 90 démarrages du PC, une bombe logique est lancée :
• chiffrement des noms de fichiers sur le disque
• édition d'un bon de commande pour payer la licence ($189 ou $378) à l'ordre
de PC-Cyborg au Panama
Dès le 13 décembre, nombreuses mises en garde (journaux, TV, Unix-news, ...)
Le Dr. Joseph Lewis Popp a été arrêté le 1er février 1990 par le FBI dans l'Ohio, suite
à une demande d'extradition britannique pour "chantage". Acquitté pour aliénation
mentale.
Page 17

Virus : programme qui, lorsqu'il s'exécute, se propage et se reproduit pour


s'adjoindre à un autre programme (système ou d'application), qui devient
ainsi un cheval de Troie
" éventuellement porteur d'une bombe logique
" propagation par échange de support (disquettes) ou par réseau

• Premières expériences : Texas A+M (1981), PhD de Fred Cohen (1983)


• virus "Brain" (Pakistan, 1986) : conçu comme moyen de protection (?) pour les
logiciels de la compagnie Brain; il aurait contaminé entre 100.000 et 500.000 IBM-
PCs (et compatibles); généralement bénin
• virus "MacMag" (Canada, décembre 1987) : message de "paix" devant s'afficher à
la date anniversaire du Macintosh (2 mars 1988)
• virus "Israël-Jerusalem-vendredi13..." (Israël, décembre 1987) : virus pour PC,
avec une bombe logique détruisant les programmes lorsqu'il s'exécute un vendredi
13; de 100.000 à 500.000 PCs infectés
• On dénombre plus de mille virus différents pour PC, une vingtaine pour Macintosh,
un peu moins pour Atari, Amstrad, Apple][...
• Les virus s'attachent soit à des programmes d'application (ex: *.COM ou *.EXE sur
PC), soit à des programmes-systèmes (ex: boot), jamais à des fichiers de données
(exceptions : virus WDEF sur le fichier de données-système Desktop sur MacIntosh, possibilités de
virus sur resource fork, possibilités de virus pour bases de données ou tableurs, ...)
Page 18
Ver : programme autonome qui s'exécute, se propage et se reproduit à l'insu des
utilisateurs normaux ("worm")
" éventuellement porteur d'une bombe logique
" propagation par réseau
Le premier "ver" : Xerox, ~1975
• Idée tirée d'un livre de science-fiction (John Brunner, "The Shockwave Rider")
• programme "utile", composé de "segments" qui se copiaient sur les machines
inactives du réseau (et se détruisaient lorsqu'elles redevenaient actives)
• le programme pouvait servir à tester les machines, à mesurer des performances, au
traitement d'images, ...
L'arbre de Noël (réseau VNET d'IBM, décembre 1987) : CHRISTMA EXEC :
message qui affichait une carte de vœux sur l'écran, et qui, en même temps, se pro-
pageait à tous les correspondants habituels de celui qui "lisait" la carte
Le ver d'Internet : Robert T. Morris Jr., 2 novembre 1988
• le programme a été lancé vers 17h. de Cornell University
• au cours de la nuit, environ 6.000 des 60.000 ordinateurs connectés sur Internet aux
USA étaient atteints et bloqués (faute de conception) : Sun3 ou Vax avec Unix BSD
• le programme utilisait 3 failles connues (sendmail, fingerd, passwd)
• le 4 mai 1990, Robert T. Morris Jr. a été condamné à 400 heures de travaux d'intérêt
général et 10.000 $ d'amende
• le 13 décembre 1988, création du Computer Emergency Response Team (CERT)
Page 19

I.3. LES DEFENSES


1) Sécurité physique :
• Ensemble de procédures et de mécanismes qui protègent les locaux et les
biens contre les risques majeurs (incendie, inondation, ...) et contrôlent les
accès physiques (gardiens, sas, ...)
2) Sécurité du personnel (pas des personnes, CHS, ...) :
• Ensemble des règles et procédures qui régissent les conditions de travail des
personnels (internes et externes) dans un environnement sécurisé :
habilitation, définition des tâches, intervention de personnels extérieurs,
visites, ...
• Liée à la sélection, la formation et le suivi de carrière des personnels
• Doit prendre en compte les départs, les grèves, ...
3) Sécurité procédurale :
• Ensemble de procédures et de règlements qui régissent les opérations liées à
la sécurité du système informatique : enregistrement (et effacement) des
utilisateurs, sauvegardes, maintenance, installation et mises à jour de
matériels et de logiciels, ...
• permet de compléter les lacunes de la sécurité technique : micros, stations de
travail, ...
4) Sécurité technique : c'est tout ce qui va suivre
Page 20
I.3.1. Authentification des utilisateurs
= identification + vérification de l'identité

• Identification : présentation de l'identité : information non secrète, différente


pour chaque utilisateur (nom, numéro, ...) connue (au moins) de
l'utilisateur et du système informatique
• Vérification de l'identité :
" L'utilisateur doit présenter quelque chose :
• qu'il connaît : mot-de-passe, informations personnelles, ...
• qu'il possède : badge, carte magnétique, carte à puce, grenouille, …
• qui lui est propre : biométrie : empreinte digitale, voix, signature, …
ou combinaison : ex: carte à puce + P.I.N.
La qualité des systèmes d'authentification dépend du taux d'acceptation à tort et du
taux de rejet à tort : les systèmes biométriques réduisent (généralement) le taux
d'acceptation à tort (non copiables, non transmissibles), mais sont parfois mal
acceptés.
Note : il est aussi possible d'authentifier les terminaux, les lignes, les serveurs, ...
ex : rappel automatique
Les mécanismes d'authentification seront étudiés plus en détail au chapitre 2

Page 21

I.3.2. Autorisation

Objectifs : gestion et vérification des droits d'accès (détaillée au chapitre 3)

Principe du moindre privilège :


Un utilisateur ne doit pouvoir accéder à un instant donné qu'aux informations et
services strictement nécessaires pour l'accomplissement du travail qui lui a été confié
(besoin d'en connaître)

Ce principe n’est pas strictement appliqué dans les systèmes informatiques courants.

Illustration :
• Soit un programme P qui accède en lecture à un fichier F et en écriture à un fichier
G pendant son exécution.
• Lors de l’exécution de P, tout accès autre que ceux autorisés sur F et G, ou a
fortiori sur tout autre objet du système doit être interdit.
• La réalité :
o les droits ne sont pas associés à P, mais à l’utilisateur U qui exécute P
o pour résoudre le problème il faut un matériel / architecture / OS spécifiques
Page 22
I.3.3. Cryptologie = cryptographie + cryptanalyse
PRINCIPE :

Technique très ancienne d'abord utilisée pour les transmissions (et les fichiers) :
Exemple : chiffre de César : chiffrement : A ! D, B ! E, ..., Z ! C
déchiffrement : A ! X, B ! Y, C ! Z, D ! A, ...

clé de chiffrement clé de déchiffrement


K K
c d
C = texte
M = texte chiffré ou M = texte
en clair cryptogramme en clair
chiffrement déchiffrement

Chiffrement : M & C = {M}Kc Déchiffrement : C & M = [C]Kd


M : message en clair C : cryptogramme
Kc : clé de chiffrement Kd : clé de déchiffrement
{} : algorithme de chiffrement [ ] : algo. de déchiffrement

Page 23

Confidentialité et intégrité :

Confidentialité (repose sur la fonction de déchiffrement uniquement) :


• sans connaître Kd, il doit être “impossible” de retrouver le clair M connaissant
le cryptogramme C : décryptage
• il doit être “impossible” de retrouver Kd, même si on connaît à la fois le clair
M et le crypto C (attaque par clair connu), même si on connaît un grand
nombre de paires (M,C)
• il doit être “impossible” de retrouver Kd, même si on peut soumettre un clair
particulier et observer le crypto correspondant (attaque par clair choisi)

Intégrité (repose sur la fonction de chiffrement uniquement)


• sans connaître Kc, il doit être “impossible” de générer un cryptogramme
correct pour un clair donné (pour pouvoir ainsi produire un faux)
• il doit être “impossible” de retrouver Kc, même si on connaît à la fois le clair
M et le crypto C (attaque par clair connu), même si on connaît un grand
nombre de paires (M,C)
• il doit être “impossible” de retrouver Kc, même si on peut soumettre un clair
particulier et observer le crypto correspondant (attaque par clair choisi)
Page 24
Cryptanalyse :
Consiste à retrouver des informations secrètes (clés, clair) à partir d’informations
publiques (cryptogramme, algorithmes de chiffrement et de déchiffrement).
Méthode systématique : par essais successifs
en théorie, toujours possible avec des moyens illimités
(temps, espace mémoire, capacité de calcul)
=> protection : clés longues, algorithmes lents
Méthode analytique : à partir des algorithmes (chiffrement et déchiffrement),
trouver des relations mathématiques entre les différents
paramètres (clés, clair, cryptogramme) pour déduire des
informations sur les secrets
=> protection : algorithmes complexes à exprimer sous
forme d’équations
Méthode statistique : à partir d’un grand nombre de messages,
trouver des relations statistiques entre clair,
cryptogramme, clés
=> protection : brouiller les statistiques,
réduire la redondance du clair,
-> crypto d’apparence aléatoire
D’après la théorie de l’information, aucun chiffre n’est parfaitement sûr, sauf si la clé
est aussi longue que le clair.
Page 25

Authentification :
De nombreux schémas d'authentification sont basés sur la cryptographie, en
particulier pour se prémunir contre les interceptions.
Exemples :
Authentifieur
Utilisateur U1 : {pass-1}K
id=Ui, pass-i
U2 : {pass-2}K
(pass-i) ...
Ui : {pass-i} K
...

Authentifieur
id=Ui
Utilisateur {a}Kui U1 : Ku1
U2 : Ku2
(Kui) {a+1}Kui ...
Ui : Kui
...

Page 26
Chiffres symétriques
Kc = Kd et [ ] = {}-1

Ce sont les chiffres les plus classiques (tous les chiffres connus avant 1976 !).

Deux approches sont possibles pour concevoir des chiffres symétriques :


" utiliser des opérations que l'on ne sait pas traiter analytiquement (non
linéaires) et qui résistent aux méthodes d'attaque connues
" utiliser des problèmes connus dont les meilleures solutions prennent trop de
temps à exécuter

Opérations de base des chiffres classiques


Les messages (clair et crypto) sont constitués de lettres d'un même alphabet
(ensemble de symboles), ou de deux alphabets différents.
La transposition :
Les lettres du message sont permutées mais restent les mêmes.
Exemple : SECURITE ' ETIRUCES
La substitution
Chaque lettre du message est remplacée par une autre lettre d’un alphabet.
Exemple : SECURITE ' TFDVSJUF
Page 27

TRANSPOSITIONS

Anagramme des lettres du message


Simple
Le message est arrangé sous forme d'un tableau dont on modifie l'ordre des
lignes et/ou des colonnes, d'après la clef.
Exemple : soit le message :"LE RIRE EST LE PROPRE DE L HOMME"
et la clef : "FARCE"
F A R C E A C E F R
L E R I R E I R L R
E E S T L E T L E S
E P R O P P O P E R
R E D E L E E L R D
H O M M E O M E H M

( cryptogramme :"EIRLRETLESPOPEREELRDOMEHM"
Par texte clef
La clef est aussi longue que le message, ce qui rend plus difficile la
cryptanalyse.

L E M E S S A G E A R R A N G E S O U S F O R M E
12 4 13 5 21 22 1 10 6 2 18 19 3 15 11 7 23 16 25 24 9 17 20 14 8
L E R I R E E S T L E P R O P R E D E L H O M M E
E L R E I T R E H S P L R M O D O E P M R E E L E

Page 28
SUBSTITUTIONS
Simple
Un décalage constant de l'alphabet est utilisé :
Exemple : chiffre de César : chiffrement : A ! D, B ! E, ..., Z ! C
déchiffrement : A ! X, ..., C! Z, D ! A, ...
( SECURITE ' VHFXULWH
Synonymique
Un caractère peut être codé par différents symboles, ce qui permet de dissimuler
la fréquence des lettres du langage naturel.
Exemple : A' ) * + ,
B' - .
C' / 0 1
Poly-alphabétique
Différents décalages sont utilisés au cours du chiffrement, selon la clef.
Exemple : Chiffre de Vigénère
M S E M I N A I R E S E C U R I T E
K T A B L E T A B L E T A B L E T A
C L E N T R T I S P W X C V C M M E

La clef T signifie A ' T, B ' U, …, A signifie A ' A, B ' B, …, etc.


Ces chiffres dissimulent aussi la fréquence des lettres dans le texte clair.
Par dictionnaires (“code-book”)

Page 29

CHIFFRES AUTOCLAVES

Substitutions où une partie de la clé provient du clair ou du crypto :


Autoclave de clair :
M S E C U R I T E I N F O R M A T I Q U E
K C L E F S E C U R I T E I N F O R M A T
C U P G Z J M V Y Z V Y S Z Z F H Z C U X

Autoclave de crypto :
M S E C U R I T E I N F O R M A T I Q U E
K C L E F U P G Z L X Z D T K E R K WE K
C U P G Z L X Z D T K E R K WE K S M Y O

Avantages : " la clef est aussi longue que le clair


" le chiffre autoclave de crypto est auto-synchrone : une erreur de
transmission ne se propage pas sur la totalité du message... mais
tout le monde peut obtenir une partie de la clef...

Page 30
Cryptographie et information binaire
L'information binaire utilise un vocabulaire très restreint : 0 ou 1.
SUBSTITUTION

Substitution sur chaque bit : ou exclusif :


M ! C M K C
0 0 0
K 0 1 1
1 0 1
C = M! K 1 1 0
Cette opération possède des propriétés intéressantes :
" Aucune information sur M ou K ne peut être déduite de C (Ceci ne serait pas
vrai avec ET ou OU)
" Cette fonction est très simplement inversée :
Si C = M ! K, alors M = C ! K
" Mise en œuvre matérielle simple (donc rapide) : ex: “chiffre à clé une fois”

Substitution sur chaque mot binaire : par dictionnaire (electronic “code-book”)


Exemple : 01110101 ' 11010110, ...

Page 31

TRANSPOSITIONS

Par permutation :

0 0
0
1

0 1

1 1

Par décalage :

0
1 1 0 1 1 1 0 0 0

0 1 1 0 1 1 1 0 0

Page 32
Le DES
(Data Encryption Standard)

Publié en 1976 par le NBS (National Bureau of Standards), le DES est une norme
(FIPS 46-1) recommandée pour le chiffrement commercial jusqu’en 1993.
Issu du “Lucifer” conçu par IBM, c’est un chiffre symétrique qui permet de chiffrer
des mots de 64 bits au moyen d'une clef de 56 bits.
Mis en œuvre par matériel (LSI, micro + ROM), le même circuit est utilisé pour le
chiffrement et le déchiffrement. Sa mise en œuvre par logiciel est peu efficace.

Mode ECB (Electronic Code Book) :

K(56 bits)

M(64 bits) C(64 bits)


DES

Remarque : En 1993, il a été re-certifié pour 5 ans, car il n’y avait pas d’alternative.
L’AES (Advanced Encryption Standard) a pris le relai en 2002.

Page 33

Page 34
CHIFFREMENT / DECHIFFREMENT

M C
$ $
L0 %%% IP &&& R0 L'0 = R16 %%% IP &&& R'0 = L16

K1: L1 = R0 R1 = L0 ! f(R0, K1) K16: L'1=R'0=L16=R15 R'1 =L'0!f(R'0,K16)


=R16!f(R15,K16)
=L15
K2: L2 = R1 R2 = L1! f(R1, K2)
K15: L'2=R'1=L15=R14 R'2 =L'1!f(R'1,K15)
=R15!f(R14,K15)
• • =L14
• • • •
• • • •
K15: L15=R14 R15=L14! f(R14, K15) K2: L'15=R'14=L2=R1 R'15=L’14! f(R’14,K2)
=R2!f(R1,K2)
=L1
K16: L16=R15 R16=L15!f(R15,K16) K1: L'16 =R'15=L1=R0 R'16=L'15!f(R'15,K1)
=R1!f(R0,K1)=L0

R16 &&& IP-1 %%% L16


L0 &&& IP-1 %%% R0
$
$
C
M

Page 35

CHIFFREMENT / DECHIFFREMENT (Résumé)

La fonction f est un réseau complexe de transpositions et de substitutions

Les clés Ki courantes sont calculées à partir de K par un module appelé Key
Scheduler. Ce module génère 16 clés à partir de K de façon déterministe.

Equations de transformation
- Chiffrement : : " i # [1..16],
Ri = Li-1 ! f(Ri-1, Ki)
Li = Ri-1

- Déchiffrement : : " i # [16..1], (ordre inverse des clés courantes)


Ri-1 = Li
Li-1 = Ri ! f(Ri-1, Ki) = Ri ! f(Li, Ki)

Page 36
Mauvaises clés du DES
Certaines clefs du DES ne conviennent pas car elles réduisent sensiblement la solidité
du chiffre.
CLEFS FAIBLES
Les 4 clefs sont telles qu'elles conduisent à une valeur unique des clefs internes (les
registres C et D sont toujours égaux à 0 ou 1)
01 01 01 01 01 01 01 01
1F 1F 1F 1F 0E 0E 0E 0E
E0 E0 E0 E0 F1 F1 F1 F1
FE FE FE FE FE FE FE FE

CLEFS SEMI-FAIBLES
Les 12 clefs suivantes ne génèrent que 2 clefs internes distinctes :
E0 FE E0 FE F1 FE F1 FE 01 E0 01 E0 01 F1 01 F1
FE E0 FE E0 FE F1 FE F1 FE 1F FE 1F FE 0E FE 0E
1F FE 1F FE 0E FE 0E FE E0 1F E0 1F F1 0E F1 0E
01 FE 01 FE 01 FE 01 FE FE 01 FE 01 F1 01 F1 01
1F E0 1F E0 0E F1 0E F1 E0 1F 01 1F 01 0E 01 0E
01 E0 01 E0 01 F1 01 F1 1F 01 1F 01 0E 01 0E 01
Les clefs faibles ne diminuent pas la sécurité du DES, il suffit de les éviter.

Page 37

Sensibilité du DES aux modifications

Chaque bit du texte chiffré doit dépendre de chaque bit du texte clair et de la clef
(c'est une des spécifications de l'algorithme).

Illustration
M 1000 0000 0000 0000
K 30 0000 0000 0000
C 958E 6E62 7A05 557B
Si un bit du texte chiffré est modifié :
C 858E 6E62 7A05 557B
K 30 0000 0000 0000
M 8D48 93C2 966C C211
Si un bit de la clef est modifié :
C 958E 6E62 7A05 557B
K 10 0000 0000 0000
M 6D4B 9453 7672 5395

Page 38
Mode CBC (Cipher Block Chaining) : autoclave de crypto

C i-1 C i-1

M DES DES Mi
i
{ecb} [ecb]
Ci

Vecteur Vecteur
d'initialisation K K d'initialisation

Attention : propagation d’erreur sur 2 blocs consécutifs.


Dans ce mode, le DES peut servir pour signer des messages : l’émetteur envoie le
message en clair, accompagné du dernier bloc Ci comme signature. Le destinataire
effectue la même opération (avec la même clé) et compare le bloc Ci obtenu avec la
signature reçue.

Page 39

Mode OFB (Output Feedback Block) :

K K
Vecteur Vecteur
d'initialisation d'initialisation

k k
DES DES
{ecb} k bits
{ecb} k bits

Mi (k bits) Ci (k bits) Mi (k bits)

Page 40
Mode CFB (Cipher Feedback Block) : autoclave de crypto :

-> peut servir pour signer des messages

K K

C i-1 C i-1
k k
DES DES
{ecb} k bits
{ecb} k bits
V.I. V.I.

Mi (k bits)
Ci (k bits) Mi (k bits)

Propagation d’erreur : sur '64/k( blocs de k bits successifs.

Page 41

Critiques du DES
" Clef de taille trop faible (56 bits) : 256 ) 1017
Une attaque exhaustive pourrait être menée avec les technologies actuelles en 3,5
heures sur une machine de 1 M$ (attaque par clair connu) en 1990. Des progrès
depuis !
$ changer l’algorithme pour étendre la clef à 128 bits ? : C’est l’AES !
$ on peut aussi envisager un chiffrement multiple (-> clé de 112 bits, clé de 168 bits
avec le Triple DES…. Lenteur !) :
E D E

M C
K1 K2 K1

D E D
C = {[{M}K1]K2}K1 M = [{[C]K1}K2]K1

" Les fonctions S peuvent contenir un piège caché.


L'analyse de la sécurité de ces fonctions a été classifiée et n'est donc pas publique.
Une commission d'enquête gouvernementale a conclu à la non-intervention de la
NSA (National Security Agency) dans la conception du DES.
Page 42
AES (Advanced Encryption Standard)
L’AES est issu d’un appel d’offre lancé par le NIST (National Institute of Standards
and Technology) en 1997 pour créer un successeur au DES.

Le concours :
• Algorithme de chiffrement symétrique public
• Caractéristiques : blocs de 128 bits ; clés de 128, 192, 256 bits
• Disponible pour toute utilisation, y compris sur SmartCards

Le déroulement :
• 20 Août 1998 : 15 candidats déclarés pour une analyse scientifique
• 20 Mars 1999 : 5 candidats retenus, MARS, RC6, Rijndael, Serpent, TwoFish
• 2 Octobre 2000 : « The winner is Rijndael » de deux chercheurs Belges
Joan Daemen et Vincent Rijmen
• 26 Novembre 2001 : Federal Information Standards Publication FIPS 197.
• 26 May 2002 : Le standard est effectif pour implémentation.

Page 43

Principe de l’AES
Comme la plupart des chiffrements par blocs modernes, le chiffrement s'effectue en
deux parties : une procédure d'expansion de la clé et la fonction principale de
chiffrement qui s’appuie sur des mécanismes classiques de substitution, permutation,
par décalages, XOR, des étapes (rounds).
L’objet de base est appelé State Array.
- nombre de lignes (rows) = 4 (4 octets, 32 bits)
- nombre de mots de 32 bits : taille du bloc /32 = nombre de colonnes (Nb)
- nombre de boucles de traitement (Nr)

Taille de clé (Nk) Taille de bloc (Nb) Nombre d’étapes (Nr)


AES-128 4 4 10
AES-192 6 4 12
AES-256 8 4 14
Un bloc de 128 bits est représenté et manipulé sous la forme State Array suivante :
b0,0 b0,1 b0,2 b0,3
b1,0 b1,1 b1,2 b1,3
b2,0 b2,1 b2,2 b2,3
b3,0 b3,1 b3,2 b3,3
Page 44
L’algorithme Rijndael

1 On calcule la clé étendue a partir de K => des Ki

2 On effectue un AddRoundKey initial (``tour 0'')

3 On effectue (Nr – 1) tours :


3.1 ByteSub(Etat);
3.2 ShiftRow(Etat);
3.3 MixColumn(Etat);
3.4 AddRoundKey(Etat, Ki);

4 On effectue un tour final :


4.1 ByteSub(Etat);
4.2 ShiftRow(Etat);
4.3 AddRoundKey(Etat,Ki );

Page 45

La substitution ByteSub
L’idée consiste à remplacer toute valeur d’octet possible par une autre calculée à par
inversion des valeurs (1/bi,j) et un produit matriciel : [b’]= M x [b] + [c].

y0 1 0 0 0 1 1 1 1 x0 1
y1 1 1 0 0 0 1 1 1 x1 1
y2 1 1 1 0 0 0 1 1 x2 0
y3 1 1 1 1 0 0 0 1 x3 0
y4 = 1 1 1 1 1 0 0 0 x4 + 0
y5 0 1 1 1 1 1 0 0 x5 1
y6 0 0 1 1 1 1 1 0 x6 1
y7 0 0 0 1 1 1 1 1 x7 0

Ces deux transformations en séquence donnent lieu à une S-BOX pour les 256
valeurs possibles d’un octet.

Réciproquement, on applique les transformations inverses pour le déchiffrement, à


savoir par l’utilisation d’une S-BOX inverse :
Exemple : Au chiffrement valeur « 53 » => S-BOX [5,3] = « ed »
Au déchiffrement valeur « ed » => S-BOXinverse [e,d] = « 53 »
Page 46
Les transformations ShiftRows et MixColumns
ShiftRows : Les octets des 3 dernières lignes de State Array sont décalées de façon
cyclique selon une certaine valeur. La première ligne n’est pas décalée.

b0,0 b0,1 b0,2 b0,3 b0,0 b0,1 b0,2 b0,3


b1,0 b1,1 b1,2 b1,3 b1,1 b1,2 b1,3 b1,0
b2,0 b2,1 b2,2 b2,3 * b2,2 b2,3 b2,0 b2,1
b3,0 b3,1 b3,2 b3,3 b3,3 b3,0 b3,1 b3,2

MixColumns : Les octets d’une colonne c (vecteur de 4 octets) sont transformés


selon une opération matricielle.

b’0,c 02 03 01 01 b0,c
b’1,c
b’2,c
= 01
01
02
01
03
02
01
03
b1,c
b2,c
b’3,c 03 01 01 02 b3,c

Page 47

L’opération AddRoundKey
Elle consiste a faire un XOR entre chaque octet de donnée et l’octet de la clé courante
correspondant à chaque étape : yi,j = xi,j ! ki,j.

b’0,c b0,c k0,l


b’1,c
= b1,c
XOR k1,l
b’2,c b2,c k2,l
b’3,c b3,c k3,l
Avec l = round * Nb + c

L’algorithme de génération des différentes clés courantes diffère de celui qui est
utilisé dans le DES.
Il est appelé Key Expansion, car il repose sur une extension effective de la clé sur
une longueur de Nb(Nr+1) mots de 4-octets.
Cette série de valeurs pseudo-aléatoires (la clé initiale étant en fait la graine de
l’algorithme) est utilisée essentiellement lors de l’opération AddRoundKey.

Page 48
Les opérations de déchiffrement
Elle repose sur le même algorithme général et utilise des fonctions inverses de celle
qui ont été effectuées lors du chiffrement.

Chiffrement Déchiffrement Commentaire


AddRoundKey AddRoundKey Idem car basé sur XOR
SubByte InvSubByte S-BOX et S-BOX inverse
ShiftRows InvShiftRows Décalage opposé des lignes 1,2,3
MixColumns InvMixColumns Produit matriciel inverse

En conclusion :
- simplicité des opérations utilisées à l’exécution
- extensible pour des tailles de bloc supérieures
- extension de la taille des clés à 128, 192, 256
- efficacité !

Page 49

Caractéristiques des chiffres symétriques

" Confidentialité et intégrité sont toujours assurées simultanément :


$ seul(s) le(s) détenteur(s) de la clef peut (peuvent) déchiffrer (confidentialité)
$ seul(s) le(s) détenteur(s) de la clef peut (peuvent) chiffrer (intégrité)

" Bien adaptés pour l'archivage de fichiers personnels (à condition de mémoriser


la clé...).

" Pour les communications, ils nécessitent que l'émetteur et le récepteur


s'échangent la clef au préalable par une voie sûre.

" On ne peut pas les utiliser comme signature digitale si les deux parties ne se font
pas confiance mutuellement.
En effet, on ne peut pas savoir si le message a été chiffré par l'émetteur ou le
récepteur (ou même un tiers auquel le récepteur aurait donné la clef).

Page 50
Chiffres asymétriques ou "à clé publique" : Kc + Kd
clé de chiffrement clé de déchiffrement
K K
c d
C = texte
M = texte chiffré ou M = texte
en clair cryptogramme en clair
chiffrement déchiffrement

Les clés de chiffrement et de déchiffrement sont différentes, et il est “impossible”,


connaissant l’une (publique), de trouver l’autre (secrète ou privée).
Ce schéma a été proposé pour la 1ère fois en 1976 par Diffie et Hellmann.
1. Confidentialité : clé de chiffrement publique : Kp = Kc
clé de déchiffrement secrète Ks = Kd
" tout le monde peut chiffrer un message, seul le destinataire peut le déchiffrer:
C = {M}Kp et M = [C]Ks
2. Intégrité : clé de chiffrement secrète : Ks = Kc
clé de déchiffrement publique Kp = Kd
" tout le monde peut déchiffrer le message, seul l'émetteur connu peut l'avoir
émis : signature électronique
C = {M}Ks et M = [C]Kp
En général, {} = [ ] : M = {{M}Kp}Ks = {{M}Ks}Kp : par exemple, chiffre RSA
Page 51

Les chiffres exponentiels


Un message est découpé en blocs de telle façon que chaque bloc M soit une
représentation binaire d'un chiffre de l'intervalle (0, n-1).
Les opérations sur les nombres M sont effectuées modulo n.
Dans les chiffres exponentiels, C et M se déduisent l'un de l'autre par :
C = MKc (mod n) M = CKd (mod n)

Afin que les deux actions de chiffrement et déchiffrement permettent d'obtenir le bloc
de départ, il est nécessaire que, pour tout M # [0,n-1] :
M = CKd (mod n) = (MKc mod n )Kd mod n
c'est-à-dire : MKcKd (mod n) = M

Les chiffres exponentiels vérifient : { } , [ ],


{{M}Kc}Kd = {{M}Kd}Kc car Kc.Kd = Kd.Kc
La difficulté est de trouver Kc et Kd tels que connaissant Kc et n, il soit “impossible”
de calculer Kd.

Page 52
Le chiffre RSA
Chiffre dû à Rivest, Shamir et Adleman (MIT, 1978).
Le principe repose sur un problème de la théorie des nombres qui n'a pas aujourd'hui
de solution efficace : la factorisation des nombres ayant de grands facteurs premiers.
Soit n = P.Q avec P, Q premiers :
• il est facile de calculer n à partir de P et de Q
• il est difficile de retrouver P et Q à partir de n
Or, puisque n est le produit de deux nombres premiers (P, Q), le nombre d'Euler de n
s'écrit :
-(n) = (P-1).(Q-1)
On choisit Kc, Kd tels que1 :
Kc.Kd mod -(n) = 1
ce qui conduit à : MKcKd (mod n) = M

1 On choisit Kc, un nombre sur [1, -(n)], premier par rapport à -(n) et on calcule Kd, l'inverse modulo -(n)
de Kc, par : Kd = Kc [ -(-(n)) - 1] (mod -(n))

Page 53

Utilisation du chiffre RSA

Quantités publiques : n et Kp = Kc ou Kd
Quantités secrètes : -(n) et Ks = Kd ou Kc

Exemple : P = 11, Q = 3 secrètes


d'où : n = P.Q = 33 publique
et : -(n) = (P-1).(Q-1) = 10 x 2 = 20 secrète

Soit : Kd = 3, premier avec -(n) publique


On calcule : Kc = inv(3) (mod 20) = 7 secrète
car : 3 x 7 (mod 20) = 1

Chiffrement : Soit M = 9
K
Alors C = M c (mod n) = 97 (mod 33)
= 4 782 969 (mod 33) = 15

Déchiffrement : Soit C= 15
Alors M = CKd (mod n) = 153 (mod 33)
= 3375 (mod 33) = 9
Page 54
Sécurité et performances du chiffre RSA
Sécurité :
Le problème de la cryptanalyse du RSA est au mieux aussi difficile que le problème
de la factorisation de n.
Il faut choisir n grand pour que la factorisation soit difficile : pour factoriser un
nombre de 115 chiffres décimaux il faut ~ 400 MIPS.ans avec les meilleures
méthodes de factorisation connues (il y a eu de grands progrès depuis 1970); il
faudrait ~ 400.000 MIPS.ans pour un nombre de 155 chiffres (~ 512 bits) et entre
4.000.000.000 MIPS.ans et 40.000.000.000 MIPS.ans pour 309 chiffres (1024 b.).
Remarque : le défi publié en août 1977 (129 chiffres décimaux, ~425 bits) a tenu
jusque fin avril 1994 : factorisé avec l’aide de 600 volontaires sur 1600 machines
pendant 8 mois (~5000 MIPS.ans + 45 h sur un MasPar 16K)
• n et Ks : ~ 512 ou 1024 bits, mais Kp peut être petit (par exemple : 3 ou 15)
• P et Q doivent être de tailles comparables (par exemple > 250 ou 500 bits)
• (P-1) et (Q-1) doivent contenir chacun un grand facteur
• le pgcd [ (P-1), (Q-1) ] doit être petit
Performances du chiffre RSA
En raison des opérations mathématiques utilisées, le RSA est beaucoup plus lent que
le DES, même en utilisant des circuits spécialisés (ordre de grandeur : n.100).

Page 55

Conclusions sur les chiffres asymétriques


Caractéristiques :
• beaucoup moins rapides (~0,5 Mb/s par matériel) que les chiffres symétriques
(~100 Mb/s)
• surtout utiles pour garantir l'authenticité de messages courts
• souvent utilisés pour échanger des clés de chiffrement symétrique
Problèmes : intégrité de l'annuaire des clés publiques
durée de vie des clés

Utilisation pour le “scellement” des messages : signature


• On “compresse” d’abord le message : fonction de hachage (hashing) ou de
compression pour obtenir une empreinte sur n bits, telle que, pour trouver un
autre message avec la même empreinte, il faille ~ 2n essais : ex: MD4, MD5, SHS
ou Snefru.
• L’émetteur chiffre l’empreinte avec sa clé secrète -> signature
• puis il envoie le message (en clair) avec sa signature.
• Les récepteurs recompressent le texte du message et comparent l’empreinte avec
la signature déchiffrée par la clé publique de l’émetteur.

Page 56
Génération de clé commune (Diffie-Hellman)

Deux partenaires A et B veulent communiquer (confidentialité, intégrité)


! comment obtenir une clé commune (pour chiffre symétrique) ?
Soient . et n deux constantes connues.
SKA
A génère aléatoirement SKA et calcule PKA = . mod n
SKB
B génère aléatoirement SKB et calcule PKB = . mod n
PKA et PKB sont publiques, SKA et SKB sont gardées secrètes par A et B connaissant
PKi il est “impossible” de calculer SKi)
Une clé commune (permanente) peut être calculée indépendamment par A et B :
SKA SKB SKA
KAB = PKB mod n = (. ) mod n
SKB SKA SKB
KAB = PKA mod n = (. ) mod n
Une clé de session KS peut alors être générée aléatoirement par A (initiateur de la
session), et transmise lors du message de demande d’ouverture de session :
A -> B : M1 = (A, {KS}KAB)
B -> A : M2 = (ok, {I}KS)
A -> B : M3 = {requête, I+1}KS

Page 57

I.3.4. Certification, contrôle d’intégrité

Un certificat permet de s'assurer que les informations reçues


! sont bien celles qui ont été émises,
! et proviennent bien de l'émetteur prétendu
Cette technique est utile pour :
• messages
• logiciels
Exemple : bandes magnétiques de compensation inter-bancaire
3 méthodes de certification :
(a) MAC : message authentication code : ex: DES en mode CBC : le certificateur
et le vérificateur possèdent la même clé secrète
(b) Fonctions "de compression" + signature par schéma à clé publique :
l’empreinte est signée à l’aide de la clé secrète, vérifiée par la clé publique
(c) Notarisation : un 3ème partenaire de la communication enregistre les
messages et se porte garant de l'identité des deux autres partenaires (non-
répudiation)
Pour les logiciels, ça permet de vérifier qu'aucun cheval de Troie n'a été inséré :
contrôles d'intégrité périodiques, apériodiques ou sur détection d'incident.
Page 58
Signature électronique : résumé
Par chiffre symétrique : autoclave de crypto

Par chiffre asymétrique : empreinte signée avec la clé secrète

Page 59

Sécurité des échanges : certification


• Tout repose sur une
AUTORITE DE
CERTIFICATION
en qui tout le monde a
confiance
• Chaîne d’autorités
de certification
(standard X509)
• Tout le monde
connaît la clé
publique de
l’autorité de
certification
• C’est elle qui
certifie la validité Principe de base pour des outils tels que SSL et SSH
des clés publiques
Certificat = information demandeur, etc., clé publique
+ signatureclé_privé_autorité_certification

Page 60
I.4. EVALUATION
I.4.1.Méthodes d’Analyse des Risques
En France, il existe 2 méthodes d'évaluation d'une installation :
" MARION, proposée par l'APSAIRD (Assemblée Pleinière des Sociétés
d'Assurance Incendie et Risques Divers), utilisée (entre autres) pour évaluer les
montants des primes d'assurance
" MELISA, développée pour la DGA, visant plutôt les systèmes militaires et
gouvernementaux (confidentialité > intégrité > disponibilité)
Ces 2 méthodes consistent à
• analyser les vulnérabilités
• analyser les menaces
• analyser les risques
• évaluer les conséquences
• évaluer les coûts correspondants
• évaluer les coûts des contre-mesures
• sélectionner les solutions donnant le meilleur rapport efficacité/coût
• suivre l'évolution de l'installation

Page 61

I.4.2.Critères américains
Issus d'un souci (~1980) de créer un marché pour des systèmes informatiques
sécurisés pour pouvoir satisfaire à moindre coût les besoins de la Défense américaine
! confidentialité > intégrité > disponibilité
! Création d'une norme, sous forme de critères d'évaluation : le Livre Orange
TCSEC : TRUSTED COMPUTER SYSTEM EVALUATION CRITERIA (DOD, 1985)
• 7 classes (D, C1, C2, B1, B2, B3, A1) ordonnées
• un système informatique sera accepté dans une classe s'il vérifie à la fois
" des critères sur la doctrine de sécurité
" des critères sur la responsabilité (ou administration)
" des critères sur l'assurance (ou garantie)
" et des critères sur la documentation
Le Livre Orange ne s'applique directement qu'aux systèmes informatiques classiques
(isolés), mais pas facilement aux réseaux, aux bases de données, au temps réel, au
transactionnel...
Pour ces systèmes, des "Interprétations" et des Guides ont été publiés par le NCSC :
• Livre Rouge ou TNI : Trusted Network Interpretation of the TCSEC
• Personal Computer Security Consideration
• Guides pour l'audit, pour le contrôle d'accès discrétionnaire, les mots-de-
passe, la gestion de configuration

Page 62
CLASSIFICATION DU LIVRE ORANGE

D Protection minimale
C1 Protection discrétionnaire sécurité discrétionnaire
C2 audit
B1 labels
B2 Protection obligatoire protection structurée
B3 domaines de sécurité
A1 Protection vérifiée vérification

Page 63

DOCTRINE DE SECURITE

Contrôle d'accès Ré-utilisation Labels Contrôle d'accès


discrétionnaire d'objet obligatoire

C1 +
C2 + +
B1 = = + +
B2 = = + +
B3 + (ACL) = = =
A1 = = = =

Page 64
RESPONSABILITE

Identification et Cheminement sûr Audit


authentification
D
C1 +
C2 + +
B1 + +
B2 = + +
B3 = = +
A1 = = =

Page 65

ASSURANCE OPERATIONNELLE

Architecture Intégrité du Analyse des Gestion Reprise


du système système canaux d'une sûre
couverts installation
D
C1 + +
C2 + =
B1 + =
B2 + = + +
B3 + = + + +
A1 = = + = =

Page 66
ASSURANCE DU CYCLE DE VIE

Essai de la Spécification et Gestion de la Distribution


sécurité vérification configuration sûre
D
C1 +
C2 +
B1 + +
B2 + + +
B3 + + =
A1 + + + +

Page 67

DOCUMENTATION

Guide de Manuel Documentation Documentation


l'utilisateur d'installation des essais sur le concept
sûre de sécurité
D
C1 + + + +
C2 = + = =
B1 = + = +
B2 = + + +
B3 = + = +
A1 = = + +

Page 68
CRITERES FEDERAUX

Norme en préparation (NIST et NSA) -> remplacer le Livre Orange et ses dérivés ->
préparer des critères communs...

Objectifs :
• mieux prendre en compte confidentialité, intégrité et disponibilité
• évaluation de produits plutôt que de systèmes
• séparer explicitement les aspects fonctionnels, les aspects liés au développement
et les aspects d’assurance (ou vérification), chacun de ces aspects étant évalués
avec différents niveaux
Assurance packages : exemples, correspondant à 7 niveaux de sécurité dans un ordre
croissant, regroupant des niveaux de fonctionnalité, de méthodes de développement et
de vérification “homogènes

Profils prédéfinis :
• 3 profils commerciaux : CS1 à CS3 (dans un ordre croissant de sécurité)
(CSR, Commercial Security Requirements)
• 4 profils (LP1 à LP4) pour des systèmes traitant des informations
confidentielles compartimentées et/ou multi-niveaux.

Page 69

IV.2.3 Critères “harmonisés” européens

" Des critères européens ont été définis :


ITSEC : INFORMATION TECHNOLOGY SECURITY EVALUATION CRITERIA

• critères fonctionnels : classes F1 à F10 prédéfinies + ... :


- F1 à F5 = TCSEC (C1,C2,B1, B2, B3/A1) : ordonnées, confidentialité
- F6 à F10 : non ordonnées, intégrité, disponibilité, réseaux, ...
• critères d’assurance :
- conformité (correctness) : classes E1 à E6, correspondant à des exigences sur
le processus de développement, l’environnement de développement et
l’exploitation
- efficacité (effectiveness) : pertinence et cohésion des fonctionnalités,
résistance des mécanismes, vulnérabilité de la construction, facilité d’emploi,
vulnérabilité en exploitation
• évaluation en fonction des affirmations des fournisseurs (claim language)

" Manuel d’évaluation (ITSEM).

Page 70
NOTION DE CRITERES COMMUNS

TCSEC (USA) CTCPEC (CANADA)


ITSEC (EUROPE)
NL, UK, A, F
FC

CC
(ISO)

• Evaluation valide internationalement

• Fortement inspirés des ITSEC

• Notion de profil de protection pour évaluer des produits, par exemple :


- OS pour carte à puce
- Firewall
- etc.

Page 71

I.4.4. Evaluation quantitative

L'évaluation quantitative de la sécurité est peu développée

% évaluation de la bande passante des canaux couverts


% résultats de la théorie de l'information appliqués aux mécanismes cryptogra-
phiques (entropie, équivocation, …)
% tentative d’utilisation de méthodes stochastiques pour évaluer la résistance d’un
système en exploitation vis-à-vis d’attaques connues (LAAS-CNRS)

Page 72
I.4.5. Action coordonnée : CERT
"Computer Emergency Response Team"

• Etre informé des problèmes internes


• Se tenir informé de ce qui se passe à l'extérieur : FIRST, constructeurs
• Routine : Former, informer, aider, conseiller, ...
• Avoir une procédure pré-établie pour les incidents :
= maintenir ou restaurer les données
= maintenir ou restaurer le service
= diagnostic
= corriger les causes
= informer correctement : en interne et vers l'extérieur (autres CERTs,
presse, ...)
= identifier l'attaquant
= punir l'attaquant

Page 73

Chapitre II : AUTHENTIFICATION DANS LES SYSTEMES


INFORMATIQUES
II.1. PRINCIPE

Authentification = identification + vérification de l'identité


Identification : présentation de l'identité : information non secrète, différente
pour chaque utilisateur (nom, numéro, ...) connue (au moins) de
l'utilisateur et du système informatique

Vérification de l'identité : basée


• sur un secret partagé par l'authentificateur et l'utilisateur : ex. mot-de-passe
• sur un secret maintenu par l'authentificateur, caractéristique de l'utilisateur :
ex. systèmes biométriques,
• sur un secret maintenu par l'utilisateur et sur des informations publiques :
protocoles d'authentification sans apport de connaissance

Page 74
II.2. EXEMPLE D'AUTHENTIFICATION PAR MOT-DE-PASSE : UNIX
Danger : fichier de mot-de-passe en clair
" fichier /etc/passwd contenant les mots-de-passe chiffrés (à sens unique)
deswarte:ld69f8tr6MNE2:393:39:Yves
Deswarte,20,6288:/users/deswarte:/bin/csh
Commande passwd :
8 caractères
(mot-de-passe en clair)

56 bits
25 fois

~DES 64 bits
"0000" 1 parmi 4096

Tirage aléatoire

11 car.

12 bits + 2 car.
(mot-de-passe
chiffré)
Page 75

Il n'est pas possible de décrypter les mots-de-passe chiffrés (fonction à sens unique)
En revanche, il est assez facile de tester des mots-de-passe devinés :
attaque par dictionnaire
Exemple : Crack : dictionnaire + règles de transformation
Dangers :
• pas de mot-de-passe
• mot-de-passe évident (informations locales, informations publiques, ...)
• mots-de-passe usuels (prénoms, couleurs, mois, ...)
• mots-de-passe de l'installation (ou de la maintenance)
• mot-de-passe initial d'un nouvel utilisateur
• même mot-de-passe partout (pour différentes machines, pour différents
privilèges, ...)
Précautions :
• Le mot-de-passe doit être individuel : 1 utilisateur, 1 compte, 1 mot-de-
passe :
" un compte commun à une équipe empêche de changer le mot-
de-passe, mais aussi de trouver le responsable d'une anomalie
(impunité) et les utilisateurs le savent...
• Il faut choisir un bon mot-de-passe : facile à retenir, difficile à deviner
ex: Moscou, Rome ! MOS$ROM
• Il faut savoir le changer assez souvent
• Cacher les mots-de-passe : shadows
Page 76
II.3. AUTHENTIFICATION A DISTANCE

Danger : écoute du réseau

Exemples : rlogin, telnet, ftp, ...


Solution : hosts.equiv, .rhosts... mais confiance dans l’authentification ?
Systèmes de pages jaunes : NIS
• l’identité de l’utilisateur est transmise du site client au serveur YP
• le serveur YP transmet le champ de passwd (chiffré) correspondant
• le site client vérifie le mot-de-passe
Page 77

Authentification par chiffre symétrique


Danger : écoute du réseau

Chiffrement : M & C = {M}K Déchiffrement : C & M = [C]K


Caractéristique : chaque entité E connaît sa clé secrète permanente Ke
Objectif : A veut établir une session avec B (clé secrète commune Kab)
A et B étant authentifiés par un site d'authentification SA qui connaît
toutes les entités et leurs clés secrètes permanentes (a, Ka), (b, Kb), ...

Page 78
Needham-Schroeder :

SA

3
A 4 B
5
1. A envoie à SA un message M1 contenant (a,b,I1)
2. SA génère Kab et renvoie M2 = {I1,b,Kab,Tab}Ka où Tab ={Kab,a}Kb
3. A déchiffre M2, mémorise Kab, et renvoie à B M3 = Tab
4. B déchiffre M3, mémorise Kab, et renvoie à A M4 = {I2}Kab
5. A déchiffre M4 et renvoie à B M5 = {I2-1}Kab

Page 79

Exemple : Kerberos
Kerberos est le service d'authentification développé au M.I.T. pour le projet Athena
(plusieurs milliers de stations de travail et des serveurs sur un même réseau)

Objectif : stations de travail standard (méfiance),


compatibilité avec les normes (Unix, TCP/IP, ...)

Deux types de certificats (infalsifiables) :


• Ticket : caractéristique d'une session entre un client C et un serveur S : Tc,s
les tickets sont générés par un serveur de tickets ST
Tc,s = {s,c,adr,td,life,Kc,s}Ks
avec adr = adresse IP du client,
td = heure de début de session
life = durée maximale de session
Kc,s = clé de session, partagée par C et S
Ks = clé permanente de S
• Authentifieur : valable à un instant t, généré par le client : Ac,s(t)
Ac,s(t) = {c,adr,t}Kc,s

Page 80
Phase 2 : accès serveur
K ST
- distribution de clé K c,s
" # - partenaires : C, ST, S
Phase 1 : login
! $
- distribution de clé Kc,st`
- partenaires : C, K, ST C S
%

1. Au login d'un utilisateur U sur la station C, C envoie au site Kerberos K un


message M1 = (u,c)
2. K recherche le mot-de-passe mdp (en clair) correspondant à u, et génère Kc,st (clé
de session entre C et ST pour l'utilisateur u), puis le ticket Tc,st qu'il renvoie à C
dans M2 = {Kc,st,Tc,st}mdp
Tc,st = {st,c,adr,td,life,Kc,st}Kst (K connaît la clé Kst)
C déchiffre M2 avec le mot-de-passe mdp fourni par U au login, mémorise Kc,st et
Tc,st;

Fin de la phase 1 : login et distribution de clé Kc,st

Page 81

Phase 2 : accès serveur


K ST - distribution de clé K c,s
- partenaires : C, ST, S
" #
! $

C S
%

3. Lorsque C veut ouvrir une session avec un serveur S, il envoie à ST un message


M3 = (s,Tc,st,Ac,st(t)) avec Ac,st(t) = {c,adr,t}Kc,st
4. ST déchiffre Tc,st à l'aide de sa clé permanente Kst, vérifie sa validité (c,st,adr, td,
life), utilise Kc,st pour déchiffrer Ac,st(t) dont il vérifie la validité;
Si tout est OK, ST génère Kc,s et un ticket Tc,s = {s,c,adr,td,life,Kc,s}Ks (ST
connaît les Ks de tous les serveurs) puis envoie à C un message M4 =
{Kc,s,Tc,s}Kc,st
5. C déchiffre M4 et mémorise Kc,s et Tc,s; C peut alors envoyer sa requête r à S
avec le ticket Tc,s et un authentifieur Ac,s(t) : M5 = (r,Tc,s,Ac,s(t))
S déchiffre Tc,s à l'aide de Ks, vérifie c,st,adr, td et life, utilise Kc,s pour déchiffrer
et vérifier Ac,s(t); si c'est OK, il accepte la requête.

Page 82
Authentification par chiffre à clé publique

Chiffre à clé publique : les clés de chiffrement et de déchiffrement sont diffé-


rentes; l'une est publique, l'autre est gardée secrète

Chiffrement : M & C = {M}Kc Déchiffrement : C & M = [C]Kd


En général, {} = [ ] : M = {{M}Kp}Ks = {{M}Ks}Kp : par exemple, chiffre RSA

Caractéristiques : Chaque entité E connaît sa clé secrète KSe et la clé publique de


SA : KPs
SA connaît toutes les clés publiques KPe (annuaire des clés
publiques) et sa clé secrète KSs

Objectif : Etablir une session entre A et B sans transférer d'information sur les
secrets (KSa et KSb) : authentification sans apport de connaissance

Page 83

Needham-Schroeder

SA

1 5

2 4

3
A 6 B
7
1. A envoie à SA le message M1 = (a,b)
2. SA renvoie à A M2 = {KPb,b}KSs (chiffrement pour certifier l'authenticité)
3. A déchiffre M2 à l'aide de KPs et mémorise KPb; A envoie à B M3 = {I1,a}KPb
4. B déchiffre M3 à l'aide de KSb et demande à SA la clé publique de A : M4=(b,a)
5. SA renvoie à B M2 = {KPa,a}KSs
6. B envoie à A M6 = {I1,I2}KPa
7. A renvoie à B M7 = {I2}KPb
Problème : le SA doit quand même être digne de confiance : déguisement possible
Page 84
Protocole d’authentification Fiat-Shamir
Basé sur un algorithme d'authentification développé par CMU (d’après Rabin).
Soit n un produit de deux grands nombres premiers, connu de tous les composants C
du système.
Chaque entité E génère aléatoirement une valeur re (1"re"n-1), qu'il garde secrète,
calcule xe = re2 mod n et publie xe (il est aussi difficile de calculer re connaissant xe
que de factoriser n).
Supposons que B veuille authentifier A (# vérifier avec une confiance > 1-2-t que A
connaît ra). A génère un tableau de t valeurs aléatoires vi (1"vi"n-1), en calcule les
carrés modulo n (vi2 mod n) qu'il envoie à B. B calcule une chaîne aléatoire de t bits
bi qu'il transmet à A.
Pour chaque i, A renvoie à B :
• zi = vi si bi = 0
• zi = ra.vi mod n si bi = 1
B calcule zi2 mod n et vérifie que :
• zi2 = vi2 mod n si bi = 0
• zi2 = xa.vi2 mod n si bi = 1
Un intrus n'a qu'une chance sur 2t de deviner à l'avance les bi pour choisir les vi2 qui
satisferont la demande de B.
Page 85

II.4. AUTHENTIFICATION PAR CARTE A PUCE

smartcard
device
Id
Kchild={id}Kmother Workstation

+ PIN

% {r}Kchild
! id

$r
smartcard
Kmother device " id, r
Remote
computer

# {r}Kchild
r=random number

Page 86
Authentification par carte à puce
Personnalisation de la carte utilisateur :
- génération de la Kchild = {id} Kmother
- chargement de la carte utilisateur avec identification (id) et Kchild
Protocole d’authentification
- Etape 1 : PIN de validation de la carte utilisateur et transmission du {id}
du lecteur->workstation->remote host
- Etape 2 : transmission du {id} + valeur aléatoire {r} du remote host au
lecteur contenant la carte mother.
- Etape 3 : génération de Kchild= {id}Kmother par la carte et transmission
de {r}Kchild au remote host

- Etape 4 : transmission de {r} à workstation pour calcul de {r}Kchild=R

- Etape 5 : transmission du résultat R a remote host pour vérification R ?


{r}Kchild calculé par la carte mother. S’il y a égalité alors l’utilisateur est
identifié.

Page 87

Chapitre III : PROTECTION DANS LES SYSTEMES


INFORMATIQUES
III.1. POLITIQUES D’AUTORISATION
• Un sujet a un droit d'accès sur un objet /il est autorisé à exécuter la fonction
d'accès correspondante sur cet objet.
Utilisateur = une personne physique ou un service (# personne morale)
Sujet = processus qui s'exécute pour le compte de l'utilisateur
Objet = toute entité, définie par un nom, un état et des fonctions d'accès
exemple : fichier, périphérique, programme, ...
• La protection consiste à associer des droits aux relations sujet-objet et à ne
permettre que les accès autorisés par ces droits.
• Les règles qui définissent les droits d'accès des sujets sur les objets constituent la
politique d'autorisation (improprement appelée "politique de sécurité").

La politique d'autorisation doit être basée sur un modèle formel, pour permettre de
vérifier :
" que la politique est complète et cohérente
" que la mise en œuvre est conforme

Page 88
Il existe de nombreux modèles formels : HRU, Take-Grant, Bell-LaPadula, Biba...

Modèle !HRU :
La configuration instantanée de protection du système informatique est définie par
(S,O,A) :
• S est l'ensemble des sujets courants
• O est l'ensemble des objets courants
• A est l'ensemble des droits courants des sujets sur les objets
Comme les sujets sont aussi des objets, on a S 1 O
A est représenté par une matrice : une ligne par sujet si et une colonne par objet oj
A(si,oj) = Aij = dij
où dij est un sous-ensemble de D (ensemble de tous les droits possibles).
On écrira :
(si,oj,dk) est vrai / le sujet si a le droit dk sur l'objet oj
D'où :
dij = {dk # D | (si,oj,dk)}

Page 89

Politiques d'autorisation discrétionnaires


(DAC : Discretionary Access Control)
" Les droits d'accès à chaque information sont manipulés par le responsable de
l'information (généralement le propriétaire), à sa discrétion
" Les droits peuvent être accordés à chaque utilisateur individuellement ou à des
groupes d'utilisateurs ou les deux.
Exemple : protection des fichiers Unix :
1. un utilisateur peut créer librement des fichiers dont il devient propriétaire
2. les droits d'accès à un fichier sont définis librement par le propriétaire : par
exemple, il peut décider quels utilisateurs sont autorisés à lire le fichier
3. il n'est pas possible de réaliser la politique suivante : "un utilisateur non-
autorisé à lire un fichier ne peut obtenir aucune information contenue dans le
fichier (même avec la complicité d'un utilisateur autorisé)"

(2) & (4) : (s1,f1,propriétaire) * (s2,f1,lire)


(1+2) & (5) : (s2,f2,créer) * (s2,f2,écrire) 0 (s3,f2,lire)
(4+5) & (6) : (s2,f1,lire) 0 (s2,f2,écrire) 0 (s3,f2,lire) * (s3, copie_de_f1,lire)

Page 90
" Inconvénients d'une politique discrétionnaire (utilisée seule) : abus de pouvoir
(par maladresse ou malveillance)
• S'il est possible pour un utilisateur légitime d'accéder à certains objets ou d'en
modifier les droits d'accès, il est possible qu'un Cheval de Troie en fasse de
même.
• Si un utilisateur a le droit de lire une information, il a (en général) automa-
tiquement le droit de la divulguer à n'importe qui.

Page 91

Politiques d'autorisation obligatoires


(MAC : Mandatory Access Control)
Des règles supplémentaires sont imposées (en plus des règles discrétionnaires)
Exemple : politique multi-niveaux ("militaire") : les utilisateurs/informations
appartiennent à des classes de sécurité pré-définies :
" un niveau et/ou " une ou plusieurs catégories
• non-classifié • OTAN
• confidentiel • Nucléaire
• secret • Cryptologie
• très secret •…
Les niveaux sont ordonnés : très secret > secret > confidentiel > non-classifié
Les utilisateurs ont une habilitation et les informations une classification.
Des règles sont imposées qui déterminent les habilitations qui donnent des accès à des
informations de chaque classification.
Ces règles ne peuvent être contournées (dans le système informatique), même par le
propriétaire des informations.

Page 92
MODELE DE BELL-LAPADULA

Principes
• à chaque sujet si correspond une habilitation h(si)
• à chaque objet oj correspond une classification c(oj)
• propriété simple : (si,oj,lire) & c(oj) ! h(si) et
2j(cat.) 1 2i(cat.)
• propriété étoile : (si,oj,lire) 0 (si,ok,écrire) & c(oj) " c(ok) et
2j(cat.) 1 2k(cat.)
Ces règles empêchent la fuite d'information vers des niveaux inférieurs :
" si h(sn) < c(oi), il n'existe pas de suites {i,j,...,k} et {l,m,...n} telles que :
(sl,oi,lire) 0 (sl,oj,écrire) 0 (sm,oj,lire) 0 ... 0 (sx,ok,écrire) 0 (sn,ok,lire)
en effet, cela conduirait à :
c(oi) " c(oj) " h(sm) " ... " c(ok) " h(sn) & c(oi) " h(sn)
Inconvénient : dégradation de l’information -> niveaux de secret de + en + élevés

AUTRES MODELES POUR LA CONFIDENTIALITE

Les modèles multi-niveaux ne peuvent pas représenter toutes les politiques. Par
exemple, la “politique de la muraille de Chine” imposée aux agents de change
britanniques a conduit au développement du modèle de Brewer-Nash.
Page 93

MODELES POUR L’INTEGRITE

Il existe d'autres types de politiques obligatoires qui visent plutôt à empêcher les
fraudes (attaques contre l'intégrité).

Modèle de Biba :
Analogue au modèle de Bell-LaPadula :
Niveaux d’intégrité : correspondent à des niveaux de vérification, crédibilité, ...
• à chaque sujet si -> niveau d’intégrité is(si)
• à chaque objet oj -> niveau d’intégrité is(oj)
Règles imposées pour les opérations :
• observation d’un objet par un sujet : (si, oj, observer) & is(si) " is(oj)
• modification d’un objet par un sujet : (si, oj, modifier) & is(oj) " is(si)
• invocation d’un sujet par un autre sujet : (si, sj, invoquer) & is(sj) " is(si)
Inconvénient : dégradation de l’information -> niveaux d’intégrité de + en + bas

Page 94
OBJECTIFS D'UNE POLITIQUE OBLIGATOIRE

" empêcher les fuites d'informations (ou les fraudes) à l'insu de leur proprié-
taire, par exemple au moyen d'un cheval de Troie, ou par accident,
" empêcher les fuites d'informations (ou les fraudes) par la volonté d'un utili-
sateur habilité mais malintentionné
Note : Pour que les mécanismes de protection obligatoire soient efficaces, il faut des
mécanismes d'authentification adaptés (ex.: non transmissibles : les mots-de-
passe, les badges, cartes à puces, ... ne suffisent pas !!!)

Page 95

III.2. IMPLEMENTATION DE L’AUTORISATION


= gestion et vérification des droits d'accès

Rappels :

• Un sujet a un droit d'accès sur un objet /il est autorisé à exécuter la fonction
d'accès correspondante sur cet objet.
Utilisateur = une personne physique ou un service (# personne morale)
Sujet = processus qui s'exécute pour le compte de l'utilisateur
Objet = toute entité, définie par un nom, un état et des fonctions d'accès
exemple : fichier, périphérique, programme, ...

• Principe du moindre privilège : Un utilisateur ne doit pouvoir accéder à un


instant donné qu'aux informations et services strictement nécessaires pour
l'accomplissement du travail qui lui a été confié (besoin d'en connaître)

Page 96
Notion de moniteur de référence et de TCB

Un processus (sujet) a un droit d'accès à un objet s'il a le droit d'exécuter la fonction


d'accès correspondante sur l'objet. Ces droits sont vérifiés par :

" Vérifications statiques (lors de la préparation des programmes) :


généralement insuffisantes (ex.: Burroughs B6700)

" Vérifications dynamiques (à l'exécution), par matériel et/ou logiciel spécifique :

MONITEUR DE REFERENCES :
incontournable, inviolable, prouvé correct
Sous-Système de Sécurité (S.S.S.)

ou TCB

Page 97

Sous-système
de sécurité

Utilitaires

Matrice des
droits d'accès

Moniteur de
Sujets références Objets

Fichier d'audit

Page 98
Matrice de droits d'accès
Représentation des droits d'accès sous forme d'une matrice complète :
2 une ligne pour chaque sujet si
2 une colonne pour chaque objet oi
2 la case Aij contient les droits du processus sur l'objet
3 la liste des opérations que le processus a le droit d'exécuter sur l'objet
2 la case ne contient que les droits vérifiables par le moniteur de référence

Exemple :

Fichier 1 Fichier 2 Imprimante Processus 1 Processus 2 Processus 3

Processus 1 ouvrir (l,e,x) lire,écrire se terminer tuer tuer

Processus 2 exécuter écrire se terminer

Processus 3 ouvrir (l,e) se terminer

Page 99

Evolution de la matrice de contrôle d'accès


La matrice évolue en fonction de certains événements :
• initialisation du système
• création/destruction de processus
• création/destruction d'objets
• ouverture/fermeture de fichier
• ...
Création d'un processus => ligne initialisée par le Sous-Système de Sécurité (ou TCB)
en fonction des droits de l'utilisateur pour le compte duquel s'exécute le processus.
Création d'un objet => colonne initialisée avec des droits implicites (ex.: commande
umask d'Unix).
Destruction d'un objet (ou d'un sujet) => destruction de la colonne (ou de la ligne)
correspondante.
En fonction des opérations effectuées par un sujet, les modifications de la matrice
peuvent être plus ou moins complexes et affecter :
• une case (droit du sujet pour cet objet)
• une colonne (droits des autres sujets sur le même objet; ex.: exclusion)
• une ligne (autres droits du sujet; ex.: politique de la Muraille de Chine).

Page 100
L'évolution de la matrice doit respecter la politique d'autorisation
=> La matrice de droits est un objet accessible seulement par le sous-système de
sécurité (moniteur de références + utilitaires) : si un sujet a le droit de modifier les
droits d'accès à certains objets (ex.: propriétaire de fichier Unix), il doit trans-
mettre une requête à un utilitaire du S.S.S.

Problème :

La matrice complète des droits d'accès est difficile à gérer :


" elle est trop grosse : Nb cases = Nb objets x Nb processus
" elle change trop souvent (si on respecte le principe du moindre privilège)

Page 101

Notion de domaines de sujets :


Lorsque plusieurs sujets ont les mêmes droits, on peut regrouper ces sujets en
domaines:
" matrice de droits plus simple : une ligne par domaine
" les domaines sont aussi des objets : opérations = appel, changement de droits

Fichier 1 Fichier 2 Imprimante Domaine 1 Domaine 2

Domaine 1 ouvrir (l,e,x) ouvrir (l,e) changer les


(superviseur) droits

Domaine 2 ouvrir (x) ouvrir (l,e) ouvrir (e) appel


(utilisateur)

Exemples de domaines de sujets :


" Modes maître et esclave : opérations = jeux d'instructions différents
" Dans Unix : les domaines de sujets sont définis par (uid, gid)

Page 102
Notion de domaines d'objets
(ou domaines de protection):

De la même façon, lorsque plusieurs objets ont des droits d'accès identiques pour les
mêmes sujets, on peut les regrouper en domaines de protection :

" matrice de droits simple : une colonne par domaine de protection


" les domaines sont généralement exclusifs : quand un sujet entre dans un
domaine, il perd tous les droits qu'il avait précédemment

Cette technique permet de représenter simplement les niveaux de sécurité

Page 103

Organisation des matrices de droits

" par colonnes : ACL = listes [de contrôle] d'accès {Si, <di>}
à chaque objet Oj est associée la liste des sujets Si qui ont des droits d'accès à
l'objet, et pour chacun de ces Si, la liste des droits <di> correspondants
exemple : "permissions" associées aux fichiers d'Unix

" par lignes : c-listes = listes de droits ou capacités ("capabilities") {Oj, <dj>}
à chaque sujet Si est associée la liste des objets Oj appartenant au contexte de
Si, et pour chaque Oj, la liste des droits <dj> correspondants
exemple : machines à capacités
Ces deux organisations ne sont pas exclusives : les ACL sont souvent plus statiques
(modifiées en fonction d'opérations spécifiques) alors que les c-listes sont plus
dynamiques (modifiées à chaque opération) : exemple : Multics
Note : les capacités ne doivent être manipulées que par le S.S.S. : en particulier, un
sujet ne doit pas pouvoir transmettre de droit à un autre sujet en créant ou en
copiant une c-liste (exception : dans Amœba, les capacités sont utilisées
comme des tickets d'accès directement manipulés par les sujets)
Page 104
Notion de protection à base de capacités

Principe : gérer et vérifier par matériel les droits d'accès, en se rapprochant le plus
possible du moindre privilège
À chaque processus est associée une liste de capacités matérielle.
Chaque capacité contient un descripteur de segment (adresse et longueur) et les droits
du processus sur ce segment (r,w,x)
Il existe 2 types de base (gérés par matériel) :
" les segments (de données ou de code)
" les listes de capacités
Les types construits sont réalisés sur ces types de base :
" les opérations sont des segments de code contenant des gabarits de listes
de capacités
" les données sont structurées sous forme de segments de données

Vérifications statiques à la compilation et à l'édition de liens


+ vérifications dynamiques par noyau de sécurité câblé

Page 105

Pile
Données
locales
Processus i
0 rw

1 rw Initialisation capacités

2 x

3 r Code du programme
principal
4 x
call Pi(Oj)
...

Donnnées
Mise à jour capacités d'Oj

Code de Pi

call op.(Op)

Page 106
CONCLUSIONS SUR L’APPROCHE BASEE SUR LES CAPACITES :

% Accéder à un objet consiste à exécuter le segment de code de l'opération avec


mise à jour de la liste de capacités.
% Les protections de mémoire sont une mise en œuvre simplifiée du principe de
capacités. (exemples : 80X86 $ mode protégé de l'OS, MMU Motorola)
% Protection assurée à l'exécution par matériel " efficace et rapide
% Il faut protéger les listes de capacités
" segments "préfixés" ou mémoire spécialisée
+ mode spécial pour manipuler les listes de capacités
% Le logiciel de base doit être conçu spécialement pour fournir et conserver les
protections
" complexité de mise en œuvre

% Les capacités ne sont qu'un mécanisme de base au-dessus duquel il faut tout
construire ...
% La notion de capacités « cryptographique » est reprise actuellement pour
construire des protocoles d’autorisation distribués tolérants aux intrusions.
Page 107

III.3. UN EXEMPLE TYPIQUE : UNIX


Unix a été conçu en 1969-1970 pour des très petits mini-ordinateurs (PDP7) en
mono-utilisateur (en tout cas à cette époque-là !)
" pas de matériel spécifique
$ pas de vérification câblée de la protection

Quoique fortement influencé par Multics (objets = fichiers et catalogues, droits =


r,w,x), il devait être beaucoup plus simple :
" pas d'anneau de protection
" listes d'accès limitées

L'accent a été mis sur la facilité d'utilisation ("friendly") plutôt que sur la sécurité.

Unix a connu un grand succès d'abord dans le domaine des universités et de la


recherche, et il a été porté sur un grand nombre de machines :
" portabilité $ facilité d'apprentissage
" développement industriel important

Unix est à l'origine de nombreux autres systèmes d'exploitation.

Page 108
Notion d'utilisateur et de groupe
Un utilisateur est enregistré dans le système comme appartenant à un, voire plusieurs
groupes " G1 = {U1, U2, ...Un}

Un groupe regroupe généralement les utilisateurs concernés par un même domaine,


un même projet... ; il n'y a pas de relation hiérarchique entre les groupes
" catégories

Les informations concernant les utilisateurs et les groupes sont accessibles en lecture
par un utilisateur quelconque ; la modification ne peut être effectuée que par un
utilisateur privilégié.

Il existe donc deux niveaux de privilèges :


• un utilisateur qui gère les données d'administration (super-utilisateur)
• les utilisateurs référencés dans les groupes

Le super-utilisateur est omnipotent : il a la capacité de modifier les permissions sur


un objet quelconque dans le système.

Un utilisateur ne peut modifier des informations système que par l'intermédiaire de


fonctions spécifiques " changement de niveau de privilège
Page 109

Principes de la protection dans Unix


À chaque utilisateur correspond : " un uid (identificateur d'utilisateur)
" un gid (identificateur de groupe)

À chaque fichier et chaque catalogue sont associés :


" un propriétaire (identifié par son uid) et un groupe (gid)
(éventuellement différent de celui du propriétaire)
" une liste d'accès (permissions) contenant :
$ les droits du propriétaire uid
$ les droits des utilisateurs du groupe gid
$ les droits des autres utilisateurs

Sur un fichier, les droits r,w,x correspondent aux opérations de lecture, de


modification et d'exécution.
Sur un catalogue:
" r correspond au droit de lister le catalogue
" w au droit de modifier le catalogue (créer ou détruire un fichier)
" x au droit de traverser le catalogue (chemin d'accès à un fichier)

Page 110
Manipulation des droits
La représentation des permissions sur un fichier ou un catalogue est de la forme :
<type> rwx r_x __x <nom_du_propriétaire> <groupe> <nom_du_fichier>

Les permissions associées à un objet quelconque sont déterminées a priori par les
fonctions de création des objets (ou la fonction umask) :

fichier ordinaire : éditeurs, compilateurs... $ rwx r_(x) r_(x)

catalogue : création_de_catalogue... $ rwx r_x __x

Le système de fichier est organisé sous la forme d'une arborescence de catalogues ;


les fichiers ordinaires sont les feuilles de l'arborescence

La conséquence de l'attribution implicite de la permission x sur un catalogue permet


l'accès à tout sous-arbre créé à partir du catalogue initial d'un utilisateur quelconque
$ restreindre les droits (fonctions & masques)

L'accès à un objet quelconque dans une arborescence nécessite la permission x sur


tous les catalogues appartenant à son chemin d'accès.

Page 111

Vérification des droits


Il y a un utilisateur particulier appelé super-utilisateur ("root", uid=0) qui a tous les
droits.
À chaque processus est associé unuid-gid effectif correspondant à l'utilisateur pour le
compte duquel il s'exécute. Les droits d'accès sont vérifiés lorsque le processus tente
d'ouvrir un fichier.
L'accès est autorisé si à la fois :
4 le chemin d'accès ("path") peut être parcouru
(droit x sur tous les catalogues traversés)
5 l'opération est autorisée (droit r,w ou x sur le fichier)

Il est parfois nécessaire de modifier les droits d'un processus en cours d'exécution
(analogue au changement d'anneau de Multics).
Par exemple : $ Un utilisateur U1 a le droit d'exécuter le programme P2 dont le
propriétaire est U2.
Pour s'exécuter, P2 doit accéder à un fichier F2 (propriétaire U2)
auquel U1 n'a pas accès.

Page 112
3 solutions possibles :

4 L’identité de l’utilisateur change à l'exécution de P2 :

- l'uid-effectif du processus passe de U1 à U2 (il repassera à U1 au retour de


procédure);

- pour cela, U2 doit avoir positionné le flag set-uid pour P2.

7 Le groupe de l’utilisateur change à l'exécution de P2 :

- Seul le gid-effectif du processus passe de celui de U1 à celui de U2: le flag


set-gid de P2 doit être positionné

- les droits de G2 sur F2 doivent être suffisants.

6 On passe en mode super-utilisateur avant d'appeler P2.

Page 113

Pour passer en mode super-utilisateur, 3 solutions :

4 se "loguer" comme "root"

5 exécuter la commande "su"

6 exécuter un programme dont le propriétaire est "root" et dont le flag suid est
positionné.

Pour 4 et 5, il faut connaître le mot de passe associé à "root"

La méthode 6 doit être réservée à des programmes "de confiance" et l'uid-gid du pro-
cessus est automatiquement restauré au retour du programme.

Seuls le super-utilisateur et le propriétaire peuvent changer les attributs d'un fichier


ou d'un catalogue :
" commande chmod pour changer les permissions
(liste d'accès et flags suid et sgid)
" commande chown pour changer le propriétaire
" commande chgrp pour changer le groupe

Page 114
Un exemple précis : /etc/passwd
Les utilisateurs sont enregistrés dans un fichier système bien identifié : /etc/passwd
- rw_ r__ r__ root sys /etc/passwd
Tout utilisateur a le droit de lire /etc/passwd et ne peut donc modifier directement
son mot de passe ; une fonction permet d'effectuer la modification : /bin/passwd
- rwx r_x r_x root sys /bin/passwd
Avec les permissions mentionnées ci-dessus, l'exécution de /bin/passwd s'effectue
dans le contexte d'un utilisateur et à son niveau de privilège $ échec
Seul le propriétaire de l'objet peut effectuer une opération d'écriture

utilisateur super-utilisateur
U1 U2
/bin/passwd write
(new_passwd) (new_passwd)
P2 /etc/passwd F2
- rws r_x r_x root sys /bin/passwd

Page 115

Application du principe du moindre privilège


Résumé de la méthode de changement de niveau de privilège :
8 pour accéder à un fichier, il faut avoir le droit x sur tous les catalogues du
chemin d’accès
5 si suid (sgid) positionné pour un programme alors
uid(gid)_effectif après appel := uid(gid) du programme
9 si uid-effectif = uid du fichier (ou catalogue)
alors autorisation d’accès en fonction des droits du propriétaire
sinon si gid-effectif = gid du fichier (ou catalogue)
alors autorisation en fonction des droits du groupe
sinon autorisation en fonction des droits des autres

La démarche renforçant la règle du moindre privilège :


8 tout fichier de données protégées ne peut être accédé qu'au travers de
fonctions $ notion de typage, notion d'objet
5 les permissions d'exécution des fonctions d'accès doivent être attribuées
explicitement
9 les permissions d'accès aux données sont exclusives
$ le propriétaire est seul autorisé à accéder directement aux données

2 La notion d'objet permet de renforcer l'intégrité des données manipulées


Page 116
Autres aspects de la sécurité dans Unix

% Authentification des utilisateurs


Au "login", l'utilisateur doit taper son nom et son mot-de-passe (8 caractères
significatifs). Le mot-de-passe est alors "crypté" (chiffré par une fonction à sens
unique) par le système et comparé au mot-de-passe crypté enregistré pour cet
utilisateur.
Le nom en clair de chaque utilisateur et le mot-de-passe associé (crypté) sont
enregistrés dans un fichier (/etc/passwd) qui est accessible en lecture par tous les
utilisateurs !!! (en écriture, accessible seulement par "root").
Ceci est possible grâce à l'efficacité de la fonction de chiffrement non-inversible
(fonction à sens unique, basée sur le DES), quoiqu'unique pour tous les Unix.

% Service de chiffrement de fichier


Il existe un commande crypt de chiffrement de fichier. L'algorithme est inver-
sible, basé sur l'Enigma ("rotor machine").
Cette fonction n'est pas disponible sur tous les Unix (limitations à l'exportation
hors des USA).
Il existe aussi parfois une fonction plus “solide” basée sur le DES : des(1),
des_crypt(3), cbc_crypt(), ebc_crypt(), ...
Page 117

Les "faiblesses" d'Unix

Unix n'a pas une bonne réputation pour ce qui concerne la sécurité.

Ceci est dû à :

" une utilisation trop laxiste des mécanismes de sécurité dans certaines
installations (parfois justifiée par la petite taille des systèmes, par exemple
pour les ordinateurs personnels)
" un grand nombre d'installations dans des zones où le piratage est considéré
comme un sport (universités)

" une conception non-homogène de certains utilitaires

Pourtant, si les utilisateurs et les administrateurs de système l'utilisent correctement, il


est possible d'atteindre un bon niveau de sécurité.

Page 118
Principales failles possibles
% Sécurité des mots-de-passe :
Le cryptage des mots-de-passe est conçu pour résister efficacement aux attaques
systématiques (essais de toutes les combinaisons), même en utilisant un DES
câblé.
Mais le choix du mot de passe par l'utilisateur peut être malencontreux, rendant
très efficaces les attaques par dictionnaire.
2 rendre /etc/passwd inaccessible
(au moins le champ des mots-de-passe cryptés -> shadows)
2 supprimer les champs de commentaires dans /etc/passwd
2 refuser les mots-de-passe trop simples (comparaison à un dictionnaire)
2 éduquer les utilisateurs
2 [mots-de-passe générés aléatoirement, durée de validité, ...]
% Droits d'accès aux fichiers trop libéraux :
Exemple : le droit w sur un catalogue est pratiquement équivalent au droit w sur
tous les fichiers du catalogue, puisqu'on peut les détruire et les
remplacer par d'autres versions !
2 réduire les droits implicites ("umask")
2 éduquer les utilisateurs

Page 119

% Accès physiques à la mémoire et aux disques (et montage de volumes)


2 protection physique et/ou matérielle
2 droits sur /dev/disc, /dev/mem, /dev/kmem
2 débogueur symbolique
2 restrictions au montage de volume, restauration, sauvegarde

% Flag set-uid :
Exemple 1 : un pirate crée un programme, positionne le flag suid et change de
propriétaire (chown) :
ça ne marche pas :"chown" remet à zéro le flag suid
Exemple 2 : un pirate qui réussit un jour à devenir super-utilisateur crée un
cheval de Troie (login, crypt, telnet, ps, ...)
2 [restreindre "chown" au super-utilisateur]
2 "faire le ménage" parmi les fichiers appartenant à "root" avec le flag suid
positionné
2 les catalogues systèmes ne doivent pas avoir de droits r,w (sauf pour
"root")
2 si le flag suid est positionné, le fichier ne doit pas être accessible en
écriture
2 supprimer la commande "su" et le "login" sous root, bin, adm, ...
" attention aux droits de certains utilitaires : ex. mail (shell)
Page 120
% Déguisements et chevaux de Troie :
Exemples : login, ls, su, crypt, passwd, telnet, ftp, cu, ...
2 éduquer les utilisateurs (ex: PATH commençant par /bin et /usr/bin)
2 sécurisation du login : .secure, message d'information, fichier "logcheck"
2 interdire l’écriture et aussi la lecture de .profile, .exrc, ...
2 rendre obligatoire "/bin/su" au lieu de "su"
" attention à "IFS"

% Réseaux (uucp, réseaux locaux, InterNet, ...)


Sur la plupart des réseaux, on peut faire beaucoup de choses sur un site dont on
n'est même pas utilisateur !
Il faut se méfier des machines qu'on ne contrôle pas et sur lesquelles il pourrait y
avoir des "chevaux de Troie" (ex: "telnet")
2 Des conventions de sécurité devraient être établies entre les administra-
teurs de toutes les machines du réseau
("Administrateurs de toutes les machines, unissez-vous !")
2 Les serveurs ne doivent pas être accessibles en "login" depuis le réseau
utiliser des shells réduits (ex: ftp)
Page 121

Exemple de déguisement
Le programme suivant simule l'exécution du login :
stty echo # écho sur le terminal
echo -n "login: "
read x # saisie du nom de login
stty -echo # pas d'écho sur le terminal
echo -n "Password: "
read y # saisie du mot de passe
echo " "
stty echo
echo $x $y >> fichier # sauvegarde du nom et du mdp
sleep 1
echo Sorry # affichage du "refus de connexion"
logout

Page 122
% Fichiers chiffrés :
Il existe des outils (cbw) pour décrypter les fichiers chiffrés par crypt !
2 prétraiter le texte en clair (ex: "pack")
2 chiffrer la clé (ex: "makekey")

% Fichiers temporaires :
Les catalogues /tmp et /usr/tmp sont en r,w pour tout utilisateur.
2 mettre umask à 077
2 utiliser les options de chiffrement sur les éditeurs (ex: vi -x)

% Terminaux "intelligents" :
Sur certains types de terminaux (ex: WYSE 75), il est possible d'envoyer des
messages (par mail ou write) qui verrouillent le terminal et transmettent à
l'ordinateur une commande pour le compte de l'utilisateur logué sur le terminal !
2 mettre un filtre sur la lecture du mail
2 remplacer write par d'autres utilitaires de messagerie

Page 123

% "Fausses" parades

" Trace des "su"

" Durée de validité des mots-de-passe


" Trace des échecs au "login"

" Détruire les utilisateurs sur échecs de "login"

% Vraies parades

" Former les administrateurs aux problèmes de sécurité

" Ne pas donner trop de responsabilités aux gens non-compétents

" Éduquer les utilisateurs et les sensibiliser aux problèmes de sécurité

2 Livres de recettes ("cook-books"), fiches de cuisine …

2 Outils automatiques de sécurité : COPS, Crack, Tripwire, CAS/ASA, ...

Page 124
Minimum de précautions
• Mots-de-passe :
- un utilisateur, un compte, un mot-de-passe
- tous les comptes doivent avoir un mot-de-passe (exceptions : comptes
systèmes Unix : mots-de-passe verrouillés)
- pas de mot-de-passe évident (attention à l'initialisation)
- expliquer aux utilisateurs comment changer leur mot-de-passe
- ne pas utiliser le même mot-de-passe sur différentes machines (stables, pas la
même sécurité), ni pour différents privilèges
- protection des mots-de-passe
- test automatique et périodique de la validité des mots-de-passe
- changement périodique ?
• Installation du système, installation de nouveaux logiciels, maintenance :
attention aux comptes standard, aux droits exagérés, (télémaintenance), ...
• Sauvegardes périodiques

• Vérification périodique : modifications, droits exagérés, failles connues

Page 125

Chapitre IV : NOTIONS DE TOLERANCE AUX INTRUSIONS

Approche de Saturne-Delta4 :
• Service de sécurité
réparti, tolérant les
intrusions,
responsable de
l'authentification et
de l'autorisation
• Pas de confiance
dans les stations ni
dans les serveurs
(individuellement),
ni dans leurs
administrateurs (ou
officiers de sécurité)

Page 126
NOTION DE TOLERANCE AUX INTRUSIONS

Problématique
• Garantir l’intégrité et la confidentialité de l’information
• La redondance est une entrave à la garantie de ces propriétés
L’idée
• Fragmenter l’information de façon à produire des fragments non significatifs (non-
confidentiel)
• Disperser l’information de façon redondante sur un réseau de calculateurs
Application
• À la messagerie: fragmenter et router les fragments par des liens différents
(fragmentation des communications de Koga)
• Aux clés: fragmenter les clés de façon à ce qu’un sous-ensemble seulement soit
nécessaire pour reconstruire une clé secrète (notion de schémas à seuil de Shamir)
• Aux fichiers, à la gestion des autorisations, aux traitements (notion de
Fragmentation-Redondance-Dissémination)

Page 127

SCHEMAS A SEUIL DE SHAMIR

• Le problème :
— stockage de clés secrètes $ confidentialité, disponibilité

• Une solution qui n’est est pas une!


— plusieurs zone protégées dans lesquelles on réplique la clé
" violation d’une zone $ perte du secret

• L’idée des schémas à seuil:


— Stocker K sous la forme d’un ensemble de valeur Ki (appelées images), telles
que:
» S images permettent de reconstruire le secret
» S-1 images n’apportent aucune information
— Si l’on sait générer N images, avec N>S alors, N-S images peuvent être
perdues

Page 128
SCHEMAS A SEUIL DE SHAMIR

y4
y3
y
2
y
1
y0

x0 x1 x2 x3 x4
" y = a x + b = P(x)
» y0 = a x0 + b
» y1 = a x1 + b
•••
» yn = a xn + b
Posons a, b secrets et x1, x2,… xn fixés
• Généralisation $ polynôme de degré S: Interpolation polynomiale de Lagrange

Page 129

FRAGMENTATION DE FICHIERS

Fragmentation Réplication Dissémination

Chiffrement

Nommage •

Fichier Fragments
Site utilisateur
Réseau à diffusion
Sites d'archivage

Page 130
AUTHENTIFICATION

Vote
Site de Site de Site de
sécurité sécurité sécurité

Page 131

AUTORISATION

Serveur de Sécurité

Site de Site de Site de


sécurité sécurité sécurité

(1) REQUETE (2) VOTE


(3) TICKET
UTILISATEUR (5) TICKET
SERVEUR
(4) AUTHENTIFIEUR
DE SESSION

Serveur Sécurisé
(6) SESSION

Page 132
Direction centrale de la sécurité des systèmes d'information dans
l'organisation de la sécurité des systèmes d'information

Page 133

Vous aimerez peut-être aussi