Title: Chapitre 7 : Scurit
1Chapitre 7 Sécurité
- Introduction de la sécurité dans les systèmes
distribués - Survol des techniques de sécurité, dalgorithmes
de cryptographie et de signatures numériques
2Thèmes
- Menaces et Formes dattaques
- Cryptographie et Notations utilisées
- Survol des Techniques de Sécurité
- Algorithmes de Cryptographie
- Comparaison de Performance
3Introduction (1)
- Objectifs dapprentissage
- Modèle de sécurité Types de menaces
- Principales techniques de Cryptographie
- Secret, Authentification, Certificats et preuve
dauthentification (credential) et Contrôle
daccès - Algorithme dencryptage symétrique et asymétrique
- Signatures numériques
- Approches de conception de systèmes sécuritaires
4Introduction (2)
- Révision du Chapitre 2 Objets et principaux
Object
invocation
Client
Server
result
Network
- Objet (ou ressource)
- Mailbox, système de fichiers, partie dun site
WEB commercial - Principal
- Utilisateur ou processus ayant lautorité
(droits) dexécuter des actions - Identité du principal est importante
5Introduction (3)
- Révision du Chapitre 2 (suite) Lennemi
- Attaques
- Sur les applications qui traitent les
transactions financières ou autres informations
dont la sécurité ou lintégrité est cruciale - Ennemi (ou adversaire)
- Menaces
- Aux processus, aux canaux de communication, deni
de service
6Introduction (4)
- Révision du Chapitre 2 (suite) Canaux
sécuritaires
- Propriétés
- Chaque processus est sûr de lidentité de lautre
- Données sont privées et protégées contre la
falsification - Protection contre la répétition et
re-ordonnancement des données - Utilise la cryptographie
- Secret basé sur la dissimulation par
cryptographie - Authentification basée sur des preuves de
possession des secrets
7Menaces et Formes dattaques (1)
- Espionnage (Eavesdropping)
- Obtenir une information secrète ou privée
- Personnification (Masquerading)
- réception ou envoi de messages en utilisant
lidentité dun autre - Falsification (Tampering)
- Modification non autorisée dinformation en
transite - Exemple attaque dite man in the middle
- Retransmission (Replaying)
- Stockage et retransmission à une date ultérieure
dun message - Déni de service (Denial of service)
- innonder un canal ou toute autre ressource, niant
l'accès à d'autres
8Menaces et Formes dattaques (2)
- Menaces non défaites par des canaux sécurisés ou
autres techniques de cryptographie
- Attaques déni de service
- Utilisation excessive de ressources afin de les
rendre indisponibles aux autres utilisateurs - Exemple the Internet 'IP spoofing' attack,
Février 2000 - Chevaux de Troie (Trojan horses) et autres virus
- Virus peut entrer dans un ordinateur seulement si
un programme est importé - Mais les usagers ont besoin de nouveaux
programmes, par exemple - Nouvelle installation de logiciels
- Code mobile téléchargé dynamiquement par des
logiciels existant (e.g. applets Java) - Exécution accidentelle de programmes transmis
clandestinement - Défenses authentification de code (code signé),
validation de code (vérification de type,
démonstration), confinement (sandboxing).
9IP Spoofing DoS attack (Février 2000)
Untrue!
Compromised host on each local network sends
repeatedly (for all i)
Echo request source x.x.x.x destination
n.n.n.i
Echo reply
source
n.n.n.i
destination x.x.x.x
resulting in
10Cryptographie (1)
- Encryptage processus dencodage dun message
afin de cacher son contenue
11Cryptographie (2)
- Cryptographie moderne inclut plusieurs
algorithmes sécuritaires pour encrypter et
décrypter - Tous basé sur lutilisation de secrets appelés
clés - Deux principales classes dalgorithmes
dencryptage - Clés secrètes partagées Émetteur et récepteur
doivent partager la connaissance dune clé qui ne
doit être révélée à aucune autre personne - Paires de clés publique/privée
- Émetteur dun message utilise une clé publique
(une qui est a été publiée par le récepteur) pour
encrypter le message - Récepteur utilise la clé privée correspondante
pour décrypter le message
12Notations
Alice
First participant
Bob
Second participant
Carol
Participant in three- and four-party protocols
Dave
Participant in four-party protocols
Eve
Eavesdropper
Mallory
Malicious attacker
Sara
A server
KA
Alices secret key
KB
Bobs secret key
KAB
Secret key shared between Alice and Bob
KApriv
Alices private key (known only to Alice)
KApub
Alices public key (published by Alice for all to
read)
M
Message
M
encrypted with key
K
K
M
Message
M
signed with key
K
K
13Scénario 1 Communication Secrète avec une Clé
partagée (1)
- Alice et Bob partage une clé secrète KAB.
- Alice utilise KAB et une fonction dencryptage
E(KAB, M) pour encrypter et envoi nimporte
messages MiKAB à Bob. - Bob lit les messages encryptés utilisant la
fonction de décryptage correspondante D(KAB, M). - Alice et Bob peuvent utiliser KAB autant que
possible tant que aussi longtemps qu'ils sont sûr
que KAB n'a pas été compromise.
- Problèmes
- Distribution de clés Comment Alice peut envoyer
une clé partagée KAB à Bob de façon sécuritaire ? - Fraîcheur de la communication Comment Bob
peut-il savoir que Mi nest pas une copie dun
message dAlice encrypté plus tôt qui a été copié
par Mallory et retransmis plus tard ?
14Scénario 2 Communication Authentiquée avec un
Serveur (2)
- Bob est un serveur de fichiers Sara est un
service dauthentification. Sara partage une clé
secrète KA avec Alice et une autre KB avec Bob. - Alice envoi un message (non encrypté) à Sara
indiquant son identité et demandant un ticket
pour accéder à Bob. ? - Sara envoi une réponse à Alice. TicketKB,
KABKA. Il est encryptée avec KA et consiste en
un ticket (qui sera envoyé à Bob avec chaque
requête daccès à un fichier) encrypté avec KB et
une nouvelle clé secrète KAB. - Alice utilise KA pour décrypter la réponse.
- Alice envoi à Bob une requête R pour accéder à un
fichier TicketKB, Alice, R. - Ticket KAB, AliceKB. Bob utilise KB pour le
décrypter, vérifie que le nom dAlice est le bon,
ensuite il encrypte les réponses pour Alice avec
KAB.
Un ticket est un item encrypté contenant
lidentité du principal à qui il est issu, ainsi
quune clé partagée pour une session de
communication.
15Scénario 2 Communication Authentiquée avec un
Serveur (3)
- Cest version simplifiée du protocole de Needham
et Schroeder (et Kerberos). - Problèmes de temporisation et de retransmission
adressés dans N-S et Kerberos. - Non convenable pour le e-commerce parce que le
service dauthentification ne peut pas supporter
plusieurs utilisateurs
16Scénario 3 Communication Authentiquée avec Clés
Publiques (4)
- Bob a une paire de clés publique/privée ltKBpub,
KBprivgt - Alice obtient un certificat qui est signé par une
autorité de confiance mentionnant la clé publique
de Bob KBpub - Alice crée une nouvelle clé partagée KAB ,
lencrypte avec KBpub moyennant un algorithme
clé-publique et envoi le résultat ltkeyname,
KABKBpubgt à Bob. - 3. Bob utilise la clé privée correspondante
KBpriv pour le décrypter. - (Sils veulent sassurer que le message na pas
été falsifié, Alice peut ajouter une valeur
connue par par les deux, que Bob peut vérifier.)
- Mallory peut intercepter la requête initiale
dAlice à un service de distribution de clé pour
obtenir un certificat de la clé publique de Bob
et envoi une réponse contenant sa propre clé
publique. Il peut ensuite intercepter les
messages subséquents.
17Scénario 4 Signatures Numériques avec une
Fonction Digest Sécuritaire (5)
- Alice désire publier un document M de telle
manière que tout autre usager peut vérifier que
ce document provient delle. - Alice calcule une empreinte (digest) de longueur
fixe du document Digest(M). - Alice encrypte lempreinte avec sa clé privée,
lajoute à M et rend le document signé résultant
(M, Digest(M)KApriv) disponible aux usagers
prévus. - Bob obtient le document signé, extrait M et
calcule Digest(M). - Bob utilise la clé publique dAlice pour
décrypter Digest(M)KApriv et le compare avec
lempreinte quil a calculé. Si elles
coïncident, la signature dAlice est vérifiée.
18Certificats (1)
- Certificat Document signé par une autorité
compétente. - Certificats nécessitent
- Un format standard convenu
- Accord sur la construction des chaînes de la
confiance - dates dexpiration, de sorte que les certificats
puissent être retirés - Format du certificat de X509
S
u
b
jec
t
D
i
s
t
i
n
g
u
is
he
d N
a
m
e,
Pu
b
l
ic
K
e
y
Iss
ue
r
D
i
s
t
i
n
g
u
is
he
d N
a
m
e,
Si
g
n
at
u
r
e
Pe
ri
o
d
o
f
v
a
li
d
i
t
y
N
o
t
Be
f
o
r
e
Da
t
e,
No
t
A
f
t
e
r
D
ate
A
d
m
i
ni
str
a
t
ive
i
n
fo
rma
ti
o
n
V
er
si
o
n
,
S
e
r
i
a
l
N
u
mb
e
r
Ex
t
en
d
e
d
I
n
f
or
m
a
t
i
o
n
19Certificats (2)
Certificat du compte bancaire dAlice
1.
Certificate type
Account number
2.
Name
Alice
3.
Account
6262626
4.
Certifying authority
Bobs Bank
5.
Signature
Certificat de la clé publique pour la banque de
Bob
1.
Certificate type
Public key
2.
Name
Bobs Bank
3.
Public key
KBpub
4.
Certifying authority
Fred The Bankers Federation
5.
Signature
20Certificats (3)
- Certificats peuvent jouer le rôle de preuves
dauthentification (credentials) - Évidence du droit dun principal daccéder à une
ressource - Les deux certificats ci-dessous peuvent être
considérées comme preuves dauthentification pour
Alice pour gérer son compte de banque - Elle aura besoin dajouter le certificat de sa
clé publique
21Certificats (4)
Alices bank account certificate
1.
Certificate type
Account number
2.
Name
Alice
3.
Account
6262626
4.
Certifying authority
Bobs Bank
5.
Signature
Digest(field 2 field 3)
KBpriv
Public-key certificate for Bob's Bank
1.
Certificate type
Public key
2.
Name
Bobs Bank
3.
Public key
KBpub
4.
Certifying authority
Fred The Bankers Federation
5.
Signature
22Contrôle dAccès
- Domaine de protection
- Un ensemble de paires ltressource, droitsgt
- Deux principales approches dimplémentation
- Liste de contrôle daccès (LCA) associée avec
chaque objet - E.g. permissions daccès aux fichiers dUnix ?
- Pour types dobjets plus complexes et de grandes
communautés dusagers, LCAs peuvent devenir très
complexe - Capacités associées avec les principaux
- Comme une clé
- Format ltid de la ressource, opérations
permises, code dauthentificationgt - Doit être incassable
- Problèmes Personnification, difficulté
dannulation
drwxr-xr-x gfc22 staff 264 Oct 30 1657
Acrobat User Data -rw-r--r-- gfc22 unknown
0 Nov 1 0934 Eudora Folder -rw-r--r-- gfc22
staff 163945 Oct 24 0016 Preview of xx.pdf
23Délégation
- Considérer un serveur qui imprime des fichiers
- Inutile de copier les fichiers, devrait accéder
aux fichiers de lutilisateur - Donner au serveur des droits restreints et
provisoires d'accéder aux dossiers protégés - Peut utiliser un certificat de délégation ou une
capacité - Un certificat de délégation est une requête
signée autorisant un autre principal daccéder à
une ressource de façon restreinte. - Service de sécurité de CORBA supporte les
certificats de délégation. - Une capacité est une clé permettant au détenteur
daccéder une ou plusieurs opérations supportées
par une ressource. - La restriction temporelle peut être atteinte en
ajoutant des délais dexpiration.
24Algorithmes de Cryptographie (1)
Message M, clé K, fonctions dencryptage E, D
publiées
- Symétrique (clé secrète)
- E(K, M) MK D(K, E(K, M)) M
- Même clé pour E et D
- M doit être difficile de calculer si K est
inconnue. - Forme dattaque la plus commune (brute-force)
essayer toutes les clés possibles pour une paire
connue M, MK. Solution rendre K largement
grande 128 bits
25Algorithmes de Cryptographie (2)
- Asymétrique (clé publique)
- Clés dencryptage et de décryptage séparées
Ke, Kd - D(Kd. E(Ke, M)) M
- Dépend de lutilisation dune fonction à sens
unique (trap-door function) pour créer les clés.
E a un coût élevé de calcul. Clés très grande gt
512 bits - Protocoles hybrides utilisé dans SSL
(maintenant appelé TLS) - Utilisent crypto asymétrique pour transmettre la
clé symétrique qui est utilisée ensuite pour
encrypter une session.
26Blocs Cipher, Chaînage et Ciphers de Flux
- Plus part des algorithmes fonctionne avec des
blocks de 64-bits. - Faiblesse dun simple bloc cipher - chaînes
répétées peuvent être détectées.
27Algorithmes dEncryptage Symétriques
- Ceux sont des programmes qui exécutent les
opérations de confusion et de diffusion sur des
blocs de données binaires - TEA un algorithme simple et efficace développé à
lU de Cambridge (1994) pour lenseignement et
lexplication. 128-bit key, 700 kbytes/sec - DES Standard dEncryptage des données des É.U
(1977). Nest plus sécure dans sa forme originale
56-bit key, 350 kbytes/sec. - Triple-DES applique DES trois fois avec deux
différentes clés. 112-bit key, 120 Kbytes/sec - IDEA International Data Encryption Algorithm
(1990). Ressemble à TEA. 128-bit key, 700
kbytes/sec - AES Un Standard dEncryptage Avancé des É.U
(1997). 128/256-bit key. - Il y a plusieurs autres algorithmes efficaces.
- Les vitesses ci-dessus sont pour un Pentium II à
330 MHZ. PC daujourdhui (Janvier 2002) sont 5
fois plus rapide.
28Fonction dEncryptage de TEA
clé 4 x 32 bits
plaintext et résultat 2 x 32
void encrypt(unsigned long k, unsigned long
text) unsigned long y text0, z
text1 unsigned long delta 0x9e3779b9, sum
0 int n for (n 0 n lt 32 n) sum
delta y ((z ltlt 4) k0) (zsum) ((z
gtgt 5) k1) 5 z ((y ltlt 4) k2)
(ysum) ((y gtgt 5) k3)
6 text0 y text1 z
OR Exclusive
Décalage logique
- Lignes 5 6 assure la confusion (XOR de texte
décalé)et diffusion (décalage et commutation)
29Fonction de Décryptage de TEA
void decrypt(unsigned long k, unsigned long
text) unsigned long y text0, z
text1 unsigned long delta 0x9e3779b9, sum
delta ltlt 5 int n for (n 0 n lt 32 n)
z - ((y ltlt 4) k2) (y sum) ((y gtgt
5) k3) y - ((z ltlt 4) k0) (z sum)
((z gtgt 5) k1) sum - delta text0
y text1 z
30Exemple dUtilisation de TEA
void tea(char mode, FILE infile, FILE outfile,
unsigned long k) / mode is e for encrypt,
d for decrypt, k is the key./ char ch,
Text8 int i while(!feof(infile)) i
fread(Text, 1, 8, infile) / read 8
bytes from infile into Text / if (i lt 0)
break while (i lt 8) Texti ' ' /
pad last block with spaces / switch (mode)
case 'e' encrypt(k, (unsigned long)
Text) break case 'd' decrypt(k, (unsigned
long) Text) break fwrite(Text, 1, 8,
outfile) / write 8 bytes from Text to
outfile /
31Algorithmes dEncryptage Asymétriques (1)
- Dépendent de lutilisation de fonctions à sens
unique avec brèches secrètes - Fonction à brèche secrète fonction à sens
unique avec une sortie secrète - e.g. produit de
deux grand nombres facile à multiplier, très
difficile de factoriser.
32Algorithmes dEncryptage Asymétriques (2)
- RSA premier algorithme pratique (Rivest, Shamir
et Adelman 1978) - Reste encore le plus fréquemment utilisé
- Longeur de la clé est variable, 512-2048 bits
- Vitesse 1-7 kbytes/sec. (350 MHz PII)
- Courbe Elliptique une méthode récemment
développée, plus courtes clés et plus rapide. - Algorithmes asymétriques sont 1000 x plus lents
et ne sont pas pratiques pour lencryptage de
volume de donnés, mais leur autres propriétés les
rendent idéaux pour la distribution de clé et
lauthentification.
33Encryptage avec RSA (1)
Pour trouver une paire de clés e, d 1. Choisir
deux grands nombres premiers, P et Q (chacun plus
grand que 10100), et forme N P Q Z
(P1) (Q1) 2. Pour d choisir un nombre qui
relativement premier avec Z (i.e., tel que d na
aucun facteurs communs avec Z). On illustre les
calculs impliqués sur des petits entiers pour P
et Q P 13, Q 17 gt N 221, Z 192
d 5
34Encryptage avec RSA (2)
3. Pour trouver e résoudre léquation e d
1 mod Z Cest-à-dire, e d est le plus petit
élément divisible par d dans la série Z1, 2Z1,
3Z1, ... . e d 1 mod 192 1, 193,
385, ... 385 est divisible par d e 385/5
77
- Pour encrypter un texte utilisant la méthode RSA,
le texte original est divisé en des blocks de
même taille de longueur k bits où 2k lt N - (i.e., telle que la valeur numérique du bloc est
toujours inférieur à N dans les applications
pratiques, k est toujours dans lintervalle 512 à
1024). - k 7, puisque 27 128
35Encryptage avec RSA (3)
- La fonction pour encrypter un seul bloc du
message M est - E'(e,N,M) Me mod N
- pour un message M, le ciphertext est M77 mod
221 - La fonction de décryptage du bloc du texte
encrypté c pour produire le bloc plaintext
original est - D'(d,N,c) cd mod N
- Rivest, Shamir et Adelman ont montré que E' et D'
sont mutuellement inverse (i.e., E'(D'(x))
D'(E'(x)) x) pour toute valeur de P, où 0 P
N. - Les deux paramètres e,N peuvent être considérés
comme une clé de la fonction dencryptage, et d,N
représente une fonction de décryptage. - On peut donc écrire Ke lte,Ngt et Kd ltd,Ngt, et
la fonction dencryptage est - E(Ke, M) MK and D(Kd, MK ) M.
- (la notation ici indique que le message encrypté
peut être déchiffré seulement par le détenteur de
la clé privé Kd)
36Signatures Numériques
- Besoins
- Pour authentifier les fichiers, ainsi que les
messages - Pour se protéger contre le contrefaçon
- Pour empêcher le signataire de nier un document
signé (niant leur responsabilité) - Encryptage dun document avec une clé secrète
constitue une signature - Ne peut exécuter par d'autres sans connaissance
de la clé - Authentification forte du document
- Forte protection contre le contrefaçon
- faiblesse contre le reniement (repudiation) (le
signataire pourrait réclamer la clef a été
compromis)
37Fonctions de Hachage Sécuritaires (1)
- Encrypter le texte dun document résulte en une
longue signature non pratique - On encrypte donc à la place une empreinte
sécuritaire (secure digest) - Une fonction de hachage sécuritaire (digest
function) calcule une valeur de hachage de
longueur fixe H(M) qui caractérise le document M - H(M) doit être
- Rapide à calculer
- Difficile à inverser difficile de calculer M
étant donné H(M) - Difficile à défaire dans toute forme de lattaque
dite de lanniversaire
38Fonctions de Hachage Sécuritaires (2)
- MD5 Développé par Rivest (1992). Calcule une
empreinte (digest) de 128 bits. Vitesse 1740
Koctets/sec. - SHA (1995) basé sur MD4 de Rivest mais rendu
plus sécuritaire en produisant une empreinte de
160 bits, vitesse 750 koctets/sec. - Tout algorithme dencryptage symétrique peut être
utilisé dans le mode CBC (cipher block chaining).
Le dernier bloc dans la chaîne est H(M)
39Signatures Numériques avec des Clés Publiques
Signature
Vérification
40MACs Signatures à Faible Coût avec Clé
Partagée Secrète
MAC Message Authentication Code
Signature
Signer et vérifier une clé secrète partagée K
Vérification
41Performance des Algorithmes dEncryptage et Ceux
de Hachage Sécuritaire
Taille de clé
Vitesse optimisée de PRB
Algorithme
Vitesse
(bits)
Extrapolée
(Koctets/sec.)
(Koctets/sec.)
TEA
128
700
-
Clé Secrète
DES
56
350
7746
Triple-DES
112
120
2842
IDEA
128
700
4469
RSA
512
7
-
Clé Publique
RSA
2048
1
-
Empreinte (Digest)
MD5
128
1740
62425
SHA
160
750
25162
PRB Preneel, Rijmen and Bosselaers Preneel
1998
Vitesses sont pour un Pentium II à 330 MHZ