Formation Hacking Piratage
Formation Hacking Piratage
Formation Hacking Piratage
http://www.securiteinfo.com
19 février 2004
Tous droits réservés (c) 2002-2004 Securiteinfo.com
Table des matières
Les attaques........................................................................................................................................ 12
Le Hacking..................................................................................................................................... 12
Qu'est-ce que c'est ?.................................................................................................................. 12
Le but du hacking...................................................................................................................... 12
Le hacking légal.........................................................................................................................12
Les types d'attaques....................................................................................................................... 12
Introduction...............................................................................................................................12
Les attaques directes................................................................................................................. 13
Les attaques indirectes par rebond............................................................................................ 13
Les attaques indirectes par réponse........................................................................................... 14
Conclusion.................................................................................................................................15
L'attaque +++ATHZero................................................................................................................. 15
Qu'est-ce que c'est ?.................................................................................................................. 15
Conséquences............................................................................................................................ 15
Comment s'en protéger ?........................................................................................................... 15
L'attaque Boink ............................................................................................................................. 16
Qu'est-ce que c'est ?.................................................................................................................. 16
Conséquences............................................................................................................................ 16
Comment s'en protéger ? .......................................................................................................... 16
L'attaque Cisco ® 7161..................................................................................................................16
Qu'est-ce que c'est ?.................................................................................................................. 16
Conséquences............................................................................................................................ 16
Comment s'en protéger ?........................................................................................................... 16
L'attaque Click - WinNewk............................................................................................................16
Qu'est-ce que c'est ?.................................................................................................................. 17
Conséquences............................................................................................................................ 17
Comment s'en protéger ? .......................................................................................................... 17
Le Mail Bombing........................................................................................................................... 17
Qu'est-ce que c'est ?.................................................................................................................. 17
L'attaque.................................................................................................................................... 17
Comment réagir ?...................................................................................................................... 19
Vous avez été attaqué............................................................................................................... 24
Conclusion.................................................................................................................................24
L'attaque Out Of Band (OOB)....................................................................................................... 25
Qu'est-ce que c'est ?.................................................................................................................. 25
Conséquences ........................................................................................................................... 25
Comment s'en protéger ?........................................................................................................... 25
L'attaque NT Inetinfo.....................................................................................................................25
Qu'est-ce que c'est ?.................................................................................................................. 25
Conséquences............................................................................................................................ 26
Comment s'en protéger ? .......................................................................................................... 26
Ping of death.................................................................................................................................. 26
Qu'est-ce que c'est ?.................................................................................................................. 26
Qui peut provoquer cette attaque ?........................................................................................... 26
Conséquences............................................................................................................................ 26
Présentation générale.................................................................................................................99
Les implémentations d'IPSec..................................................................................................... 99
Les services proposés par IPSec............................................................................................. 100
Description des sous-protocoles..............................................................................................100
Description des modes d'IPSec................................................................................................101
Les Associations de Sécurité (SA).......................................................................................... 102
Initialisation d'IPSec (IKE)......................................................................................................102
Le protocole d'authentification AH......................................................................................... 104
Le protocole de confidentialité ESP........................................................................................ 105
La SPD.................................................................................................................................... 107
Évolutions du standard............................................................................................................ 107
Conclusion...............................................................................................................................107
Les PKI........................................................................................................................................ 108
Qu'est-ce que c'est ?................................................................................................................ 108
Techniquement ....................................................................................................................... 108
La sécurité............................................................................................................................... 164
Exploitation des cookies volés................................................................................................ 165
Les solutions............................................................................................................................166
Les contrats de licence et la Sécurité Informatique......................................................................167
Introduction.............................................................................................................................167
Limitations de garantie............................................................................................................ 167
Responsabilité et Qualité......................................................................................................... 167
Qualité Fiabilité et Disponibilité.............................................................................................. 168
Interopérabilité........................................................................................................................ 168
Le but du hacking
Le but du hacking est divers. Selon les individus (les "hackers"), on y retrouve :
• Vérification de la sécurisation d'un système.
• Vol d'informations (fiches de paye...).
• Terrorisme.
• Espionnage "classique" ou industriel.
• Chantage.
• Manifestation politique.
• Par simple "jeu", par défi.
• Pour apprendre.
• Etc.
Le hacking légal
Pour vous essayer aux techniques de hack par vous même, et en toute légalité, vous pouvez
consulter notre pages de challenges de hacking à l'adresse
http://www.securiteinfo.com/attaques/hacking/challengeshacking.shtml.
Si vous vous faites attaqués de la sorte, il y a de grandes chances pour que vous puissiez remonter à
l'origine de l'attaque, identifiant par la même occasion l'identité de l'attaquant.
Conclusion
Lorsque vous vous faites attaquer, cela peut se faire en direct ou via un ou plusieurs ordinateurs
intermédiaires. Le fait de comprendre l'attaque va vous permettre de savoir comment remonter au
hacker.
L'attaque +++ATHZero
Qu'est-ce que c'est ?
L'attaque +++ATH0 vise certains modems compatibles Hayes. Lorsque ce type de modem reçoit la
commande +++ATH0, il risque de se déconnecter. En effet, cette commande permet de positionner
le modem en commande manuelle. En pratique, cela se traduit par l'envoi d'un "Ping" contenant la
chaîne de caractères "+++ATH0".
Conséquences
• Déconnexion du modem
L'attaque Boink
Qu'est-ce que c'est ?
L'attaque Boink vise les systèmes Win32. Elle est semblable à l'attaque Bonk. Elle consiste à envoyer
des paquets UDP corrompus sur tous les ports ouverts. L'ordinateur victime ne gère pas ces paquets
et provoque un plantage.
Conséquences
• Blocage système
• Crash système
Conséquences
Plantage du routeur Cisco ®.
Conséquences
Déconnexion
Le Mail Bombing
L'attaque
Il est nécessaire pour l'auteur de l'attaque de se procurer un logiciel permettant de réaliser le mail
bombing. Voici comment cela fonctionne :
Exemple 2
Comment réagir ?
Évitez cette attaque ! Avant de prendre le risque d'avoir une adresse électronique inutilisable mieux
vaut prendre ses précautions :
• Si vous avez une adresse personnelle à laquelle vous tenez, ne la communiquez qu'aux
personnes dignes de confiance,
• Créez vous un second compte de messagerie, pour tout ce qui est mailing list par exemple et
groupe de discussion, ainsi, vous ne craignez pas de perdre d'informations vitales. Si ce compte
est attaqué vous pourrez sans difficulté reprendre une autre adresse et vous ré-abonner.
• Utilisez eremove pour éviter les mail bombers.
Ici, vous devez rentrer les identifiants de votre messagerie, votre mot de passe, le serveur de votre
FAI ainsi que le port utilisé (par défaut c'est généralement le 110). Pour les personnes disposant de
plusieurs comptes de messagerie différents, il est nécessaire de passer par le mode avancé de
configuration. Cliquer sur "Advance" vous amène aux écrans suivants :
L'onglet Programs vous permet de déterminer quel est le type de Boîte aux Lettres que vous utilisez
(Eudora, Outlook, etc ...).
Lorsque vous lancez eremove, le programme vous montre le nombre de messages, ainsi que la taille
de chacun et l'émetteur. Il vous suffit ensuite de sélectionner le ou les messages que vous ne
souhaitez pas recevoir et ils seront directement détruits sur le serveur de messagerie.
* For [email protected]; Sat, 22 Dec 2001 15:45:34 +0100 Ici vous trouvez
normalement votre adresse de messagerie ainsi que des indications horaires
* Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Sat, 22 Dec
2001 06:33:00 -0800
* X-Originating-IP: [XXX.XXX.XXX.XXX] Ici vous trouvez les indications sur l'IP d'où
sont partis les messages. Attention, il est possible mais assez rare que l'adresse IP
soit modifiée
Si vous retrouvez des informations comme l'adresse email ou le serveur qui ont permis l'arrivée des
messages, il est important de se plaindre auprès du fournisseur d'accès. En effet, dans la plupart des
cas les fournisseurs d'accès n'apprécient pas ce type de procédés via leurs serveurs et prennent toutes
les mesures nécessaires pour empêcher les auteurs de recommencer.
Conclusion
Le mail bombing n'est, à priori, pas illégal. Il n'existe pas de limite légale déterminant le nombre
maximum de messages à envoyer à un internaute. Cependant, les fournisseurs d'accès à Internet
n'apprécient pas ce type de procédés. En effet, cela leur cause des soucis de bande passante et la
saturation de leurs serveurs de messagerie. En conséquence, n'hésitez surtout pas à les solliciter si
Conséquences
Écran bleu de la mort
• Perte de la connexion internet
• Blocage système
• Crash système
L'attaque NT Inetinfo
Ping of death
Conséquences
• Crash système.
• Blocage système.
Conséquences
Crash système, plantage du site web
L'attaque Snork
Conséquences
• Ralentissement système
• Perte de bande passante
Conséquences
Plantage du démon SMTP.
L'ARP redirect
Conséquences
• Compromissions
• DoS (cache poisoning), etc...
L'attaque Bonk
Conséquences
• Blocage système
• Crash système
L'attaque BrKill
Conséquences
Déconnexion du réseau.
L'attaque Coke
Conséquences
• Ralentissement système
• Blocage système
• Crash système
Le FTP Bounce
Land attack
Conséquences
• Blocage système
• Crash système
L'attaque NT Stop
• Blocage système
• Crash système
• Reboot système
L'attaque Oshare
Conséquences
• Déconnexion du réseau
• Ralentissement système
• Blocage système
• Plantage système
Ping flooding
Conséquences
• Ralentissement système
• Blocage système
• Crash système
L'attaque Pong
Conséquences
• Détermination de l'architecture réseau derrière un firewall. En effet, la plupart des firewall laissent
passer les requêtes ping/pong. Si un routeur reçoit un pong à destination d'un ordinateur qui
n'existe pas, il renverra un message "ordinateur inexistant (host unreachable)" à l'envoyeur, c'est à
dire à l'attaquant. L'attaquant pourra donc déterminer le nombre de machines derrière le firewall,
et plus encore, il aura les adresses IP de ces ordinateurs.
• Communication avec un cheval de Troie. Les requêtes ICMP passant sans problème par les
firewalls, certains chevaux de Troie utilisent ces trames pour signaler leur présence.
• Attaques distribuées. Les requêtes ICMP passant sans problèmes par les firewalls, une attaque par
abondance de requêtes Pong (type "flooding") permet de saturer un routeur ou un ordinateur
derrière un firewall.
• Attaques "spoofed". Une attaque par ping flooding peut se produire contre un ordinateur en
simulant que ces pings viennent de votre ordinateur (de votre adresse IP). Vous recevez donc
uniquement les pongs provenant de l'ordinateur victime de l'attaque.
Conséquences
• Ralentissement des transferts connectés.
• Déconnexion des transferts connectés.
L'attaque "Smurf"
Conséquences
• Perte de la bande passante
• Ralentissement système
• Perte du réseau
• Blocage système
• Crash système
Conséquences
• Blocage système.
• Etc...
Conséquences
• Blocage système
• Crash système
Conséquences
L'attaque UDP 0
• Plantage système.
• Plantage du firewall.
Conséquences
• Ralentissement système
• Consommation des ressources systèmes
Conséquences
Conséquences
Perte du service WINS
Introduction
Le Cross Site Scripting (CSS) est une attaque qui est rarement prise au sérieux par les non-initiés.
En effet, à la différence de nombreuses techniques de piratage, celle-ci ne s'attaque pas à un serveur
mais à l'internaute via une faille au niveau d'un serveur Web ou d'une application Web.
Le principe
Il est plus simple d'expliquer cette faille par l'exemple. Soit le site www.unsitecomplice.fr, le moyen
de vérifier s'il est vulnérable à une attaque de type CSS est de demander l'affichage d'une page
inexistante. La particularité du nom de cette page est le fait qu'il contient des balises HTML :
http://www.unsitecomplice.fr/<B>nimportequoi</B>.html
Le site est bien vulnérable puisqu'il a renvoyé une page contenant le nom du fichier introuvable mais
surtout parce que les balises HTML sont conservées. Le navigateur interprète donc le code HTML
(ici les balises mettent simplement le texte en gras).
Le CSS est une technique déclinable pour les applications Web, cette attaque fonctionne dès que
l'application restitue dans un message le nom d'un fichier ou d'un paramètre présent dans une URL
sans prendre en compte l'éventuelle présence de balises HTML.
En bref
Le fonctionnement général d'un buffer overflow est de faire crasher un programme en écrivant dans
un buffer plus de données qu'il ne peut en contenir (un buffer est un zone mémoire temporaire
utilisée par une application), dans le but d'écraser des parties du code de l'application et d'injecter des
données utiles pour exploiter le crash de l'application.
Cela permet donc en résumé d'exécuter du code arbitraire sur la machine où tourne l'application
vulnérable.
Technique
Le problème réside dans le fait que l'application crashe plutôt que de gérer l'accès illégal à la
mémoire qui a été fait. Elle essaye en fait d'accéder (lire, exécuter) à des données qui ne lui
appartiennent pas puisque le buffer overflow a décalé la portion de mémoire utile à l'application, ce
qui a pour effet (très rapidement) de la faire planter.
D'un point de vue plus technique, la pile (stack en anglais) est une partie de la mémoire utilisée par
l'application pour stocker ses variables locales. Nous allons utiliser l'exemple d'une architecture intel
(32 bits). Lors d'un appel à une sous-routine, le programme empile (push) le pointeur d'instruction
(EIP) sur la stack et saute au code de la sous-routine pour l'exécuter. Après l'exécution, le
programme dépile (pop) le pointer d'instruction et retourne juste après l'endroit où a été appelée la
sous-routine, grâce à la valeur d'EIP. En effet, comme EIP pointe toujours vers l'instruction suivante,
lors de l'appel de la sous-routine il pointait déjà vers l'instruction suivante, autrement dit l'instruction
à exécuter après la sous-routine (= adresse de retour).
D'autre part, lors de l'appel de la sous-routine, celle-ci va dans la majorité des cas créer sa propre pile
dans la pile (pour éviter de gérer des adresses compliquées). Pour cela elle va empiler la valeur de la
base de la pile (EBP) et affecter la valeur du pointeur de pile (ESP) à celle de la base (EBP).
En résumé, on sauvegarde la valeur originale de la base et on décale le tout ensuite. Lors du retour
de la sous-routine, on dépile EBP et réaffecte sa valeur originale pour restaurer la pile initiale.
Voici pour le déroulement "normal" des opérations. Un point intéressant à citer est le fait que dans
notre architecture, les zones mémoires allouées dans la stack se remplissent dans le sens croissant des
adresses (de 0..0H à F..FH) ce qui semble logique. Par contre, l'empilement sur la stack s'effectue
dans le sens décroissant! C'est-à-dire que l'ESB originale est l'adresse la plus grande et que le
sommet est 0..0H. De là naît la possibilité d'écraser des données vitales et d'avoir un buffer overflow.
En effet, si notre buffer se trouve dans la pile d'une sous-routine et si nous le remplissons jusqu'à
déborder sa taille allouée, nous allons écrire par-dessus les données qui se trouvent à la fin du buffer,
c'est-à-dire les adresses qui ont été empilées précédemment : EBP, EIP... Une fois la routine
terminée, le programme va dépiler EIP et sauter à cette adresse pour poursuivre son exécution. Le
but est donc d'écraser EIP avec une adresse différente que nous pourrons utiliser pour accéder à une
partie de code qui nous appartient. (par exemple le contenu du buffer)
Un problème à ce stade est de connaître l'adresse exacte de la stack (surtout sous Windows) pour
pouvoir sauter dedans. On utilise généralement des astuces propres à chaque système (librairies,
Solutions
• lors du développement : propreté du source (utiliser malloc/free le plus possible, utiliser les
fonctions n comme strncpy pour vérifier les limites...), utilisation de librairies de
développement spécialisée contre les buffers overflow (Libsafe d'Avayalabs)
• utiliser un langage n'autorisant pas ce type d'attaques : Java, Cyclone (qui est issu du C).
• utiliser des logiciels spécialisés dans la vérification de code, comme par exemple le compilateur
StackGuard d'Immunix.
• appliquer le plus rapidement possible les patches fournis par les développeurs.
Background
Le "Denial-of-service" ou déni de service est une attaque très évoluée visant à rendre muette une
machine en la submergeant de trafic inutile. Il peut y avoir plusieurs machines à l'origine de cette
attaque (c'est alors une attaque distribuée, voir fiche DDoS) qui vise à anéantir des serveurs, des
sous-réseaux, etc. D'autre part, elle reste très difficile à contrer ou à éviter.
Définition
D'une manière générale, on parle de déni de service quand une personne ou une organisation est
privée d'un service utilisant des ressources qu'elle est en droit d'avoir en temps normal. On trouvera
par exemple des dénis de service touchant le service de courrier électronique, d'accès à Internet, de
ressources partagées (pages Web), ou tout autre service à caractère commercial comme Yahoo! ou
EBay. Quoiqu'il en soit, le déni de service est un type d'attaque qui coûte très cher puisqu'il
interrompt le cours normal des transactions pour une entreprise; les sommes et les enjeux sont
énormes et cela ne peut aller qu'en s'aggravant tant que des parades réellement efficaces n'auront pas
été trouvées.
Types d'attaques
Il existe de nombreuses façons pour faire planter une machine; en fait, on peut s'appuyer sur presque
toutes les attaques existantes (voir sur la page d'accueil de SecuriteInfo) car en faisant planter la
machine cela résultera inévitablement en un déni de service sur cette machine. La différence se situe
au niveau des intentions du hacker, c'est-à-dire savoir si le déni de service est intentionnel ou s'il n'est
que la résultante d'une attaque plus agressive visant à détruire une machine. Il ne faut plus
aujourd'hui négliger cet aspect intentionnel, au vu des sommes qui entrent en jeu.
Parmi les attaques propres à créer un déni de service, nous pouvons rappeler entre autres :
Contre-mesures
Les contre-mesures sont très compliquées à mettre en place et très ciblées vis-à-vis du type de déni
de service envisagé. En effet, d'un point de théorique, la plupart des attaques visant à créer des dénis
de service sont basées sur des services ou protocoles normaux sur Internet. S'en protéger reviendrait
à couper les voies de communications normales avec Internet, alors que c'est bien là la raison d'être
principale des machines concernées (serveurs web, etc...). Il reste tout de même la possibilité de se
protéger contre certains comportement anormaux (voir les attaques précédentes) comme une
tentative de flooding, un trop grand nombre de paquets ou de requêtes de connexion provenant d'un
petit nombre de machines. Mais cela implique beaucoup de choses en fait : il faut monitorer le trafic
(ce qui est loin d'être simple, du fait de la quantité de données qui transitent), établir des profils types
de comportement et des écarts tolérables au-delà desquels on considérera que l'on a affaire à une
attaque; il faut également définir les types d'attaques auxquelles on souhaite se protéger (analyses de
risques à l'appui) car il est impossible de toutes les prévoir. On est donc loin de la protection absolue;
il s'agit de mettre en place une protection intelligente et flexible.
C'est ce que l'on retrouve à l'heure actuelle dans la plupart des systèmes de protection contre les
dénis de service. Ainsi Cisco propose des produits incluant à différents niveaux des services
spécifiques :
Comme on peut le remarquer, l'accent est mis sur la sécurité du système de protection en lui-même
pour qu'il puisse faire face à des situations extrêmes (trafic énorme, etc...) D'autre part, il reste que la
plupart des contre-mesures visent à protéger contre un type d'attaque particulier. L'efficacité d'un tel
système se révélera par sa capacité à détecter et prévenir de nouveaux types d'attaques.
Le DNS Spoofing
Une requête DNS est alors envoyée à un serveur DNS, déclaré au niveau de A, demandant la
résolution du nom de B en son adresse IP. Pour identifier cette requête une numéro d'identification
(en fait un champs de l'en-tête du protocole DNS) lui est assigné. Ainsi, le serveur DNS enverra la
réponse à cette requête avec le même numéro d'identification. L'attaque va donc consister à
récupérer ce numéro d'identification (en sniffant, quand l'attaque est effectuée sur le même réseau
physique, ou en utilisant une faille des systèmes d'exploitation ou des serveurs DNS qui rendent
prédictibles ces numéros) pour pouvoir envoyer une réponse falsifiée avant le serveur DNS. Ainsi, la
machine A utilisera, sans le savoir, l'adresse IP du pirate et non celle de la machine B initialement
destinatrice. Le schéma ci-dessous illustre simplement le principe du DNS ID Spoofing.
• Le pirate envoie une requête vers le serveur DNS cible demandant la résolution du nom d'une
machine du domaine fourbe.com (ex.: www.fourbe.com)
• Le serveur DNS cible relaie cette requête à ns.fourbe.com (puisque c'est lui qui a autorité sur
le domaine fourbe.com)
• Mettre à jour les serveurs DNS (pour éviter la prédictibilité des numéros d'identification et les
failles permettant de prendre le contrôle du serveur)
• Configurer le serveur DNS pour qu'il ne résolve directement que les noms des machines du
domaine sur lequel il a autorité
• Limiter le cache et vérifier qu'il ne garde pas les enregistrements additionnels.
• Ne pas baser de systèmes d'authentifications par le nom de domaine : Cela n'est pas fiable du
tout.
L'IP Spoofing
• La première utilité de l'IP Spoofing va être de falsifier la source d'une attaque. Par exemple,
lors d'une attaque de type déni de service, l'adresse IP source des paquets envoyés sera falsifiée
pour éviter de localiser la provenance de l'attaque.
• L'autre utilisation de l'IP Spoofing va permettre de profiter d'une relation de confiance entre
deux machines pour prendre la main sur l'une des deux. Il s'agit de cette attaque dont il va être
question ici.
Description de l'attaque
Il existe plusieurs types d'IP Spoofing. La première est dite Blind Spoofing, c'est une attaque "en
aveugle". Les paquets étant forgés avec une adresse IP usurpée, les paquets réponses iront vers cette
adresse. Il sera donc impossible à l'attaquant de récupérer ces paquets. Il sera obligé de les "deviner".
Cependant, il existe une autre technique que le Blind Spoofing. Il s'agit d'utiliser l'option IP Source
Routing qui permet d'imposer une liste d'adresses IP des routeurs que doit emprunter le paquet IP. Il
suffit que l'attaquant route le paquet réponse vers un routeur qu'il contrôle pour le récupérer.
Néanmoins, la grande majorité des routeurs d'aujourd'hui ne prennent pas en compte cette option IP
et jettent tous paquets IP l'utilisant.
• Trouver la machine de confiance (son adresse IP) qu'accepte le service du serveur cible.
• Mettre hors service cette machine de confiance (avec un SYN Flooding par exemple) pour
éviter qu'elle ne réponde aux paquets éventuellement envoyés par le serveur cible.
• Prédire les numéros de séquence TCP du serveur cible. Ce numéro caractérise une connexion
TCP (un numéro de séquence initial est généré à chaque nouvelle connexion TCP). C'est un
champ de l'en-tête du protocole TCP. De nos jours ce numéro est difficilement prédictible voir
impossible sur des systèmes type Linux. Ce qui n'était pas le cas il y a quelques années.
• Lancer l'attaque. Elle va consister à créer une connexion TCP sur le serveur cible. Pour cela,
l'attaquant va forger un paquet TCP avec le flag SYN et l'adresse IP source de la machine de
confiance. Le serveur cible va répondre par un paquet TCP avec les flags SYN-ACK.
L'attaquant, qui aura prédis le numéro de séquence TCP, pourra forger un paquet TCP avec le
flag ACK et le bon numéro d'acquittement (numéro de séquence envoyé par le serveur cible
incrémenté de 1). Une connexion TCP est alors établie au niveau du serveur cible. L'attaquant
n'a plus qu'à envoyer un paquet TCP avec le flag PSH (permettant de remonter directement à
l'application les données du paquet) pour envoyer une commande au service (par exemple echo
++ >> /.rhosts). L'attaquant peut accéder librement au serveur cible.
Le schéma suivant illustre cette attaque. La machine A est celle de l'attaquant, la C celle de confiance
et enfin Cible qui est le serveur cible. A(C) signifie que la machine A va envoyer un paquet en
spoofant l'adresse IP de la machine C :
Conséquences
• Usurpation d'identité.
• Prise de contrôle du serveur cible.
Dictionary Cracking
Conséquences
Un mot de passe sera rapidement trouvé s'il est emprunté du langage courant.
Conséquences
Les protections par mot de passe classique (de type login Unix) sont voués à disparaître dans un
futur proche...
Un exemple : distributed.net
Le RSA, organisme américain chargé entre autres de tester les systèmes de sécurité, a lancé un défi à
la planète entière : L'organisation donnera 10000 dollars à quiconque décrypterait un message codé
avec une clé RC5 de 64 bits. Le RC5 est un algorithme de cryptage. Le codage se faisant sur 64 bits,
il y a donc au total 264 clés (1 bit=0 ou 1), ce qui représente 18,446,744,073,709,551,616
possibilités ! Une autre organisation, distributed.net, a décidé de relever le défi, en se basant sur une
méthode de brute force cracking distribué. Cela veut dire que toutes les clés seront testées. Pour
effectuer cela, le nombre total de clés est divisé en de multiples petits paquets, qui sont ensuite
envoyés à des ordinateurs clients. Ces clients calculeront chacun les paquets de clés reçus, en
utilisant un logiciel nommé DNETC fourni par distributed.net.
Vous pouvez, si vous le désirez, participer à ce défi. Pour plus d'informations, n'hésitez pas à
consulter :
Tempest
Les avantages
L'intérêt de Tempest est qu'il peut espionner à distance. Il est indétectable.
Les limitations
La portée d'un tel dispositif est approximativement de 100 mètres. Les écrans à cristaux liquides
génèrent beaucoup moins de signaux. C'est à l'heure actuelle la solution la plus économique de se
prévenir de Tempest. Il est à noter que certains constructeurs certifient leurs ordinateurs "Anti-
Tempest".
Le futur
Ce système peut être étendu à toute émission électromagnétique, générée par un CPU, un clavier, un
disque dur... Mais la transformation de ces informations en données compréhensibles par l'homme est
Introduction
Issus d'une technologie du début du 20ème siècle, l'enregistrement et la lecture magnétique sont
encore très utilisés de nos jours. En effet, il existe de nombreuses utilisations des supports
magnétiques. A titre d'exemple, peuvent être cités les tickets avec une bande magnétique (métro,
bus, train, parking,...), les bandes permettant le stockage de données (cassettes audio et vidéo,...) et
surtout les cartes avec une piste magnétique (carte bleue, carte de fidélité, carte d'abonnement, carte
de contrôle d'accès,...).
Principe général
Le principe de l'enregistrement magnétique repose sur la magnétisation de très petites zones de la
bande magnétique constituée de pigments magnétiques (oxyde de fer, oxyde de chrome ou ferrite de
baryum). Cette opération de magnétisation est effectuée par une tête magnétique d'écriture. En fait, il
s'agit d'un genre d'électro-aimant. En passant sur la bande magnétique, pour une opération d'écriture,
la tête va plonger les pigments dans un champ magnétique proportionnel au courant la traversant.
Cette magnétisation va subsister et correspondra alors à un enregistrement. Une caractéristique
importante des supports magnétiques est leur champ coercitif ou coercitivité. C'est tout simplement
leur résistance à la désaimantation. Une distinction est donc faite entre les supports HiCo (haute
coercitivité) et LoCo (basse coercitivité). Par conséquent, un support dit HiCo pourra être
désaimanté plus difficilement qu'un support LoCo. Pour l'opération de lecture, le passage de la tête
sur la bande donnera naissance à un flux magnétique dans son noyau, lequel induira une tension
électrique proportionnelle aux variations du flux. Le signal électrique (c'est à dire les informations)
préalablement enregistré sur la bande magnétique est alors restitué.
La densité d'enregistrement est mesurée en bpi (bits per inch ou bits par pouce). Par exemple, la piste
ISO 1 a une densité d'enregistrement de 210 bpi ce qui correspond donc à une capacité de 210 bits
de données pouvant être enregistrées sur un pouce (27,07 mm) du support magnétique.
Les données enregistrées sur les pistes sont toujours encadrées par un caractère start et un caractère
end. Ils vont simplement permettre la reconnaissance du type d'encodage du flot de données utilisé
(sur 5 ou 7 bits). En outre, un caractère sep peut être utilisé pour séparer les différents champs de
données.
Les données protégées seront donc : 0000 1000 0100 1100 0000
La sécurité
En ce qui concerne la sécurité, il n'y a aucun moyen de sûr pour protéger physiquement les données
enregistrées sur un support magnétique. En effet, la lecture et l'écriture sont entièrement libres
(contrairement aux cartes à puce qui possèdent des zones où l'écriture voire la lecture est interdite).
Il est donc indispensable de sécurisé l'application utilisant ce support. Concrètement, il faut crypter
les données sensibles enregistrées sur le support et couplé l'utilisation de la carte avec un code secret.
En outre, pour une sécurité accrue un contrôle de l'authenticité de la carte en temps réel peut être
utilisé (pour les applications fonctionnant on-line, c'est à dire avec une centralisation des
traitements).
Note : cette fiche est inspirée de l'excellent ouvrage de Patrick GUEULLE "Cartes Magnétiques et
PC". L'image de la figure 1 est extraite de ce même livre.
Ils font partie des grandes menaces que l'on peut rencontrer sur le web, parmi les virus et autres vers.
Pourtant, contrairement à ceux-ci, les chevaux de Troie de ne reproduisent pas (en tout cas, ce n'est
pas leur objectif premier). Ce sont à la base de simples programmes destinés à être exécutés à l'insu
de l'utilisateur.
Objectifs
Leur objectif est le plus souvent d'ouvrir une porte dérobée ("backdoor") sur le système cible,
permettant par la suite à l'attaquant de revenir à loisir épier, collecter des données, les corrompre,
contrôler voire même détruire le système. Certains chevaux de Troie sont d'ailleurs tellement évolués
qu'ils sont devenus de véritables outils de prise en main et d'administration à distance.
Mode d'action
Leur mode opératoire est souvent le même; ils doivent tout d'abord être introduits dans le système
cible le plus discrètement possible. Les moyens sont variés et exploitent le vaste éventail des failles
de sécurité, du simple économiseur d'écran piégé (envoyé par mail ou autre, du type cadeau.exe,
snow.exe, etc, etc...) jusqu'à l'exploitation plus complexe d'un buffer overflow. Après leur
introduction dans le système, ils se cachent dans des répertoires système ou se lient à des
Contre-mesures
Du fait qu'ils ne se répliquent pas (contrairement aux virus), ils ne possèdent pas de signature de
réplication et ne sont donc pas détectables par les anti-virus, en tout cas à ce niveau là. De plus, les
chevaux de Troie n'altèrent en général pas les données vitales de la cible (MBR...) qui sont
protégées.
Par contre, comme ils restent des programmes assez répandus sur internet et qu'ils sont rarement
modifiés par les apprentis hackers, il est assez facile de les détecter avec les anti-virus actuels qui
connaissent très précisément leur empreinte ou leur code. Le problème est un peu plus compliqué
lorsqu'il s'agit de programmes dont les sources sont disponibles librement sur internet. Il devient
alors aisé de modifier le code et de le recompiler afin d'obtenir un cheval de Troie dont l'empreinte
sera unique et donc inconnue des anti-virus.
Si l'on ne peut pas détecter leur présence, on peut essayer de détecter leur activité : un cheval de
Troie est obligé d'ouvrir des voies d'accès pour pouvoir communiquer avec l'extérieur. Ainsi,
plusieurs ports de la machine risquent de le trahir (par exemple 12345, 31337, etc...) surtout s'ils
sont habituellement inutilisés. D'autres chevaux de Troie ont détourné cette faiblesse en utilisant des
ports plus communs (relatifs aux services ftp, irc...). Là encore, un utilisateur capable de voir ces
ports ouverts doit se poser la question de savoir pourquoi tel service est actif.
=> Rappelons que la commande netstat permet d'obtenir de telles informations sous Linux et
Windows.
Du point de vue réseau, il est également possible de détecter ce trafic (services/ports inhabituels) ou
l'activité secondaire du cheval de Troie. En effet, il arrive que la cible infectée serve de point d'entrée
à l'attaquant pour se propager dans tout le réseau. Pour cela, il devra effectuer différentes tâches
dont certaines sont aisément détectables (scan de machines et de ports...).
Dans la majorité des cas, de telles données trahissent non seulement la présence du cheval de Troie
mais fournissent également des informations sur son identité, permettant ainsi de mieux l'éradiquer. Il
est même possible d'installer par la suite des leurres qui garderont des traces des tentatives de
connections externes (trahissant l'attaquant).
Cas concrets
Voici les fonctionnalités d'un des chevaux de Troie les plus répandus :
• Accès Telnet permet de lancer une application en mode texte type "Ms-Dos" ou "Invite de
commande" de façon invisible et de rediriger l'entrée/sortie standard vers un port particulier.
La partie cliente d'un cheval de Troie est l'application utilisée par l'attaquant pour se connecter au
serveur, c'est-à-dire au programme installé sur la cible. Ce client permet d'automatiser et de simplifier
nombre de tâches, et même de gérer plusieurs serveurs ! On y retrouve les fonctionnalités
citées précédemment (telnet, capture d'écran, etc...) et quelques autres comme la redirection de ports
qui permet de récupérer tout le trafic que reçoit la cible sur des ports donnés, et donc de l'utiliser
pour rebondir (le but étant de ne pas compromettre l'adresse IP de l'attaquant).
Il existe également des plugins supportant le cryptage de manière à protéger les communications
client-serveur; les algorithmes supportés sont nombreux : RC6 384, IDEA 128, CAST 256; Back
Orifice 2000 supporte même le tunneling SSH !
Il y a 3 zones principales : la première où l'on spécifie le fichier du serveur que nous allons configurer
(l'exécutable sera modifié), la seconde où nous définissons les extensions que nous allons utiliser plus
tard (qui seront rajoutées à l'exécutable). La dernière zone concerne les paramètres de chaque
fonctionnalité, y compris les extensions que nous venons d'ajouter. Ici nous pouvons voir que
l'option de connexion par TCP a été choisie et que le port à utiliser est le 31337.
C'est à partir de cette interface de configuration que l'on peut modifier si l'on veut le nom du cheval
de Troie. Une fois lancé, BO2k s'installe dans \Windows\System\ ou \WinNT\System32\ sous ce
nom là (par défaut UMGR32.EXE). Après il modifie la base des registre.
Le fichier initial peut ensuite être effacé (ou s'auto-effacer si spécifié). BO2k devient ensuite actif à
chaque démarrage du système et reste en mémoire. Sous NT, le cheval de Troie utilise une astuce
pour éviter d'être tué par le Gestionnaire de Tâches. Il change son PID constamment et créé des
processus fils qui lui permettent de rester actif si l'un d'entre eux est tué. De plus, son nom comporte
Sous Windows 9x, le fichier se renomme ".exe" (c'est-à-dire sans nom), ce qui le rend invisible dans
le gestionnaire de tâches.
• un client
• un serveur
• une interface graphique de configuration du serveur
Le serveur ne marche que sous Windows (les dernières versions supportent Windows NT).
Le client était disponible pour Windows ou Unix dans ses versions précédentes. La version 2000 est
réservée aux plate formes Win32.
Dangereux, ils ne sont pourtant pas répertoriés parmi les virus, vers, ou chevaux de Troie car n'ont
pas pour objectif de modifier quoi que se soit dans la machine cible et permettent simplement
l'enregistrement d'informations.
Objectif
L'objectif des key loggers est d'enregistrer et de restituer tout le travail qui a été réalisé par un
utilisateur. Les touches enregistrées permettent effectivement de retracer non seulement le travail
courant, mais aussi de récupérer tous les identifiants et mots de passes.
Mode d'action
Le mode opératoire des Key Loggers est identique, même s'il existe une multitude de Key Loggers
différents. Ils sont installés directement par le pirate sur la machine visée, si l'ordinateur n'a pas de
connexion internet permettant une installation à distance via un cheval de Troie. En général, les Key
Loggers se lancent directement au démarrage de la machine hôte. Une fois le key loggers lancé, il
enregistre au fur et à mesure tout ce qui est réalisé. Dans la plupart des cas, si la machine cible est
pourvue d'une connexion internet, le key logger enverra discrètement, à une adresse mail ou à un
serveur internet, un fichier, généralement crypté, contenant tous les renseignements collectés. En
fonction du Key Logger sélectionné différents types d'écran de configuration existent.
En complément des touches enregistrées vous pouvez constater ici que des éléments importants
comme la date, les applications ouvertes et le choix ou non du cryptage du fichier de trace sont
possibles. Le password réclamé par le key logger permet d'assurer au pirate que lui seul pourra
décrypter le fichier. Même si un utilisateur découvrait un fichier crypté il ne saurait reconnaître les
éléments contenus à l'intérieur. En effet pas évident de comprendre l'extrait crypté d'un fichier log
comme :
#qblo"(qgm|m5qsgo[[bss@@bb-|sbo6)iqjbap3vgl`'¿±ß±jt@@ß@æ6687
Selon le Key Logger choisi, il est possible de paramétrer l'option "auto-destruction". Dès lors
impossible à l'utilisateur ou à l'administrateur du parc informatique de remonter au programme. Il
suffit de déterminer la plage en nombre de jours pendant laquelle le Key Logger doit rester actif sur
la machine cible.
En général les fichiers de récupération, cryptés ou non sont stockés avec des noms très peu parlant
dans c:/windows/temp. Il est intéressant d'aller tenter d'ouvrir les fichiers contenus dans ce
répertoire. Pour ouvrir ces fichiers, cliquer en même temps sur "Shift" et le bouton droit de la souris.
Parmi le menu qui s'offre vous verrez l'option "ouvrir avec". Le plus simple est alors de choisir "Note
Pad" qui affichera les éléments en mode texte seulement. Vous pouvez, si le fichier n'est pas ou mal
crypté retrouver des éléments qui doivent immédiatement vous alerter.
Dans le cas ou vous trouveriez un fichier suspect le plus simple est de commencer par faire travailler
votre machine uniquement en local. Déconnectez vous de votre réseau et stoppez toute connexion
internet. Cela empêchera aux fichiers de parvenir au pirate. Prévenez votre administrateur qui
recherchera via le serveur les échanges de mail et tentera de retrouver l'adresse du destinataire.
Une inspection des tâches qui sont en train d'être exécutées par votre ordinateur s'impose. En effet
un simple "Ctrl" "Alt" "Suppr" n'affichera pas les Key Loggers alors qu'un programme comme
Procdump vous les signalera. En parallèle, recherchez sur votre pc tous les fichiers créés le jour ou
vous découvrez ce soucis. Dans le pire des cas, il sera peut être nécessaire que vous sauvegardiez
tous vos fichiers de données pour ensuite re formater votre disque dur.
Conclusion
Les Key Loggers sont des outils particulièrement utiles pour les pirates, puisqu'ils permettent en
autre de récupérer comme nous l'avons dit les mots de passe et les loggins des utilisateurs.
Cependant, ils peuvent aussi être un outil de "surveillance" pour les entreprises. En interne, cela
pourrait permettre de vérifier les activités réalisées par les salariés pendant les heures de bureau.
Cependant, l'utilisation d'un Key Logger ne saurait être utile sans consentement préalable du salarié.
Sur un poste non connecté à internet, l'installation d'un tel outil implique le passage du pirate sur la
machine cible. Le meilleur moyen de prévention reste donc la vigilance, ne pas quitter son poste sans
avoir au minimum vérouiller son écran, et bien ne pas diffuser son mot de passe de session à
quiconque.
Les espiogiciels
A chaque connexion internet, un utilisateur laisse derrière lui un très grand nombre d'informations.
Ces traces sont généralement intéressantes mais non suffisantes à un public de professionnels ou
d'espions cherchant à obtenir d'autres éléments que ceux techniques laissés en standard. Les
professionnels d'un secteur déterminé cherchent à connaître les habitudes de téléchargement de leurs
clients, leurs modes de consommations, leurs centres d'intérêts, ou la périodicité de leurs achats par
exemple. Les pirates ou espions seront, eux, plus intéressés par le contenu des machines connectées,
la réception de ces informations etc ....
La détection de ces routines est très difficile. En effet, plus le logiciel initialement téléchargé est
volumineux, plus les chances de trouver les routines éventuelles seront faibles. Il est impossible par
exemple à un développeur seul, ou à une équipe d'analyser le code source d'un navigateur internet.
Sans vouloir sembler paranoïaque, il est donc important de garder en mémoire que tout exécutable
est potentiellement infecté d'un espiogiciel. En outre, dans certains pays, il n'est pas toujours légal de
désassembler un logiciel, (rendre le code source du programme lisible et donc modifiable).
Impossible donc en respectant la loi de valider l'intégrité des programmes utilisés.
Dans tous les cas, l'espiogiciel aura besoin d'une connexion internet pour la transmission des
données. C'est pourquoi ces routines se trouvent majoritairement dans des exécutables prévus pour
fonctionner avec internet (logiciels de téléchargement de MP3, films, traducteurs, browsers etc...).
Généralement les logiciels libres (freewares) et logiciels d'évaluation (sharewares) sont les principaux
vecteurs d'espiogiciels.
Un outil infecté par un spyware peut représenter une très grande menace pour la sécurité du système
d'information infecté. En effet plusieurs routines successives peuvent permettre la détection de mots
de passe encrypté et le crackage de ces informations. Il suffit pour cela d'indiquer dans une routine à
l'ordinateur de mettre à profit le temps CPU disponible pour cracker le mot de passe à l'insu de
l'utilisateur.
En outre, l'utilisation d'un firewall ne permettra généralement pas non plus la détection des
espiogiciels. En effet, même si la routine provoque l'envoi d'un fichier par email à un destinataire non
désiré la configuration du firewall, sauf exception, n'a pas pour but d'analyser ce qui sort du PC mais
à l'inverse ce qu'il rentre. Le firewall n'a donc pas de moyen de savoir qu'un email est émis
volontairement ou à l'insu de l'utilisateur. De plus, un firewall ne s'intéresse pas à la nature des
fichiers qui transitent mais aux paquets qui voyagent sur le réseau. Il n'y a donc pas de moyen simple
pour le firewall d'identifier comme des menaces l'exécution des routines et la passation
d'informations. Cependant, l'un des moyens existants pour suspecter un spyware sur une machine est
de voir un flux de paquets nettement supérieur aux flux habituel passer via le firewall ou le modem.
Mais là encore, c'est très difficile à détecter.
En conclusion, il est impossible à l'heure actuelle de surfer en étant certain que nos informations ne
sont pas transmises. Il n'existe aucun moyen de s'assurer qu'un ordinateur connecté à internet ne soit
pas à même d'envoyer à notre insu des éléments non désirés. C'est pourquoi il est parfois préférable
d'utiliser un P.C. public, (cybercafé, université etc ...) si l'on veut surfer en paix sans donner
d'informations. Une autre solution peut être dans le cadre d'un réseau d'avoir une machine par service
internet utilisé. C'est à dire par exemple un PC dédié à la messagerie, l'autre pour le surf et un
troisième pour l'utilisation des services FTP par exemple. Les risques sont toujours présents mais
limités à chaque fois aux informations disponibles sur une machine seulement.
La stéganographie
mettre.
A priori, si vous n'avez pas compris que cette lettre en cache une autre, c'est beau, plein de poésie...
Maintenant, lisez la première ligne et ensuite une ligne sur deux...
Avec l'avènement de l'ordinateur et de son règne du "tout numérique", des techniques existent pour
cacher n'importe quel document dans un autre document.
Le pixel :
Un pixel est constitué de 3 octets : un octet pour la composante rouge, un octet pour la composante
verte et un octet pour la composante bleue. C'est pour cela que l'on parle de RVB (Rouge Vert
Bleu). A partir de ces trois octets, on peut donc avoir 256*256*256 = 16777216 couleurs
différentes, ce qui est largement plus que ne peut distinguer l'oeil humain.
L'image :
L'image n'est ni plus ni moins que le stockage dans un fichier de tous les pixels RVB composant
l'image finale.
Cacher le document :
L'astuce est de retirer un bit à chaque octet RVB qui compose chaque pixel de l'image. En effet, en
retirant 1 bit, on dégrade l'image, mais ce n'est pas visible à l'oeil nu... De ce fait, on peut récupérer
ce bit à chaque fois et l'utiliser pour stocker les données que l'on souhaite. Nous récupérons donc
1/8e de la taille de l'image pour cacher un document, quel qu'il soit.
Social Engineering
C'est une technique qui a pour but d'extirper des informations à des personnes. Contrairement aux
autres attaques, elle ne nécessite pas de logiciel. La seule force de persuasion est la clé de voûte de
cette attaque. Il y a quatre grandes méthodes de social engineering : par téléphone, par lettre, par
internet et par contact direct.
Par lettre
Le hacker vous fera une lettre très professionnelle. Au besoin, il n'hésitera pas à voir un imprimeur
pour avoir du papier à lettre comportant un logo, un filigramme, téléphone, fax, email... Il utilisera
très certainement une boîte postale pour l'adresse de sa société fictive.
Par internet
Le social engineering par internet est semblable à celui par téléphone. Le hacker se fera facilement
passer pour un opérateur système, un responsable informatique ou un ingénieur système.
Conclusion
Il ne faut pas perdre de vue que le hacker ne se limitera pas à une seule de ces techniques, mais au
contraire, utilisera une combinaison de ces quatre méthodes. Par exemple : téléphoner pour obtenir
un rendez-vous, confirmer par écrit, et passer une heure en votre compagnie... Il est important, de la
part d'une entreprise, de former le personnel à ce problème. Un bon hacker s'attaquera à la personne
la plus faible de l'entreprise, à savoir le personnel non technique (secrétaires, comptables...) et les
personnes récemment recrutées. La paranoïa reste l'arme ultime de ce genre d'attaque.
• Ralentissement système.
• Blocage système.
• Crash système.
• Pertes de données.
• Etc.
Conséquences
Les conséquences sont multiples :
• Ralentissement système.
• Blocage système.
• Crash système.
• Pertes de données.
• Etc.
La cryptographie
La cryptographie symétrique
On parle de cryptographie symétrique lorsque plusieurs personnes utilisent une même clé pour
crypter et décrypter des messages. Le principal inconvénient de ce système est le partage de cette clé
unique entre les différentes personnes : Comment envoyer à tout le monde et de façon sécurisée cette
clé unique qui permet de crypter et décrypter ?
La cryptographie asymétrique
Dans ce type de cryptographie, chaque utilisateur comporte deux clés :
Ces deux clés sont mathématiquement liées. Dans la pratique, la clé publique sert à crypter les
messages, et la clé privée sert à les décrypter. Une fois le message crypté, seul le destinataire est en
mesure de le décrypter. L'utilitaire PGP (Pretty Good Privacy) fonctionne de cette manière.
La signature digitale
C'est un code électronique unique qui permet de signer un message codé. Cette signature permet
d'identifier l'origine du message : elle a la même fonction qu'une signature "à la main". C'est la clé
privée qui permet de signer, et la clé publique qui permet de vérifier cette signature.
Le certificat digital
C'est un document électronique qui fait correspondre une clé avec une entité (personne, entreprise,
ordinateur...). Cette correspondance est validée par une autorité de certification (Certificate
Authority : CA). Ces certificats sont utilisés pour identifier une entité. Ce certificat est normalisé
(norme X.509v3). Concrètement, les données utilisateur (identité du propriétaire de la clé, la clé
publique et l'usage de la clé) sont elles même signées par l'autorité de certification, en y incluant
certaines données propres (période de validité du certificat, l'algorithme de cryptage utilisé, numéro
de série, etc...).
L'autorité d'enregistrement
C'est un organisme qui génère les demandes de certification d'un utilisateur. L'enregistrement de cet
utilisateur n'est validé qu'après vérification des informations concernant cet utilisateur. La demande
est ensuite envoyée à l'autorité de certification.
L'autorité de certification
C'est un organisme qui génère les certificats des différents utilisateurs. C'est un passage obligé pour
la mise en place d'un système sécurisé (e-commerce...).
PKI
PKI signifie "Public Key Infrastructure", c'est à dire "Infrastructure de Gestion de Clés" (IGC). C'est
un ensemble d'outils (logiciels et matériels) qui gèrent les clés cryptographiques et les certificats.
L'IGC permet les transactions sécurisées et les échanges d'informations entre deux parties en
garantissant le secret, l'intégrité et l'authentification. On y retrouve : La gestion des clés (création,
distribution, stockage...). Association de la clé publique et de l'entité (certificat). Recouvrement de
clé.
L'aspect légal
En France, depuis les décrets du 19 mars 1999, il est possible d'utiliser : Une clé de 40 bits, en totale
liberté quelque soit l'usage. Une clé de 128 bits en totale liberté pour un usage privé, et soumise à
déclaration dans les autres cas.
où K désigne la clé utilisée par l'algorithme, E désigne le cryptage en lui-même, M (ou m, mi)
désigne le message en clair (c'est-à-dire un bloc) et C (ou c, ci) le chiffré résultant.
- Le mode Electronic CodeBook (ECB) est le plus simple des modes et s'applique aux block ciphers.
Il revient à crypter un bloc indépendamment des autres; cela permet entre autre de crypter suivant un
ordre aléatoire (bases de données, etc...) mais en contre-partie, ce mode est très vulnérable aux
attaques. Il est par exemple possible de recenser tous les cryptés possibles (code books) puis par
recoupements et analyses statistiques recomposer une partie du message original sans avoir tenté de
casser la clé de chiffrement. Il demeure que si la clé fait 128 bits ou plus, cette attaque n'es pas
exploitable en pratique de nos jours. Cette technique est sensible à l'inversion ou la duplication de
blocs sans que le destinataire s'en aperçoive. On peut l'utiliser pour pipeliner du hardware.
Le message initial M est divisé en n blocs mi conformément aux spécifications de l'algorithme (par
exemple en blocs de 64 bits). Chaque bloc donne un chiffré correspondant (ci) après cryptage suivant
le même algorithme E utilisant la même clé K. Comme expliqué ci-dessus, le mode CBC introduit
une dépendance entre deux cycles de cryptage : le chiffré obtenu au rang i-1 est utilisé pour obtenir
le chiffré du rang i. Concrètement, ce chiffré ci-1 subit un XOR avec le bloc mi. On peut se
demander ce qu'il se passe lors du premier cycle d'encodage, lorsqu'il n'y a pas encore de chiffré à
xorer avec notre premier bloc. La réponse est que l'on utilise une valeur par défaut prédéfinie appelée
Vecteur d'Initialisation (Initialization Vector, IV). Ce vecteur d'initialisation change à chaque session,
et doit être transmis au destinataire. Par contre, il n'est pas nécessaire de le chiffrer avant de l'envoyer
: il peut être connu de l'adversaire. Il évite l'attaque sur le mode ECB en multipliant la taille de la
base de données précalculées. Il ne faut néanmoins pas négliger l'importance de ce vecteur qui peut
constituer une faille sérieuse s'il est mal choisi et compromettre ainsi l'intégrité de l'ensemble malgré
l'utilisation de composantes fortes (algos, clés, etc). Le déchiffrement est auto-synchronisé comme le
mode EBC. Si on perd un bloc de chiffré, on pourra se resynchoniser en ne perdant que deux blocs.
- Le mode Cipher FeedBack (CFB) est un mode destiné aux block ciphers dans le but d'en autoriser
une utilisation plus souple, qui s'apparente plus à celle des algorithmes en continu. On peut le
considérer comme un intermédiaire entre les deux. En effet, en partant d'un algorithme en bloc
utilisant une longueur standard de n bits/blocs, le mode CFB va permettre de crypter des blocs dont
la longueur pourra varier de n à 1 bits/blocs. Sachant que dans ce dernier cas, il serait plus
économique en calculs d'utiliser directement un algorithme en continu. Quant au cas où la longueur
est celle de l'algorithme (à savoir n), le schéma de CFB se simplifie et ressemble quelque peu à celui
de CBC (à quelques nuances près) :
Background
Une fonction de hachage est aussi appelée fonction de hachage à sens unique ou "one-way hash
function" en anglais. Ce type de fonction est très utilisé en cryptographie, principalement dans le but
de réduire la taille des données à traiter par la fonction de cryptage. En effet, la caractéristique
principale d'une fonction de hachage est de produire un haché des données, c'est-à-dire un condensé
de ces données. Ce condensé est de taille fixe, dont la valeur diffère suivant la fonction utilisée : nous
verrons plus loin les tailles habituelles et leur importance au niveau de la sécurité.
Pourquoi hacher?
Le but d'un condensé est simple : représenter des données de façon certaine tout en réduisant la taille
utile qui sera réellement chiffrée. Prenons l'exemple de la cryptographie asymétrique; tout le monde
admet qu'elle est très sure, fiable et durable. Néanmoins, sa complexité (calcul sur des nombres
premiers de plusieurs centaines de chiffres par exemple) entraîne une inévitable lourdeur d'emploi
(charge CPU, etc...). On évite donc de l'utiliser pour de grandes masses de données ou pour des
chiffrements de flux. Par contre imaginez que vous souhaitiez envoyer un fichier par mail, mais que
ce fichier est de taille importante. Vous souhaitez de plus rassurer le destinataire sur la provenance
de ce fichier (vous) et sur son contenu. Plutôt que de chiffrer votre fichier directement avec votre clé
privée, vous aller hacher votre fichier et chiffrer le condensé obtenu avec votre clé privée. Vous
enverrez ensuite votre fichier original ainsi que le condensé chiffré (la signature) à votre destinataire.
Celui-ci va, lors de la réception, hacher d'une part le fichier reçu et d'autre part déchiffrer le condensé
reçu (au moyen de votre clé publique). S'il n'y a pas égalité entre les 2 résultats, cela signifiera :
• soit que la signature n'est plus la votre, donc que quelqu'un a intercepté le fichier (pour le
modifier ou le remplacer, etc...)
• soit que le fichier n'est plus le même que l'original (mais la signature n'a pas été remplacée);
dans ce cas, la hachage ne peut plus donner le même condensé ce qui conduit au rejet lors du
test de comparaison.
Dans les 2 cas, ni l'intégrité ni l'authentification du fichier n'ont été vérifiées. Il ne faut donc pas faire
confiance au fichier. Nous voyons comment dans ce cas simple, l'utilisation d'une fonction de
hachage permet de s'assurer de l'intégrité des données et indirectement de les authentifier. Il existe
bien sûr de nombreuses autres applications pour les fonctions de hachage, comme les MACs
(message authentication code), certificats, etc...
• MD4 et MD5 (Message Digest) furent développées par Ron Rivest. MD5 produit des hachés
de 128 bits en travaillant les données originales par blocs de 512 bits.
• SHA-1 (Secure Hash Algorithm 1), comme MD5, est basé sur MD4. Il fonctionne également à
partir de blocs de 512 bits de données et produit par contre des condensés de 160 bits en
sortie. Il nécessite donc plus de ressources que MD5.
• SHA-2 (Secure Hash Algorithm 2) a été publié récemment et est destiné à remplacer SHA-1.
Les différences principales résident dans les tailles de hachés possibles : 256, 384 ou 512 bits.
Il sera bientôt la nouvelle référence en termes de fonction de hachage.
• RIPEMD-160 (Ripe Message Digest) est la dernière version de l'algorithme RIPEMD. La
version précédente produisait des condensés de 128 bits mais présentait des failles de sécurité
importantes. La version actuelle reste pour l'instant sure; elle produit comme son nom l'indique
des condensés de 160 bits. Un dernier point la concernant est sa relative gourmandise en
termes de ressources et en comparaison avec SHA-1 qui est son principal concurrent.
Prenons donc notre haché H, qui présente une longueur de n bits. Nous pouvons d'ores et déjà
déduire qu'il n'existe que 2n hachés de ce type possibles (puisque chaque bit n'a que 2 valeurs
possibles, 0 ou 1). Le problème survient quand on se rend compte que de l'autre côté, nous pouvons
avoir une infinité de textes ou données initiaux (dont la taille, elle, n'est pas fixée). Nous risquons
donc, un jour ou l'autre, de produire un haché qui pourrait correspondre à un autre texte original (ou
à plusieurs) : c'est la perte de la propriété principale d'un condensé, qui est l'unicité. Nous avons
trouvé une collision.
Le théorème des anniversaires prouve qu'il faut 2n/2 essais pour trouver une collision au hasard. C'est
le chiffre qui sera utilisé pour évaluer la force d'une fonction de hachage. Pourtant, il ne faut pas
négliger le fait que la collision citée précédemment a été obtenue au hasard, ce qui n'est pas
exploitable par une personne malveillante. En effet, le but serait de trouver un message significatif et
bien formé conduisant au même haché, ce qui augmente considérablement les essais et calculs
nécessaires (et le rend quasiment impossible). Quoiqu'il en soit, cela suffit en théorie pour briser la
propriété d'unicité de notre condensé...
D'un point de vue pratique, et dans l'état de l'art actuel, il est généralement accepté que 256 calculs
représentent un défit réalisable. Comme exemple, les clés DES de 56 bits sont réellement faibles et
crackables. En conséquence, avec n/2=56 et n=112, le théorème des anniversaires nous indique que
les hachés de 112 bits sont faibles et donc insuffisants à l'heure actuelle. De la même manière, les
hachés de 128 bits (n/2=64) ne représentent plus une sécurité à moyen terme. C'est pour cela que la
norme actuelle est à 160 bits (n/2=80) voire plus dans le cas de SHA-2.
L'AES
Background
L'AES (Advanced Encryption Standard) est, comme son nom l'indique, un standard de cryptage
symétrique (c.f. fiche sur les algorithmes symétriques) destiné à remplacer le DES (Data Encryption
Standard) qui est devenu trop faible au regard des attaques actuelles.
Présentation générale
Historiquement, le développement de l'AES a été instigué par le NIST (National Institue of
Standards and Technology) le 2 janvier 1997. L'algorithme a été choisi il y a peu de temps : il s'agit
• l'AES est un standard, donc libre d'utilisation, sans restriction d'usage ni brevet.
• c'est un algorithme de type symétrique (comme le DES)
• c'est un algorithme de chiffrement par blocs (comme le DES)
• il supporte différentes combinaisons [longueur de clé]-[longueur de bloc] : 128-128, 192-128
et 256-128 bits (en fait, Rijndael supporte également des tailles de blocs variables, mais cela
n'est pas retenu dans le standard)
Pour avoir un ordre d'idée, les clés DES ont une longueur de 56 bits (64 bits au total dont 8 pour les
contrôles de parité), ce qui signifie qu'il y a approximativement 7.2 x 1016 clés différentes possibles.
Cela nous donne un ordre de 1021 fois plus de clés 128 bits pour l'AES que de clés 56 bits pour le
DES. En supposant que l'on puisse construire une machine qui pourrait cracker une clé DES en une
seconde (donc qui puisse calculer 255 clés par seconde), alors cela prendrait encore 149 mille milliards
d'années pour cracker une clé AES. Pour donner un ordre d'idée plus concret, l'univers est vieux de
20 milliards d'années au maximum.
Pour conclure sur cet aspect, on voit que le standard AES répond aux mêmes exigences que le DES
mais il est également beaucoup plus sûr et flexible que son prédécesseur.
Si l'on se réfère à ces critères, on voit que l'AES est également un candidat particulièrement
approprié pour les implémentations embarquées qui suivent des règles beaucoup plus strictes en
matière de ressources, puissance de calcul, taille mémoire, etc... C'est sans doute cela qui a poussé le
monde de la 3G (3ème génération de mobiles) à adopter l'algorithme pour son schéma
d'authentification "Millenage".
• BYTE_SUB (Byte Substitution) est une fonction non-linéaire opérant indépendamment sur
chaque bloc à partir d'un table dite de substitution.
• SHIFT_ROW est une fonction opérant des décalages (typiquement elle prend l'entrée en 4
morceaux de 4 octets et opère des décalages vers la gauche de 0, 1, 2 et 3 octets pour les
morceaux 1, 2, 3 et 4 respectivement).
• MIX_COL est une fonction qui transforme chaque octet d'entrée en une combinaison linéaire
d'octets d'entrée et qui peut être exprimée mathématiquement par un produit matriciel sur le
corps de Galois (28).
• le + entouré d'un cercle désigne l'opération de OU exclusif (XOR).
• Ki est la ième sous-clé calculée par un algorithme à partir de la clé principale K.
Le déchiffrement consiste à appliquer les opérations inverses, dans l'ordre inverse et avec des sous-
clés également dans l'ordre inverse.
La première partie conduit à l'élaboration d'un dictionnaire dont la taille est définie par le calcul
suivant: le premier DES utilise une clé de 56 bits, il y a donc 256 cas possibles. C'est pareil pour le
deuxième DES, sauf que qu'il faut le multiplier au premier cas, soit un total de 2112 possibilités.
La deuxième partie ne comporte qu'un seul DES, donc 256 possibilités pour la clé. Il suffit ensuite de
faire correspondre ces 2 dictionnaires pour trouver la valeur qui est commune aux 2, nous donnant
De manière générale et arrondie, la sécurité de l'algorithme peut donc être évaluée à 2113.
En ce qui concerne l'AES, c'est un algorithme qui ne présente qu'un seule étape, donc le calcul est
simple : comme cité précédemment, il y 2128 clés possibles (dans la version minimale ou la clé ne fait
"que" 128 bits de long). C'est directement la force de l'algorithme.
Conclusion
En conclusion, l'AES est plus sûr que le 3DES car il présente, entre autres, une plus grande
résistance aux attaques par dictionnaires de clés. Les autres attaques ne sont pas appliquables dans
son cas.
Le tunneling
Background
Le tunneling est une pratique courante visant à transporter un protocole (et ses données) dans un
autre. Pour les personnes qui ne sont pas familières avec la notion de couche réseau, le modèle de
référence habituel est le modèle OSI de l'ISO qui comporte 7 couches :
On a donc bien du TCP sur de l'IP sur de l'Ethernet (en anglais "over", ou "o"). Mais puisqu'il s'agit
de l'ordre normal respectant le standard ISO, on ne parle pas alors d'encapsulation à proprement
parler; il est par contre tout à fait envisageable de transporter, au moyen d'un protocole donné,
d'autres protocoles de niveau équivalent dans le modèle OSI, voir inférieur. Et lorsque le protocole
• Plus communément, l'ATM requiert une encapsulation particulière pour tous les protocoles
(avec AAL5); cette encapsulation est définie dans la RFC 2684.
• L2TP (Layer 2 Tunneling Protocol, RFC 2661) est un protocole issu de la normalisation de
PPTP et L2F, 2 protocoles de tunneling de niveau 2. Bien qu'il soit lui aussi -comme son nom
l'indique- un protocole de niveau 2, il est souvent utilisé sur UDP et IP pour transporter du
PPP (et un autre protocole au-dessus). On obtient donc :
.../PPP/L2TP/UDP/IP/...
Exemples
Aussi étrange que cela puisse paraître, le tunneling peut s'avérer utile à IPSec lui-même. En effet,
nombre de réseaux actuels utilisent des adresses IP dites privées, c'est-à-dire non-routables sur
Internet, car cela permet d'augmenter considérablement le nombre d'adresses disponibles. La
conséquence directe est le fait que les passerelles qui connectent ces réseaux à Internet implémentent
des fonctionnalités de NAT (Network Adress Translation) et de PAT (Port Adress Translation), voir
les 2, qui permettent aux machines du réseau privé d'accéder au monde extérieur quand le besoin se
fait sentir, et ce en utilisant une adresse publique allouée dynamiquement par la passerelle.
Concrètement, ces machines ne sont donc pas visibles à partir d'Internet, et elles n'utilisent jamais
leur adresse privée lorsqu'elles accèdent à ce dernier. Il est donc impossible d'utiliser IPSec entre une
de ces machines du réseau privé et une autre sur Internet, car le NAT va modifier les adresses IPs et
casser ainsi les vérifications d'intégrité inhérentes à IPSec. Ceci est valable pour le mode tunneling
d'IPSec (voir article sur IPSec) mais également pour son mode transport car une des particularités de
TCP, par exemple, est d'utiliser des checksums englobant le header IP. Le seul mode éventuellement
compatible serait le mode nesting, mais il reste plus compliqué à mettre en oeuvre.
C'est pourquoi, nous allons illustrer ici le concept de tunneling en montrant une façon de traverser
une passerelle grâce à de l'encapsulation. Tout d'abord, le problème est de faire communiquer 2
machines de manière sécurisée : un tunnel IPSec de bout en bout est requis. D'autre part, il se
La passerelle C décapsule les paquets IP et route les paquets IPSec vers leur destination
finale. Le problème de cette solution est le manque de sécurité du tunnel IP, qui n'offre
par définition aucune possibilité d'authentification des tunnels entrants; il faut donc
s'appuyer sur des mécanismes annexes (certificats, etc...). La stack de protocoles
nécessaire à A pour communiquer avec B sera donc la suivante :
Remarque : ces exemples n'ont pour but que de montrer les possibilités d'encapsulation
et l'intérêt de cette technique. La liste n'est bien sûr pas exhaustive. De plus, rappelons
tout de même que l'utilisation d'IPSec est habituellement à l'opposé de ce qui a été
montré ici : IPSec est normalement le protocole effectuant l'encapsulation et non
l'inverse; IPSec est le plus souvent utilisé entre passerelles et non l'inverse. Voir la fiche
sur IPSec pour plus de détails.
Conclusion
Bien que complexe, le concept de tunneling et d'encapsulation peut se révéler très utile pour
traverser certains équipements réseau de façon transparente, et permettre une connectivité accrue.
Néanmoins, il ne faut pas oublier que le fait de sauter un firewall annule purement et simplement la
protection que celui-ci procure et peut-même compromettre le réseau privé tout entier, exactement
comme une personne utilisant un modem sur son ordinateur professionnel alors que celui-ci est
connecté au réseau de l'entreprise...
Le principe d'encapsulation a d'autre part été démocratisé et étendu à d'autres applications; on trouve
maintenant des outils de tunneling basés sur HTTP ou UDP (flux DNS) qui permettent aisément de
traverser des firewalls.
SSL
• confidentialité : elle est obtenue par l'utilisation d'algorithmes à chiffrement symétrique de blocs
comme DES, FORTEZZA, IDEA, 3DES ou RC2, ou par des algorithmes à chiffrement
symétrique de flots comme RC4 (la longueur des clés peut être limitée suivant les législations
propres à l'exportation, et le padding correspondant s'applique aux algorithmes par blocs).
• intégrité : l'intégrité des données est assurée par l'utilisation de MACs (Message Authentication
Code) basés sur les fonctions de hachage MD5 (16 octets) ou SHA-1 (20 octets).
• authentification : SSL permet l'authentification des 2 entités (authentification client facultative)
basé sur des certificats X.509, et l'authentification des données grâce aux MACs.
• Première phase : authentification du serveur Suite à la requête d'un client, le serveur envoie son
certificat au client et lui liste les algorithmes cryptographiques, qu'il souhaite négocier. Le
client vérifie la validité du certificat à l'aide de la clé publique du CA (Certificate Authority)
contenue dans le navigateur. Si le certificat est valide, le client génère un pré-master secret
(PMS) de 48 octets qui servira à dériver le master secret (MS) de même taille, 48 octets, ce
qui représente l'entropie maximale de la clé. Ce PMS est chiffré avec la clé publique du serveur
puis transmis à ce dernier. Les données échangées par la suite entre le client et le serveur sont
chiffrées et authentifiées à l'aide de clés dérivées de la clé maître.
• Deuxième phase : authentification (optionnelle) du client Le serveur (et seulement lui) peut
demander au client de s'authentifier en lui demandant tout d'abord son certificat. Le client
réplique en envoyant ce certificat puis en signant un message avec sa clé privée (ce message
contient des informations sur la session et le contenu de tous les échanges précédents).
Remarques :
• L'authentification du client est facultative et au bon vouloir du serveur. Elle est en fait rarement
utilisée dans la vie courante (qui possède une paire de clés RSA certifiée?).
• Session ID (l'identifiant de session) une séquence arbitraire de 32 octets choisie par le serveur
pour identifier une session.
• Peer certificate (le certificat du pair) c'est un certificat X 509 du correspondant (soit pour un
serveur ou un client).
• Compression method l'algorithme de compression utilisé, NULL pour l'instant (ce champ reste
vide)
• Cipher spec (la suite de chiffrement) définit les algorithmes de chiffrement et de hachage
• MasterSecret c'est un clé de 48 octets partagée entre le client et le serveur.
• Is resumable (le drapeau) c'est un flag qui indique si il est possible d'ouvrir de nouvelles
connexions sur la session en question.
Le protocole Handshake
Ce protocole permet l'authentification obligatoire du serveur, du client est optionnelle, et de négocier
pour choisir les suites de chiffrement qui seront utilisées lors de la session.
Le Protocole SSLRecord
Ce protocole intervient après l'émission du message ChangeCipherSpec.il permet de garantir :
Nom Port
HTTPS (HTTP en SSL) 443
SMTPS (SMTP en SSL) 465
NNTPS 563
LDAPS (LDAP en SSL) 636
POP3S 995
IMAPS 995
TELNETS 992
En pratique, pour accéder à un serveur qui utilise les services SSL, on ajoute un "s" lors de la
spécification du protocole.
Implémentations
Plusieurs offres commerciales du serveur SSL sont disponibles, par exemple:
• SSLeay
• Netscape Entreprise Server
• Apache
• Oracle Web Application Server
• Internet Information Server (IIS)
• Lotus Domino d'IBM
• Java Server de Sun Microsystems
• X désigne l'algorithme utilisé pour l'échange de clés : RSA ou Diffie-Hellman avec signature
DSS ou RSA. Notez que DH n'est supporté que par la version 3.0 et non par la 2.0 de SSL.
D'autre part, son implémentation n'est pas sensible aux attaques type man-in-the-middle car les
paramètres d'exponentiation sont authentifiés par les 2 extrémités.
• Y désigne l'algorithme de chiffrement (voir le paragraphe Pourquoi SSL?)
• Z désigne l'algorithme de hachage (voir le paragraphe Pourquoi SSL?)
SSL_NULL_WITH_NULL_NULL
SSL_RSA_WITH_DES_CBC_MD5
Intégrité et authentification
L'intégrité est assurée au moyen de MACs (messages authentication codes), qui ont la double
spécificité d'assurer à la fois intégrité et authentification des données. Un MAC allie une fonction de
hachage (ici MD5 ou SHA-1, d'où une longueur finale de 16 ou 20 octets) à une clé secrète partagée
par les 2 entités. Une façon habituelle de générer des MACs est d'utiliser la fonction HMAC (RFC
2104); ici, SSL définit sa propre fonction pour MACer, mais nous n'entrerons pas dans les détails.
Confidentialité
Le chiffrement peut-être soit par flots, soit par blocs, suivant l'algorithme choisi. Prenons l'exemple
du chiffrement par flot (en gris les données chiffrées):
Après génération du MAC, les données sont directement processées dans la fonction de chiffrement.
Quant au chiffrement par blocs, il est nécessaire de rajouter du padding avant le traitement, pour que
la longueur totale des données à traiter soit un multiple de la taille d'un seul bloc (n x 64 bits par
exemple).
Évolutions du standard
La prochaine version du standard aura quelques changements, parmi lesquels on retrouve :
• Support obligatoire de DSA et D-H; RSA devrait également être supporté en facultatif.
• Remplacement de la fonction propriétaire de génération de MACs par le standard HMAC
(RFC 2104)
• Protection du numéro de version de SSL par les opérations de hachage (pour éviter les
attaques par rollback par exemple)
• Nouveau générateur de nombres aléatoires (basé MD5 et SHA-1 à la fois), nouveaux messages
d'alerte ("Decryption failed")
• ...
• SSL est théoriquement vulnérable aux attaques par force brute en cas d'utilisation de clés 40
bits, il est donc conseillé d'utiliser des clés de 128 bits.
• SSL est très vulnérable aux attaques par le milieu (man in the middle): l'attaquant intercepte
(physiquement) la requête du client et se fait passer pour le serveur auprès de lui, tout en se
faisant passer pour un client auprès du serveur légitime. Il reçoit donc la totalité du flux
supposé protégé.
• SSL est faible dans le sens où il n'impose pas l'authentification client (ce serait d'ailleurs
difficilement gérable en pratique).
• SSL est faible enfin car il présente des souplesses dans son implémentation, notamment en ce
Conclusion
Le protocole SSL est actuellement le seul protocole de sécurisation déployé et utilisé à grande
échelle, son grand avantage étant sa transparence par rapport au protocole TCP. Il garantit
l'authentification, la confidentialité et l'intégrité des données. Avec son architecture modulaire, il ne
se limite pas à des applications traditionnelles, puisque il intègre les réseaux sans fil comme le WAP
(Wireless Transport Layer) sous le nom WTLS ( Wireless Transport Layer Security).
Références
www.netscape.com/eng/ssl3
IPSec
Overview
IPSec (Internet Protocol Security, RFC 2401) est un protocole de la couche 3 du modèle OSI, tout
comme IP; il fut à l'origine développé dans le cadre de la version future de ce dernier protocole, à
savoir IPv6. Or, si IPSec existe depuis quelques temps déjà, IPv6 n'est quant à lui pas encore
déployé à grande échelle, ce qui aurait put empêcher l'utilisation d'IPSec. Mais il n'en est rien puisque
ce dernier a été porté vers la version actuelle d'IP (IPv4) et est maintenant disponible pour tous (les
plus récents patches sécurité de Windows 2000 l'incluent, et des distributions libres comme
FreeSwan pour Linux existent également).
De manière succincte, citons quelques propriétés générales des tunnels destinés aux VPNs :
Il ne faut pas non plus négliger les aspects pratiques tel que la charge processeur due au chiffrement,
le débit théorique possible, l'overhead induit et donc le débit effectif... De plus IPsec n'est pas le seul
protocole permettant d'établir des tunnels, il en existe d'autres comme les "point-à-point" tel que
L2TP, L2F ou encore PPTP qui peuvent induire un overhead non négligeable surtout lors
d'encapsulations successives (L2TPoATM avec AAL5, L2TPoEthernet, L2TPoUDP...). Voir la
fiche consacrée au tunneling pour plus de détails.
Le protocole initial et principal est le protocole IKE (Internet Key Exchange, RFC 2409). Appliqué
à IPSec, ce protocole a pour objectif dans un premier temps d'établir un premier tunnel entre les 2
machines (le tunnel IKE), que l'on pourra qualifier de "tunnel administratif". C'est la phase 1 du
protocole IKE. Ce protocole est dit administratif car il ne sert pas à la transmission des données
utilisateur; il est utilisé pour gérer les tunnels secondaires, leur création, le rafraîchissement des clés,
etc... La phase 2 du protocole IKE consiste en effet à établir autant de tunnels secondaires que
nécessaire pour la transmission des données utilisateur entre les 2 machines. Notez qu'il est possible
de recourir à une authentification manuelle à la place d'IKE, mais comme ce dernier permet bien plus
de choses que de l'authentification, cela s'avère beaucoup plus difficile à utiliser. Le protocole IKE
est décrit dans le paragraphe sur l'initialisation d'IPSec.
Ces 2 protocoles, AH et ESP, peuvent d'autre part être utilisés séparément ou combinés, comme
expliqué ci-dessous.
Le mode Transport ne modifie pas l'en-tête initial; il s'intercale entre le protocole réseau (IP) et le
protocole de transport (TCP, UDP...). Plusieurs variantes existent, conformément aux protocoles
décrits plus haut :
Le mode Tunnel remplace les en-têtes IP originaux et encapsule la totalité du paquet IP. Par
exemple, l'adresse IPA externe pourra être celle de la passerelle de sécurité implémentant IPSec, et
l'adresse IPB interne sera celle de la machine finale, sur le réseau derrière la passerelle.
Le mode de Nesting est hybride puisqu'il utilise les 2 modes cités précédemment. Il s'agit bien
d'encapsuler de l'IPSec dans de l'IPSec; nous verrons plus tard les répercussions au niveau
implémentation (bundle de SAs) :
Ce diagramme illustre le fait qu'IKE employé dans le cadre d'IPSec se compose de plusieurs phases.
• La première phase vise à établir la clé mère initiale, SKEYID. Il existe pour cela 3
alternatives suivant les possibilités des parties en présence :
• Le mode Secret Partagé nécessite qu'un secret soit déjà connu et partagé entre les
entités. On l'appelle le "pre-shared secret". Il va servir de graine à l'élaboration de la
clé mère qui va elle-même servir lors de l'authentification finale.
• Le mode Chiffrement asymétrique se base sur du matériel PK pour échanger les
données sensibles et donc établir le secret partagé.
• Le mode Signature peut être qualifié d'hybride puisqu'il ne se sert du matériel PK
que pour signer et donc authentifier les parties. Le secret partagé est lui établi grâce à
Diffie-Hellman.
Une fois la clé mère établie, SKEYID va être diversifiée en 3 clés filles, SKEYID-a, d et e.
Ces clés vont servir à la création du premier tunnel sécurisé entre les entités, le canal IKE ou
association de sécurité ISAKMP. Il s'agit grossièrement d'un tunnel "administratif";
Les 3 méthodes présentent des points communs, notamment (et c'est logique) au niveau
fonctionnel. Les premiers échanges permettent de définir l'association de sécurité. La
deuxième catégorie d'échanges permet d'établir le secret partagé. La troisième et dernière
section du handshake permet d'authentifier les parties et de valider tous les échanges
précédents (et SKEYID par la même occasion).
Dans cette première phase, le mode agressif a pour but de diminuer les échanges en forçant
certains paramètres.
• La deuxième phase est également appelée Quick Mode. Elle a pour but d'établir les tunnels
(et les associations de sécurité correspondantes) servant au transfert des données. Notez
qu'un tunnel est unidirectionnel et qu'il faut donc en établir 2 pour un échange full-duplex.
Les mécanismes propres à cette phase sont grossièrement semblables à ceux de la phase
précédente, à l'exception de quelques points.
Parmi ces points, citons le fait que SKEYID-d rentre comme prévu dans le matériel de
génération des clés. D'autre part, il existe une option appelée Perfect Secrecy Mode (PFS)
qui force les parties à échanger de nouveaux secrets supplémentaires dans le but d'éviter que
toutes les clés du système ne dépendent d'une seule et même clé mère (SKEYID).
Notez enfin qu'IKE nécessite l'implémentation des algorithmes et méthodes suivants (set minimal à
des fins de compatibilité) :
• Chiffrement : DES en mode CBC (avec test sur les valeurs de clés afin d'éliminer toute clé
dite faible ou semi-faible)
• Hachage : MD5 et SHA-1
• Diffie-Hellman
Pour être complets, citons les algorithmes conseillés :
• Chiffrement : 3DES
• Hachage : Tiger
• DSA, RSA
Le protocole d'authentification AH
Le protocole AH (Authentication Header) fournit les services de sécurité suivants :
• Intégrité en mode non-connecté (voir l'article introduisant la sécurité informatique)
• Authentification des données
• Anti-rejeu (optionnel)
L'en-tête AH se compose de 6 champs comme le décrit l'image suivante :
Nous ne rentrerons pas dans les détails de chaque champ ici, mais nous invitons les lecteurs à
consulter la RFC correspondante pour plus d'informations sur le sujet. Très brièvement, le
chiffrement sera appliqué aux données utiles jusqu'au champ NEXT inclus (ce champ contient un
identifiant du protocole supérieur, au niveau 4). Comme les données utiles ne sont pas pré-définies,
leur longueur peut varier grandement et un padding assez important est requis. Il est obligatoire et sa
longueur est explicitée dans le champ PAD LEN. Les données d'authentification protègent les
données du champ SPI au champ NEXT inclus; en cas d'utilisation des 2 mécanismes simultanément,
le chiffrement est effectué en premier suivi du calcul des données d'intégrité. Cela a pour résultat
d'éviter des attaques par déni de service au déchiffrement (comme démontré récemment à
Crypto'01), ainsi que de permettre d'effectuer les 2 opérations en parallèle (à la réception).
Tout comme les règles d'un pare-feu ou encore les SAs vues précédemment, les sélecteurs sont les
suivants :
• Adresses IP de source et de destination, masques, intervalles...
• Ports de source et de destination
• Protocole supérieur
• Utilisateur ou identifiant de système (ou certificats X.509 réutilisés par les SAs...)
Évolutions du standard
Comme on peut s'en douter, les standards relatifs à IPSec sont en constante évolution afin d'intégrer
entre autres les derniers standards cryptographiques (AES...). Voici une liste non-exhaustive des
tendances actuelles (au début 2002) :
• Numéros de séquence étendus (64 bits): cela est rendu nécessaire par l'utilisation
d'algorithmes beaucoup plus performants et des débits gigantesques (Gbit/s).
• Rejet d'AH au rang de fonctionnalité optionnelle.
• Amélioration des sélecteurs de SPD.
• Nouveaux protocoles d'échanges de clés supportés (IKEv2, Sigma, JFK...)
• Simplification du design et amélioration de la robustesse du protocole (DoS...)
• Support d'AES en mode CBC.
• Nouveaux modes d'intégrité seule.
D'autre part, de nombreux groupes (à l'IETF par exemple) travaillent actuellement sur des problèmes
liés à IPSec afin d'améliorer sont intégration dans tous les environnements :
• IPSec et NAT (utilisation d'UDP ou autres solutions, voir le tunneling)
• Langages standards de police de sécurité et négociations inter-domaines
• Protocoles de découverte des passerelles de sécurité
• ...
Conclusion
IPSec est comme nous l'avons vu un assemblage de plusieurs protocoles et chamanismes ce qui le
rend techniquement très complexe. Je vous invite à consulter les RFCs correspondantes pour toute
Les PKI
• fabrication de bi-clés.
• certification de clé publique et publication de certificats.
• Révocation de certificats.
• Gestion la fonction de certification.
Techniquement
Une infrastructure à clé publique utilise des mécanismes de signature et certifie des clés publiques qui
permettent de chiffrer et de signer des messages ainsi que des flux de données, afin d'assurer la
confidentialité, l'authentification, l'intégrité et la non-répudiation.
Signature
Dans la signature nous avons une bi-clé : une clé (privé) pour la création de signature et une clé
(publique) pour la vérification de signature, pour signer un message voici comment se passe:
1) à l'aide de la clé privée de signature de l'expéditeur, une empreinte connue sous le nom "message
digest" est générée par hachage en utilisant l'algorithme SHA-1 ou MD5, le plus utilisé étant SHA-1.
Cette empreinte est ensuite cryptée avec cette clé privée de signature.
5) ensuite le destinataire génère une empreinte à partir de message reçu en utilisant le même
algorithme de hachage. Si les deux empreintes sont identiques, cela signifie que le message n'a pas
été modifié.
Donc la signature vérifie bien l'intégrité du message ainsi que l'identité de l'expéditeur.
Définitions
Chiffrement
Il y a deux types de chiffrement possible
L'émetteur utilise une clé pour chiffrer le message et le destinataire utilise la même clé (le même
algorithme mais en sens inverse) pour déchiffrer le message.
Un message chiffré avec une clé publique donnée ne peut être déchiffré qu'avec la clé privée
correspondante. Par exemple si A souhaite envoyer un message chiffré à B, il le chiffrera en utilisant
la clé publique de B (qui peut être publié dans l'annuaire). La seule personne qui déchiffre le message
est le détenteur de la clé privée de B.
• www.openssl.org : openssl
Conclusion
Une PKI est une infrastructure qui se construit, c'est donc une structure à la fois technique et
administrative, avec 80% d'organisationnelle et 20% de technique. Le domaine des PKI est
intéressant : il est possible de les utiliser pour des applications tels que mail chiffré, web sécurisé
VPN (notamment IPSEC), commerce électronique... Et comme les PKI intègrent la cryptographie à
clef publique et certificat numérique, elles peuvent se confier à des tiers de confiance et doivent
recevoir l'agrément du DCSSI ( Direction Central de la Sécurité des Systèmes d'Information), pour
avoir une portée nationale. Actuellement l'absence de standards pour l'implantation des PKI,
engendre des problèmes d'interopérabilité entre les offres du marché.
Lexique
• Autorité de certification : entité qui crée des certificats. C'est une autorité morale qui définit les
règles d'entrée des ressources et des individus dans la PKI. En pratique, il s'agit de définir les
critères et les modalités d'attribution de certificats numériques.
• Autorité d'enregistrement : entité chargée de recueillir les demandes de certificats et de
contrôler l'identité de la personne ainsi que les critères d'attribution.
• Certificat : Une identité électronique qui est émise par une tierce partie de confiance pour une
personne ou une entité réseau. Chaque certificat est signé avec la clé privée de signature d'une
autorité de certification. Il garantit l'identité d'un individu, d'une entreprise ou d'une
organisation. En particulier, il contient la clé publique de l'entité et des informations associées à
cette entité.
• Certificat Auto signé : un certificat auto signé contient comme tout certificat une clé publique.
Sa particularité réside dans le fait que ce certificat est signé avec la clé secrète associée. Dans
ce cas précis, l'autorité de certification est donc le détenteur du certificat.
• Certificat X.509 : Il s'agit d'une norme sur les certificats largement acceptée et conçue pour
supporter une gestion sécurisée et la distribution des certificats numériquement signés sur le
réseau Internet sécurisé. Le certificat X.509 définit des structures de données en accord avec
les procédures pour distribuer les clés publiques qui sont signées numériquement par des
Introduction
802.11b est un protocole réseau wireless qui est actuellement de plus en plus utilisé pour les réseaux
locaux (entreprises, conférences, particuliers, etc). Contrairement au protocole Bluetooth, 802.11
permet des débits élevés (11 Mbit/s dans sa version b) à de grandes distances (plusieurs centaines de
mètres). Il intègre en option un protocole de sécurité au niveau liaison, le Wired Equivalent Privacy
ou WEP; celui-ci est très simple à administrer et facile à utiliser mais malheureusement peu sûr. Le
but de ce document est d'en exposer les faiblesses au travers des récentes études sur le sujet.
Failles du protocole
Chaque périphérique 802.11 (cartes, etc) utilise une clé qui est soit un mot de passe, soit une clé
dérivée de ce mot de passe. La même clé est utilisée par tous les éléments accédant au réseau, le but
est donc d'interdire l'accès à toutes les personnes ne connaissant pas ce mot de passe. La faille
provient de la façon dont l'algorithme de chiffrement (RC4) est implémenté et plus précisément de la
façon dont sont spécifiés les vecteurs d'initialisation (IV). Certaines cartes utilisent des IVs à 0 puis
les incrémentent de 1 à chaque utilisation ; cela implique nécessairement des réutilisations de
vecteurs et donc des flots de données similaires (c.f. la formule du chiffrement ci-dessous). Les
Approche théorique
De façon très succincte, le chiffrement utilisé par WEP peut-être décrit comme suit : la clé partagée
est notée K. Au moment de la transmission des données M, celles-ci sont d'abord concaténées avec
leur checksum c(M). Parallèlement à cela le vecteur d'initialisation est concaténé à la clé K, et passé
en entrée à la fonction de chiffrement RC4. Le résultat subit un XOR avec les données :
C = (M || c(M)) XOR RC4 (IV || K)
La deuxième attaque de Fluhrer, Mantin et Shamir est la «known IV attack ». Elle nécessite la
connaissance de l'IV ce qui est le cas puisqu'il circule en clair sur le réseau, et la connaissance du
premier octet de M (à deviner). Dans un certain nombre de cas (« les cas résolus », suivant
l'expression de Fluhrer, Mantin et Shamir ) , la connaissance de ces 2 éléments permet de déduire des
informations sur la clé K.
Selon les auteurs, ces 2 attaques sont applicables et peuvent permettre une récupération complète de
la clé avec une efficacité bien supérieure à l'attaque par recherche exhaustive.
Mise en pratique
L'implémentation de cette deuxième attaque par Stubblefield, Ioannidis et Rubin [2] a pris une
semaine, requis 2h de codage et 100$ d'investissement. Leur principale difficulté a été de deviner le
premier octet des données brutes (le plaintext M) ; or malgré les différents types de protocoles
utilisés (notamment de l'ARP et de l'IP), il s'est avéré que 802.11 rajoute une couche supplémentaire
en encapsulant tous ses paquets (header SNAP de 802.2). Ainsi, tous les paquets capturés
commençaient par le même octet 0xAA. Selon les auteurs, 256 cas «résolus» suffisent pour
retrouver l'intégralité de la clé de 128 bits ; ils ont également optimisé leur méthode d'attaque et ont
estimé qu'un jour ou deux suffiraient à un attaquant inexpérimenté pour arriver au même résultat.
Une des optimisations a consisté à tester directement des caractères simples, c'est-à-dire
mémorisables par les utilisateurs. En effet, d'une part la passphrase était utilisée à l'état brut (sans
hachage) dans le cas étudié, et d'autre part cette passphrase se devait d'être suffisamment simple pour
être retenue par tous les utilisateurs.
Bibliographie
• [1] FLUHRER, MANTIN et SHAMIR, Weaknesses in the key scheduling algorithm of RC4,
English Annual Workshop on Selected Areas in Cryptography (08/2001).
• [2] STUBBLEFIELD, IOANNIDIS et RUBIN, Using the Fuhrer, Mantin and Shamir Attack
to Break WEP, AT&T Labs Technical Report TD-4ZCPZZ (08/2001).
• [3] BORISOV, GOLDBERG et WAGNER, Intercepting mobile communications : the
insecurity of 802.11, MOBICOM 2001 (2001)
• Un mot de passe choisi par l'utilisateur est souvent simple à retenir. Il peut donc être attaqué
par dictionnaire.
• Un mot de passe "classique" a une durée de vie généralement longue (plusieurs semaines au
minimum). Même si le mot de passe est correctement choisi pour être difficile à trouver, il
reste néanmoins attaquable par la méthode de force brute.
• Souvent les mots de passe sont transférés en clair sur le réseau. Par un sniffer, il est possible de
récupérer certains mots de passe.
• Si un mot de passe est chiffré avant d'être transmis sur le réseau, avec un sniffer, on peut
récupérer le mot de passe chiffré, et faire une attaque par force brute sur le chiffré.
Les mots de passe à usage unique (one time password ou OTP en anglais) sont un système
d'authentification forte basés sur le principe de challenge/réponse. Le concept est simple : Utiliser un
mot de passe pour une et une seule session. De plus, le mot de passe n'est plus choisi par l'utilisateur
mais généré automatiquement par une méthode de précalculé (c'est à dire que l'on précalcule un
• Longévité du mot de passe. Le mot de passe est utilisé une seule fois
• Simplicité du mot de passe. Le mot de passe est calculé par l'ordinateur et non pas choisi par un
utilisateur
• Attaque par dictionnaire ou par force brute : Pourquoi essayer de cracker un mot de passe
obsolète ?
• Sniffer et chiffrement du mot de passe : Le mot de passe à usage unique peut être envoyé en clair
sur le réseau : Lorsqu'un sniffer en détecte un, il est déjà trop tard, car il est utilisé, et non
réexpoitable.
• Une donnée publique (mot ou phrase courte par exemple), choisie par l'administrateur. On
appelle cela aussi la semence, ou seed en anglais.
• Un numéro de séquence : C'est un nombre relatif au numéro de connexion. C'est un compteur,
tout simplement. C'est ce paramètre qui rend le mot de passe unique : L'OTP de la connexion
n°587 n'est pas le même que la connexion n°586 ou 588.
• Un mot de passe utilisateur, connu de lui seul, qui servira à l'authentifier.
Voici comment cela se passe : L'utilisateur exécute le programme opiepasswd. Le système lui
demande son mot de passe, et ensuite il lui demande de calculer le premier challenge.
scrap $ /usr/local/bin/opiepasswd
Adding scrap:
Response:
Adding scrap:
scrap $
Connected to securiteinfo.com.
login: scrap
Response:
Connected to securiteinfo.com.
login: scrap
scrap #
• Une préparation, qui va prendre en compte toutes les données utilisateurs : la semence, et le
mot de passe.
• La génération, qui consiste à appliquer la fonction de hachage n fois sur elle même, n étant le
nombre de séquences.
• Le formatage du résultat, qui transforme la donnée obtenue de longueur égale à 64 bits en un
mot de passe à base de caractères ASCII, c'est à dire lisible par l'homme.
Comme nous l'avons vu dans l'exemple utilisateur, le challenge en lui même (généré par le serveur)
est composé de trois parties :
L'utilisateur doit donc calculer la réponse au challenge grâce à un programme (par exemple
WinKey). Il envoie ensuite le résultat de son calcul au serveur. Du côté serveur, le système a un
fichier qui contient, pour chaque utilisateur, le dernier OTP valide utilisé pour une authentification.
Sur les systèmes Unix, ce fichier est /etc/skeykeys. Pour vérifier la validité de l'OTP utilisateur, le
serveur a une astuce : Le numéro de séquence (498 dans notre exemple) est décrémenté à chaque
authentification valide. Aussi, si le client calcule pour un numéro d'itération n, le serveur, lui, a n+1
stocké dans son fichier. Dans notre exemple, le serveur a donc stocké l'OTP correspondant au
numéro de séquence 499. Le système n'a donc plus qu'une tâche à effectuer : Calculer le hachage de
l'OTP que l'utilisateur vient de lui envoyer. Si le résultat est égal au résultat n+1 stocké dans le
fichier, l'utilisateur est authentifié.
Le fichier skeykeys
Si le hacker a la main sur le serveur, il est possible qu'il exploite une faille : Si le fichier /etc/skeykeys
est disponible en lecture pour le hacker, voici ce qu'il y trouve :
L'attaquant récupère alors : Le login et la représentation hexa de l'OTP. Avec cette représentation, il
peut créer un outils qui générera la réponse au challenge en fonction d'un dictionnaire, ou par force
brute (voir ci dessous). Pour contrer cette attaque, vérifiez que ce fichier n'est pas en lecture pour
tout le monde (encore moins en écriture !).
• Soit essayer de trouver le mot de passe utilisateur par dictionnaire et brute force
• Soit l'attaquant a utilisé sciemment un numéro de séquence inférieur à ce qu'attend vraiment le
serveur. Dans ce cas, l'attaquant peut alors utilisé un nombre de connexion, au détriment de
l'utilisateur, égal à la différence entre le vrai numéro de séquence serveur, et le faux numéro de
séquence de l'attaquant.
Cette attaque est facilement décelable pour l'utilisateur victime, car il se rend compte que le serveur
ne fonctionne pas correctement. Par contre, pour l'attaquant, les données récupérées sont
directement exploitables. Cette attaque est donc à prendre très au sérieux, d'autant plus qu'elle n'est
pas très difficile à réaliser.
Conclusion
Le maillon faible des OTP est le mot de passe utilisateur. Comme on l'a vu, il y a divers moyens pour
le récupérer. Les mots de passe à usage uniques ne sont donc pas fiables à 100% Ceci dit, cette
méthode est tout de même beaucoup plus sécurisée que la méthode traditionnelle login/password. De
plus il est possible de l'implémenter sans avoir de coûts excessifs. Il faudra néanmoins penser à
former les utilisateurs, qui n'ont pas l'habitude de manipuler un logiciel de chiffrement pour se
loguer :)
Références
• La RFC 1760 : The S/KEY One-Time Password System
• La RFC 1321 : The MD5 Message-Digest Algorithm
• La RFC 1320 : The MD4 Message-Digest Algorithm
Enregistrement
Lors de l'installation, PGP commence par vous demander des renseignements sur l'utilisateur : Nom,
E-Mail. Puis il demande de choisir les composants à installer en fonction du client de messagerie
électronique, le plus simple est de tous les installer comme cela vous pouvez changer à tout moment
de client sans être inquiété de la compatibilité.
PGPKeys
L'installation continue et vous demande si vous voulez lancer PGPKeys. Une fois lancé, PGPKeys va
d'abord créer une nouvelle paire de clefs, la clef privée et la clef publique, si toutefois l'assistant de
création ne se lance pas tout seul, cliquez sur l'icône de la barre d'outils "Générer une nouvelle paire
de clef", puis entrez votre Nom et votre E-Mail. Choisissez "Diffie-Hellman/DSS" en type de clef et
2048 bits pour la longueur de clef. Une autre option s'offre à vous, vous pouvez déterminer une date
d'expiration pour votre paire de clef (ce n'est pas obligatoire). Pour finir PGPKeys vous demande de
rentrer une phrase secrète, qui sert à générer votre clef privée. Une barre indicatrice,vous permet de
mesurer la complexité de votre phrase secrète, le mieux étant d'y introduire le plus de caractères
spéciaux ou accentués possible. Attention, mémorisez impérativement cette phrase et sa syntaxe, elle
est indispensable pour se servir de PGP. Ensuite vous pouvez choisir d'envoyer votre clef tout de
suite ou plus tard au serveur.
Clef privée
La clef privée sert uniquement à déchiffrer les données qui ont été chiffrées avec votre clef publique.
Exporter
Deux méthodes sont possibles. La première méthode consiste à sélectionner votre clef et à la copier
grâce au menu édition, pour ensuite la coller dans un fichier texte sous Word par exemple ou tout
simplement dans le mail destiné à votre correspondant. La seconde consiste à créer un fichier ASC
grâce à la fonction EXPORTER du menu Clés de PGPKeys, ce fichier comporte toutes les
informations relatives à votre clef publique, ensuite il suffit de le joindre à un mail pour l'envoyer à
votre correspondant.
La signature
Comme nous l'avons dit plus haut, nous pouvons identifier la provenance des données chiffrées grâce
à la clef publique. Lorsque vous chiffrez vos données, si vous désirez insérer votre signature, PGP
vous demandera d'entrer votre Phrase Secrète, le chiffrement de la signature ce faisant
automatiquement à partir de votre clef privée. PGP assure ainsi que personne d'autre ne puisse se
faire passer pour vous.
Chiffrer
Pour chiffrer des données, ouvrez PGPTools. Différentes méthodes vous sont accessibles, vous
pouvez chiffrer vos données, seulement les signer ou encore les chiffrer et les signer. Privilégiez la
dernière méthode ainsi votre correspondant recevra vos données chiffrées avec l'assurance qu'elles
viennent bien de vous. Pour cela cliquez sur le 4ème bouton, PGP vous demande alors d'indiquer le
chemin du Fichier que vous voulez chiffrer et signer.
Une fenêtre s'ouvre et vous permet de sélectionner la clef publique du destinataire (ou même de
plusieurs destinataires) et c'est ici que l'on peut choisir son type de chiffrement. Comme il a été dit
plus haut la clef publique n'est pas indispensable. Vous pouvez chiffrer votre document par clef
publique, c'est à dire que vous utilisez la clef publique de votre correspondant pour chiffrer le
Document. Par conséquent il devra utiliser sa clef privée pour le déchiffrer. Ou vous pouvez utiliser
le Chiffrement Conventionnel. Cette méthode chiffre le document en fonction d'une phrase qui sert
de clef de chiffrement (n'inscrivez pas votre Phrase Secrète !!!). C'est cette phrase que votre
correspondant devra posséder pour pouvoir déchiffrer vos données. Une fois effectuée la sélection
du type de chiffrement vous pouvez aussi opter pour l'effacement automatique du document original
dès le chiffrement terminé. Pour finir, si vous avez demandé à signer votre document, PGP vous
demande de saisir votre Phrase Secrète (celle entrée lors de la création des clefs), afin de vérifier que
c'est le bon interlocuteur qui utilise les clefs et que personne ne se fait passer pour vous. Une fois
cela fini, PGP chiffre automatiquement le fichier et l'enregistre au même endroit que l'original. Mais il
n'est pas indispensable de passer par PGP pour chiffrer un document vous pouvez aussi le faire à
partir du menu contextuel en cliquant sur le document avec le bouton droit de la souris. Là, vous
trouverez des commandes qui permettent d'utiliser directement PGP sur le document.
La Sécurité Informatique
• la sécurité physique
• la sécurité personnelle
• la sécurité procédurale (audits de sécurité, procédures informatiques...)
• la sécurité des émissions physiques (écrans, câbles d'alimentation, courbes de consommation de
• courant...)
• la sécurité des systèmes d'exploitation la sécurité des communications
La sécurité informatique utilise un vocabulaire bien défini que nous utilisons dans nos articles. De
manière à bien comprendre ces articles, il est nécessaire de définir certains termes :
• Les vulnérabilités : ce sont les failles de sécurité dans un ou plusieurs systèmes. Tout système
vu dans sa globalité présente des vulnérabilités, qui peuvent être exploitables ou non.
• Les attaques (exploits): elles représentent les moyens d'exploiter une vulnérabilité. Il peut y
avoir plusieurs attaques pour une même vulnérabilités mais toutes les vulnérabilités ne sont pas
exploitables.
Pour d'autres définitions, consultez la norme ISO 7498-2 qui définit pas moins de 59 termes; d'autres
définitions sont également disponibles dans notre lexique.
Types d'attaques
Les attaques peuvent à première vue être classées en 2 grandes catégories :
• les attaques passives : consistent à écouter sans modifier les données ou le fonctionnement du
réseau. Elles sont généralement indétectables mais une prévention est possible.
• les attaques actives : consistent à modifier des données ou des messages, à s'introduire dans
des équipements réseau ou à perturber le bon fonctionnement de ce réseau. Noter qu'une
attaque active peut être exécutée sans la capacité d'écoute. De plus, il n'y a généralement pas
de prévention possible pour ces attaques, bien qu'elles soient détectables (permettant ainsi une
réponse adéquate).
Une autre caractéristique des attaquants va être leur emprise uni-directionnelle ou bi-directionnelle
sur les communications, du fait de la nature asymétrique de celles-ci. En effet, la plupart des canaux
de transmissions sur Internet ou sur tout autre réseau hétérogène sont uni-directionnels et
empruntent des chemins différents suivant les règles de routage. Ainsi, de nombreux protocoles de
sécurité sont également unidirectionnels et il faut établir plusieurs canaux pour permettre un échange
en "duplex". Ces canaux qui sont au nombre de 2 minimum, sont la plupart du temps gérés de façon
totalement indépendante par les protocole de sécurité. C'est le cas pour SSL/TLS mais également
pour IPSec dont les associations de sécurité (SA) sont unidirectionnelles et indépendantes, chacune
définissant sont propre jeu de clés, algorithmes, etc...
• confidentialité
• authentification (entité, origine des données)
• intégrité
• machines (tamper-résistance, tamper-proofness, exécution sécurisée...)
• données (avec possibilité de récupération)
• flux :
• mode non-connecté, au niveau paquet (échanges de type requête-réponse, comme UDP)
• mode orienté-connexion (ensemble de l'échange, comme TCP)
• intégrité de séquences partielles (VoIP, applications, etc... permet d'éviter les DoS par
exemple)
• contrôle d'accès (= autorisation, à différentier de l'authentification)
• non-répudiation (avec preuve d'émission ou avec preuve de réception)
Notez que le chiffrement, les signatures digitales et autres techniques correspondent au niveau
d'abstraction inférieur, décrit comme l'ensemble des mécanismes de sécurité permettant de réaliser les
services décrits ci-dessus. Plusieurs mécanismes peuvent par exemple réaliser le service
d'authentification (schémas d'authentification, chiffrement, signatures digitales...). Néanmoins, ces
mécanismes de sécurité ne correspondent pas encore aux solutions finales qui seront réellement
implémentées. Il faudra pour cela effectuer un dernier raffinement, consistant à choisir les
algorithmes symétriques, les algorithmes asymétriques, la tailles des clés, etc...
Enfin, il existe d'autres notions qui ne peuvent être classées directement dans ces listes; la confiance
(trust) est un bon exemple. En effet, bien qu'elle soit très coûteuse, la confiance est obligatoire pour
garantir l'efficacité des mécanismes de sécurité mis en place. Citons l'exemple d'un protocole
d'encapsulation chiffrée (tunneling), développé en soft, permettant d'échanger des données tout en
préservant leur confidentialité. Or, si seules les données sont protégées, il est plus simple pour un
attaquant de s'introduire dans l'une des machines aux extrémités (PC ou autres), de modifier les
librairies correspondantes de façon à fausser le mécanisme de sécurité (nombres aléatoires forcés à
une valeur constante, valeurs de clés prédéfinies, algorithmes NULL) et enfin de pouvoir accéder à
loisir aux données transmises. D'où la nécessité de mettre en place un schéma de confiance visant à
interdire ce type d'attaque; il est nécessaire de pouvoir faire confiance aux équipements de sécurité
car dans le cas contraire, l'utilité même des mécanismes de sécurité est remise en question.
La Biométrie
Introduction
La biométrie est une technique globale visant à établir l'identité d'une personne en mesurant une de
ses caractéristiques physiques. Il peut y avoir plusieurs types de caractéristiques physiques, les unes
Usage
Les techniques basées sur la biométrie jouissent à l'heure actuelle d'un engouement général favorisé
par un phénomène de mode, principalement véhiculé par les films au cinéma et à la télévision. Ainsi,
il n'est pas rare de voir des scanners rétiniens avec de superbes lasers rouges, des lecteurs
d'empreintes digitales avec de très jolis voyants -clignotants-, etc... tout cela représentant le summum
de la technologie du contrôle d'accès. Or, les techniques de biométrie sont belle et bien en train de se
répandre dans notre vie quotidienne, et ce tout en gardant une image quelque peu trompeuse. Car le
problème est bien de savoir quelles techniques existent réellement, et quelles sont
leurs limites. Cet article ne se veut pas exhaustif sur un sujet aussi vaste que la biométrie, mais il a
tout de même pour vocation de sensibiliser au maximum les lecteurs et de leur donner quelques bases
indispensables.
Caractéristiques physiques
Il existe plusieurs caractéristiques physiques qui se révèlent être uniques pour un individu, et il existe
également pour chacune d'entre elles plusieurs façons de les mesurer :
iris (iris-scan)
pour les 2 techniques suivantes, il faut tout d'abord faire la distinction entre l'iris et la rétine :
Autrement dit, l'étude de l'iris va se porter sur la partie de l'oeil visible ci-dessous :
rétine (retina-scan)
cette mesure biométrique est plus ancienne que celle utilisant l'iris, mais elle a été moins bien
acceptée par le public et les utilisateurs, sans doute à cause de son caractère trop contraignant : la
mesure doit s'effectuer à très faible distance du capteur (quelques centimètres), qui effectue ensuite
un balayage de la rétine. Il est physiquement impossible d'effectuer une mesure rétinienne à une
distance de 30cm ou plus sur un sujet mobile comme on peut le voir dans certains films. Cette
méthode requiert des sujets coopératifs et entraînés. Pourtant cette technique semble être tout aussi
fiable que celle de l'iris; elle se base sur le fait que le schéma et le dessin formé par les vaisseaux
sanguins de la rétine (la paroi interne et opposée de l'oeil) est unique pour chaque individu, différent
entre jumeaux et assez stable durant la vie de la personne. La mesure peut ainsi fournir jusqu'à 400
points caractéristique du sujet, que l'on peut comparer aux 30 à 40 points fournis par une empreinte
digitale! En conclusion, la mesure rétinienne est la plus difficile à utiliser mais également la plus dure
à contrefaire.
visage (facial-scan)
il s'agit ici de faire un photographie plus ou moins évoluée pour en extraire un ensemble de facteurs
qui se veulent propres à chaque individu. Ces facteurs sont choisis pour leur forte invariabilité et
concernent des zones du visage tel que le haut des joues, les coins de la bouche, etc... on évitera
d'autre part les types de coiffures, les zones occupées par des cheveux en général ou toute zone
sujette à modification durant la vie de la personne. Il existe plusieurs variantes de la technologie de
reconnaissance du visage. La première est développée et supportée par le MIT et se nomme
"Eigenface". Elle consiste à décomposer le visage en plusieurs images faites de nuances de gris,
chacune mettant en évidence une caractéristique particulière :
Caractéristiques comportementales
Outre les caractéristiques physiques, un individu possède également plusieurs éléments liés à son
comportement qui lui sont propres :
Il existe plusieurs techniques en cours de développement à l'heure actuelle; parmi celles-ci, citons la
biométrie basée sur la géométrie de l'oreille, les odeurs, les pores de la peau et les tests ADN. Sur ce
dernier point, il est intéressant de souligner que le procédé peut se révéler menaçant tant au niveau
de la vie privée des personnes, de leur liberté que des dérives informatiques éventuelles (et autres Big
Brothers). En effet, même si cela dépend de la technique mise en oeuvre, le test ADN est quelque
chose qui peut se révéler comme exact et sûr à 100%, autorisant des FRR et FAR nuls (c.f. plus
bas). Il est également reconnu de façon universelle et permettrait très facilement d'effectuer des
recoupements entre bases de données. Autrement dit, ce serait le moyen idéal pour "cataloguer" les
personnes et détruire ainsi la vie privée que nous avons respectée jusqu'à présent. Le site de la CNIL
est un passage incontournable pour ceux que cela intéresse.
Ce graphe est purement démonstratif; delta représente la marge d'erreur autorisée par le système,
variant de 0 à l'infini. Très succinctement, on voit que plus la marge d'erreur autorisée est importante,
Exemple de vulnérabilité
le cas des empreintes digitales Les empreintes digitales représentent sans aucun doute les données
biométriques les plus couramment utilisées. De fait, on trouve un grand nombre de produits
disponibles sur le marché mais également beaucoup de travaux sur le sujet et de contrefaçons dans ce
domaine. Nous allons voir quelques unes des techniques utilisées ainsi que la façon dont elles sont
contournées. Attention, cette rubrique ne se veut pas exhaustive; d'une part, elle se base sur les
technologies actuelles qui sont par nature variables et évolutives; et d'autre part son but est de
sensibiliser le lecteur de manière générale plutôt que de le former à une quelconque technique.
Il convient tout d'abord de se procurer les données fondamentales de la mesure, c'est à dire les points
caractéristiques de l'empreinte digitale que l'on veut contrefaire, en fabriquant un faux doigt (ou fine
couche de silicone reproduisant la géométrie de doigt). Nous ne donnerons pas ici le mode
opératoire, mais sachez qu'il est tout à fait possible et simple de créer un faux doigt à partir d'une
simple empreinte (sur un verre par exemple, ou sur un clavier, une poignée, etc...). Ensuite,
examinons les cas pour chaque type de capteur :
De manière générale, les faiblesses de ces systèmes ne se situent pas au niveau de la particularité
physique sur laquelle ils reposent, mais bien sur la façon avec laquelle ils la mesurent, et la marge
d'erreur qu'ils autorisent. Là encore, il convient de ne pas se laisser impressionner par une image
illusoire de haute technologie - produit miracle.
• les données biométriques ne devraient pas être utilisées seules pour de l'authentification forte
car elles ne sont pas modifiables puisque par nature propres à chaque individu. On ne peut
donc pas se permettre de se baser uniquement dessus, d'autant plus que nous avons vu qu'elles
ne sont pas fiables à 100% (FAR/FRR). En règle générale, on préférera utiliser la biométrie
dans le cadre d'un schéma d'identification plutôt que pour faire de l'authentification.
• les données biométriques sont comparables à tout autre système de contrôle d'accès comme
des mots de passe, etc..., car du point de vue du système informatique, ce ne sont rien d'autres
que des séries de bits comme toute donnée. Autrement dit, la difficulté réside dans la
contrefaçon de la caractéristique physique et biologique que l'on mesure, mais en aucun cas
dans sa valeur numérisée (digitale). Prenons l'exemple de notre vieil ami, le login/mot de passe.
Ce système est souvent décrit comme peu sûr car une des principales attaques consiste à épier
les transactions durant un processus de login pour récupérer les données utiles et les rejouer.
On voit que même dans le cas des techniques basées sur la biométrie, cela reste possible! A
quoi bon se compliquer la tâche en essayant de reproduire une empreinte alors que l'on peut
récupérer les données numérisées directement? Ou si l'on peut attaquer les bases de données
contenant toutes les données biométriques de référence ?
Conclusion
On retiendra plusieurs fait marquants concernant la biométrie :
• il ne suffit pas de remplacer un login/mot de passe par une mesure de biométrie; il faut
également repenser tout le système et sécuriser l'architecture complète.
• il ne faut pas utiliser une mesure biométrique seule pour procéder à une authentification; on
préféra la coupler avec une carte à puce, un token sécurisé (petit élément de stockage
présentant une grande résistance aux attaques, même physiques), un mot de passe voire un
OTP (c.f. article concernant les OTP).
• on utilisera la biométrie de préférence pour les opérations d'identification plutôt que
d'authentification.
• enfin, perdons une fois pour toute cette image de technologie ultra sûre faussement propagée
par les médias. La biométrie n'est nullement une "solution miracle et universelle"!
Principes
Derrière le mot "garde barrière" / Pare-feu (dans la suite désigné par GB) se cache plutôt un concept
qu'un matériel ou un logiciel. Nous dirons qu'un GB peut être généralement constitué de plusieurs
éléments parmi lesquels on distinguera :
Le rôle d'un environnement GB est d'assurer un certain niveau de protection du réseau interne, tout
en permettant de travailler sans trop de contraintes.
• Se protéger de malveillances "externes" : les curieux qui génèrent du trafic, qui font plus de peur
que de mal, mais qui, quelques fois, finissent par coûter cher, les vandales, ceux qui veulent
embêter pour embêter, (saturation de liaisons, saturation de CPU, corruptions de données,
mascarade d'identité, etc), les "espionnages", (problèmes de confidentialité de l'information).
• Restreindre le nombre de machines à surveiller et à administrer sur le bout des doigts, (ceci ne
signifiant pas pour autant que les autres machines soient gérées par dessous la jambe !).
Par conséquent, l'investissement (minimum) dans une solution intelligente peut s'avérer rentable pour
la suite.
• Avoir un point de passage obligé permettant : de bien vérifier si les règles de sécurité telles que
spécifiées dans la politique sécurité d'établissement sont réellement celles qui sont appliquées, de
contrôler le trafic entre le réseau interne et externe, d'auditer/tracer de façon "centrale" ce trafic,
aider à prévoir les évolutions du réseau (statistiques possibles). éventuellement d'avoir une vue de
la
• consommation Internet des différents utilisateurs/services.
• Possibilité de mettre en oeuvre des outils spécifiques que l'on ne pourrait activer sur tous les
systèmes (exemple : systèmes d'authentification à mots de passe uniques, statistiques/comptabilité,
etc.).
• Économiser les adresses IP ! En effet, dans certaines configurations, un réseau interne derrière un
GB, peut utiliser des adresses IP du RFC 1918 lesquelles adresses ne sont pas ni connues, ni
"routées" sur Internet.
Le filtrage statique (ou de paquets) est une des premières solutions coupe-feu mise en oeuvre sur
Internet. Ce système inspecte les paquets IP (en-tête et données) de la couche réseau afin d'en
extraire le quadruplet (adresse source, port source, adresse destination, port destination), qui
identifie la session en cours. Cette solution permet de déterminer la nature du service demandé et de
définir si le paquet IP doit être accepté ou rejeté. Le principal intérêt du filtrage statique réside dans
sa transparence vis-à-vis des postes utilisateurs, ainsi que dans la vitesse des traitements.
La configuration d'un filtre s'effectue généralement au travers de liste de contrôle d'accès (Access
Control List ou ACL), constitué par la mise bout à bout des différentes règles à suivre. Cette liste est
lue séquentiellement jusqu'à la dernière règle applicable qui est retenue. Par exemple, une première
règle indique que toutes les machines peuvent se connecter au serveur Web sur le port 80, et la
suivante autorise le serveur Web à répondre à tous les clients du service (sur un port supérieur à
1024). Ces règles permettent à toutes les machines d'accéder au Web, sans pour autant bloquer les
connexions ou autres applications. Il convient de rajouter en fin de liste une règle spécifiant que
toute communication est interdite sur l'ensemble des services et des machines qu'elle soit en entrée
ou en sortie du réseau protégé. Le principe consiste en fait à interdire tout ce qui n'est pas
explicitement autorisé.
Cet exemple est celui d'un service reposant sur TCP, un protocole destiné à établir des circuits
virtuel. La différenciation entre appel entrant et appel sortant repose sur une information de l'en-tête
(le bit ACK) qui caractérise une connexion établie. Ce type de distinction n'existe pas pour le
protocole de datagramme UDP ; différencier un paquet valide d'une tentative d'attaque sur le service
s'avère donc irréalisable. Cette problématique se retrouve également avec certaines applications qui
répondent aux requêtes des clients sur les ports alloués dynamiquement. C'est le cas, notamment, de
FTP (un circuit pour les commandes et un pour les données) ou RPC (Remote Procedure Call) qui
utilisent un service distinct pour répondre aux demandes de localisation.
Il est généralement impossible de gérer de façon satisfaisante ce type de protocole sans ouvrir l'accès
à un plus grand nombre de ports, et donc de rendre le réseau plus vulnérable.
Pour pallier le manque de confidentialité sur Internet et sécuriser les échanges, des solutions poste à
poste telles que le protocole SSL (couche transport) ou les GPSS-API (couche application) oint été
développées. Basées sur des principes de chiffrement, elles assurent la confidentialité et l'intégrité des
échanges client-serveur. Grâce à Internet, les sociétés peuvent interconnecter leurs différents sites, et
fournir à leurs employés en déplacement un accès contrôlé à moindre coût. C'est pourquoi les coupe-
feu (tunnel chiffrant établie entre les deux sites d'une société), ou entre client et coupe-feu.
Diverses solutions de chiffrement émergent, mais qui ne sont pas inter-opérables entre eux. Le
groupe IPSEC (IP-SECURE), mis en place par l'IETF (Internet Engineering Task Force), travaille
donc à une standardisation de ses mécanismes. Chargé de soumettre des solutions de sécurité pour le
protocole IP, IPSEC a développé la norme ESP (Encapulsating Security Payload) qui propose deux
La première chiffre le datagramme IP dans son intégralité. Cette technique, qui intervient au niveau
des passerelles d'interconnexion, permet alors de masquer les adresses IP, et la nature des flux entre
des machines communiquant à travers le tunnel ainsi crée.
La seconde alternative, destinée à préserver les performances de routage, ne chiffre que les en-tête
de la couche transport (TCP/UDP), préservant ainsi les en-tête IP.
Ces technologies reposent sur des méthodes de chiffrement, les quelles nécessitent algorithmes
employés, ainsi que la négociation de clés de session entre les deux parties communicantes.
• Firewall-1 de CheckPoint
• Mwall de Matranet
• Pix de Cisco
• Netwall d'Evidian
Le NAT
Overview
La technique de translation d'adresses (NAT en anglais, RFC 3022) est une pratique courante qui est
apparue à l'origine pour palier au manque croissant d'adresses IPv4 libres. En effet, ces adresses sont
codées sur 4 octets et sont du type 0.0.0.0 à 255.255.255.255 (certaines valeurs étant réservées et
par conséquence inutilisables); il y a donc peu d'adresses disponibles en comparaison du nombre
croissant de machines sur Internet. Il fut donc décidé de réserver des intervalles d'adresses à des
usages privés uniquement (RFC 1918). Ce sont les adresses :
En conséquence, ces adresses ne sont pas routables sur Internet et ne doivent pas être utilisées par
des machines de ce réseau. Par contre, tous les réseaux privés peuvent utiliser ces adresses sans
restrictions.
Comme ces adresses ne sont pas routables sur le réseau public, la translation d'adresse est utilisée
pour permettre aux machines du réseau privé d'accéder à Internet, et de façon générale à d'autres
réseaux. Le principe de base est simple puisqu'il s'agit de remplacer à la volée les champs d'adresses
dans les paquets qui sont destinés à un autre réseau (ce qui implique que le NAT soit effectué entre
les 2 interfaces réseau, entre le réseau privé et les autres).
Techniques de translation
Il existe plusieurs variantes de NAT suivant la topologie du réseau privé, le nombre de machines
privées, le nombre d'adresses IP publiques et les besoins en termes de services, d'accessibilité et de
visibilité de l'extérieur.
• Le NAT de base est statique et attribue de façon automatique une adresse IP à une autre.
Aucune information liée à la connexion n'est nécessaire, il suffit de modifier le paquet suivant
la règle prédéfinie de translation. L'idéal dans ce cas-ci est d'avoir le même nombre d'IP
extérieures que d'IP privées.
• Le NAT dynamique ne considère aucune association prédéfinie entre l'IP publique et l'IP
privée de la requête qu'il reçoit. Il peut d'ailleurs y avoir plusieurs IP extérieures tout comme
il y a plusieurs IP privées. Cela entraîne nécessairement un suivi de la connexion car le NAT
attribue l'IP extérieure lors de la requête initiale qui provient de son réseau privé; il doit
ensuite pouvoir discriminer les paquets entrants de façon à pouvoir leur attribuer à chacun
l'IP correspondante sur le réseau privé (celle de la connexion). Le but étant de rester
transparent vis-à-vis de l'ordinateur source ou distant; un problème se pose si l'on ne dispose
pas du même nombre d'adresses IP externes que d'adresses privées, car si toutes les adresses
externes sont déjà en cours d'utilisation, aucune machine supplémentaire ne pourra accéder au
réseau extérieur.
• Le NAPT MASQ (Network Address and Port Translation) permet de résoudre le problème
cité précédemment et s'avère donc particulièrement utile si le nombre d'adresses externes est
limité; c'est le cas typique d'une connexion Internet simple où plusieurs machines vont devoir
partager la même adresse IP publique (externe).
Le problème technique derrière cette méthode est bien de savoir à quelle machine privée les
paquets entrants sont destinés, puisqu'ils ont tous -à priori- la même adresse IP de destination
(celle de la passerelle). Pour permettre leur différenciation, le NAT va devoir conserver une
trace plus complète des paramètres de chaque connexion de façon établir un véritable
Avantages et inconvénients
N'oublions pas que l'utilité principale du NAT est d'économiser les adresses IP nécessaires pour
connecter un réseau à Internet par exemple. Cela s'avère particulièrement utile pour tout particulier
possédant une connexion Internet simple (modem, ADSL, câble) avec allocation d'une adresse
dynamique. Si ce particulier possède plusieurs machines sur son réseau privé, il pourra utiliser la
fonctionnalité de NAT pour partager l'adresse IP de sa machine principale.
D'autre part, les fonctionnalités avancées du NAT permettent d'interconnecter plusieurs réseaux
privés de façon transparente même s'il existe des conflits d'adressage entre eux.
Par contre, dans la majorité des techniques citées précédemment, la connexion est nécessairement
initiée à partir d'une machine locale. Les machines externes ne verront que l'adresse de la passerelle
et ne pourront pas se connecter directement aux machines locales; cela est bien sûr résolu avec les
techniques plus évoluées de translation, mais celles-ci restent coûteuses et peu accessibles.
Enfin, l'opération même de translation peut poser un certain nombres de problèmes que nous allons
aborder dans le paragraphe suivant.
Sécurité et NAT
Le NAT présente à la fois des inconvénients et des avantages au niveau de la sécurité pour les
machines du réseau privé.
Un des avantages du NAT est de protéger les machines du réseau privé d'attaques directes
puisqu'elles ne sont en fait pas accessibles de l'extérieur. De plus dans la majorité des cas, les
requêtes de connexion ne peuvent provenir que de ces machines privées. Cela permet également de
se prémunir contre un monitoring du trafic qui viserait à scruter les communications entre 2
machines particulières, un serveur sur Internet par exemple et une machine du réseau privé. Comme
cette dernière n'est plus identifiable, l'opération devient impossible à moins de remonter au niveau
applicatif (d'où l'utilité d'utiliser une protection/chiffrement à ce niveau également).
Conclusion
Le NAT est aujourd'hui incontournable dans la plupart des topologies réseau, à partir du moment où
l'on souhaite connecter le réseau à d'autres. Comme nous l'avons vu, les techniques correspondant au
service NAT ont évolué pour répondre aux besoins croissants de transparence, connectivité,
disponibilité, etc... Quoiqu'il en soit, l'utilisation d'une telle technique ne doit pas être prise à la légère
car elle implique autant d'inconvénients que d'avantages. Enfin, on peut s'interroger sur la pérennité
du NAT sachant que cette technique n'était à l'origine destinée qu'à palier les lacunes d'IPv4. Or, il y
a fort à parier qu'elle sera toujours effective avec les nouvelles adresses IPv6, autant à cause de ses
qualités de sécurisation que du fait de la lenteur prévisible de la migration des terminaux d'un
système d'adressage à l'autre.
L'authentification htaccess
Concept d'authentification
Ce système d'authentification est fréquemment utilisé pour restreindre l'accès au contenu de
répertoires spécifiques, sur un intranet ou sur Internet. Le fichier contenant les informations de
configuration relatives aux personnes ou groupes de personnes habilitées à accéder les données
protégées, ainsi que leurs droits, se nomme ".htaccess" par défaut. Il est stocké dans le même
répertoire où résident les données à protéger.
Fonctionnement
La méthode d'authentification htaccess a été développée en même temps que les programmes
destinés à récupérer des données "Web" sur Internet, tel que les démons HTTPd. Ainsi, dans une url
Ainsi, si le démon trouve un fichier .htaccess dans l'arborescence à parcourir pour accéder au fichier
requis par le client, il va procéder suivant les informations contenues dans ce fichier : il va soit
interdire l'accès et refuser la requête, soit demander une authentification de l'utilisateur via
login/password. Il est intéressant de noter que la plupart du temps les données d'authentification (à
l'inverse des données de configuration) sont stockées à un autre endroit dans l'arborescence,
protégées de tout accès via le Web (par exemple avec un fichier .htaccess où est spécifié "Deny from
All"). Le démon va comparer ces données avec celles renvoyées par l'utilisateur lors de la requête
d'authentification et autoriser, suivant le résultat du test, l'utilisateur à accéder ou non à la page web.
AuthGroupFile /dev/null
AuthName Area_51
AuthType Basic
Nous utilisons ici un fichier ".htpasswd" qui est placé dans le répertoire "/repertoire_protege", et qui
contient nos paires de login/password de références. Nous verrons ce fichier un peu plus loin; nous
n'utilisons pas de fichier définissant des groupes d'utilisateurs : nous sommes dans un cas simple (le
paramètre "/dev/null" correspond au device null sous Unix, autrement dit à quelque chose
d'inexistant). "Area_51" est le nom que nous donnons à cette authentification (éviter les espaces) et
"Basic" est le type d'authentification.
La deuxième partie du fichier est celle où nous allons définir les droits requis pour accéder au
contenu du répertoire dans lequel se trouve notre fichier .htaccess . Ainsi dans le cas présent, nous
n'autorisons que l'utilisateur "roswell" (attention à la casse) à accéder à notre répertoire. Lors de
l'authentification, cet utilisateur donnera son mot de passe qui sera alors comparé à la valeur
contenue dans notre fichier de mots de passe, à savoir .htpasswd.
Nous allons voir maintenant qu'il est possible d'affiner ces droits en limitant suivant le cas les hôtes,
requêtes HTTP, fichiers accédés, protocoles, etc...
- premier cas, la limitation des requêtes HTTP. HTTP est un protocole de transfert de données utilisé
pour le web (c.f. la rfc 2616), qui comporte un nombre limité de fonctions; il est possible de
</Limit>
require valid-user
</Limit>
où tout utilisateur présent dans la liste du fichier .htpasswd sera autorisé à effectuer des requêtes
GET sur le répertoire protégé.
require valid-user
</Files>
Nous limitons ici l'accès au fichier spécifié, "index.html", en excluant le reste du répertoire. Cet accès
est lui-même limité aux utilisateurs valides (autorisés).
Expliquons tout d'abord les options utilisées : Order, Deny et Allow. Order permet de spécifier un
ordre d'évaluation des critères de test. Allow signifie autoriser les entités satisfaisant le test
correspondant et Deny signifie rejeter les entités satisfaisant également le test correspondant. On
utilise généralement un combinaison des 2, et suivant l'ordre, la politique de sécurité varie quelque
peu. Dans l'ordre Deny,Allow, les directives Deny sont évaluées avant celles de la clause Allow. Le
défaut est d'autoriser l'accès. Tout client qui ne correspond pas à la directive de déni ou qui satisfait
au test d'autorisation spécifique Allow se verra autorisé l'accès au serveur web. Dans l'ordre
Allow,Deny, les directives Allow sont évaluées avant celles de la clause Deny. Le défaut est
d'interdire l'accès. Tout client qui ne correspond pas à la directive d'autorisation ou qui satisfait au
test de déni se verra refusé l'accès au serveur web.
Exemple :
Order Allow,Deny
Tout le monde provenant du domaine apache.org est autorisé à accéder au serveur web sauf une
sous partie qui est refusée (sous-domaine foo). Le reste du monde est refusé puisqu'il s'agit du défaut
Variantes : pour autoriser seulement un groupe d'adresses IP : ici celles contenues dans la classe B
129.21.
Order Deny,Allow
Pour exclure seulement un groupe d'adresses IP : ici celles contenues dans 129.21.3 .
Order Allow,Deny
- dernier cas, l'authentification sécurisée : elle fait appel au protocole SSL (ou sa version
standardisée, TLS) pour les échanges de données, ce qui évite que les mots de passe circulent en
clair sur le réseau. Pour l'utiliser, il faut faire des requêtes de type https://... sur un serveur
correctement configuré.
AuthDCE On
AuthType Basic
AuthName dce
require valid-user
le fichier .htpasswd Le fichier htpasswd contient les login et mots de passe des utilisateurs autorisés à
accéder aux pages web. Plusieurs fichiers htaccess peuvent utiliser le même fichier htpasswd comme
base de secrets (credentials) centrale si la méthode d'authentification est basique. Mais dans tous les
cas ce fichier doit être clairement protégé (bien qu'accessible en lecture par le démon pour lui
permettre de l'utiliser); le plus souvent, on utilise là encore une protection par htaccess au moyen de
la ligne de configuration : "Deny from All", ce qui signifie qu'aucun accès (du démon donc via le
web) n'est autorisé.
Pour créer le fichier ".htpasswd", il faut utiliser la commande *nix htpasswd ou utiliser un site web
qui fournit le même service. La commande type est (-c pour création d'un nouveau fichier):
htpasswd -c /répertoire_destination/.htpasswd login
Le système va ensuite demander le mot de passe associé à ce login qu'il va crypter et rajouter au
fichier .htpasswd. Voici un exemple de ce que l'on peut trouver dans un fichier .htpasswd :
foobar:Z39sR$s9xLyx
karen:44KvbqBfLZ5Yw
• -m utilise la fonction de hachage MD5 (128 bits). Attention, Apache utilise une version
spécifique de l'algorithme, ce qui signifie qu'il n'est pas interoperable avec les autres serveurs
web.
• -d utilise la fonction système crypt(). Pour rappel, cette fonction est basée sur le DES, et est
également utilisée pour le cryptage des mots de passe système (fichier passwd ou shadow).
• -s utilise la fonction de hachage SHA-1 (160 bits).
• -p laisse les mots de passe en clair.
Accept-Language: fr
Host: www.securiteinfo.com
Proxy-Connection: Keep-Alive
Connection: close
Accept-Language: fr
Host: www.securiteinfo.com
Proxy-Connection: Keep-Alive
HTTP/1.1 200 OK
Connection: close
Content-type: text/html
Explications :
• L'utilisateur souhaite accéder à une page web qui s'avère être protégée par htaccess.
Concrètement, il y a 2 échanges requête/réponse HTTP qui sont effectués pour donner accès à
cette page.
• Le premier est une requête simple (un GET) signifiant que le client souhaite accéder à la page.
La réponse est "401 Authorization Required", ce qui signifie que la page est protégée et
nécessite une authentification (de type "Basic"). L'utilisateur ne voit pas cette réponse, seul le
navigateur (browser) la voit et affiche en réponse une popup dans laquelle il demande à
l'utilisateur de taper son login et mot de passe.
• Après cette opération, le navigateur réitère son GET en ajoutant cette fois-ci les informations
de l'utilisateur ("Authorization: Basic QWxpY2U6TGFwaW4=") qui serviront au serveur pour
l'authentifier.
• Si tout se passe bien, la requête est acceptée ("200 OK") et l'utilisateur peut accéder à la page
web.
Nous avons ici le cas le plus simple : les informations de l'utilisateur circulent quasiment en clair sur
le réseau. Prenons l'élément "crypté" : QWxpY2U6TGFwaW4=. Cet élément est en fait
"login:password" uuencodé en base 64, ce qui n'est d'aucune protection (l'uuencodage est un
procédé servant à coder du binaire en ASCII et inversement, autrement dit de passer de 24 à 32 bits
tout en restant dans l'intervalle des caractères imprimables, ce qui permet de transférer des fichiers
binaires sous forme de texte par exemple).
Il existe une autre méthode utilisée pour coder les informations transitant sur le réseau : on utilise
l'algorithme de hash MD5 (c.f. la rfc 1321). Les propriétés d'une fonction de hachage rendent
impossible le fait qu'un attaquant puisse remonter aux informations initiales (login/password); de
plus, le hasché reste caractéristique de ces données, autrement dit un hasché correspond à un et un
seul texte original (dans la limite de son intervalle de sortie, à savoir 2128 possibilités pour MD5).
Néanmoins, cela ne préserve pas des "replay-attacks", dans lesquelles l'attaquant va se contenter
d'intercepter ce hasché et de l'utiliser à son propre compte comme s'il s'agissait du sien : il n'a nul
besoin de posséder le texte original puisque c'est le hasché qui est demandé! Pour remédier à cette
faiblesse, l'authentification HTTP utilisant cet algorithme va donc rajouter des éléments -uniques-
dans le calcul du hasché, le plus souvent en envoyant un challenge (le "nonce") au client lors de la
requête d'authentification. Le client va rajouter ce challenge dans le calcul du hasché, le rendant
unique par la même occasion (c.f. la RFC 2069 et suivantes).
HTTP/1.1 401 Unauthorized
(...)
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
opaque="5ccc069c403ebaf9f0171e9517f40e41"
username="Alice",
realm="testHash",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
uri="/dir/index.html",
response="e966c932a9242554e42c8ee200cec7f6",
opaque="5ccc069c403ebaf9f0171e9517f40e41"
Malheureusement, cette deuxième méthode d'authentification est peu utilisée (cela dépend entre
autres des fonctionnalités du serveur, du navigateur, etc...). Les navigateurs suivants supportent
l'authentification basée sur MD5 :
* Amaya
* Spyglass Mosaic
Avantages et désavantages
La méthode d'authentification par htaccess permet de déléguer le contrôle d'accès au niveau local, et
autorise ainsi plus de flexibilité pour créer et changer les droits d'accès suivant les besoins. Par
contre, on comprendra que ce système devient rapidement ingérable lorsque le nombre d'utilisateurs
et/ou de répertoires augmentent, rendant toute politique de sécurité globale impossible. D'autre part,
le système reste faible dans son concept; il est basé sur les services du Web à l'exclusion de tous les
autres services d'Internet, ce qui n'est pas une hypothèse raisonnable. En effet, tout utilisateur
malveillant qui a accès au serveur par un autre moyen ou service (ce qui n'est pas irréaliste) sera
capable de modifier et corrompre complètement ce système d'authentification. Ainsi on peut dresser
une liste (non-exhaustive bien sûr) qui permet de se faire une idée du nombre de menaces à prendre
en compte lorsque l'on souhaite utiliser ce système d'authentification :
Conclusion
Nous avons vu que la méthode d'authentification par htaccess comporte beaucoup d'inconvénients,
voir de faiblesses, pour un nombre d'avantages assez restreint. Néanmoins, il ne faut pas oublier son
principal intérêt qui est le fait qu'elle reste la seule méthode facilement utilisable par le client de base
d'un fournisseur d'accès internet et d'espace web. En effet la plupart du temps cette personne n'a pas
accès aux serveurs et ne peut donc pas faire appel à des services auxiliaires pour des types
d'authentifications alternatives. Les quelques options restantes sont plus compliquées à implémenter
(PHP/MySQL par exemple) surtout si l'on souhaite assurer un bon niveau de sécurité (modules
cryptographiques en PHP). Et l'on ne parle même pas des solutions utilisées par la plupart des
interfaces web de mail gratuit type Yahoo!, où l'on utilise un simple POST dans lequel le mot de
passe est présent en clair!
Pour finir, la méthode htaccess peut très bien être sécurisée car elle en possède les moyens :
cryptographie avec MD5 ou sécurisation de bout en bout grâce à SSL... A chacun de s'assurer que
ces mesures soient correctement utilisées.
• Ne jamais choisir un mot du langage courant. Des logiciels spéciaux de type dictionary
cracking sont spécialisés dans ce domaine.
• Ne jamais prendre un mot qui est proche de vous : Votre prénom, le nom de jeune fille de
votre femme, le nom du chien, des enfants, de votre hobby préféré...
• Ne jamais prendre un mot inférieur à 6 lettres. Des logiciels spéciaux de type brute force
cracking sont spécialisés dans ce domaine.
• Un mot de passe ne doit jamais être écrit quelque part. La première chose que fait un pirate,
est de fouiller dans vos affaires : Regarder dans votre agenda, sous l'écran, sous le clavier, dans
votre poubelle, rechercher un fichier du type "mdp.txt" dans votre disque dur, etc.
Bref, le mieux est de prendre un mot de passe constitué de chiffres et de lettres, et éventuellement de
majuscules et minuscules. Par exemple : diZmLvc4dKJvc51 est un excellent mot de passe ! Le
problème est qu'il est difficile à retenir. Une bonne méthode est de constituer un anagramme. Par
exemple, si l'on prend " bonjour toi 2000 ", on peut prendre une lettre sur deux (on oublie les
espaces), et couper le chiffre en deux. Cela donne : 20bnoroojuti00. Il n'y a guère mieux comme mot
de passe... Encore plus facile à retenir, on peut utiliser le verlant, cela donne : 20toijourbon00. Bien
sûr, il existe d'autres méthodes, à vous d'imaginer la vôtre.
Conclusion
Maintenant que l'on a un bon mot de passe, il est préférable de prendre deux mesures
supplémentaires :
• Prendre un mot de passe différent par application (comptes mail, login FTP, accès à un site
web...).
• Changer régulièrement de mot de passe.
Les risques d'intrusion par détection de votre mot de passe sont maintenant considérablement
réduits.
Approche comportementale
Fondée sur une déviation par rapport à un modèle de comportement habituel. Initialement utilisé
pour détecter des attaques internes en utilisant plusieurs techniques :
Cette méthode reste prometteuse, mais n'est pas encore industrialisé L'approche comportementale
permet de détecter des attaques inconnues auparavant ainsi que les abus de privilèges des utilisateurs
légitimes du système. Par contre, le comportement de référence n'étant jamais exhaustif, on s'expose
à des risques de fausses alarmes (faux positifs. De plus, si des attaques ont été commises durant la
phase d'apprentissage. Elles seront considérées comme normales (risque de faux négatifs.
• Algorithme génétique : l'outil GASSATA (genetic algorithm as an alternative tool for security
On peut voir deux inconvénients à cette approche : on ne peut détecter que des attaques connues et
il faut remettre à jour la base de scénarios d'attaques très souvent.
Chacune de ces deux approches présente des avantages et des inconvénients. Voici un petit tableau
récapitulatif :
Tiger-2.2.4
Tiger est un ensemble de scripts qui recherche dans un système les faiblesses qui pourraient
permettre à une utilisation non-autorisée d'en changer les configurations, d'accéder à la racine ou de
modifier des fichiers systèmes importants. A l'origine, Tiger fut développé à l'université du Texas
A&M. Il peut être chargé à partir de l'adresse suivante : tamu.edu. Il existe plusieurs versions de
Tiger disponibles :
Logcheck 1.1.1
Logcheck est un script qui analyse les fichiers journaux des systèmes et recherche toute activité
inhabituelle ainsi que les attaques. Bien entendu, cela veut dire qu'un intrus n'a pas encore obtenu
l'accès au répertoire de l'hôte et ne peut donc modifier les fichiers journaux . L'un des gros problèmes
dans la maintenance des fichiers journaux est la quantité d'information collectée sur des systèmes
importants, l'analyse (par scanning) manuelle des fichiers journaux peut demander plusieurs jours.
Logcheck simplifie le contrôle du journal système en classant les informations reprises dans le journal
et en l'envoyant par e-mail à l'administration système. Logcheck peut être configuré de manière à
n'envoyer dans un rapport que les informations que vous souhaitez et ignorer celles que vous ne
désirez pas. Logcheck peut être chargé sur : Téléchargement Logcheck C'est l'un des éléments du
projet Abacus, un système de prévention d'intrusion. Cependant, tous les éléments ne sont pas
encore stables. Logcheck est basé sur un programme de contrôle de journal appelé " frequentchech.h
", un élément du Gauntlet Firewall Package. Le script logcheck.sh est installé sur /usr/local/etc/, ainsi
que les fichiers des mots clés. Le script peut être chargé sur : Logcheck Script
Tripwire
Tripwire est un des outils les plus connus et les plus utiles dans la détection d'intrusion et la
récupération qui s'en suit. Tripwire crée une base de données de signatures des fichiers dans le
système et lorsqu'il est exécuté en mode comparaison, il prévient les administrateurs système des
changements dans le système de fichiers. La différence entre Tripwire et Tiger est que le premier est
spécialisé dans les programmes de signature de fichiers et peut utiliser de multiples fonctions de
hashing pour générer des signatures digitales générales. Tripwire a été développé par le laboratoire
Computer Opérations Audit and Security Technology (COAST). La version publique disponible
Tripwire 1.2, est disponible sur : Tripwire.com
Snort
Snort est un système de détection d'intrusion, son auteur est Martin ROESH, il est léger, pas
d'interface graphique, peu coûteux en ressources. Snort permet définition précise des signatures,
détecte les entêtes et dans le contenu des paquets dans IP, TCP, UDP et ICMP, détection de Nmap
(Scan, OS fingerprint), des petits fragments, dénis de service et de débordement de Buffer (script
kiddies) . Snort peut être chargé sur : Snort.org
Par exemple, sur securiteinfo.com, nous utilisons un cookie pour le forum. Si vous envoyez un
message dans le forum, en remplissant votre pseudo (champs "Nom"), et éventuellement les autres
champs ("email", "URL", etc...), ces informations seront stockées dans un cookie. Ainsi, quand vous
reviendrez voir le contenu du forum, le site Securiteinfo.com vous "reconnaîtra" et remplira pour
vous les divers champs que vous aviez rempli auparavent.
name
Webmaster
www.securiteinfo.com/
0
610742400
29561850
838443904
29488426
*
email
[email protected]
www.securiteinfo.com/
0
610742400
29561850
900633904
Comme vous le voyez, on y retrouve les champs "name", "email", "url", "url_title", "img". Le
champs "magic" est la signature de mon identité.
Lecture du forum
Comme vous le voyez, le cookie étant un fichier texte, il est placé dans l'entête HTTP, champs
"Cookie". Et comme vous l'avez remarqué, le cookie est EN CLAIR ! Nous y reviendrons plus
tard :)
GET / HTTP/1.0
Accept: */*
Accept-Language: fr
Accept-Encoding: gzip, deflate
User-Agent: Securiteinfo OS v1.01 (http://www.securiteinfo.com)
Host: www.google.fr
Connection: keep-alive
Réponse de Google.fr
HTTP/1.1 200 OK
Content-Length: 1546
Server: GWS/2.0
Date: Wed, 05 Jun 2002 18:10:41 GMT
Content-Encoding: gzip
Content-Type: text/html
Cache-control: private
Set-Cookie: PREF=ID=4179fbc62eb90f6c:LD=fr:TM=1023300641:LM=1023300641:S=EVRhsiQ8sCc;
domain=.google.fr; path=/; expires=Sun, 17-Jan-2038 19:14:07 GMT
GET / HTTP/1.0
Accept: */*
Accept-Language: fr
Accept-Encoding: gzip, deflate
User-Agent: Securiteinfo OS v1.01 (http://www.securiteinfo.com)
Comme on le voit, lorsque le serveur reçoit une requête HTTP vierge de tout cookie, il en crée un et
le transmet avec la réponse grâce à la fonction Set-Cookie. Le client reçoit la réponse, crée le cookie
dans un fichier texte, sur votre disque dur. A la prochaine connexion, il transmettra à Google.fr les
informations contenues dans le cookie.
Si vous souhaitez plus d'élément sur l'aspect purement technique des cookies, consultez la RFC
HTTP State Management Mechanism
La sécurité
Les cookies contiennent des données personnalisées de votre compte, de votre ordinateur. Les
cookies sont donc des données sensibles d'un point de vue de la sécurité. Ils faut donc les considérer
comme des données personnelles que personne ne doit obtenir. Ce n'est donc pas un hasard s'ils sont
stockés dans C:\Documents and Settings sous Windows 2000.
Nous allons donc faire le tour de l'aspect sécurité des cookies.
Vol de cookies
Le but du hacker, est donc généralement de voler le cookie de sa victime pour en exploiter le
contenu.
Comme nous l'avons vu, en théorie, un cookie associé à un site web ne peut pas être envoyé à un
autre site web. Malheureusement, un certain nombre de failles permettent de voler des cookies.
Vulnérabilité du navigateur
Cette usine à gaz qu'est le navigateur, de plus en plus compliqué à chaque nouvelle version,
comporte un nombre de failles impressionnant. Parmi toutes ces failles, il y en a certaines qui
Replay attacks
Les cookies sont en général utilisés pour reconnaître l'internaute qui visite le site (je n'ose pas parler
d'authentification). Un exploit très classique et très facile est le replay attack. Il s'agit de rejouer la
session de connexion au site. Si le cookie n'est pas écrit pour empêcher cette attaque, alors
l'attaquant peut utiliser le cookie de sa victime pour être reconnu comme celle-ci par le site web. En
général, le simple fait de reprendre tel quel le cookie de sa victime et de le mettre dans ses propres
cookies permet à l'attaquant de se faire passer pour elle.
Les solutions
Côté client
• Désactiver les cookies. Mais beaucoup de sites web ont besoin de cette fonctionnalité pour
leur propre fonctionnement, pénalisant l'internaute qui ne supporte pas les cookies.
Introduction
Le but de ce papier est de démontrer en quoi les contrats de licence sur les logiciels informatiques
influent sur la sécurité globale des systèmes. Aucun éditeur n'est particulièrement visé mais les
logiciels les plus diffusés sont certainement les plus concernés par les remarques qui suivent. Dans
toute la suite le terme logiciel englobe les applications de toutes natures ainsi que les systèmes
d'exploitation.
Limitations de garantie
Avez-vous déjà lu en entier un contrat de licence portant sur un logiciel ? Plus particulièrement les
sections consacrées aux garanties ? Ces sections sont selon moi édifiantes car sans être juriste on y
comprend aisément que les éditeurs limitent soigneusement leurs responsabilités. En effet, ils
stipulent explicitement qu'ils ne peuvent être tenus pour responsables des dommages que pourrait
causer l'utilisation de leurs produits. De telles limitations de garanties peuvent-elles encore être
considérées comme normales voire même morales à l'heure où de plus en plus d'éléments de notre
vie sont contrôlés par des logiciels ? Des clauses du même genre feraient sourire ou frémir dans
l'industrie automobile par exemple car si le système de freinage ne remplissait pas sa fonction une
fois sur trois, il serait facile d'imaginer les conséquences pour le véhicule, son conducteur et aussi
pour son constructeur.
Responsabilité et Qualité
L'une des conséquences majeures des limitations de responsabilité est selon moi une absence totale
d'engagement sur la qualité des produits. En limitant sa responsabilité vis à vis du consommateur
(utilisateur du logiciel) l'éditeur peut se contenter de standards de qualité très faibles puisque les
défauts ou défaillances des produits ne peuvent pas lui être reprochés. En effet, l'objectif n'est plus
alors de produire la meilleure qualité logicielle possible mais plutôt d'assurer le minimum ; ce
minimum étant le plus bas niveau de qualité acceptable par le marché. Ainsi, le consommateur
choisira non plus le meilleur produit mais le moins mauvais. Dans le monde du logiciel on est très
Interopérabilité
Actuellement, à ma connaissance aucun éditeur n'accepte dans ses contrats de licence de
responsabilités quant à l'interopérabilité de ses produits avec ceux d'autres éditeurs. Pourtant, rares
sont les logiciels pouvant remplir l'ensemble de leurs tâches de façon complètement indépendante
sans s'appuyer sur les fonctionnalités d'autres briques logicielles. D'une façon générale, les systèmes
informatiques sont des ensembles complexes formés de nombreux éléments (logiciels pour la plupart)
interagissant de manière continue. Les éditeurs des différents éléments logiciels ne garantissent donc
en aucune manière que leurs produits ont la capacité de s'intégrer sans problèmes au sein des
systèmes existants ou de remplir une quelconque fonction dans un environnement réel. Il est vrai que
la diversité des environnements et la complexité grandissante des systèmes déjà en place rendent des
tests d'intégration et d'interopérabilité exhaustifs difficilement envisageable mais l'absence
d'obligations fourni aux éditeurs un parapluie au dessous duquel il est très aisé de s'abriter.
Confiance
Dès lors que l'on permet à un logiciel de s'exécuter sur une machine il faut savoir qu'on lui accorde le
contrôle total de celle ci. Cela veut dire que l'on fait confiance au logiciel pour qu'il exécute la tâche
pour laquelle il a été acheté et pas autre chose. On lui fait aussi confiance pour exécuter sa tâche sans
mettre en danger le fonctionnement des autres programmes présents sur la machine. Les contrats de
licence tels qu'ils sont formulés actuellement font de cette confiance un risque réel. L'utilisateur
prend le risque de compromettre sa machine en en confiant le contrôle à un programme dont les
auteurs ne garantissent pas le bon comportement. Malheureusement la seule référence de l'utilisateur
est un discours commercial car il n'a ni la possibilité (sauf pour les logiciels open source) ni la
capacité de vérifier par lui même si sa confiance est bien placée. Une autre disposition intéressante
des contrats de licence concerne le reverse engineering (ingénierie à rebours ;-)). Cette pratique qui
pourrait sauver bien des situations est très souvent complètement proscrite par les éditeurs.
Le niveau de sécurité C1
Il correspond à un niveau de protection discrétionnaire. C'est à dire que l'on assure la séparation des
utilisateurs et des données avec la notion de sujet et d'objet, que l'on contrôle l'accès aux
informations privées et que les utilisateurs coopèrent sur le même niveau de sensibilité.
Le niveau de sécurité C2
Ce niveau offre un accès contrôlé. C'est à dire que l'on affine le contrôle d'accès, au moyen du login
et de l'audit. De plus, on sépare les ressources à protéger. Le passage de la classe C (protection
discrétionnaire) à la classe B (protection mandataire) se fait par le biais de la labellisation des
données.
Le niveau de sécurité B1
Il offre ainsi une protection par labellisation. On a donc une politique de sécurité associée au
marquage des données et au contrôle obligatoire des sujets et des objets.
Le niveau de sécurité B3
C'est le niveau de " domaine de sécurité ", il faut obligatoirement un administrateur de sécurité, un
audit accru et la TCB intervient lors de tout accès de sujet à objet, doit résister à l'intrusion et doit
pouvoir être analysée et testée.
Le niveau de sécurité A1
Ce niveau est celui dit de "conception vérifiée". Comme son nom l'indique, il impose d'avoir une
FTLS (Formal Top Level Specification) pour la conception de la TCB et du modèle. Il impose en
plus des contraintes sur la gestion de la configuration et un administrateur de sécurité et du système
distinct.
Les systèmes de classe de fonctionnalité F-B1 sont plus sécurisés que ceux de classe F-C2 qui
n'impose que l'identification du sujet, la possibilité de restreindre les actions du sujet à la lecture et à
l'observation et à restreindre la transmission des droits à un groupe de sujets.
Pour en savoir plus sur le sujet nous vous suggérons d'aller lire : Le Compartemented Mode
Workstation.
Dans un système CMW, toutes les informations sont labellisées. Tout objet portant des informations
se retrouve donc "teinté" par ses informations et prend, à priori, le niveau de sécurité de celles-ci. Un
objet peut créer des informations à son niveau et au-dessus, mais pas en dessous (problème de
déclassification). Cette description de fonctionnement s'appelle un "modèle formel de politique de
sécurité". Il en existe plusieurs, comme par exemple le modèle "Bell - La Padula"
• Tout pouvoir pour manipuler les informations des utilisateurs, en pratique pour gérer le
swap, permettre le scheduling, etc. Cela ne donne cependant pas accès aux informations des
utilisateurs, simplement à leur manipulation.
• Une protection contre les modifications intempestives d'utilisateurs ou logiciel, que cela soit
le fait de bugs ou de malversation. Exemple: tous les exécutables du système, ainsi que les
fichiers de configuration, sont des fichiers SYSTEM_LOW, pour que personne ne puisse
écrire dedans (les utilisateurs sont au minimum au niveau PUBLIC : Il ne peut pas
"déclassifier" d'information au niveau SYSTEM_LOW). Par contre, les fichiers de logs sont
au niveau SYSTEM_HIGH : tout le monde peut écrire dedans, et personne ne peut les lire
(information confidentielle)
• Les utilisateurs peuvent posséder des droits particuliers nécessaires au fonctionnement correct
du système. Ces droits leur permettent d'outrepasser certaines contraintes de la politique de
sécurité. Ainsi, un officier de sécurité particulier peut se voir octroyer le droit de déclassifier
des informations, c'est à dire passer une information de l'état CONFIDENTIEL à l'état
PUBLIC par exemple. Ce genre d'action est bien évidemment audité. Un exécutable particulier
peut avoir le droit d'outrepasser la politique de contrôle d'accès mandataire (les niveaux de
sécurité) afin de pouvoir effectuer des sauvegardes des informations. Ces sauvegardes doivent
contenir les informations de sécurité des fichiers, évidemment. Programmes tar, cpio, etc... à
refaire. Certains droits ne doivent pas pouvoir être cumulés sur une seule personne. Exemple,
la création et l'autorisation d'un compte utilisateur ne doivent pas pouvoir être donnés à un seul
• En ce qui concerne les informations labellisées, il faut tenir compte de tout. Voici une liste,
probablement non exhaustive :
• Chaque fichier sur le disque possède ses informations de sécurité (propriétaire, niveau,
compartiments),
• Chaque espace mémoire possède ses informations (idem fichier, plus processus
propriétaire),
• Tout échange d'information est forcément contrôlé par le noyau : sur disque via le système
de fichier, en mémoire (partagée) également, et par des sémaphores et signaux : labels à
mettre en place. Un processus ne peut signaler un autre qu'à la condition qu'ils respectent
des règles de sécurité définies.
• Soit la connexion provient d'une machine de confiance (dialogue sécurisé entre les deux)
auquel cas on conserve les informations de sécurité ;
• Soit la machine est inconnue auquel cas on lui applique systématiquement un label de
sécurité faible (NETWORK, juste au-dessus de SYSTEM_LOW par exemple). Se pose
alors le problème du choix du compartiment auquel appartient le paquet. Il peut être décidé
qu'un paquet "vierge" prend la teinte du premier processus qui le touche (a priori celui qui a
reçu le paquet).
• Tout processus possède ses informations (idem fichier, plus niveau et compartiment courant
suivant les fichiers accédés, plus droits d'origine et droits courant). Un logiciel peut se voir
attribué par le système des droits particuliers lorsqu'il s'exécute (exemple : programme de
sauvegarde qui outrepasse l'accès mandataire). Un tel programme doit provoquer ses droits.
Hierarchy (H)
Hiérarchie de l'objet dans un arbre de groupes, c'est à dire que l'on peut considérer l'ensemble des
groupes comme une arborescence, chaque compartiment domine un ou plusieurs autres
compartiments et est dominé par un compartiment. Cette organisation n'est pas obligatoire, chaque
compartiment peut être totalement indépendant des autres, mais la propriété de dominant-dominé ne
rend toutes ses qualités qu'utilisée dans ce contexte d'arborescence.
Matrice associant les objets aux sujets en indiquant les droits qui s'y appliquent (b).
• Access set : Jean a le droit de lire le fichier du personnel. - Access Permission : la matrice a
comme entrée, l'objet fichier du personnel et comme sujet Jean avec le droit en lecture.
• Level Function :Au maximum, jean a (SECRET, {STAFF, FINANCE}), le fichier du
personnel a comme classification (CONFIDENTIAL, {STAFF}). Donc, le niveau courant de
Jean sera (CONFIDENTIAL, {STAFF}).
• Hierarchy : l'objet est isolé.
Pour ce qui est de la communication entre deux machines, on a donc des propriétés à respecter :
• Il faut que le compartiment de l'information reçue soit un sous-groupe ou le même que celui de
l'utilisateur.
• Il faut que le niveau de sécurité de l'information reçue soit inférieur ou égal à celui de
l'utilisateur.
En fait, ces deux propriétés définissent bien que pour qu'un utilisateur ait accès à une information, il
faut qu'il domine cette information. Ce qui signifie que la couche réseau va effectuer en réception le
travail du système pour ce qui est de l'accès aux informations.
Introduction
Vous détectez une activité anormale, une déconnexion, un ralentissement système... Après
vérification, vous en êtes sûr, vous êtes attaqué. Voici quelques règles qu'il faut appliquer
rapidement. Ces règles dépendent de vous : vous ne réagirez pas de la même façon si vous êtes un
particulier qui surfe sur le web, ou un administrateur réseau en entreprise.
• La première règle : être rapide ! Une attaque n'est souvent qu'une affaire de secondes, voire de
minutes. Le but du hacker est d'arriver à ses fins le plus rapidement possible.
• Ne pas contre-attaquer le hacker. Il réagirait de deux façons différentes si vous contre-attaquez
: Il se rend compte qu'il a été repéré, et il quitte rapidement le terrain, réduisant d'autant vos
chances de savoir qui il était et ce qu'il voulait. Ou alors, il attaque de plus belle et, s'il est plus
fort que vous, vous avez tout à y perdre : un hacker énervé qui pénètre dans votre système
risque de faire beaucoup de dégâts...
• Notez l'adresse IP de l'ordinateur victime de l'attaque.
• Notez l'heure de l'attaque.
• Notez le temps de l'attaque.
Un hacker qui s'attaque à un particulier, ce n'est pas courant. Mais cela arrive : c'est certainement un
hacker débutant qui veut se faire la main, sans pour autant prendre le risque de s'attaquer à une
société commerciale... Il veut généralement vous déconnecter, faire planter votre ordinateur, ou le
ralentir. Néanmoins, ce sont certainement les plus dangereux, car ce sont ceux qui ont le moins
d'éthique. Ce sont ces débutants qui prennent plaisir à effacer le contenu de votre disque dur...
• Vous n'y connaissez rien en sécurité informatique : Coupez immédiatement votre modem : à la
reconnexion, votre adresse IP changera (adresse IP dynamique), car c'est votre fournisseur
d'accès qui vous l'attribue. Le hacker aura du mal à vous retrouver. Ne lancez pas ICQ, car on
peut voir si vous êtes online. Pire encore, on peut obtenir votre adresse IP, même si vous avez
coché la case "Masquer l'adresse IP". N'allez plus sur IRC, du moins pendant quelques heures.
• Vous connaissez quelques trucs en sécurité informatique : Essayez de comprendre l'attaque : si
vous comprenez ce que le hacker fait, vous pourrez peut-être trouver une solution pour ne plus
être attaqué de cette façon à l'avenir. Ayez toujours un doigt sur le bouton "Reset" de votre
ordinateur, car vous prenez d'énormes risques à laisser faire le hacker...
• Le hacker n'a pas réussi ce qu'il voulait et vous n'avez pas su ce qu'il faisait (vous avez coupé
rapidement votre modem par exemple) : l'incident est clos, mais restez sur vos gardes un
moment.
• Le hacker a réussi, mais vous n'avez rien récupéré sur lui et sa méthode : c'est la pire des
choses.
• Faites appel à un consultant, un expert, pour sécuriser au mieux votre réseau.
• Le hacker n'a pas réussi, et vous avez noté plein de renseignements sur lui et sa méthode :
faites attention, il pourrait revenir avec une autre méthode. Configurez votre firewall pour ne
plus accepter de paquets de l'adresse IP de l'attaquant. Prenez un maximum de mesures en
prévention.
• Le hacker a réussi, et vous avez noté sa méthode : il est grand temps de trouver une solution
pour palier à ce trou de sécurité. Prenez un maximum de mesures en prévention.
Portez plainte ! Chacune de ces actions est punissable par la Loi. Il est évident que plus vous avez de
renseignements sur le hacker, et plus il sera facilement identifiable.
Introduction
Bien qu’il soit très difficile d’obtenir des chiffres précis sur les cyber-attaques, tout le monde
s’accorde à dire qu’elles sont en constante augmentation. De différentes formes, de différentes
natures et avec des cibles à la fois professionnelles ou privées, chaque internaute peut être confronté
un jour ou l'autre à ce type de problématique.
La plupart du temps les particuliers pensent que cela ne sert à rien, tandis que la majorité des chefs
d’entreprise ou de leurs directeurs informatique craignent de faire connaître un piratage. Ils préfèrent
ne rien dire plutôt que d’inquiéter leurs clients et leurs internautes en avouant que leurs systèmes ne
sont pas à 100% fiables. Malheureusement, se taire n’a jamais permis de faire avancer les choses, et
les pirates informatiques se considèrent, grâce à ce silence, trop souvent comme intouchable.
La France dispose d’une législation précise sur le sujet et les pirates sont passibles de sanctions
parfois conséquentes. C'est pourquoi, il ne faut pas hésiter à l’utiliser si vous êtes victime d’une
tentative de piratage, que l’attaquant réussisse ou non à la mener à bien.
Comment réagir ?
La première chose à faire est de réunir les éléments suivants :
1- Une trace informatique de tout ce qui vous a fait penser à une attaque, remontée de logs
par exemple, traces d’un troyen sur votre machine, fichier encrypté d’un keylogger etc…. La
police vous demandera de leur en fournir un exemplaire sur support magnétique qu’ils
verseront à votre dossier en même temps que la plainte pour tout remettre au Procureur de la
République.
3- Enfin, si vous n’êtes pas le propriétaire du nom de domaine mais que la personne vous
mandate pour déposer plainte, n’oubliez pas de vous munir d’un pouvoir rédigé intégralement
de sa main ainsi que d’une pièce d’identité ou d’un K-bis de la société. Sans cela vous ne
pourrez porter plainte.
4- Une liste, la plus complète possible, de tous les préjudices subis par l'attaque.
Dans un second temps, il faut identifier auprès de qui vous allez pouvoir porter plainte. Gardez en
2- Pour les machines ne dépendant pas de la B.E.F.T.I, il faut vous rapprocher de votre
Service Régional de Police Judiciaire. Votre commissariat de police ou votre gendarmerie
devraient vous donner sans difficulté leurs coordonnées. Une fois en contact avec votre
S.R.P.J. il faut demander à parler à un « Enquêteur Spécialisé sur la Criminalité Informatique
» autrement dit un E.S.C.I qui pourra enregistrer votre plainte. Vous pouvez aussi contacter
l'Office Central de Lutte contre la Criminalité liée aux Technologies de l'Information et de la
Communication qui vous réorientera aisément. L'O.C.L.C.T.I.C se trouve 101 rue des Trois
Fontanot - 92 000 Nanterre, Standard 01.49.27.49.27 Une fois au standard, demandez
simplement vers qui vous orienter pour porter plainte et décrivez brièvement le contexte.
La plainte déposée a pour but de décrire l’attaque, sa réussite ou son échec, les éventuels dommages
qui peuvent en résulter ainsi que toutes les autres conséquences (perte de temps pour vérification de
l'intégrité du site ou des données, pertes d'argent, perte de crédibilité auprès des internautes ou des
clients de l'entreprise etc...). La police envoie ensuite au parquet votre dossier qui décidera ou non
d’instruire le dossier.
Conclusion
Ce type de démarche peut sembler vaine et inutile, mais ce n’est pas le cas !
En outre, il vaut mieux répondre à ce type de comportement en portant plainte plutôt qu'en tentant
de se venger soi-même. La France possède une législation assez rigoureuse en matière de cyber-
crime et il serait fort dommage de voir votre attaquant porter plainte si vous lui causez des dégâts en
représailles. Sachez que ce type de situation peut tout à fait se produire et que vous ne pourrez
arguer d’avoir été attaqué le premier. Tout comme dans la vie réelle, nous ne pouvons nous faire
justice nous même sur Internet. Pour information, tant la B.E.F.T.I. que l'O.C.L.C.T.I.C. ont
répondu avec beaucoup d'efficacité aux questions que nous leur avons posé pour pouvoir écrire cet
article. Ils sont très conscients du nombre d'infractions non répertoriées qui existent et déplorent
cette situation.
• Prévention
• Détection
• Réaction
Ces trois aspects sont pour le moment très diversement couverts par le marché malgré une nécessité
indéniable.
Prévention
La prévention est fondamentale et est généralement bien appréhendée par le plus grand nombre. Le
principe : faire tout ce qu'il faut pour se protéger. Elle consiste le plus souvent à adopter la démarche
suivante : Analyse des risques Définition d'une politique de sécurité Mise en oeuvre d'une solution
centrée sur un ou plusieurs firewalls. Audit de la solution Mises à jour Le marché à ce jour couvre
très bien cette approche : les cabinets de conseils sont très présents sur l'analyse des risques. Les
Intégrateurs proposent et mettent place des solutions à tour de bras. Des sociétés se spécialisent dans
la réalisation d'audits de sécurité, d'autres effectuent de la veille technologique en sécurité et
permettent de déclencher les mises à jour (généralement effectuées par l'intégrateur).
Détection
Le principe est d'être capable de détecter lorsque les mesures de prévention sont prises en défaut. La
détection, même si certains outils techniques existent, est encore trop rarement intégrée aux
infrastructures. Il est vrai que les intégrateurs proposent souvent ces outils lors de la mise en place
d'infrastructures de connexion Internet ; mais leur déploiement reste marginal en dehors de ces
projets spécifiques. De plus, à l'heure actuelle un cruel défaut de compétence est à déplorer. Il y à
encore trop peu de personnes formées à ce type d'outils. La détection exige un suivi permanent de
l'état des système à protéger et des mécanismes de diffusion des alertes générées.
Réaction
S'il est important de savoir qu'une attaque est en cours ou qu'une attaque a réussi il est encore plus
important de se donner les moyens de réagir à cet état de fait. C'est l'aspect le plus négligé
actuellement même au sein des acteurs majeurs de la sécurité Informatique. Pourtant, il n'est pas
possible d'oublier les credo de tous les consultants en analyse de risque : " le risque zéro n'existe pas
" ou encore " il n'y a pas de sécurité absolue ". Il faudrait donc toujours prévoir et se préparer au
pire. Cela implique la mise en oeuvre de procédures d'exploitation spécifiques à la réaction en cas
d'attaque, la rédaction et le test d'un plan de continuité Informatique à utiliser en cas de sinistre
grave. Il est également primordial de se doter des outils permettant d'une part de collecter toutes les
informations pouvant être nécessaires en cas de recours juridique. Un cadre doit aussi être prévu au
niveau des responsabilités ; de ce fait les contrats d'assurance devront prendre en compte le risque
Conclusion
La prise en compte des problématiques de sécurité est en cours en France actuellement dans une
vaste majorité d'entreprises mais pour l'heure les moyens mis en oeuvre ne sont pas toujours
suffisants. Afin de supporter les entreprises dans leur processus de sécurisation, le marché, en forte
croissance, s'est d'abord structuré dans le domaine de la Prévention. Néanmoins, de très nombreuses
questions restent encore sans réponse dès lors qu'il s'agit de Détection et de Réaction. Ces deux
domaines qui touchent à l'exploitation au quotidien (ou encore opération) des infrastructures de
sécurité sont encore pleins de promesses mais aussi sources d'inquiétude pour les différents acteurs
de la sécurité informatique.
Les Sauvegardes
Introduction
Que vous soyez un particulier ou une entreprise, une sauvegarde peut vous tirer d'affaire dans bien
des cas. Que vous soyez victime d'une attaque, d'un crash système, d'une défaillance matérielle, etc. ;
seule une sauvegarde vous permettra de restaurer entièrement le système dans son état originel.
Encore faut-il qu'elles soient bien faîtes ! Simplement, il reste difficile de faire un choix approprié
dans la jungle des choix disponibles dans le monde de la sauvegarde. C'est le but de cet article : vous
aiguiller dans votre choix.
La politique de sauvegarde
Tout dépend du rythme de modification de vos données. Un serveur bancaire national supportant
plusieurs milliers d'écritures à l'heure n'aura pas les mêmes besoins en terme de sauvegarde qu'un
serveur d'applications modifié une fois par mois... Une fois le rythme des sauvegardes évalué, il ne
vous reste plus qu'à déterminer le type de sauvegarde. Il existe principalement 3 type de
On aura ainsi besoin de 5 bandes hebdomadaires + 11 bandes supplémentaires pour chaque mois soit
16 bandes.
Vous l'aurez compris, il faudra fixer un lieu de stockage pour ces bandes. Il est de bon ton de les
conserver dans un endroit à l'abri du feu et des inondations. L'idéal étant de les conserver dans un
coffre ignifugé, ainsi qu'une copie de ces bandes sur un site distant (Ce qui porte à 32 le nombre des
bandes).
Un des critères pourra être la plateforme système que vous utilisez. Certains logiciels tournent mieux
sur certaines plateformes. Dans le cas d'Unix, n'oublions pas non plus les scripts (par exemple :
ufsdump lié à cron) qui bien utilisés vous permettront de développer les mêmes fonctionnnalités.
Voici un tableau non exhaustif qui vous présente les types de supports les plus connus ainsi que leurs
caractéristiques principales :
Ce tableau ne mentionne pas les bibliothèques de sauvegarde pouvant contenir plusieurs centaines de
bandes et pilotées par le logiciel de sauvegarde.
Aucune mention n'a été faîte des SANs (Storage Area Network) qui, bien que technologie de
sauvegarde, rentrent davantage dans l'architecture réseau de l'entreprise. Mais il ne faut pas ignorer
cette technologie pour les plus grosses entreprises ayant besoin de sauvegardes à la volée et ne
souhaitant pas surcharger les machines et le réseau.
Conclusion
Les sauvegardes font partie de manière plus globale de la politique de sécurité des données. Que ce
soit suite à un crash système, un crash matériel ou une infiltration malveillante (hack), une
sauvegarde peut vous faire économiser parfois tout un mois de travail. Il ne faut pas ignorer cet
aspect de la sécurité... Il suffit d'une fois...
Introduction
Depuis Linus Torvalds et son système Linux, l'Open Source s'est considérablement développé. Mais
qu'est-ce que l'Open Source ? C'est le fait de rendre public le code source d'un logiciel. L'Open
Source est régie par un ensemble de licences, dont la plus connue est la GNU Public License. Ce
code source n'est donc plus la possession privée d'une personne, d'un groupe de personne, ou d'une
société, comme c'était le cas depuis la naissance de l'informatique dans les années 60, jusque dans les
années 80/90. Les plus grandes entreprises emboîtent actuellement le pas des développeurs
indépendants et proposent à leur tour des logiciels de qualité professionnelle en Open Source. Mais
derrière cet effervescence intellectuelle, quelles sont les conséquences, en matière de sécurité, pour
les projets Open Source ?
Les avantages
Les inconvénients
Conclusion
Tout le monde sait que baser la sécurité sur un programme propriétaire n'est pas sécurisant :
N'importe quel hacker peut désassembler le code jusqu'à comprendre comment la protection est
faite. C'est un fait. C'est pourquoi l'open source est généralement considéré comme plus sécurisant
qu'un code propriétaire. Comme nous l'avons vu, il n'en est rien. Le seul fait qui aille dans le sens de
l'open source, c'est qu'un bug de sécurité est en général plus rapidement découvert, et donc plus
Introduction
La plupart des entreprises a encore des difficultés à concevoir que leur sécurité peut être défaillante.
Ceci est particulièrement vrai dans un contexte de PME-PMI. Chaque structure préfère croire que
les pertes de données n'arrivent "qu'aux autres" et argue souvent que les audits effectués par des
sociétés spécialisées type SSII sont trop onéreux pour leur budget. Malheureusement, les dirigeants
ou responsables informatiques oublient de se poser une question cruciale : "combien cela me
coûtera-t-il si l'informatique de mon entreprise, ma base de donnée client ou ma comptabilité par
exemple, disparaissait ?". En effet, cette question devrait pouvoir sensibiliser n'importe quel décideur
responsable, et l'amener à faire valider la cohérence de ses systèmes d'informations et de
sauvegardes. Il existe aujourd'hui sur le marché différentes méthodes permettant d'auditer de manière
fiable et autonome une entreprise. Cependant, il faut garder en tête que faire appel à des
professionnels serait plus judicieux. Dans tous les cas, voici une synthèse des quatre principales
méthodes disponibles sur le marché :
• La méthode Feros
• La méthode Méhari
• La méthode Marion
• La méthode Melissa.
La méthode FEROS
La méthode FEROS signifie : Fiche d'Expression Rationnelle des Objectifs de Sécurité des Systèmes
d'Information. Elle part du constat simple que les Responsables Informatiques sont généralement
chargés de veiller sur :
Partant de ce constat, il est donc primordial de définir des objectifs de sécurité à mettre en oeuvre
dans l'entreprise. Pour ce faire, il faut commencer par déterminer les besoins de la structure auditée :
En parallèle de ces objectifs doivent se trouver les contraintes incontournables que rencontre la
société :
• contraintes matérielles,
C'est en confrontant les besoins de l'entreprise en matière de sécurité avef les contraintes auxquelles
elle doit faire face qu'il faudra déterminer la politique de sécurité à mettre instaurer. Une fois les
grands axes de cette politique définis, il est important selon la méthode FEROS de s'interroger sur les
menaces que l'entreprise peut rencontrer :
• un guide permettant à chaque structure auditée de rédiger un questionnaire qui lui sera propre,
• le questionnaire structuré qui permettra de mettre en évidence les particularités de l'entreprise,
• un glossaire qui définira précisément le sens de chaque terme technique employé pour le
vulgariser auprès des décideurs non techniques,
• une synthèse des menaces potentielles qui permettra d'en prévoir les parades.
Cette méthode émane du SCSSI et vous la retrouverez intégralement sur leur site.
Notre opinion
Cette méthode possède le gros avantage d'être simple d'appréhension pour un non initié à la
technique. Fonctionnnelle et structurée cette méthode permet de réagir rapidement et pourquoi pas
de préparer le travail d'une société extérieure qui sera chargée d'approfondir chaque point soulevé
par l'application de cette méthode. En effet, elle nous semble être un bon moyen de "préparer le
terrain" et donc réaliser des économies substantielles en ne faisant appel à des spécialistes qu'une fois
le terrain déblayé.
Divers
La Foire Aux Questions (FAQ)
Voici quelques questions qui nous sont les plus fréquemment posées.
Q : Si j'utilise un ordonnanceur de proxy (un logiciel qui utilise un proxy différent à interval de
temps régulier), suis-je protégé des hackers ?
R : Non, vous n'êtes pas protégé. En effet, les hackers scannent des plages entières d'adresses IP à la
recherche de vulnérabilités. Votre adresse IP est donnée par votre provider. Vous ne pouvez cacher
votre adresse IP par l'utilisation d'un proxy que si vous surfez avec. Mais si un hacker scanne
directement l'adresse IP que votre provider vous a donné, alors il attaquera directement votre
R : Oui, cela ralentit votre machine, mais avec un CPU de plusieurs centaines de MHz, cela ne
devrait pas se sentir.
Q : Je suis infecté par un troyen/virus, mais je n'arrive pas à l'enlever. Comment faire ?
Q : J'ai un problème avec <insérez ici le type, la marque et la référence du matériel>. Comment
faire ?
R : Non, cela signifie que votre firewall a détecté un comportement anormal ayant pour cible votre
ordinateur. Cela peut être un scan de recherche de chevaux de Troie, un déni de service (DoS), etc...
Dans tous les cas, tant que votre firewall vous remonte des alertes, c'est qu'il arrive à intercepter et
mettre en échec l'attaque. Il serait beaucoup plus grave si une attaque aboutissait et que votre
firewall ne voyait rien du tout !!!
Q : Est-ce que les personnes qui attaquent mon ordinateur sont potentiellement dangereux ?
R : Non, en général ce ne sont que des personnes qui utilisent des outils tout faits. La plus grande
Q : Il arrive assez souvent que ce soient des FAI connus qui provoquent l'alerte qui me remonte
du firewall (quand j'essaie de savoir qui a frappe a ma porte), est-ce normal ?
R : Oui c'est "normal". Il s'agit tout simplement d'un internaute (tout comme vous) qui "s'amuse" à
essayer de pénétrer votre ordinateur. Et pas que le votre d'ailleurs. Donc, quand vous faites la
résolution du nom de domaine, le nom du provider de l'attaquant apparaît. Ce ne sont pas les
providers qui attaquent votre PC :)
Je vous conseille de faire une école d'ingénieurs avec un stage dans le domaine de la sécurité
informatique.
Si vous ne pouvez pas faire une école d'ingénieurs, je vous conseille de faire un BTS ou DUT
informatique.
Si vous ne pouvez pas faire un BAC+2, je vous conseille de faire des formations (CNAM par
exemple) dans le domaine du réseau.
• Mail Bombing
• La méthode FEROS
• Chevaux de Troie
• Espiogiciels (Spywares)
• Key Loggers
• Instrument de paiement électronique
• Projet de Loi sur la Société de l'Information
• Réglementation des télécommunications
• Protection des personnes physiques à l'égard du traitement des données
• A propos du Projet de Loi sur la Société de l'Information
• Vers qui vous orienter ?
• Directive 1999/93/CE
• Loi n° 88-19 du 5 janvier 1988
• Loi n° 78-17 du 6 janvier 1978
• Loi n° 2000-230 du 13 mars 2000
• Loi n° 2000-494 du 6 juin 2000 portant création d'une Commission nationale de déontologie
de la sécurité
• Projet de Convention sur la cybercriminalité
• Projet de rapport explicatif du Projet de Convention sur la cybercriminalité Liberté de
Communication
• Protection juridique des programmes d'ordinateur L'O.C.L.C.T.I.C.
• Décret de création de l'O.C.L.C.T.I.C.
• Directive concernant la protection juridique des bases de données
• Directive sur le commerce électronique
• La C.N.I.L.
• Catégorie de Moyens et de Prestations de Cryptologie pour lesquelles la procédure de
déclaration préalable est substituée à celle d'autorisation
• Normes et Règlementations Techniques
• Catégorie de Déclaration des Moyens de Cryptologie
• Catégorie de Moyens et de Prestations de Cryptologie
SoGoodToBe
Valgasu(*)
• Cartes magnétiques
• DNS Spoofing
• IP Spoofing
• Cross Site Scripting
• Les PKI
• Initiation aux systèmes de détection d'intrusions
• Les systèmes de détection d'intrusions gratuits
• Les firewalls
• Quelle détection d'intrusion adopter ?
• Classes de Fonctionnalité
• Le Compartemented Mode Workstation
• Le modèle "Bell La Padula"
• SSL
Secunix(*)
• Les sauvegardes
JB700(*)
Note :
(*) Ne fait plus partie de Securiteinfo.com à l'heure actuelle.
Nos actions
Securiteinfo.com prend part à des actions d'envergures internationales.
Le SETI
Le SETI est un projet qui consiste à décoder les signaux
électromagnétiques en provenance de l'univers, à des fins
de recherche d'une vie extraterrestre.
Distributed.net
Distributed.net est une association de développement du calcul partagé.
Grace à cette association, Securiteinfo.com participe au calcul du crackage de
clé RC5 64 bits et au calcul mathématique des Règles de Golomb Optimales
24 et Règles de Golomb Optimales 25. Le principe de crackage de la clé RC5
64 bits est expliqué ici et sur le site officiel de distributed.net. Les règles de
Golomb Optimales sont explicitées sur le site officiel de distributed.net.