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

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

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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

Réalisé par : JEBRI Elies Enseignant Technologue

ISET Nabeul

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

Chapitre 1

Introduct ion

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 le 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 ’uti l isation 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 fe 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 Q u e lque s c h i f f r e s a c tue l s

Chaque année, le Computer Security Institute 1

− 90% des sondes ont déclare avoir eu des incidents de sécurité informatique dans les douze derniers mois.

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:

− 80% ont avoue en avoir subi des pertes financières. 1. h t t p : / /www.gocs i .com

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

− 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 qu ' i l s on des conséquences importantes.

1 .2 P e t i t h i s to r i que de p rob lèmes de sécur i t é 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 tn ick 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 arres-tation, Kevin Mitnick aurait dit Tsutomu, I respect your sk i l ls . 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 re 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

2 I n t r o d uc t i o n

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

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 lUBS. L u n essayait de retrouver sur les disques dur infectes les mots de passe utilises par lapplication de telebanking, lau t re 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 choisis-sant 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 garan-tissent 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 Me thodo log i e

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é lorsqui l 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 den t ie r le contexte du systeme securiser. On ne va pas securiser de la meme maniere une villa quune banque ou une gare.

Methodologie 3

L a S e c u r i t e d e s R e s e a u x

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

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 den 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.

4 I n t r o d uc t i o n

P h . O e c h s l i n

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

Cours sécurité

Elies JEBRI 5/53 Version 2004

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

Cours sécurité

Elies JEBRI 6/53 Version 2004

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é.

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

Cours sécurité

Elies JEBRI 7/53 Version 2004

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 basées sur des modifications simples : inversions, transpositions, décalage, etc.

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.

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

Cours sécurité

Elies JEBRI 8/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 9/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 10/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 11/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 12/53 Version 2004

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 mod 1073 = 436 976^71 mod 1073 = 822 767^71 mod 1073 = 825 900^71 mod 1073 = 552

Le message encrypté est 436 822 825 552. On peut le décrypter avec d:

436^1079 mod 1073 = 726 822^1079 mod 1073 = 976 825^1079 mod 1073 = 767 552^1079 mod 1073 = 900

C'est à dire la suite de chiffre 726976767900. On retrouve notre message en clair 72 69 76 76 79 : 'HELLO'.

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

Cours sécurité

Elies JEBRI 13/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 14/53 Version 2004

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

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

Cours sécurité

Elies JEBRI 15/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 16/53 Version 2004

Authentification

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.

Les algorithmes d'encryptage assymétriques ont d'autres utilisations: on peut par exemple authentifier l'émetteur d'un message.

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.

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

Cours sécurité

Elies JEBRI 17/53 Version 2004

(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).)

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

Cours sécurité

Elies JEBRI 18/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 19/53 Version 2004

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

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

Cours sécurité

Elies JEBRI 20/53 Version 2004

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).

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

Cours sécurité

Elies JEBRI 21/53 Version 2004

format des certificats X.509

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

Cours sécurité

Elies JEBRI 22/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 23/53 Version 2004

• 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.).

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

Cours sécurité

Elies JEBRI 24/53 Version 2004

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.

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

1. Définition de la politique de certification 2. Demande de certificat 3. Soumission de la demande après vérification de

l’identité 4. Génération du certificat 5. Publication du certificat et de la liste de révocation 6. Transmission du certificat et de la clé privée 7. Envoi de message signé à B 8. Octroi de la clé publique de A et vérification de la

signature ainsi que de la validité de son certificat 9. Echange de messages sécurisés

Processus de certification selon PKI

Utilisateur A

5

Utilisateur B

Autorité d’enregistrement

Autorité de certification

Centre de

Publication

1

2

3 4

5

6 8 8

9 7

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

Cours sécurité

Elies JEBRI 25/53 Version 2004

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).

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

Cours sécurité

Elies JEBRI 26/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 27/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 28/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 29/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 30/53 Version 2004

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

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

Cours sécurité

Elies JEBRI 31/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 32/53 Version 2004

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éé.

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

Cours sécurité

Elies JEBRI 33/53 Version 2004

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

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

Cours sécurité

Elies JEBRI 34/53 Version 2004

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

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

Cours sécurité

Elies JEBRI 35/53 Version 2004

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:

.

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 !).

Censure: 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.

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

Cours sécurité

Elies JEBRI 36/53 Version 2004

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).

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

Cours sécurité

Elies JEBRI 37/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 38/53 Version 2004

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/Projects/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.

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

Cours sécurité

Elies JEBRI 39/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 40/53 Version 2004

(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).

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

Cours sécurité

Elies JEBRI 41/53 Version 2004

Il est donc très important:

• de ne pas lancer n'importe quel logiciel sur votre ordinateur, • de bien choisir quel logiciel utiliser pour une tâche donnée, • de bien configurer ce logiciel, • de suivre l'actualité en matière de sécurité et donc: • de mettre régulièrement à jour vos logiciels et votre système d'exploitation, • de 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 Local Address Foreign Address State TCP votreordinateur:2067 serveurweb:80 ESTABLISHED TCP votreordinateur:2068 serveurweb:80 ESTABLISHED TCP votreordinateur:3014 serveurweb:80 ESTABLISHED TCP votreordinateur:3117 serveurweb:80 ESTABLISHED TCP votreordinateur:2074 0.0.0.0:0 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.protect-me.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.

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

Cours sécurité

Elies JEBRI 42/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 43/53 Version 2004

(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 !

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

Cours sécurité

Elies JEBRI 44/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 45/53 Version 2004

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).

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

Cours sécurité

Elies JEBRI 46/53 Version 2004

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

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

Cours sécurité

Elies JEBRI 47/53 Version 2004

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 !

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

Cours sécurité

Elies JEBRI 48/53 Version 2004

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

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

Cours sécurité

Elies JEBRI 49/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 50/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 51/53 Version 2004

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.

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

Cours sécurité

Elies JEBRI 52/53 Version 2004

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.