Réalisé par : JEBRI Elies Enseignant Technologue ISET Nabeul

Transcription

Réalisé par : JEBRI Elies Enseignant Technologue ISET Nabeul
Réalisé par : JEBRI Elies
Enseignant Technologue
ISET Nabeul
Chapitre 1
Introduction
Un des progrès les plus importants en informatique et en télécommunications ces dernières
années est le fait de pouvoir mettre en réseau des éléments informatiques et matériels hétéroclites
développes indépendamment les uns des autres, et pouvant être combines a volonté pour fourni
un service personnalisé a leurs utilisateurs. La complexité totale des ces systèmes inter-connectes
est devenue telle q u e l est d if f ic i l e de maîtriser leurs aspects de sécurité.
Beaucoup d e o y h r t s sont investis pour développer des éléments qui remplissent
correctement leur fonction. I l est plus facile de vérifier q u ' u n élément fasse bien ce q u ’ i l doit
faire que de vérifier q u ’ i l ne fasse pas ce q u ’ i l ne doit pas faire. Ceci devient quasiment
impossible lorsqu on combine les éléments pour faire des systèmes interconnectes comme nous
les utilisons quotidiennement. D u n e part, l’utilisation particulière d ' u n élément isole peut
paraître originale mais acceptable alors quelle représente un risque de sécurité pour un autre
élément. D’autre part, la combinaison de deux éléments sans failles peut résulter en un système
combine qui en possède.
Le but de ce cours est de montrer les mécanismes par lesquels les systèmes en réseau peuvent
être attaques et de décrire les moyens pour éviter les attaques, estimer et limiter les risques.
Ces moyens peuvent être techniques, stratégiques, humains, ou encore réglementaires.
Ce cours ne s’adresse pas aux pirates en devenir (ils n ' y apprendront probablement rien de
nouveau). I l représente un cours de base pour les ingénieurs en informatique ou en télécommunications qui veulent s’atteler aux problèmes de sécurité des systèmes en réseau. L
cours s’adresse aussi a tous les ingénieurs qui ne veulent pas spécifiquement travailler dans le
domaine de la sécurité mais qui souhaitent avoir une connaissance de base leur permettant de ne
pas être le source de problèmes de sécurité dans leur activité (développement, conception et
opération de systèmes en réseau). En e f f e t , si tous les concepteurs et développeurs de
systèmes informatiques étaient sensibilises aux problèmes de sécurité, i l y aurait beaucoup
moins de vulnérabilités et de piratage.
1.1 Quelques c h i f f r e s actuels
1
Chaque année, le Computer Security Institute a San Francisco effectue un sondage en
collaboration avec le FBI. Des questionnaires sont envoyées a des centaines de grandes
entreprises aux Etats-Unis. Voici quelques chiffres représentatifs du sondage pour l'année 2002:
− 90% des sondes ont déclare avoir eu des incidents de sécurité informatique dans les
douze derniers mois.
− 80% ont avoue en avoir subi des pertes financières.
1. http://www.gocsi.com
2
Introduction
− 44% étaient capables et d’accord de chiffrer ces pertes. La moyenne des pertes
annoncée était de 2 millions de dollars.
− Les pertes les plus importantes étaient dues au vol d’informations propriétaires et a l
fraude financière.
Ces chiffres démontrent que les problèmes de sécurité informatique sont réels et q u ' i l s on
des conséquences importantes.
1.2 Petit historique de problèmes de sécurité
Voici une sélection de problèmes de sécurité, a n illustré les différentes facettes de ce
problèmes
La légende de Kevin M i t n i c k Le pirate le plus médiatisé est sans aucun doute Kevin Mitnick.
Ses activités ont été contées dans au moins trois livres et un lm. La partie la plus classique de
son histoire est l’attaque q u ’ i l a menée contre les ordinateurs de Tsutomu Shimo mura,
spécialiste en sécurité au San Diego Supercomputing Center, pour lui voler des logiciels qui
devaient lui permettre de pirater des réseaux de téléphonie cellulaire. Suite a cette attaque le jour
de Noël 1994, Shimomura a collabore avec le FBI a l'enquête qui a mené a l'arrestation de
Mitnick le 15 février 1995. Lors de leur première rencontre, devant un juge, suite a son arrestation, Kevin Mitnick aurait dit Tsutomu, I respect your sk ills . C’est cette bataille entre l
b o n n e t le méchant pirate qui rend cette histoire si populaire. Pendant ses 15 ans de carrière
Mitnick a réussi a pénétrer dans de nombreux systèmes téléphoniques et informatiques. Ses don
principaux étaient le social engineering, par exemple sa capacité à obtenir des information
confidentielles par téléphone en se faisant passer pour un technicien, et son habilité à échapper
à la police.
Les dénis de service distribues Le 7 février 2000, un des serveurs web de Yahoo est inondé
d ’ u n raz de marrée de t r a c atteignant jusqu a 1 Gbps, d’une durée de trois heur Les jours
suivants des serveurs de buy.com, ebay, cnn.com, amazon.com, ZDNet, E*Trade et Microsoft
sont inatteignables pendant des périodes de quelques heures. Le 16 février un pirate nomme
Maaboy est suspecte d'avoir lance ces attaques. En e f f e t , le FBI a découvert dans le logs
d ' u n site de discussion q u ' u n dénommé Maaboy demandait des propositions de sites
attaquer et que ces sites étaient réellement attaques suite aux propositions faites. Le 15 avril un
jeune Canadien de 15 ans suspecte d ' ê t r e Maaboy est arrête au Canada. Apparemment i l
aurait pénètre 75 ordinateurs différents grâce a une faille dans leur serveur FTP et i l aurai
télécommandé ces ordinateurs pour organiser des attaques distribuées contres des sites de haute
visibilité. En automne 2001, Maaboy a été condamné à huit mois de détention dans un centre
pour jeunes délinquants.
Melissa ne vous aime pas Le virus Melissa est le premier virus a avoir p r o t e du courrier
électronique sur Internet pour se propager presque instantanément a travers la planète entière
I l s’agissait en fait d ’ u n document Word contenant une macro qui envoyait une copie du mes
sage aux 50 premières adresses du carnet d'adresses. Depuis, les virus comme I love y o u
kournikova ont fait des ravages similaires.
Problèmes de Telebanking Les systèmes de telebanking des deux plus grosses banques de
Suisse ont subi des problèmes de sécurité à la n de lannee 2000. En novembre, un utilisateu
avait malencontreusement depose une liste de payements dans la zone de démonstration du
systeme du Credit Suisse au lieu de la deposer dans son compte personnel. Comme l’utilisateur
Methodologie
3
travaillait pour swissperform, une entreprise active dans le show-business, les adresses privees et
numeros de comptes de plusieurs artistes (p. ex. Roger Moore, D.J. Bobo) étaient visibles pour
tous les gens qui visitaient la zone de demonstration. Le mois suivant, l U B S avouait que 3400
francs avaient été subtilises a travers lapplication de telebanking. I l est possible que ce vol so
lies a deux virus qui avaient comme cible l U B S . L u n essayait de retrouver sur les disques dur
infectes les mots de passe utilises par lapplication de telebanking, l a u t r e redirigeait les acc au
site web de telebanking de l U B S vers un site semblable en esperant que les utilisateurs
introduiraient leur mot de passe.
Ce ne sont pas les 34000 francs perdus par l U B S qui sont les degats les plus graves dan
ces cas, mais la perte dimage de marque et le cout des campagnes dinformation necessaire
pour redonner conance aux utilisateurs des applications de telebanking.
Des pirates a l E P F L ? En 1999 un etudiant de l E P F L a été condamnea 2 semaine
demprisonnement avec sursis et a 1000.damende pour setre introduit dans le systeme inf
matique dune entreprise zurichoise. I l y avait installe des s n i e r s q u i lui ont permis dobten
lacces a des ordinateurs de luniversite de Zurich. Le jugement a été publie sur Internet, on lit
notamment:
Quelques etudiants lausannois semblent sadonner a une activité intense de hacker
souvent par jeu ou par d e . I l y a un interet public a ordonner la publication de la
presente decision, publication montrant aux etudiants que le hacking, mem
desinteressenancierement, peut conduire a des poursuites penales bien concretes
Ces exemples dattaques ou dincidents nous montrent plusieurs choses:
Certaines attaques, par exemple les virus, se propagent de maniere autonome, en choisissant leurs cibles de maniere arbitraire et sans que leurs createurs puissent les arreter.
Toutes ces attaques auraient pu être evitees a laide de mesures techniques simple
Neanmoins, les mesures qui permettent de se proteger des attaques connues ne garantissent pas une immunite contre les attaques a venir.
Certaines attaques sont faites a des ns clairement criminelles, pour voler des biens ou
pour obtenir des informations donnant un avantage competitif. Ces attaques sont peu
mediatisees, mais les sondages montrent quelles sont importantes.
Dautres attaques ne sont faites que par curiosite. S i l existe un moyen de faire une attaqu
spectaculaire, i l y aura toujours un internaute qui aura besoin de prouver a lui-meme, ou a
dautres, q u ’ i l en est capable.
La loi suisse, comme dautres, permet de poursuivre les personnes qui perpetuent de
attaques, meme si elles sont faites sans but criminel, par pure malice.
1.3 Methodologie
La sécurité est un sujet qui doit être approche de maniere systematique. On ne securise pa
un batiment en apposant simplement des serrures sur les portes. Pour q u ’ u n batiment resist
a des attaques i l faut que larchitecte pense dejaa la sécurité lors quil dessine les plans. Po
terminer cette introduction, nous allons presenter une approche systematique classique pour la
securisation d ’ u n systeme informatique en réseau
Analyse de situation Lanalyse de la situation permet d i d e n t i e r le contexte du systeme
securiser. On ne va pas securiser de la meme maniere une villa quune banque ou une gare.
L a Securite des Reseaux
4
Introduction
Analyse de risques Lanalyse de risques consiste aevaluer tous les risques presents dans un
systeme. Pour ce faire on fait linventaire des biens a proteger, des menaces auxquelles ils son
exposes, et on estime ensuite la probabilite que ces menaces se realisent.
A la n de cette analyse on sait a quels risques on est expose. Le but de la suite de la
demarche est de diminuer les risques. Le risque zero nexistant pas, i l faut d e n i r le risqu
residuel que l o n est pret a accepter.
Politique de sécurité La politique de sécurité decrit de quelle maniere on va reduire le risques
pour atteindre un niveau de risque residuel acceptable. Cest un document qui d e n i les
différents elements d ’ u n systeme dinformation et les regles qui s y appliquent. On y trou
par exemple une classication des informations, un decoupage du systeme en zones plus ou moins
protegees et des regles qui indiquent les precautions a prendre en fonction de la classication
des informations et de la zone dans laquelle elles se trouvent.
Mesures de sécurité Une fois que la politique de sécurité a eteecrite, i l est possible de choisir
les mesures qui vont permettre de la realiser. Ces mesure peuvent être techniques, comme
linstallation de rewalls, ou organisationnelles, par exemple letablissement de procedures d
secours ou la nomination d ’ u n responsable de la sécurité
Implementation Ce nest quune fois q u ’ u n ensemble de mesures a été choisi pour repond a
la politique de sécurité que l o n peut se mettre a les implementer.
Validation Finalement i l reste a valider les mesures de sécurité implementees a n de verie
quelles orent vraiment la protection voulue. Cette validation peut se faire par des audits, par
des scans de vulnerabilite ou par des tests dintrusion. Elle peut remettre en cause le travai
fait dans les etapes precedentes.
Ph. Oechslin
Cours sécurité
Elies JEBRI
5/53
Version 2004
Cours sécurité
Définition de l'encryptage
L'encryptage permet de protéger un message des regards indiscrets. Pour cela, on
modifie le message de telle sorte qu'il soit illisible pour ceux qui ne savent pas comment
il a été modifié.
Cela peut servir à envoyer un message secret à quelqu'un ou à protéger des fichiers sur
votre disque dur des regards indiscrets.
Petite note: Comme me l'a précisé un internaute, on devrait dire chiffrement et non pas encryptage, ainsi que
déchiffrement et non pas décryptage.
Le terme de décryptage ne devrait normalement s'appliquer qu'à l'opération qui consiste à s'attaquer à des
données chiffrées sans connaître la clé.
Dans cette page, je fais une petite entorse: j'utilise les termes d'encryptage et de décryptage.
Un exemple simple
Prenons un exemple. On va modifier le mot HELLO.
On peut décaler les lettres de l'alphabet (A devient B, B->C, C->D, etc.).
HELLO
IFMMP
Cela rend le texte illisible : cette opération est appelée encryptage (ou chiffrement).
Pour avoir le message en clair, on fait le décalage inverse (B->A, C->B, D->C, etc.).
IFMMP
HELLO
Cette opération pour rendre le message lisible est appelé décryptage.
C'est déjà bien, mais on peut faire mieux: on peut décaler de 1 lettre, 2 lettres ou plus.
Décalage de 1 lettre:
HELLO
IFMMP
Décalage de 2 lettres:
HELLO
JGNNQ
Décalage de 3 lettres:
HELLO
KHOOR
Pour avoir le message en clair, il faut savoir de combien de lettres on a décalé. Cela fait
25
possibilités
différentes.
Essayer les 25 possibilités prend du temps, mais c'est faisable !
On pourrait faire plus compliqué: décaler différemment chaque lettre du mot HELLO. Par
exemple décaler de 5 la première lettre, de 12 la seconde, de 7 la troisième, et ainsi de
suite.
Ces nombres (5,12,7...) seuls permettent de retrouver le message original. On appelle
ceci une clé.
Elies JEBRI
6/53
Version 2004
Cours sécurité
C'est exactement comme la clé d'un coffre-fort : il existe une seul combinaison qui
permet d'obtenir l'information. Sans la clé, il est très difficile d'obtenir l'information.
D'autres méthode
Il existe des centaines d'autres méthodes d'encryptage pour protéger les données.
Citons : DES, TripleDES, IDEA, Blowfish, CAST, GOST, RC4, RC6, AES...
Elles sont pour la plupart
transpositions, décalage, etc.
basées
sur
des
modifications
simples
:
inversions,
Quelle est la meilleure ? Difficile à dire.
Chacune de ses méthodes a des caractéristiques:
•
•
•
Le type et le nombre d'opérations qu'elle réalise pour encrypter/décrypter :
additions, multiplication, transpositions, permutations...
La solidité mathématique de ces transformations
Le nombre de clés différentes possibles pour chaque algorithme.
Le
plus
populaire
actuellement
est
l'AES
(aussi
appelé
Rijndael,
voir
http://csrc.nist.gov/CryptoToolkit/aes/). Il a été largement testé et adopté comme
standard. Si vous ne savez pas quel agorithme prendre, choisissez AES.
Pour décrypter un message sans connaître la clé, on peut utiliser plusieurs méthodes:
•
•
Essayer toutes les clés possibles avec son ordinateur, ou bien avec un ordinateur
très puissant spécialement fabriqué pour casser un algorithme précis (ce qui a été
fait pour le DES...).
Se baser sur une faiblesse mathématique de l'algorithme et trouver des moyens de
décoder le message ou trouver une partie de la clé.
Généralement, plus un algorithme a été testé par les spécialistes mondiaux
(cryptographes, matématiciens...), plus on peut le considérer comme sûr. Méfiez-vous
des algorithmes ou programmes récents que leurs auteurs présentent comme
"impossible à cracker". ('cracker' ou 'casser' c'est trouver la clé ou le message en clair à
partir d'un message encrypté).
La protection offerte par le chiffrement doit être basée sur la solidité mathématique de
l'algorithme, et non pas sur le secret de l'algorithme. Evitez comme la peste les
programmes dont les algorithmes ne sont pas connus, ou ceux utilisant des algorithmes
maison. Préférez les algorithmes connus (Blowfish, AES, TripleDES, IDEA...)
Les algorithmes les plus sûrs sont ceux qui ont été le plus largement testés et approuvés
par la communauté scientifique.
Cependant,
IL N'EXISTE AUCUN ALGORITHME OU PROGRAMME IMPOSSIBLE A CRACKER.
(enfin... ce n'est pas tout à fait vrai)
Tout est une question de patience et de puissance de calcul de l'ordinateur. Les bons
algorithmes - bien utilisés - nécessitent pour être crackés des temps de calcul plus longs
que la durée de vie de l'Univers.
Elies JEBRI
7/53
Version 2004
Cours sécurité
N'importe qui ne peut pas s'improviser cryptographe. 95% des logiciels de cryptage
proposés sur Internet sont totalement bidons du point de vue sécurité, et les
grosses sociétés ne font pas exception (ex: Norton For Your Eyes Only, Microsoft, etc.).
Généralement, ne faites pas confiance à un logiciel de cryptage dont le code source n'est
pas disponible.
Elies JEBRI
8/53
Version 2004
Cours sécurité
Les algorithmes asymétriques
Les algorithmes que nous venons de voir sont dits symétriques, car on utilise la même
clé C pour encrypter et décrypter.
Aussi étrange que cela puisse paraître, il existe aussi des algorithmes dont la clé de
décryptage est différente de la clé d'encryptage !
Ces algorithmes sont appelés algorithmes asymétriques (On les appelle aussi
algorithmes à clé publique.)
Il est impossible de trouver D (la clé de décryptage) à partir de E (la clé d'encryptage).
A quoi ça peut bien servir ?
Imaginons qu'Alice veuille envoyer un message à Bob. Elle ne dispose d'aucun moyen de
communication sûr avec Bob (cela veut dire que n'importe qui peut écouter leurs
communications).
Le mieux que puisse faire Alice, c'est encrypter le message de telle sorte que seul Bob
puisse le décrypter.
Elle peut utiliser un algorithme symétrique (comme celui qui utilise C ci dessus). Dans ce
cas, elle encrypte le message avec la clé C et l'envoie à Bob.
Elies JEBRI
9/53
Version 2004
Cours sécurité
Mais Bob doit aussi connaître la clé C si il veut décrypter le message.
Alice doit donc aussi transmettre C à Bob.
Mais comment faire puisque tout le monde peut épier leurs communications et donc
connaître aussi C ?
La solution serait d'utiliser un algorithme assymétrique: Bob créé ses deux clés E et D.
Il envoie sa clé E à Alice et garde sa clé D bien à l'abris.
Pour envoyer un message à Bob, Alice utilise la clé E que lui a donné Bob pour encrypter
les messages. De son côté, Bob utilise sa clé D pour décrypter les messages.
Elies JEBRI
10/53
Version 2004
Cours sécurité
Bob est le seul à pouvoir décrypter les messages : il a gardé sa clé D secrète et personne
n'est capable de calculer D à partir de E.
Si un espion regarde les communications, il ne verra passer que la clé E et les messages
encryptés. E ne lui sera d'aucune utilité pour décrypter les messages.
La clé E de Bob est appelée clé publique, car elle est donnée à tout le monde. Tout le
monde peut ainsi encrypter des messages à destination de Bob que Bob seul pourra
décrypter.
La clé D de Bob est appelée clé privée : elle est conservée bien à l'abris par Bob qui s'en
sert pour décrypter les messages qu'il reçoit.
Exemple d'algorithme asymétrique : le RSA
Il existe différents algorithmes asymétriques. L'un des plus connus est le RSA (de ses
concepteurs Rivest, Shamir et Adleman). Cet algorithme est très largement utilisé, par
exemple dans les navigateurs pour les sites sécurisés et pour chiffrer les emails. Il est
dans le domaine public.
L'algorithme est remarquable par sa simplicité. Il est basé sur les nombres premiers.
Pour encrypter un message, on fait:
c = m^e mod n
Pour décrypter:
m = c^d mod n
m = message en clair
c = message encrypté
(e,n) constitue la clé publique
(d,n) constitue la clé privée
n est le produit de 2 nombres premiers
^ est l'opération de mise à la puissance (a^b : a puissance b)
mod est l'opération de modulo (reste de la division entière)
Créer une paire de clés
C'est très simple, mais il ne faut pas choisir n'importe comment e,d et n. Et le calcul de
ces trois nombres est tout de même délicat.
Voici comment procéder:
1. Prendre deux nombres premiers p et q (de taille à peu près égale).
Calculer n = pq.
2. Prendre un nombre e qui n'a aucun facteur en commun avec (p-1)(q-1).
3. Calculer d tel que ed mod (p-1)(q-1) = 1
Le couple (e,n) constitue la clé publique. (d,n) est la clé privée.
Elies JEBRI
11/53
Version 2004
Cours sécurité
Un exemple
Commençons par créer notre paire de clés:
Prenons 2 nombres premiers au hasard: p = 29, q = 37
On calcul n = pq = 29 * 37 = 1073
On doit choisir e au hasard tel que e n'ai aucun facteur en commun avec (p-1)(q-1):
(p-1)(q-1) = (29-1)(37-1) = 1008
On prend e = 71
On choisit d tel que 71*d mod 1008 = 1
On trouve d = 1079
On a maintenant nos clés :
•
•
La clé publique est (e,n) = (71,1073)
(=clé d'encryptage)
La clé privée est (d,n) = (1079,1073) (=clé de décryptage)
On va encrypter le message 'HELLO'. On va prendre le code ASCII de chaque caractère
et on les met bout à bout:
m = 7269767679
Ensuite, il faut découper le message en blocs qui comportent moins de chiffres que n. n
comporte 4 chiffres, on va donc découper notre message en blocs de 3 chiffres:
726 976 767 900
(on complète avec des zéros)
Ensuite on encrypte chacun de ces blocs:
726^71
976^71
767^71
900^71
mod
mod
mod
mod
1073
1073
1073
1073
=
=
=
=
436
822
825
552
Le message encrypté est 436 822 825 552. On peut le décrypter avec d:
436^1079
822^1079
825^1079
552^1079
mod
mod
mod
mod
1073
1073
1073
1073
=
=
=
=
726
976
767
900
C'est à dire la suite de chiffre 726976767900.
On retrouve notre message en clair 72 69 76 76 79 : 'HELLO'.
Elies JEBRI
12/53
Version 2004
Cours sécurité
Dans la pratique
Dans la pratique, ce n'est pas si simple à programmer:
•
•
•
Il faut trouver de grands nombres premiers (ça peut être très long à calculer)
Il faut obtenir des nombres premiers p et q réellement aléatoires (ce qui est loin
d'être évident).
On n'utilise pas de blocs aussi petits que dans l'exemple ci-dessus: il faut être
capable de calculer des puissances et des modulos sur de très grand nombres.
En fait, on utilise jamais les algorithmes asymétriques pour chiffrer toutes les données,
car ils sont trop longs à calculer : on chiffre les données avec un simple algorithme
symétrique dont la clé est tirée au hasard, et c'est cette clé qu'on chiffre avec un
algorithme asymétrique comme le RSA, c’est ce que fait PGP.
Fonctionnement de PGP
PGP est une combinaison des meilleures fonctionnalités de la cryptographie de clé
publique et de la cryptographie conventionnelle. PGP est un système de cryptographie
hybride.
Lorsqu'un utilisateur crypte du texte en clair avec PGP, ces données sont d'abord
compressées. Cette compression des données permet de réduire le temps de
transmission par modem, d'économiser l'espace disque et, surtout, de renforcer la
sécurité cryptographique. La plupart des cryptanalystes exploitent les modèles trouvés
dans le texte en clair pour casser le chiffrement. La compression réduit ces modèles dans
le texte en clair, améliorant par conséquent considérablement la résistance à la
cryptanalyse. Toutefois, la compression est impossible sur les fichiers de taille
insuffisante ou supportant mal ce processus.
PGP crée ensuite une clé de session qui est une clé secrète à usage unique. Cette clé
correspond à un nombre aléatoire, généré par les déplacements aléatoires de votre
souris et les séquences de frappes de touches. Pour crypter le texte en clair, cette clé de
session utilise un algorithme de cryptage conventionnel rapide et sécurisé. Une fois les
données codées, la clé de session est cryptée vers la clé publique du destinataire. Cette
clé de session cryptée par clé publique est transmise avec le texte chiffré au destinataire.
Elies JEBRI
13/53
Version 2004
Cours sécurité
Le processus de décryptage est inverse. La copie de PGP du destinataire utilise sa clé
privée pour récupérer la clé de session temporaire qui permettra ensuite de décrypter le
texte crypté de manière conventionnelle.
Ces deux méthodes de cryptage associent la facilité d'utilisation du cryptage de clé
publique à la vitesse du cryptage conventionnel. Le cryptage conventionnel est environ 1
000 fois plus rapide que le cryptage de clé publique.
De plus, le cryptage de clé publique résout non seulement le problème de la distribution
des clés, mais également de la transmission des données. Utilisées conjointement, ces
deux méthodes améliorent la performance et la distribution des clés, sans pour autant
compromettre la sécurité.
Les Clés
Une clé est une valeur utilisée dans un algorithme de cryptographie, afin de
générer un texte chiffré. Les clés sont en réalité des nombres extrêmement importants.
La taille d'une clé se mesure en bits et le nombre correspondant à une clé de 1 024 bits
est gigantesque. Dans la cryptographie de clé publique, plus la clé est grande, plus la
sécurité du texte chiffré est élevée.
Cependant, la taille de la clé publique et de la clé secrète de cryptographie
conventionnelle sont complètement indépendantes. Une clé conventionnelle de 80 bits
est aussi puissante qu'une clé publique de 1 024 bits. De même, une clé conventionnelle
de 128 bits équivaut à une clé publique de 3 000 bits. Encore une fois, plus la clé est
grande, plus elle est sécurisée, mais les algorithmes utilisés pour chaque type de
cryptographie sont très différents. Autant essayer de comparer une pomme avec une
orange.
Même si les clés publiques et privées sont liées par une relation mathématique, il est très
difficile de deviner la clé privée uniquement à partir de la clé publique.
Cependant, la déduction de la clé privée est toujours possible en disposant de temps et
de puissantes ressources informatiques. Ainsi, il est très important de sélectionner des
clés de tailles correctes, suffisamment grandes pour être sécurisées, mais suffisamment
petites pour être utilisées assez rapidement.
De plus, vous devez tenir compte du profil des utilisateurs tentant de lire vos fichiers,
connaître leur détermination, le temps dont ils disposent, ainsi
que de leurs ressources.
Plus la clé est grande, plus sa durée de sécurisation est élevée. Si les informations que
vous souhaitez crypter doivent rester confidentielles pendant plusieurs années, vous
pouvez utiliser une clé correspondant à un nombre de bits extrêmement élevé. Qui sait
Elies JEBRI
14/53
Version 2004
Cours sécurité
combien de temps sera nécessaire pour deviner votre clé avec la technologie de demain ?
Il fut un temps où une clé symétrique de 56 bits était considérée comme extrêmement
sûre.
Les clés sont stockées sous forme cryptée. PGP conserve les clés sur votre disque dur,
dans deux fichiers : l'un est destiné aux clés publiques, l'autre aux clés privées. Ces
fichiers s'appellent des trousseaux de clés. Lors de l'utilisation de PGP, vous devez
généralement ajouter les clés publiques de vos destinataires sur votre trousseau de clés
publiques. Vos clés privées sont stockées sur votre trousseau de clés privées. En cas de
perte de votre trousseau de clés privées, il vous sera impossible de décrypter les
informations cryptées vers les clés de ce trousseau.
Elies JEBRI
15/53
Version 2004
Cours sécurité
Authentification
Les algorithmes d'encryptage assymétriques ont d'autres utilisations: on peut par
exemple authentifier l'émetteur d'un message.
Par exemple, si Bob reçoit un message, comment peut-il être sûr qu'il provient bien
d'Alice ?
Quelqu'un pourrait très bien encrypter un message et l'envoyer à Bob en se faisant
passer pour Alice.
Avec les algorithmes assymétriques, on peut signer un message. Soit:
•
•
A:E Clé publique d'Alice (utilisée pour encrypter) donnée à tout le monde.
A:D Clé privée d'Alice (utilisée pour décrypter)
•
•
B:E Clé publique de Bob (utilisée pour encrypter) donnée à tout le monde.
B:D Clé privée de Bob (utilisée pour décrypter)
Alice possède sa clé privée (A:D) et la clé publique de Bob (B:E).
Bob possède sa clé privée (B:D) et la clé publique d'Alice (A:E).
Quand Alice veut envoyer un message à Bob, Alice décrypte avec sa clé privée (A:D)
pour signer le message puis l'encrypte avec la clé publique de Bob (B:E).
Quand Bob reçoit le message, il le décrypte avec sa clé privée (B:D), puis l'encrypte avec
la clé publique d'Alice (A:E).
Si il parvient à obtenir le message en clair en encryptant avec la clé publique d'Alice
(A:E), alors il est sûr que ce message vient bien d'Alice puisque Alice est la seule à
posséder la clé privée correspondante (A:D) qui permet de décrypter le message.
Cela permet de signer les message.
Si un espion envoie un message à Bob en essayant de se faire passer pour Alice, il ne
pourra pas signer le message puisqu'il ne possède pas la clé privée d'Alice (A:D). Quand
Bob encryptera avec A:E, il n'obtientdra pas le message en clair et verra qu'il y a un
problème et que ce message ne provient pas d'Alice.
Ce système d'authentification n'est pas parfait mais il est très sûr. C'est ce système qui
est utilisé entre autres pour les transactions entre banques.
Elies JEBRI
16/53
Version 2004
Cours sécurité
(Pour être tout à fait précis, et pour permettre l'automatisation par l'ordinateur de cette
vérification, on se contente généralement de signer uniquement un digest (un hash
cryptographique) du message (SHA1 ou MD5).)
Elies JEBRI
17/53
Version 2004
Cours sécurité
Signatures numériques
Un des avantages majeurs de la cryptographie à clé publique est qu’elle procure une
méthode permettant d’utiliser des signatures numériques. Les signatures numériques
permettent à la personne qui reçoit une information de contrôler l’authenticité de son
origine, et également de vérifier que l’information en question est intacte. Ainsi, les
signatures numériques des systèmes à clé publique permettent l’authentification et le
contrôle d’intégrité des données. Une signature numérique procure également la non
répudiation, ce qui signifie qu’elle empêche l’expéditeur de contester ultérieurement qu’il
a bien émis cette information. Ces éléments sont au moins aussi importants que le
chiffrement des données, sinon davantage.
Une signature numérique a le même objet qu’une signature manuelle. Toutefois, une
signature manuelle est facile à contrefaire. Une signature numérique est supérieure à
une signature manuelle en ce qu’elle est pratiquement impossible à contrefaire et, de
plus, elle atteste le contenu de l’information autant que l’identité du signataire.
Certaines personnes utilisent les signatures plus qu’elles n’utilisent le chiffrement.
Par exemple, vous pouvez vous moquer que quelqu’un puisse savoir que vous venez de
déposer 10.000 F sur votre compte bancaire, mais vous voudrez être absolument certain
que c’est bien avec votre banquier que vous avez traité.
La méthode de base utilisée pour créer des signatures numériques est illustrée sur la
Figure 1-6. Au lieu de chiffrer l’information en utilisant la clé publique d’autrui, vous la
chiffrez avec votre propre clé privée. Si l’information peut être déchiffrée avec votre clé
publique, c’est qu’elle provient bien de vous.
Signature numérique simple
Fonctions de hachage
Le système décrit ci-dessus comporte des inconvénients. Il est lent, et il produit un
volume énorme de données – il double au minimum la taille de l’information originale.
Une amélioration de ce concept est l’addition d’une fonction de hachage à sens unique
dans le processus. Une fonction de hachage à sens unique utilise une entrée de longueur
variable – dans notre cas, un message de n’importe quelle longueur, jusqu’à des milliers
ou millions de bits – et produit une sortie de longueur fixe, par exemple 160 bits. La
fonction de hachage assure que, si l’information était changée en quoi que ce soit –
même d’un seul bit – une sortie totalement différente serait produite.
Elies JEBRI
18/53
Version 2004
Cours sécurité
PGP applique une fonction de hachage cryptographiquement robuste, sur le texte clair
que l’utilisateur veut signer. Ceci génère comme résultat une donnée de longueur fixe
appelée contraction de message. (Encore une fois, toute modification du contenu du
message produirait un condensé totalement différent.)
Ensuite, PGP utilise le condensé et la clé privée pour créer la “signature”. PGP transmet la
signature et le texte clair ensemble. A la réception du message, le destinataire utilise PGP
pour recalculer le condensé, et le comparer avec celui reçu avec le message, ce qui
permet de vérifier la signature. PGP peut chiffrer le texte clair ou non; signer un texte
clair est utile si certains destinataires ne sont pas désireux de vérifier la signature, ou pas
équipés pour le faire.
Tant qu’une fonction de hachage sûre est utilisée, il n’y a aucun moyen de recopier la
signature de quelqu’un sur un document pour l’attacher à un autre, ni d’altérer en quoi
que ce soit un document signé. Le plus petit changement dans un document signé
provoquerait l’échec de la vérification de la signature.
Signature numérique sécurisée
Elies JEBRI
19/53
Version 2004
Cours sécurité
Certificat numérique
Les algorithmes de chiffrement asymétriques sont basés sur le partage entre les
différents utilisateurs d'une clé publique. Généralement, le partage de cette clé se fait au
travers d'un annuaire électronique (généralement au format LDAP) ou bien d'un site web.
Toutefois ce mode de partage a une grande lacune : rien ne garantit que la clé est
bien celle de l'utilisateur à qui elle est associée. En effet un pirate peut corrompre la
clé publique présente dans l'annuaire en la remplaçant par sa clé publique. Ainsi, le
pirate sera en mesure de déchiffrer tous les messages ayant été chiffrés avec la clé
présente dans l'annuaire.
Pour remédier à ce type d’attaque, on utilise les certificats. Un certificat permet
d'associer une clé publique à une entité (une personne, une machine, ...) afin d'en
assurer la validité. Le certificat est en quelque sorte la carte d'identité de la clé publique,
délivré par un organisme appelé autorité de certification (souvent notée CA pour
Certification Authority).
L'autorité de certification est chargée de délivrer les certificats, de leur assigner une date
de validité, ainsi que de révoquer éventuellement des certificats avant cette date en cas
de compromission de la clé (ou du propriétaire).
Pour assurer l’intégrité des clés publiques, ces derniers sont publiés avec un certificat. Un
certificat (ou certificat de clés publiques) est une structure de données qui est
numériquement signée par une autorité certifiée, à laquelle les utilisateurs peuvent faire
confiance. Il contient une série de valeurs, comme le nom du certificat et son utilisation,
des informations identifiant le propriétaire et la clé publique, la clé publique elle même, la
date d’expiration et le nom de l’organisme de certification. Le CA utilise sa clé privée pour
signer les certificats et assure ainsi une sécurité supplémentaire.
Si le récepteur connaît la clé publique du CA, il peut vérifier qu’un certificat provient
vraiment de l’autorité concernée et s’assure donc que le certificat contient des
informations valides et une clé publique valide.
Certificat x.509
Le principal format de certificats utilisé actuellement est X.509, qui a fait l'objet de
plusieurs normalisations successives. Il existe de nombreuses PKI, la plupart sont en
cours d'évolution. Des exemples d'infrastructures à clés publiques, faisant l'objet d'une
normalisation à l'IETF, sont PKIX (Public Key Infrastructure X.509), SPKI (Simple Public
Key Infrastructure),
DNSSEC (Domain Name System Security) et PKCS (Public Key
Cryptography Standards).
Elies JEBRI
20/53
Version 2004
Cours sécurité
format des certificats X.509
Elies JEBRI
21/53
Version 2004
Cours sécurité
Avec :
•
Version : Indique à quelle version de X.509 correspond ce certificat.
•
Serial number : Numéro de série du certificat (propre à chaque autorité de
certification).
•
Signature Algorithm ID : Identifiant du type de signature utilisée.
•
Issuer Name : Distinguished Name (DN) de l'autorité de certification qui a émis ce
certificat.
•
Validity period : Période de validité.
•
Subject Name : Distinguished Name (DN) du détenteur de la clé publique.
•
Subject public key info : Infos sur la clé publique de ce certificat.
•
Issuer Unique ID / Subject Unique ID : Extensions optionnelles introduites avec la
version 2 de X.509.
•
Extensions : Extensions génériques optionnelles, introduites avec la version 3 de
X.509.
•
Signature : Signature numérique de la CA sur l'ensemble des champs précédents.
Certificat PGP :
Un autre type de format de certificats est le certificat PGP. Il comprend, entre autres, les
informations suivantes :
•
Le numéro de version de PGP : identifie la version de PGP utilisée pour créer la clé
associée au certificat.
•
La clé publique du détenteur du certificat : partie publique de la paire de clés
associée à l'algorithme, qu'il soit RSA, DH (Diffie Hellman) ou DSA (Digital
signature Algorithm).
•
Les informations du détenteur du certificat : il s'agit des informations portant sur
l'identité de l'utilisateur, telles que son nom, son ID utilisateur, sa photographie,
etc.
•
La signature numérique du détenteur du certificat : également appelée auto
signature, il s'agit de la signature effectuée avec la clé privée correspondant à la
clé publique associée au certificat.
•
La période de validité du certificat : dates/ heures de début et d'expiration du
certificat. Indique la date d'expiration du certificat.
•
L'algorithme de chiffrement symétrique préféré pour la clé : indique l'algorithme
de chiffrement que le détenteur du certificat préfère appliquer au cryptage des
informations. Les algorithmes pris en charge sont CAST, IDEA ou triple DES.
Elies JEBRI
22/53
Version 2004
Cours sécurité
•
Le fait qu'un seul certificat puisse contenir plusieurs signatures est l'un des
aspects uniques du format du certificat PGP. Plusieurs personnes peuvent signer
la paire de clés d'identification pour attester en toute certitude de l'appartenance
de la clé publique au détenteur spécifié.
Certificat PGP
Gestion de clé et organisme de confiance
L'utilisation du chiffrement asymétrique exige un plan pour organiser, sauvegarder et
distribuer les clés publiques de tous les nœuds. Un certificat venant d'un centre de
confiance doit accompagner chaque clé publique distribuée.
Infrastructure à clé publique
Une infrastructure PKI (Public Key Infrastructure) est un ensemble relativement
complexe qui utilise les technologies de la cryptographie asymétrique et fournit la
structure technique et logistique que nécessitent ces opérations. Elle spécifie un jeu de
service de sécurité pour permettre la réalisation d’échanges électroniques fiables.
Dans sa forme la plus simple, une PKI est donc un système de publication de clés
publiques qui assure principalement :
•
La génération, la distribution et la gestion des paires de clés publiques/privées.
•
La publication de la clé publique et l’attestation de l’identité de chaque détenteur
de la clé, sous forme de certificats numériques.
•
L’administration
des
certificats
(révocation
des
certificats,
renouvellement,
suspension, archivage, etc.).
Elies JEBRI
23/53
Version 2004
Cours sécurité
Pour ce faire, l’infrastructure à clé publique est constituée d’un ensemble d’autorités
organisées de façon hiérarchique afin de garantir un niveau élevé de sécurité :
•
Autorité de certification : entité de confiance chargée d’émettre et révoquer les
certificats numériques.
•
Autorité d’enregistrement : entité en qui l’autorité centrale a confiance et qui
permet la vérification de l’identité d’un utilisateur.
•
Centre de publication : entité qui permet la publication des certificats émis ainsi
que des certificats révoquées
•
Autorité d’horodatage : entité permettant de garantir les dates indiquées dans les
différents documents issus de l’autorité de certification.
Un exemple du processus de certification selon PKI est schématisé par la figure
suivante.
7
Utilisateur A
9
2
Utilisateur B
8
6
Autorité
d’enregistrement
8
Centre
de
Publication
5
5
3
1
4
Autorité
de certification
1.
2.
3.
4.
5.
6.
7.
8.
9.
Définition de la politique de certification
Demande de certificat
Soumission de la demande après vérification de
l’identité
Génération du certificat
Publication du certificat et de la liste de révocation
Transmission du certificat et de la clé privée
Envoi de message signé à B
Octroi de la clé publique de A et vérification de la
signature ainsi que de la validité de son certificat
Echange de messages sécurisés
Processus de certification selon PKI
Un système de gestion de clé centralisé désigne un noeud comme une autorité de
confiance. Ce noeud détient toutes les clés publiques des autres nœuds et les distribuent
Elies JEBRI
24/53
Version 2004
Cours sécurité
en cas de demande. Tous les nœuds doivent connaître la clé publique de l'autorité pour
pouvoir authentifier les autres nœuds à travers leurs certificats.
La gestion de clés distribuées implique la désignation d'un ensemble de nœuds
confidentiels qui partagent la clé secrète d'une autorité de certification. Chaque nœud de
confiance garde un dossier de toutes les clés publiques dans le réseau. Le nombre de
nœuds nécessaires pour générer une signature valide d'une autorité de certification peut
être inférieur à celui des nœuds confidentiels. Par conséquent, même si un attaquant
compromet quelques nœuds, une signature valide peut encore être générée. Cette
solution est appelée la cryptographie à seuil. La cryptographie à seuil est intéressante
dans la découverte de nœuds compromis. Au lieu d'utiliser un plan de signature où le
signataire est une entité seule qui détient la clé secrète, cette dernière est partagée sur
un groupe. Pour produire une signature valide sur un message donné, les utilisateurs
individuels produisent leurs signatures partielles sur le message et les combinent ensuite
pour produire la signature valide.
Tierce partie de confiance
C’est une entité de confiance qui est souvent utilisée pour fournir les services de
management de clés. Selon la nature de leurs participations, elles peuvent être classées
par catégories: en ligne, connectées ou autonomes. Les tierces parties en ligne
participent d'une manière active à la communication des deux utilisateurs, les connectées
participent activement mais seulement pour la gestion. En effet, la communication réelle
entre les utilisateurs est directe. La troisième catégorie communique avec les utilisateurs
avant l'établissement d'un lien de communication entre eux. Pendant la communication,
la tierce partie autonome n'est pas active. En fait, elle
n'a même pas besoin d'être
connectée au réseau.
Des exemples de tierces parties peuvent être les centres de distribution de clés
(systèmes de management de clés symétriques) et les autorités de certification
(systèmes de management de clés publiques).
Elies JEBRI
25/53
Version 2004
Cours sécurité
LES VPNs
VPN, Virtual Private Network, est comme l'acronyme l'indique un réseau virtuel privé.
Réseau ne pose pas de problème à la compréhension, alors que virtuel et privé, sont
sujets à débat. Une définition qui leur est communément attribuée, est celle de pouvoir
relier depuis un point quelconque, géographiquement situé à l'extérieur d'un réseau
local. Par exemple une PME ayant plusieurs sites géographiques, peut depuis l'un de ses
sites, être reliées sur le LAN d'une autre entité, et ce sans être physiquement branché,
sur ce dernier. Cela laisse entrevoir la signification du mot virtuel. Concernant le privé, il
est évident que si une entité à son propre réseau local, elle ne désire pas forcément que
tous ceux relier à Internet par exemple, puissent avoir accès à son réseau interne, raison
pour laquelle, il faut également mettre en place des mécanismes pour prévenir cela.
En synthèse, un VPN est, fournir à quelqu'un d'autorisé et étant géographiquement
ailleurs, la possibilité d'avoir accès à un réseau local comme s'il était branché
directement dessus.
Il s'agit encore de faire une précision concernant ce qui vient d'être dit. Il a souvent été
dit qu'il s'agit de relier deux sites géographiquement distants, mais il existe également le
cas où l'on relie deux hôtes sur le même site au travers d'un VPN, mais cette fois-ci pour
d'autres raisons; la sécurité, notamment sur un LAN qui n'est pas sûr.
Types de VPN
L'on peut énumérer différents types de VPN, et généralement, l'on en distingue trois:
• Les communications internes à l'entreprise (Intranet).
• Les communications externes à l'entreprise (Extranet).
• Les accès itinérants réalisés souvent au moyen d'un réseau commuté par des
utilisateurs distants.
Ces différents cas de VPN, n'ont pas tous besoin des mêmes services, et surtout, ont des
niveaux de sécurité différents.
Utilité d'un VPN
En effet si la sécurité doit être absolument respectée, pourquoi vouloir utiliser Internet,
alors que c'est un des médias les plus facilement accessible du public, et partant très peu
sûr de prime abord ?
Une première réponse à cela, est le fait qu'en utilisant des lignes communes cela et
économiquement moins cher que d'avoir des lignes privées (lignes louées). Mais ce qui
fait la force des VPN, est qu'ils permettent de se connecter depuis n'importe quel point, (
pour autant que l'on soit autorisé par l'autre extrémité), et il est utopique (pour ne pas
dire impossible) de réaliser cela par des lignes privées.
Mise en place d'un VPN
Un exemple d'utilisation de VPN, est par exemple son déploiement au niveau d'une école.
Où tous, professeurs et étudiants auraient accès, d'une part à leur compte (ou machine)
se trouvant dans l'école. Mais aussi et surtout, à toutes les informations et dossiers
accessibles lorsque l'on se trouve physiquement sur le LAN. Cela évite par exemple de
devoir sauver des fichiers sur des supports amovibles, ou de les envoyer par e-mail, si
l'on désire travailler chez soit. Un autre exemple est le télétravail, l'on imagine qu'un
ingénieur pourrait écrire des logiciels à son domicile, et envoyer le fruit de son travail sur
le réseau de son entreprise, sur un poste doté de capacités techniques plus évoluées
(mainframe, PC multimédia), s'il requière plus de puissance.
Concernant ces deux exemples, le point crucial est la sécurité qu'il faut garantir, afin que
seuls les autorisés accèdent à la partie interne d'un réseau.
Elies JEBRI
26/53
Version 2004
Cours sécurité
L'implémentation d'un VPN peut se baser sur différents types de protocoles, concernant
la liaison depuis un point à un autre; PPTP (Point-to-Point Tunneling Protocol), L2TP
(Layer 2 Tunneling Protocol) ou IPSec (IP Security Protocol).
Ces différents protocoles font appel au mécanisme de tunneling, afin d'établir des
connexions à l'abri de personnes malveillantes, désirant s'introduire dans un réseau.
TUNNELING, (STUNNEL)
Qu'est-ce que le tunneling?
Il s'agit premièrement de préciser la notion de "tunneling". Il s'agit en fait de créer un
tunnel dans lequel par la suite, transiterons des informations sans que ces dernières
doivent à chaque fois créer le chemin d'accès. Exactement comme cela advient dans le
trafic ferroviaire, l'on creuse une fois un tunnel dans la roche, et ensuite les trains
peuvent emprunter ce tunnel sans devoir pour chaque convoi creuser à nouveau. Mais
attention à ne pas trop simplifier le concept, car contrairement au trafic ferroviaire,
lorsqu'il s'agit de trafic de données, pas tous ont la possibilité de pouvoir creuser un
tunnel, et de plus lorsque l'on n'utilise plus un tunnel, celui-ci est fermé afin d'empêcher
à quiconque de traverser sans aucun contrôle.
Ce qu'offre le tunneling, c'est d'aménager une voie d'accès qui est privée, et dont seuls
ceux autorisés peuvent l'emprunter. Cela notamment sur un réseau public. En effet tous
empruntent un réseau public, en revanche ces derniers n'ont pas tous un droit de regard
sur ce qui transite dans le tunnel.
Les données à transférer peuvent être des trames d'un autre protocole. En effet plutôt
que d'envoyer une trame directement, cette dernière est encapsulée dans une autre, qui
se charge elle, d'implémenter le tunnel. L'en-tête supplémentaire fourni les informations
de routage, afin que la charge (payload contenant les données), de ce nouveau paquet
puisse traverser le tunnel.
Le tunneling comprend les phases d'encapsulation, de transmission, et de
désencapsulation des données.
Le tunneling peut être appliquer aux couches 2 ou 3 du modèle OSI, suivant les systèmes
d'implémentations. L'on peut énumérer à nouveau les trois protocoles de tunneling
précédemment cités dans le chapitre des VPN:
Niveau 2 : PPTP et L2TP
encapsulation et encryptage de la charge utile dans une trame PPP et envoi au
travers d'un réseau intermédiaire.
Niveau 3 : IPSec
encryptage de la charge utile IP, encapsulation dans un paquet IP, et envoi au
travers d'un réseau IP.
Quelques précisions encore, concernant les deux protocoles de niveau 2. Ces deux
protocoles sont basés sur le protocole PPP Point to Point Protocol, qui est un protocole de
niveau 2 également. Ce dernier est utilisé pour se connecter par un accès point-à-point
sur des lignes séries. Ce qui est le cas le plus répandu lorsque quelqu'un se connecte
depuis son domicile au travers d'un modem.
Elies JEBRI
27/53
Version 2004
Cours sécurité
PPTP
PPTP, Point to Point Tunneling Protocol a été mis en œuvre par Microsoft. Le
fonctionnement, est le suivant, l’on encrypte tout ce qui provient de la couche TCP/IP,
ainsi que les infos PPP qui proviennent de PPP servant à établir la connexion avec le VPN.
Suite à cela, le tout est encapsulé par le protocole GRE, qui ne fait rien de particulier, si
ce n’est de véhiculer les paquets IP sur le réseau. (Il est intéressant de remarquer
l’emploi du protocole GRE, qui est un protocole IP très peu connu.)
PPTP autorise une session PPP à être tunnelée au travers une connexion IP existante.
Le tunneling est faisable par le fait que PPTP encapsule les données des différents
paquets. Comme le montre la Figure 3.1-3 page 9.
Encapsulation PPTP
L2TP
L2TP, Layer 2 Tunneling Protocol est décrit dans la RFC 2661, c’est Cisco et Microsoft qui
ont donné naissance à ce protocole. Ils ont pour cela mis en commun ce qu'il y avait de
meilleur parmi d'autres protocoles déjà existants, parmi lesquels PPTP.
A l’heure actuelle le protocole PPTP, est encore utilisé en majorité, mais de plus en plus
L2TP est offert dans les nouveaux logiciels est équipements, l’on peut imaginer qu’à
terme, il prenne le dessus sur PPTP.
Encapsulation L2TP
Un élément intéressant de L2TP, est l'utilisation de UDP. Ce qui laisse entrevoir une
vitesse d’acheminement supérieure. Cela implique également le fait que UDP offre des
services moindres que TCP, il s’agit de les compenser ailleurs.
Elies JEBRI
28/53
Version 2004
Cours sécurité
Le SSL
Présentation de SSL
SSL ou, Secure Socket Layer, permet l'accès sécurisé à un site web ou à certaines pages
d'un site web. Ces connexions se différencient par des connexions "normales" c'est à dire
non sécurisées, par le fait que l'adresse n'est plus "http:// " mais "https:// ", où le s
indique sécurisé.
Il y a deux manières de vérifier si le site visité est sécurisé ; d'une part en essayant de
s'y connecter avec l'adresse https qui dans le cas où le site dispose d'une connexion
sécurisée permettrait la connexion avec le site. Et d'autre part en vérifiant si le cadenas
figurant à droite de la barre d'état d'un navigateur est fermé.
Cadenas verrouillé
SSL v3.0 est devenu un standard "de facto", sur Internet, et comme tous les standards
de fait, souffre ou risque de souffrir, de diverses petites adaptations ici et là, provoquant
à terme, le risque d'une compatibilité réduite.
Il faut également noter que Netscape qui à développer le produit, fournit des références
de manière publique, et à développer SSL avec de nombreux partenaires afin d'obtenir
une large reconnaissance, et cela a été le cas. Il est a souligner que ce qui a
principalement motivé Netscape, c’est le commerce électronique.
Mais afin que SSL devienne une "norme", c'est l'IETF, qui se charge actuellement d'en
définir les critères. Et plus précisément le groupe de travail "TLS" Transport Layer
Security, raison pour laquelle l'on trouve les informations concernant SSL sous le sigle
TLS, qui revêt la forme de SSL v.3.1. Ce qui concerne la version TLS 1.0 se trouve dans
la RFC 2246.
SSL est très largement adopté par les messageries existantes comme: Qualcomm Eudora
5.1r, Microsoft Outlook, entre autre, toutes supportent les connexions SSL sur leurs
serveurs.
SSL se situe au sommet de la couche TCP/IP, et au-dessous de la couche d'application.
Pour mettre en place une connexion SSL, il faut d'abord établir une connexion TCP/IP,
car SSL utilise certaines "primitives" de TCP/IP. Ainsi SSL peut être vu comme un canal
sûr au sein de TCP/IP, où tout le trafic entre deux applications "peer to peer" est échangé
de manière cryptée. Tous les appels de la couche d'application à la couche TCP, sont
remplacés par des appels de l'application à SSL, et c'est SSL qui se charge des
communications avec TCP.
Elies JEBRI
29/53
Version 2004
Cours sécurité
Les trois fonctionnalités de SSL
SSL a trois fonctions
• Authentification du serveur
Qui permet à un utilisateur d'avoir une confirmation de l'identité du serveur. Cela est fait
par les méthodes de chiffrement à clés publiques qu'utilise SSL. Cette opération est
importante, car le client doit pouvoir être certain de l'identité de son interlocuteur à qui
par exemple, il va communiquer son numéro de carte de crédit.
• Authentification du client
Selon les mêmes modalités que pour le serveur, il s'agit de s'assurer que le client
est bien celui qu'il prétend.
• Chiffrement des données
Toutes les données qui transitent entre l'émetteur et le destinataire, sont chiffrées par
l'émetteur, et déchiffrées par le destinataire, ce qui permet de garantir la confidentialité
des données, ainsi que leur intégrité grâce souvent à des mécanismes également mis en
place dans ce sens.
Le fonctionnement de SSL
Vue d'ensemble
Les couches OSI et les protocoles SSL
Elies JEBRI
30/53
Version 2004
Cours sécurité
La Figure précédente explicite comment intervient le protocole SSL, en comparaison au
modèle de couches OSI. A noter que toutes les couches ont été représentées, mais cela
ne veut pas dire que toutes sont implémentées de la même manière, cela notamment
pour les applications qui s'apparentent au modèle DOD.
Phases d’authentification
Lorsqu’il s’agit pour un serveur d’identifier un client, quatre phases se suivent :
1. Vérification de la validité de la date du certificat.
2. Le certificat est-il issu d’une CA (Certification Autority) reconnue.
3. Est-ce que la clé public attribuée à l’utilisateur valide sa signature.
4. Vérification des noms de domaines.
Pour la situation inverse, lorsque c’est le serveur qui désire vérifier l’identité du client :
1. Vérification de si la clé publique du client authentifie sa signature.
2. Vérification de la date de validité du certificat..
3. Vérification de l’entité qui à remis le certificat.
4. Est-ce que la clé publique du CA valide la signature de l’utilisateur.
5. Vérification du fait que l’utilisateur fait partie d’une LDAP.
SSL Handshake
Cela débute par le protocole SSL Handshake. Suite à la requête d'un client, le serveur
envoie son certificat, ainsi qu'une liste des algorithmes qu'il souhaite utiliser. Pour le
client il s'agit de vérifier la validité du certificat. Cela se fait à l'aide de la clé publique de
l'autorité de certification contenue dans son navigateur. Ainsi que par le fait de vérifier la
date de validité du certificat, et éventuellement un consultant une CRL (certificate
revocation list) dont la définition est donnée dans le chapitre 5.6. Si le résultat des
vérifications est positif, le client génère une clé symétrique, et l'envoie au serveur.
Suite à cela, il est prévu également de pouvoir faire le contraire, c'est à dire que le
serveur envoie au client un test, que le client doit signer avec sa clé privée correspondant
à son propre certificat, de manière à ce que le serveur recevant cela, puisse de son coté
vérifier l'identité du client.
Durant cette phase de nombreux paramètres sont échangés et configurés; comme par
exemple le type de clé, sa valeur, l'algorithme de chiffrage. Toute une série de
paramètres auxquels il s'agit de donner une valeur.
SSL Record
Ce protocole permet de garantir la confidentialité des données transmises, grâce à la clé
symétrique que le protocole Handshake à négocié. Ainsi que l'intégrité des données,
encore une fois grâce à une clé obtenue par le protocole Handshake.
Elies JEBRI
31/53
Version 2004
Cours sécurité
Protocole SSL Record
La Figure précédente montre les différentes encapsulations et traitements effectués par
le protocole SSL Records.
Les différentes phases sont les suivants :
• Segmentation des données en paquets de taille fixe
• Compression (à noter que dans les implémentations actuelles cela n’est pas
implémenté)
• Ajout du résultat de la fonction de hachage. La fonction de hachage étant une suite
d’opérations mathématiques permettant d’identifier de manière unique un paquet
(composé de la clé de cryptage, numéro de message, longueur du message,
données,…)
• Le tout est chiffré à l’aide de la clé symétrique.
• Finalement un en-tête SSL est ajoutée au paquet précédemment créé.
Elies JEBRI
32/53
Version 2004
Cours sécurité
Exemple de certificat obtenu par SSL
Afin d’expliciter de manière pratique sous qu'elle forme peut se concrétiser un certificat,
obtenu par le biais de SSL, une connexion avec le site de la poste tunisienne a été réalisé, et ce
au travers de son site sécurisé. L'adresse est donc la suivante https://www.e-dina.poste.tn.
Afin de pouvoir établir une liaison avec le serveur où sont stockées les informations relatives
à cette adresse, il y a lieu de vérifier le certificat de l'entité bancaire. Ses informations,
peuvent ensuite être consultées au travers du navigateur.
La Figure suivante, donne un extrait de la représentation des informations qui sont connues, et
vérifiables concernant ce site.
Certificat explicité par le navigateur
Elies JEBRI
33/53
Version 2004
Cours sécurité
Les proxys
Je prend mon dictionnaire d'anglais : "proxy : mandataire", "by proxy : par procuration".
Un proxy, c'est donc un mandataire, un intermédaire.
Sur Internet, il existe différents types de proxy. Les plus courants sont les proxy HTTP.
Ils supportent les protocoles HTTP et FTP.
Comment ça marche ?
En tapant une adresse comme http://www.yahoo.com/index.html, votre ordinateur
va se connecter sur le serveur www.yahoo.com et demander la page index.html.
Requête HTTP sans proxy
Avec un proxy, quand vous tapez http://www.yahoo.com/index.html, votre
ordinateur va se connecter au proxy et lui demande d'aller chercher la page sur
www.yahoo.com.
Requête HTTP avec proxy
A quoi ça sert ?
Un proxy peut avoir plusieurs utilisations.
•
Le proxy peut vous protéger : il peut vous autoriser à vous connecter à
l'extérieur et interdire les ordinateurs d'Internet de venir se connecter sur le
vôtre. Cette fonction de protection du proxy est souvent incluse dans les
firewalls (murs de feu), des ordinateurs programmés pour filtrer les
communications entre les réseaux (par exemple entre le réseau d'une entreprise
et Internet).
•
Le proxy peut masquer les informations concernant votre ordinateur: En
effet, quand vous surfez, tous les sites Web peuvent savoir de quel site vous
venez, quel navigateur vous utilisez, quel est votre système d'exploitation, votre
adresse IP... Certains proxy masquent ces informations. Ces proxy sont dits
proxy anonymes.
•
Le proxy peut mémoriser les pages les plus demandées. Ainsi si vous demandez
plusieurs fois la page http://www.yahoo.com/index.html, le proxy vous la donnera
Elies JEBRI
34/53
Version 2004
Cours sécurité
immédiatement sans aller la chercher sur www.yahoo.com. Si vous êtes proche du
proxy, cela peut accélérer les choses. Il s'appelle alors proxy-cache.
Les dangers
Confidentialité:
Etant donné que vous demandez toutes vos pages au proxy, celui-ci
peut savoir tous les sites que vous avez visité.
Mots de passe:
Certains sites Web nécessitent des mots de passe. Comme vous
passez par le proxy, le proxy connaîtra vos mots de passe (sauf si vous
utilisez HTTPS/SSL).
Modifications:
Censure:
Le proxy vous fournit les pages, mais il est également possible qu'il
les modifie à la volée avant de vous les donner (cela reste rare, mais
possible !).
Certains proxy peuvent être configurés pour censurer des sites.
Il faut donc avoir confiance en l'administrateur du proxy. A vous de voir si vous voulez
faire confiance au serveur proxy de votre fournisseur d'accès. Pour ceux des
entreprises... c'est à voir ! Les spécialistes estiment que 70% des entreprises
américaines examinent les accès des employés aux proxy.
Malgré tout, je vous recommande de désactiver - si vous le pouvez - le proxy quand vous
devez accéder à des sites nécessitant des mots de passe.
Autre danger : les proxy transparents
En principe, vous indiquez volontairement que vous voulez utiliser un proxy.
Certains fournisseurs d'accès (comme Wanadoo ou AOL, dans certains cas), regardent
quels protocoles vous utilisez et détournent sans vous le dire les requêtes HTTP vers
leurs serveurs proxy.
Certains fournisseurs détournent les requêtes HTTP
sur leurs serveurs proxy sans vous le dire.
Elies JEBRI
35/53
Version 2004
Cours sécurité
Pourquoi font-ils cela ?
•
Cela permet d'effectuer des statistiques très précises sur les habitudes de
navigation des internautes, et ce genre d'information se vend très bien aux
sociétés de marketting.
•
Cela permet d'économiser de la bande passante pour réduire la quantité de
données reçues d'Internet.
•
Il est également arrivé chez un fournisseur (AOL) que le proxy-cache recompresse
les images avec une qualité moindre pour gagner de la place. Résultat: tous les
sites consultés devennaient hideux (images de très mauvaise qualité).
Comment détecter un proxy transparent ?
En principe, quand vous vous connectez sur un site Web sans proxy, celui-ci doit voir
votre adresse IP (ou celle de votre passerelle).
Il suffit de comparer votre adresse IP avec celle vue par le serveur Web. Désactivez le
proxy dans votre navigateur, puis essayez par exemple un des sites suivants:
•
•
•
http://cgisource.com/cgi-bin/env.cgi
http://cpcug.org/scripts/env.cgi
http://tools.blueyonder.co.uk/cgi-bin/env.cgi
Si vous ne passez pas par une passerelle, comparez le champ REMOTE_ADDR avec votre
adresse IP. Si elles sont différentes, alors c'est que votre fournisseur d'accès utilise
probablement un proxy transparent ! (ou bien que vous passez par une
passerelle/firewall).
Elies JEBRI
36/53
Version 2004
Cours sécurité
Les Firewalls
Un firewall - littéralement "mur de feu" - est un ordinateur (et un programme) qui filtre
ce qui passe d'un réseau à un autre.
On s'en sert pour sécuriser les réseaux et les ordinateurs, c'est-à-dire contrôler les accès
et bloquer ce qui est interdit.
Souvent, on utilise un firewall pour protéger un réseau local du réseau internet:
Typiquement, il va:
•
•
autoriser les ordinateurs du réseau local à se connecter à internet.
bloquer les tentatives de connexion d'internet vers les ordinateurs du réseau local.
Firewall matériel, firewall logiciel
On entend parfois parler de firewalls matériels. Ils sont sous la forme de boîtiers
compacts. En réalité, se sont de simples ordinateurs possédant leur propre système
d'exploitation et leur propre logiciel firewall. Mais ils n'ont rien de différent d'un simple
firewall installé sur un ordinateur.
Le seul avantage des firewalls "matériels" est qu'ils sont moins encombrants qu'un
ordinateur. Mais ils coûtent généralement cher.
Elies JEBRI
37/53
Version 2004
Cours sécurité
Quelques firewalls "matériels"
Si vous avez un vieux PC qui traîne, on peut très bien le transformer en firewall avec
quelques logiciels gratuit !
Par exemple, il existe des disquettes ou CD comme CoyoteLinux ou Smoothwall qui
transforment n'importe quel vieux PC (même un simple 386 sans disque dur !) en firewall
digne de ce nom.
C'est un moyen de se faire un firewall fiable au meilleur prix.
Voici quelques logiciels qui permettent de transformer n'importe quel PC en firewall
gratuitement:
•
•
http://directory.google.com/Top/Computers/Software/Operating_Systems/Linux/P
rojects/Networking/Firewalls/
http://directory.google.com/Top/Computers/Software/Operating_Systems/Linux/
Distributions/Tiny/Network_Tools/
Firewall et couches OSI
La plupart des firewalls travaillent au niveau des couches 4 (TCP, UDP...), 3 (IP...) et 2
(Ethernet...). Ils ne comprennent rien aux protocoles au dessus (ils sont incapables de
filtrer HTTP, SMTP, POP3...).
Certains firewalls sont capables de travailler au niveau de la couche 7 (applicative). Ils
sont généralement plus lents, plus lourds et plus complexes à configurer mais permettent
de filtrer certains protocoles comme HTTP, SMTP, POP3, FTP...
Par exemple, c'est utile pour bloquer le téléchargement de virus, interdire certains sites,
filtrer les cookies...
(Pour plus d'informations sur le modèle OSI, voir
http://sebsauvage.net/comprendre/tcpip/osi.html )
Comment ça marche un firewall ?
Un firewall, c'est une liste ordonnée de la forme:
•
•
•
•
(règle 1, action 1)
(règle 2, action 2)
(règle 3, action 3)
etc.
Chaque fois qu'un paquet de données arrive, le firewall compare ce paquet à chaque
règle (dans l'ordre) jusqu'à en trouver une qui corresponde au paquet. Il exécute alors
l'action correspondante à la règle.
Elies JEBRI
38/53
Version 2004
Cours sécurité
Les règles peuvent être: adresse destination du paquet, adresse source, port
destination, port source, date, heure, etc.
Les actions peuvent être: refuser le paquet, ignorer le paquet, accepter le paquet,
transmettre le paquet sur un autre réseau, modifier les entêtes du paquet...
Firewalls "personnels"
Il y a quelques temps, un nouveau type de firewall est apparu: les firewalls dits
"personnels". Ils sont destinés aux particuliers qui n'ont pas les moyens d'acheter un
ordinateur séparé uniquement pour faire un firewall.
Au lieu d'être une machine séparée, le firewall personnel est un logiciel qui fonctionne
directement sur l'ordinateur à protéger.
Il a quelques inconvénients:
•
•
Si un hacker parvient à s'introduire sur l'ordinateur, il pourra facilement
désactiver le firewall (C'est beacoup plus difficile quand le firewall est un
ordinateur séparé)
Comme il fonctionne en même que les autres logiciels, il ralentit légèrement
l'ordinateur.
Mais il a aussi un avantage: Le firewall personnel est capable de contrôler quels logiciels
vont se connecter sur Internet (ce que ne sait pas faire un firewall séparé).
Parmis les firewalls "personnels", citons: Kerio Personal Firewall, Sygate Personal
Firewall, ZoneAlarm, Agnitum Outpost, Look'n Stop... (La plupart de ces firewalls sont
gratuits pour une utilisation non-professionnelle: profitez-en !)
On peut parfaitement imaginer d'avoir les 2 types de firewalls en même temps: un
firewall séparé pour protéger le réseau, et un firewall personnel pour protéger chaque
ordinateur.
Comment on ferme un port ouvert ?
(Pour comprendre ce que sont les ports, je vous recommande de lire d'abord le chapitre
sur TCP/IP: http://sebsauvage.net/comprendre/tcpip/ )
Un port ne s'ouvre jamais tout seul.
C'est toujours un logiciel précis qui ouvre un port.
Fermer un port, c'est donc fermer le logiciel qui a ouvert ce port.
Elies JEBRI
39/53
Version 2004
Cours sécurité
(Si vous ne pouvez/voulez pas fermer ce logiciel, il vous reste alors à installer un firewall
personnel qui bloquera les tentatives de connexion à ce port. Nous verrons cela plus
loin.)
Prenons un exemple:
Comme vous le voyez, sur cet ordinateur il y a 3 logiciels en mémoire:
•
•
•
Le navigateur utilise 4 ports, connectés à un serveur web externe, pour aller
chercher des pages HTML et des images. Ces ports sont ouverts en mode client:
ils ne reçoivent pas de connexion, mais sont connectés à l'extérieur pour échanger
des données.
Le traitement de texte n'a aucun besoin d'aller sur internet: il n'a ouvert aucun
port.
Le logiciel de chat a ouvert le port 2074 en mode serveur: Il attend des
connexions venant de l'extérieur (par exemple quelqu'un sur internet qui voudrait
discuter avec vous).
Si quelqu'un sur internet essaie de se connecter sur votre ordinateur:
•
•
•
sur le port 2068: Sans effet. La connexion sera rejetée, puisque ce port est déjà
utilisé par le navigateur, et il n'est pas ouvert en écoute.
sur le port 7777: Sans effet. La connexion sera rejetée, puisque ce port n'est
même pas ouvert sur l'ordinateur.
sur le port 2074: La connexion est établie. Le logiciel de chat pourra recevoir
des commandes, auxquelles il pourra décider de répondre ou non.
Donc pour fermer le port 2074, il suffit de fermer le logiciel de chat.
Dans 99% des cas, le danger sur internet vient des bugs ou de la mauvaise
configuration des logiciels qui se mettent en écoute sur un port.
(ici: le logiciel de chat).
Elies JEBRI
40/53
Version 2004
Cours sécurité
Il est donc très important:
•
•
•
•
•
•
•
de
de
de
de
de
de
ne pas lancer n'importe quel logiciel sur votre ordinateur,
bien choisir quel logiciel utiliser pour une tâche donnée,
bien configurer ce logiciel,
suivre l'actualité en matière de sécurité et donc:
mettre régulièrement à jour vos logiciels et votre système d'exploitation,
fermer tous les logiciels dont vous n'avez pas besoin,
et de vérifier que les logiciels que vous avez choisis ne font pas de choses étranges
(par exemple, un traitement de texte n'a aucune raison d'aller sur internet).
Comment savoir quels ports sont ouverts sur mon ordinateur ?
Ouvrez une fenêtre MS-Dos (ou un terminal Unix) et tapez la commande: netstat -a
Vous verrez la liste des ports ouverts. Les ports ouverts en mode serveur (en écoute)
sont notés "LISTENING".
Active Connections
Proto
TCP
TCP
TCP
TCP
TCP
Local Address
votreordinateur:2067
votreordinateur:2068
votreordinateur:3014
votreordinateur:3117
votreordinateur:2074
Foreign Address
serveurweb:80
serveurweb:80
serveurweb:80
serveurweb:80
0.0.0.0:0
State
ESTABLISHED
ESTABLISHED
ESTABLISHED
ESTABLISHED
LISTENING
Et pour savoir quel logiciel a ouvert tel ou tel port:
•
•
sous Unix/Linux, tapez: netstat -apet
sous Windows, il vous faut un programme supplémentaire:
o ActivePorts (freeware, pour NT/2000/XP uniquement): http://www.protectme.com/freeware.html
o TCPView (freeware, pour NT/2000/XP uniquement):
http://www.sysinternals.com/ntw2k/source/tcpview.shtml
o OpenPorts (freeware, pour NT/2000/XP uniquement):
http://www.diamondcs.com.au/openports/
o CurrPorts (freeware, pour 2000/XP uniquement):
http://members.lycos.co.uk/nirsoft1/utils/cports.html
o la plupart des firewalls personnels (comme Kerio Personal Firewall) sont
également capable d'afficher ces informations (également sous 95/98/ME).
Il vous suffira alors d'arrêter le programme en question (avec le gestionnaire de tâches),
de l'empêcher de démarrer au démarrage de Windows (avec un programme comme
AutoStart Manager) et éventuellement supprimer le programme en question.
Elies JEBRI
41/53
Version 2004
Cours sécurité
Comment fonctionne le firewall personnel ?
Il va se placer entre les logiciels et le réseau, et intercepter tout ce qui passe, aussi bien
en entrée qu'en sortie.
Ainsi le firewall personnel va intercepter la tentative de connexion au logiciel de chat
(port 2074). Si le firewall possède une règle qui interdit cela, la connexion sera rejetée,
et le logiciel de chat ne verra même pas la tentative de connexion.
En établissant vos propres règles, vous pourrez décider quels logiciels pourront se
connecter sur internet ou recevoir des connexions, et de qui.
Ainsi, même si vous n'arrivez pas à fermer certains ports, vous pourrez établir des règles
pour interdire les connexions sur ces ports. Mais il vaut bien mieux fermer les
logiciels qui ouvrent ces ports. C'est plus sûr que de bloquer les connexions vers ces
ports.
Et pour établir la liste de règles de votre firewall, il y a une règle à suivre: Tout est
interdit, sauf ce qui est strictement nécessaire.
Donc, ne vous posez plus la question "Quels ports fermer ?". La réponse est évidente:
tous !
La plupart des firewalls personnels ont un mode "apprentissage" où ils vous affichent des
messages d'alerte et vous demandent quoi faire. Cela permet d'établir progressivement
un ensemble de règles pour vos logiciels courants. (Vous donnez des autorisations à vos
logiciels au cas par cas, et le firewall s'en souvient.) Quelques exemple:
•
•
•
•
•
•
votre navigateur pourra se connecter où il veut sur les ports 80 (HTTP) et 443
(HTTPS).
votre logiciel d'email ne doit se connecter que sur le serveur de mail de votre
fournisseur d'accès (par exemple: smtp.free.fr sur le port 25 et pop.free.fr sur le
port 110). Tout le reste lui est interdit.
votre antivirus peut se connecter uniquement au site de l'éditeur pour se mettre à
jour.
Votre logiciel de FTP peut se connecter où il veut, mais uniquement sur le port 21.
Il peut recevoir des connexions sur le port 20.
votre jeu en réseau à recevoir des connexion sur le port qui lui est dédié, et aller
se connecter sur le serveur central de jeu.
etc.
Elies JEBRI
42/53
Version 2004
Cours sécurité
(Ce ne sont que quelques exemples.)
Par la suite, il suffit de désactiver ce mode apprentissage pour ne plus voir les fenêtes
d'alerte et travailler en sérénité.
Un firewall n'est pas une arme absolue
Ne pensez pas que votre ordinateur est protégé à 100% parceque vous avez un firewall
fiable et bien configuré.
Certains chevaux de Troie sont capable de désactiver les firewalls personnels, ou même
se faire passer pour votre navigateur pour aller sur Internet sans que le firewall ne s'en
aperçoive.
Même avec un firewall "matériel", il est possible de tunneller du traffic TCP/IP chiffré
dans de simples requêtes HTTP. Pour parler plus simplement, ça permet de percer des
trous gigantesques dans le plus blindé des firewalls.
(Pour les détails techniques, voici ici: http://sebsauvage.net/punching/)
Bref, vous le voyez, la sécurité n'est jamais assurée à 100%.
Alors le firewall est inutile ?
Sûrement pas !
Il est absolument indispensable à partir du moment ou vous allez sur internet.
C'est un peu comme la ceinture de sécurité: ça n'empêche pas d'avoir des accidents,
mais dans la majorité des cas, ça sauve des vies !
Elies JEBRI
43/53
Version 2004
Cours sécurité
Description d'un virus informatique
Son origine
Les virus trouvent leur origine dans un jeu. Ce jeu naquit en 1970, dans les laboratoires
de la société Bell aux Etats-Unis. Il s'appelle Core War et a été développé par trois jeunes
informaticiens de cette société. Le principe est simple: chaque joueur écrit un
programme le plus concis possible. Ces programmes sont chargés en mémoire vive. Le
système d'exploitation, multitâche, exécute tour à tour une instruction de chacun des
programmes. Chaque joueur ignore évidemment la position des autres programmes. Le
but est de détruire le programme de l'adversaire et d'assurer sa propre survie. Pour cela,
les programmes sont capables de se recopier, de se déplacer, de se réparer eux-même,
de bombarder l'adversaire de 0, etc. La partie est terminée lorsque l'un des joueurs a
perdu tous ses programmes ou si ceux-ci ont été modifiés au point d'être rendus inactifs
ou encore au bout d'un temps défini. Le gagnant est celui qui possède le plus grand
nombre de copies de programmes actifs. Ce jeu contient en lui-même tout le principe de
la programmation des virus.
Son programme
On garde à l'esprit qu'un virus informatique n'est rien d'autre qu'un programme. Il est
constitué d'un sous-programme indispensable, et parfois d'autres sous-programmes tel
qu'une partie destructrice, ou une routine pour le protéger contre les anti-virus.
Le programme indispensable est le programme de reproduction. Il contient une partie
pour la recherche qui lui permet de localiser de nouveaux fichiers ou de nouvelles zones
d'action sur le disque. Il s'assure qu'il n'a pas déjà infecté le fichier choisi. Une partie
reproduction qui permet d'accrocher le virus au fichier sélectionné. Cette partie est
suffisante pour avoir un virus.
Elies JEBRI
44/53
Version 2004
Cours sécurité
Prenons l'exemple de l'infection d'un programme .EXE:
Un virus qui va infecter un fichier .EXE devra modifier l'en-tête et le tableau du pointeur
de réadressage, aussi bien qu'ajouter son propre code au module chargeable. Le virus
s'attachera à la fin du programme et obtiendra la main quand le programme
commencera. Ainsi le virus ne pourra pas être détecté en début de programme. Il
s'exécutera et remettra les octets initiaux en début de programme(en mémoire
principale), et lui donnera la main comme s'il n'avait pas existé.
Il possède en général une signature, en d'autres termes, il est écrit avec une suite
d'octets qui ne varient pas, ce qui permet de l'identifier grâce à une séquence d'octets
consécutifs. C'est la méthode la plus utilisée par les anti-virus. Seulement le virus doit
être connu.
Les types de cible
Nous pouvons classer les virus selon leur cible, nous avons 3 types de cible.
•
•
•
Le système : le virus système ou amorce s'attaque à au système ou à la zone
d'amorçage du disque dur ou d'une disquette. Certains virus attaquent par
exemple le boot secteur. C'est la première chose qu'un ordinateur charge en
mémoire à partir du disque et exécute quand il est allumé. En attaquant cette
zone de disque, le virus peut obtenir le contrôle immédiat de l'ordinateur.
Les fichiers : Un virus peut attaquer des nombreux fichiers. En général, il ne
connaît que la structure d'un type de fichier et parfois même d'un seul fichier, ce
qui lui permet de vraiment s'adapter à ces fichiers et d'être plus facilement
invisible. Aujourd'hui ce sont les fichiers transitant par l'Internet qui sont le plus
visé.
Les macro : le développement des outils de bureautique a permis l'explosion de
ces fichiers qui se propagent en général avec des fichiers de données.
Les virus offensifs
Les virus offensifs possèdent un détonateur et une charge. Le détonateur est l'action ou
la date(par exemple Vendredi 13 pour Jérusalem) qui détermine le déclenchement de la
phase offensive. La charge est justement cette dernière (formater le disque dur, détruire
des fichiers, et dans le pire des cas détruire du hard).
Certains virus offensifs, n'ont pas de détonateur, mais crée des dégâts partiels à chaque
exécution(par exemple détruire un fichier au hasard).
Plus le détonateur est long à ce déclencher, plus le virus aura de temps pour se
répandre.
Quelques formes particulières de virus informatiques:
Cheval de Troie :
Il est caché dans un programme qui aide à sa diffusion (par exemple un shareware).
Polymorphe.
Il peut prendre plusieurs formes, en fait, il utilise des méthodes de cryptage aléatoire de
leurs codes. Cela empêche les anti-virus de l'identifier grâce à sa signature (en fait, il ne
possède pas de signature).
Elies JEBRI
45/53
Version 2004
Cours sécurité
Furtif.
Ils renvoient des informations fausses aux systèmes d'exploitations(telle que la taille d'un
fichier), ce qui les rend invisibles.
Quelques virus connus
•
•
•
•
Brain le premier virus connu (parfaitement inoffensif).
Michelangelo qui a crée une psychose au début de l'année 1992, il se déclenche le
6 mars, jour anniversaire de la naissance de Michel-Ange en 1475.
1260,V2P1,V2P2,V2P6 les premiers virus polymorphiques.
Iloveyou qui s'est propagé par les mails
Elies JEBRI
46/53
Version 2004
Cours sécurité
Les vers
Un ver est un programme qui peut s'auto-reproduire et se déplacer à travers un réseau
en utilisant les mécanismes réseau, sans avoir réellement besoin d'un support physique
ou logique (disque dur, programme hôte, fichier ...) pour se propager; un ver est donc
un virus réseau.
La plus célèbre anecdote à propos des vers date de 1988. Un étudiant (Robert T. Morris,
de Cornell University) avait fabriqué un programme capable de se propager sur un
réseau, il le lança et, 8 heures après l'avoir laché, celui-ci avait déjà infecté plusieurs
milliers d'ordinateurs. C'est ainsi que de nombreux ordinateurs sont tombés en pannes
en quelques heures car le "ver" (car c'est bien d'un ver dont il s'agissait) se reproduisait
trop vite pour qu'il puisse être effacé sur le réseau. De plus, tous ces vers ont créé une
saturation au niveau de la bande passante, ce qui a obligé la NSA a arrêter les
connexions pendant une journée.
Le fonctionnement d'un ver dans les années 80
Voici la façon dont le ver de Morris se propageait sur le réseau :
•
•
•
•
•
•
•
Le ver s'introduisait sur une machine de type UNIX
il dressait une liste des machines connectées à celle-ci
il forçait les mots de passe à partir d'une liste de mots
il se faisait passer pour un utilisateur auprès des autres machines
il créait un petit programme sur la machine pour pouvoir se reproduire
il se dissimulait sur la machine infectée
et ainsi de suite
Les vers actuels
Les vers actuels se propagent principalement grâce à la messagerie (et notamment par le
client de messagerie Outlook) grâce à des fichiers attachés contenant des instructions
permettant de récupérer l'ensemble des adresses de courrier contenues dans le carnet
d'adresse et en envoyant des copies d'eux-même à tous ces destinataires.
Ces vers sont la plupart du temps des scripts (généralement VBScript) ou des fichiers
exécutables envoyés en pièce jointe et se déclenchant lorsque l'utilisateur destinataire
clique sur le fichier attaché.
Comment se protéger des vers ?
Il est simple de se protéger d'une infection par ver. La meilleure méthode consiste à ne
pas ouvrir "à l'aveugle" les fichiers qui vous sont envoyés en fichier attachés.
Ainsi, tous les fichiers exécutables ou interprétables par le système d'exploitation
peuvent potentiellement infecter votre ordinateur. Les fichiers comportant notamment les
extensions suivantes sont potentiellement susceptible d'être infectés :
exe, com, bat, pif, vbs, scr, doc, xls, msi, eml
Sous Windows il est conseillé de désactiver la fonction "masquer les extensions", car
cette fonction peut tromper l'utilisateur sur la véritable extension d'un fichier. Ainsi un
fichier dont l'extension est .jpg.vbs apparaîtra comme un fichier d'extension .jpg !
Elies JEBRI
47/53
Version 2004
Cours sécurité
Ainsi, les fichiers comportant les extensions suivantes ne sont pas interprétés par le
système et possèdent donc un risque d'infection minime :
txt, jpg, gif, bmp, avi, mpg, asf, dat, mp3, wav, mid, ram, rm
Il est courant d'entendre dire que les fichiers GIF ou JPG peuvent contenir des virus.
En effet, tous les fichiers peuvent contenir un morceau de code informatique véhiculant
un virus; pour autant le système devra préalablement avoir été modifié par un autre
virus pour être capable d'interpréter le code contenu dans ces fichiers !
Pour tous les fichiers dont l'extension peut supposer que le fichier soit infecté (ou pour
les extensions que vous ne connaissez pas) n'hésitez pas à installer un antivirus et à
scanner systématiquement le fichier attaché avant de l'ouvrir.
Voici une liste plus complète (non exhaustive) des extensions des fichiers susceptibles
d'être infectés par un virus :
Extensions
386, ACE, ACM, ACV, ARC, ARJ, ASD, ASP, AVB, AX, BAT, BIN, BOO, BTM, CAB, CLA, CLASS, CDR, CHM, CMD, CNV, COM, CPL, CPT,
CSC, CSS, DLL, DOC, DOT DRV, DVB, DWG, EML, EXE, FON, GMS, GVB, HLP, HTA, HTM, HTML, HTA, HTT, INF, INI, JS, JSE, LNK, MDB,
MHT, MHTM, MHTML, MPD, MPP, MPT, MSG, MSI, MSO, NWS, OBD, OBJ, OBT, OBZ, OCX, OFT, OV?, PCI, PIF, PL, PPT, PWZ, POT, PRC,
QPW, RAR, SCR, SBF, SH, SHB, SHS, SHTML, SHW, SMM, SYS, TAR.GZ, TD0, TGZ, TT6, TLB, TSK, TSP, VBE, VBS, VBX, VOM, VS?, VWP,
VXE, VXD, WBK, WBT, WIZ, WK?, WPC, WPD, WML, WSH, WSC, XML, XLS, XLT, ZIP
Elies JEBRI
48/53
Version 2004
Cours sécurité
Les chevaux de Troie
On appelle "Cheval de Troie" (en anglais trojan horse) un programme informatique
effectuant des opérations malicieuses à l'insu de l'utilisateur. Le nom "Cheval de Troie"
provient d'une légende narrée dans l'Iliade (de l'écrivain Homère) à propos du siège de la
ville de Troie par les Grecs.
La légende veut que les Grecs, n'arrivant pas à pénétrer dans les fortifications de la ville,
eurent l'idée de donner en cadeau un énorme cheval de bois en offrande à la ville en
abandonnant le siège.
Les troyens (peuple de la ville de Troie), apprécièrent cette offrande à priori inoffensive
et la ramenèrent dans les murs de la ville. Cependant le cheval était rempli de soldats
cachés qui s'empressèrent d'en sortir à la tombée de la nuit, alors que la ville entière
était endormie, pour ouvrir les portes de la cité et en donner l'accès au reste de l'armée
...
Un cheval de Troie (informatique) est donc un programme caché dans un autre qui
exécute des commandes sournoises, et qui généralement donne un accès à la machine
sur laquelle il est exécuté en ouvrant une porte dérobée (en anglais backdoor), par
extension il est parfois nommé troyen par analogie avec les habitants de la ville de Troie.
A la façon du virus, le cheval de Troie est un code (programme) nuisible placé dans un
programme sain (imaginez une fausse commande de listage des fichiers, qui détruit les
fichiers au-lieu d'en afficher la liste).
Un cheval de Troie peut par exemple
•
•
•
•
voler des mots de passe ;
copier des données sensibles ;
exécuter tout autre action nuisible ;
etc.
Pire, un tel programme peut créer, de l'intérieur de votre réseau, une brêche volontaire
dans la sécurité pour autoriser des accès à des parties protégées du réseau à des
personnes se connectant de l'extérieur.
Les principaux chevaux de Troie sont des programmes ouvrant des ports de la machine,
c'est-à-dire permettant à son concepteur de s'introduire sur votre machine par le réseau
en ouvrant une porte dérobée. C'est la raison pour laquelle on parle généralement de
backdoor (littéralement porte de derrière) ou de backorifice.
Un cheval de Troie n'est pas nécessairement un virus, dans la mesure où son but n'est
pas de se reproduire pour infecter d'autres machines. Par contre certains virus peuvent
également être des chevaux de Troie, c'est-à-dire se propager comme un virus et ouvrir
un port sur les machines infectées !
Détecter un tel programme est difficile car il faut arriver à détecter si l'action du
programme (le cheval de Troie) est voulue ou non par l'utilisateur.
Elies JEBRI
49/53
Version 2004
Cours sécurité
Les symptômes d'une infection
Une infection par un cheval de Troie fait généralement suite à l'ouverture d'un fichier
contaminé contenant le cheval de Troie (voir le chapitre sur les vers) et se traduit par les
symptomes suivants :
•
•
•
•
activité anormale du modem ou de la carte réseau : des données sont chargées
en l'absence d'activité de la part de l'utilisateur ;
des réactions curieuses de la souris ;
des ouvertures impromptues de programmes ;
des plantages à répétition ;
Principe du cheval de Troie
Le principe des chevaux de Troie étant généralement (et de plus en plus) d'ouvrir un port
de votre machine pour permettre à un pirate d'en prendre le contrôle (par exemple voler
des données personnelles stockées sur le disque), le but du pirate est dans un premier
temps d'infecter votre machine en vous faisant ouvrir un fichier infecté contenant le
troyen et dans un second temps d'accèder à votre machine par le port qu'il a ouvert.
Toutefois pour pouvoir s'infiltrer sur votre machine, le pirate doit généralement en
connaître l'adresse IP. Ainsi :
•
•
soit vous avez une adresse IP fixe (cas d'une entreprise ou bien parfois de
particuliers connecté par câble, ...) auquel l'adresse IP peut être facilement
récupérée
soit votre adresse IP est dynamique (affectée à chaque connexion), c'est le cas
pour les connexions par modem ; auquel cas le pirate doit scanner des adresses
IP au hasard afin de déceler les adresses IP correspondant à des machines
infectées.
Elies JEBRI
50/53
Version 2004
Cours sécurité
Aspects techniques des Antivirus
Les Antivirus rivalisent souvent d'ingéniosité pour combattre les virus. Cependant ces derniers
trouvent souvent la parade. Nous allons parler ici des différentes techniques utilisées par les Antivirus
pour combattre leur raison de vivre.
Principales techniques de recherche de virus
Nous présenterons quatre techniques majoritairement utilisées par les Antivirus pour localiser les
virus. Il s'agit du scanning, du moniteur de comportement, du contrôleur d'intégrité et de la recherche
heuristique. Brièvement présenté, le scanneur recherche dans tous les fichiers ou en RAM un code
spécifique qui est censé indiquer la présence d'un virus. Le moniteur de comportement surveille les
actions habituellement menées par les virus, les contrôleurs d'intégrité signalent les changements
intervenus dans les fichiers et enfin la recherche heuristique recherche des instructions généralement
utilisées par les virus.
Recherche de la signature
On nomme ça aussi scanning. C'est la méthode la plus ancienne et la plus utilisée. Son avantage est
qu'elle permet de détecter les virus avant leur exécution en mémoire. Son principe est de rechercher
sur le disque dur toute chaîne de caractères identifiée comme appartenant à un virus. Cependant
comme chaque virus a sa propre signature, il faut, pour le détecter avec un scanneur que le
concepteur de Antivirus ait déjà été confronté au virus en question et l'ait intégré à une base de
données. Un scanneur n'est donc pas en mesure de détecter les nouveaux virus ou les virus
polymorphes (car ceci changent de signature à chaque réplication.) Cette méthode est à la fois la plus
simple à programmer mais aussi la plus longue à mettre en ouvre car elle n'est utile que si elle
recense tous les virus existant. Cela représente une somme de travail considérable et est quasiment
impossible à réaliser. C'est pour ça que les concepteurs Antivirus proposent des mises à jour de la
base de donnée tous les mois sur leur site WEB, c'est le seul moyen pour le scanneur de détecter les
nouveaux virus.
Utilisation d'un contrôleur d'intégrité
Schématiquement, un contrôleur d'intégrité va construire un fichier contenant les noms de tous les
fichiers présents sur le disque dur auxquels sont associés quelques caractéristiques. Ces dernières
peuvent prendre en compte la taille, la date et l'heure de la dernière modification ou encore un
checksum (somme de contrôle)Un CRC (code de redondance cyclique), ou un algorithme de
checksum avec un système de chiffrement propriétaire pourra détecter toute modification ou altération
des fichiers en recalculant le checksum à chaque démarrage de l'ordinateur(si Antivirus n'est pas
résident), ou dès qu'un fichier exécutable est ouvert par un programme (si Antivirus est résident); en
effet si le checksum d'un programme avant et après son exécution est différent, c'est qu'un virus a
modifié le fichier en question, l'utilisateur en est donc informé. D'autre part Antivirus peut aussi stocker
la date et la taille de chaque fichier exécutable dans une base de données, et tester les modifications
éventuelles au cours du temps. Il est en effet rare de modifier la taille ou la date d'un fichier
exécutable. La parade pour les virus est de sauvegarder la date du fichier avant la modification et de
la rétablir après.
Moniteur de comportement
Les moniteurs de comportement ont pour rôle d'observer l'ordinateur à la recherche de toute activité
de type virale, et dans ce cas de prévenir l'utilisateur.Typiquement, un moniteur de comportement est
un programme résident que l'utilisateur charge à partir du fichier AUTOEXEC.BAT. et qui reste actif en
arrière plan, surveillant tout comportement inhabituel. Que va faire le zouave ? Description d'attaque
virale. Les tentatives d'ouverture en lecture/écriture des fichiers exécutables. Les tentatives d'écriture
sur les secteurs de partitions et de démarrage. Les tentatives pour devenir résident.
Elies JEBRI
51/53
Version 2004
Cours sécurité
Démarche heuristique
Fondamentalement, l'analyse heuristique concerne la recherche de code correspondant à des
fonctions virales. Elle est différente dans son principe, d'un moniteur de comportement qui surveille
des programmes ayant une action de type virale. L'analyse heuristique est comme le scanning,
passive. Elle considère le code comme une simple donnée, et n'autorise jamais son jamais son
exécution.
Un analyseur heuristique va donc rechercher du code dont l'action est suspecte s'il vient à être
exécuté.L'analyse heuristique permet par exemple, pour les virus polymorphes de chercher une
routine de déchiffrement. en effet une routine de déchiffrement consiste à parcourir le code pour
ensuite la modifier. Ainsi lors de l'analyse heuristique, Antivirus essaie de rechercher non pas des
séquences fixes d'instructions spécifiques au virus mais un type d'instruction présent sous quelque
forme que ce soit. Pour en revenir à notre exemple de virus polymorphes, Antivirus cherche une suite
d'instructions de lecture suivie d'une suite d'instruction d'écriture. Cette méthode est donc un peu plus
intelligente que les autres : car elle vise à analyser les fonctions et instructions les plus souvent
présentes et que l'on retrouve dans la majorité des virus. Cette méthode permet ainsi, contrairement
au scanning, de détecter des nouveaux virus dont la signature n'a pas été ajoutée à la base de
données.
Analyse spectrale
Tout code généré automatiquement est supposé contenir des signes révélateurs du compilateur
utilisé. De même, au contraire, il est impossible de retrouver dans un vrai programme exécutable
compilé certaines séquences de code. C'est grâce à ce principe qu'entre en jeu l'analyse spectrale.
Cette analyse vise à repérer les virus polymorphes qui sont indétéctables autrement (leur signature
changeant à chaque réplication). En effet, lorsqu'un virus polymorphe crypte son code, la séquence
en résultant contient certaines associations d'instructions que l'on ne trouve pas en temps normal ;
c'est ce que va détecter l'analyse spectrale. Par exemple, si dans un programme exécutable, Antivirus
trouve une instruction de lecture d'un octet au-delà de la taille limite de la mémoire, on sera
probablement en présence de code crypté, donc d'un virus polymorphe.
Techniques d'éradication de virus
Une fois un virus détecté, que ce soit en mémoire ou sur le disque dur, il reste à le supprimer. Une
fonction primordiale des Antivirus est donc la suppression des virus. Leur but est de débarrasser
l'utilisateur de ce programme malveillant. Mais il n'est pas si simple que l'on croit de les éradiquer et
de récupérer le programme original. En effet cela est impossible dans le cas de virus avec
recouvrement : ils détruisent une partie du programme sain lors de sa duplication. La seule solution
est la destruction des fichiers infectés ou carrément le formatage du disque dur. Pour les autres,
même si ce n'est pas irréalisable, la tache est cependant très ardue : il faut savoir très précisément où
est localisé, dans le fichier, le virus en question sachant qu'il peut être composé de plusieurs parties,
ensuite il faut le supprimer, et enfin aller chercher la partie durogramme dont le virus avait pris la place
et la restaurer. Toutes ces manipulations nécessitent une connaissance parfaite du virus et de son
mode d'action. Cette éradication se faisant par une recherche (du virus, de la partie déplacée), toutes
les caractéristiques des différents virus doivent être répertoriées dans une base de donnée mise à jour
pratiquement quotidiennement.
Elies JEBRI
52/53
Version 2004