Traitement Du Signal Chapitre5 2ème Année en RT
Traitement Du Signal Chapitre5 2ème Année en RT
Traitement Du Signal Chapitre5 2ème Année en RT
Le concept d'intégrité garantit que les données ne feront l'objet d'aucune modification au cours de
leur cycle de vie et qu'elles resteront ainsi fiables en permanence. L'intégrité des données est une
composante essentielle de la conception, de la mise en œuvre et de l'utilisation de tout système qui
stocke, traite ou transmet des données. La première partie de ce chapitre est consacrée aux types de
contrôles d'intégrité des données utilisés, comme les algorithmes de hash, le salage et le code HMAC
(Hash-based Message Authentication Code). L'utilisation de signatures numériques et de certificats
intègre les contrôles d'intégrité des données afin d'offrir aux utilisateurs un moyen de vérifier
l'authenticité des messages et des documents. Le chapitre se termine en évoquant l'application de
l'intégrité des bases de données. C'est en mettant en place un système d'intégrité des données bien
défini et bien contrôlé que vous améliorez la stabilité, la performance et la maintenabilité d'une base
de données.
L'outil de hash utilise une fonction de hash cryptographique pour vérifier et garantir l'intégrité
des données. Il peut également vérifier l'authentification. Les fonctions de hash remplacent les
clés de cryptage ou le mot de passe en clair, car il s'agit de fonctions unidirectionnelles. Cela
signifie que si un mot de passe est hashé avec un algorithme de hash spécifique, le condensé
de hash obtenu sera toujours le même. Le qualificatif « unidirectionnel » est utilisé dans la
mesure où, avec les fonctions de hash, il est impossible, sur le plan de traitement, que deux
ensembles de données différents génèrent une sortie ou un condensé de hash identique.
Chaque fois que les données sont modifiées ou altérées, la valeur de hash change également.
C'est la raison pour laquelle les valeurs de hash cryptographiques sont souvent désignées sous
le nom d'empreintes numériques. Elles peuvent détecter les fichiers de données en double, les
changements de version du fichier et les applications similaires. Ces valeurs constituent une
protection contre toute modification accidentelle ou intentionnelle des données, et contre leur
corruption accidentelle. Le hash s'avère également très efficace. Un fichier volumineux ou le
contenu d'un disque entier donne comme résultat une valeur de hash de même taille.
Propriétés de hash
Le hash est une fonction mathématique unidirectionnelle relativement simple à calculer, mais
extrêmement difficile à inverser. La mouture du café est une opération qui illustre
parfaitement une fonction unidirectionnelle. Il est facile de moudre des grains de café, mais il
est quasiment impossible de les reconstituer ensuite.
La somme de contrôle 8 bits fut l'un des premiers algorithmes de hash. Il s'agit de la forme la
plus simple d'une fonction de hash. Une somme de contrôle 8 bits calcule le hash en
convertissant le message en nombres binaires, puis en organisant la chaîne de nombres
binaires en blocs de 8 bits. L'algorithme additionne ensuite les valeurs de 8 bits. La dernière
étape consiste à convertir le résultat à l'aide d'un processus appelé « Complément à 2 ». Le
complément à 2 inverse un nombre binaire, puis y ajoute 1. Cela signifie que 0 est converti en
1 et inversement. La dernière étape consiste à ajouter 1, ce qui donne une valeur de hash de
8 bits.
4. Cliquez sur le bouton Calculate (Calculer). Le résultat est la valeur de hash 2D.
Exercez-vous avec les valeurs suivantes :
VALEUR DE HASH = 3A
VALEUR DE HASH = FB
Algorithmes de hash modernes
De nombreux algorithmes de hash modernes sont largement utilisés de nos jours. Les plus
populaires sont MD5 et SHA.
C'est à Ron Rivest que l'on doit le développement de MD5, un algorithme de hachage utilisé
aujourd'hui par plusieurs applications Internet. MD5 est une fonction unidirectionnelle qui
permet de calculer facilement un hash à partir des données d'entrée spécifiées. En revanche,
calculer les données d'entrée en connaissant uniquement une valeur de hash s'avère très
difficile.
L'algorithme MD5 génère une valeur de hash de 128 bits. Le malware Flame a compromis la
sécurité de MD5 en 2012. Les créateurs du malware Flame ont utilisé une collision MD5 pour
falsifier un certificat de signature de code Windows. Cliquez ici pour lire un article consacré à
l'attaque par collision du malware Flame.
L'Institut national des normes et de la technologie (NIST) des États-Unis a développé SHA,
l'algorithme spécifié dans la norme SHS (Secure Hash Standard). La publication de
l'algorithme SHA-1 date de 1994. SHA-2 a remplacé SHA-1 en ajoutant quatre fonctions de
hash qui composent la famille SHA :
SHA-2 est un algorithme plus puissant qui remplace MD5. SHA-256, SHA-384 et SHA-512
sont des algorithmes de nouvelle génération.
Pour vérifier l'intégrité de toutes les images IOS, Cisco propose des sommes de contrôle MD5
et SHA sur son site web de téléchargement de logiciels. L'utilisateur peut comparer ce
condensé MD5 à celui d'une image IOS installée sur un appareil, comme illustré sur cette
figure. Il peut alors être sûr que personne n'a modifié ni falsifié le fichier image IOS.
Remarque : la commande verify /md5, illustrée ici, n'entre pas dans le cadre de ce cours.
Dans le domaine de l'expertise judiciaire en informatique, le hash est utilisé pour vérifier tous
les supports numériques qui contiennent des fichiers. Par exemple, l'enquêteur crée un hash et
une copie bit à bit du support contenant les fichiers pour produire un clone numérique. Il
compare ensuite le hash du support d'origine avec la copie. Si les deux valeurs correspondent,
les copies sont identiques. Le fait qu'un ensemble de bits soit identique à l'ensemble de bits
initial établit la fixité. Cette fixité permet de répondre à plusieurs questions :
L'enquêteur dispose-t-il des fichiers auxquels il s'attendait ?
L'enquêteur peut-il prouver que les fichiers n'ont pas été altérés ?
Pour fournir une preuve d'authenticité en cas d'utilisation avec une clé
d'authentification secrète symétrique, comme l'authentification par protocole de
routage ou IPsec (IP Security).
Pour fournir des preuves du contrôle d’intégrité d’un message, comme celles utilisées
dans les contrats à signature numérique, et des certificats des infrastructures à clé
publique (PKI), comme ceux acceptés lors de l'accès à un site sécurisé à l'aide d'un
navigateur.
Bien que le hash puisse détecter des modifications accidentelles, il ne peut pas assurer de
protection contre les actes délibérés. La procédure de hash ne comporte aucune information
d'identification unique provenant de l'expéditeur. Cela signifie que n'importe qui peut calculer
un hash pour n'importe quelle donnée, à condition de disposer de la fonction de hash correcte.
Par exemple, lorsqu'un message transite par le réseau, un hacker peut l'intercepter, le
modifier, recalculer le hash et ajouter ce dernier au message. L'appareil récepteur n'effectuera
la validation que par rapport au hash ajouté et ce, quel qu'il soit. Par conséquent, le hash est
vulnérable aux attaques man-in-the-middle (MitM) et ne garantit pas la sécurité des données
transmises.
Piratage de hashs
Pour pirater un hash, le hacker doit deviner le mot de passe. Les deux méthodes les plus
utilisées pour trouver des mots de passe sont les attaques par force brute et les attaques par
dictionnaire.
Une attaque par dictionnaire utilise un fichier contenant des mots, des expressions et des mots
de passe courants. Le fichier demande le calcul des hashs. Une attaque par dictionnaire
compare les hashs du fichier à ceux du mot de passe. Si un hash correspond, le hacker connaît
un groupe de mots de passe potentiellement corrects.
Une attaque par force brute essaie toutes les combinaisons de caractères possibles jusqu'à une
longueur donnée. Ce type d'attaque consomme beaucoup de temps machine, mais la
découverte du mot de passe n'est qu'une question de temps. Les mots de passe doivent être
suffisamment longs pour que l'exécution d'une attaque par force brute prenne trop de temps
pour en valoir la peine. Pour le hacker potentiel, le hash rend plus difficile la tâche de
récupération de ces mots de passe.
Sur cette figure, un même mot de passe génère un hash différent, car la valeur salt de chaque
instance est différente. La valeur salt ne doit pas nécessairement être secrète, car il s'agit d'un
nombre aléatoire.
Prévention des attaques
Le salage empêche les hackers de lancer une attaque par dictionnaire pour essayer de deviner
un mot de passe. Le salage rend également impossible l'utilisation de tables de
correspondance et de rainbow tables pour pirater un hash.
Tables de correspondance
Une table de correspondance stocke les hashs de mots de passe précalculés dans un
dictionnaire de mots de passe, accompagnés du mot de passe correspondant. Cette table est
une structure de données qui traite des centaines de recherches de hashs par seconde. Cliquez
ici pour voir à quelle vitesse une table de correspondance peut casser un hash.
Ce type d'attaque permet à un cybercriminel de lancer une attaque par force brute ou par
dictionnaire sur de nombreux hashs sans la table de correspondance précalculée. Le
cybercriminel crée une table de correspondance qui mappe chaque hash de mot de passe de la
base de données des comptes compromise sur une liste d'utilisateurs. Le cybercriminel hashe
chaque mot de passe supposé et utilise la table de correspondance pour obtenir une liste
d'utilisateurs dont le mot de passe correspond à son hypothèse, comme illustré sur cette figure.
Étant donné que de nombreux utilisateurs ont le même mot de passe, l'attaque s'avère
fructueuse.
Rainbow tables
La valeur salt doit être unique pour chaque mot de passe utilisateur.
La longueur de la valeur salt doit être égale à celle de la sortie de la fonction de hash.
L'utilisation d'une technique connue sous le nom d'étirement de clé permet de se protéger
contre les attaques. L'étirement de clé ralentit sensiblement la fonction de hash. Cela rend
moins efficace le matériel haut de gamme capable de calculer des milliards de hashs par
seconde.
Cette figure illustre la procédure utilisée par une application pour stocker et valider un mot de
passe soumis au salage.
Qu'est-ce qu'un code HMAC ?
L'étape suivante visant à empêcher un cybercriminel de lancer une attaque par force brute ou
par dictionnaire sur un hash consiste à ajouter une clé secrète à ce dernier. Seule la personne
qui connaît le hash peut valider un mot de passe. Pour y parvenir, une méthode consiste à
inclure la clé secrète dans le hash à l'aide d'un algorithme de hash appelé HMAC ou KHMAC
(Keyed-Hash Message Authentication Code). Les HMAC utilisent une clé secrète
supplémentaire en entrée de la fonction hash. HMAC ne se contente pas d'assurer l'intégrité
des données, il ajoute une étape d'authentification. HMAC utilise un algorithme spécifique qui
combine une fonction de hash cryptographique et une clé secrète, comme illustré sur la figure.
Comme illustré à la Figure 1, l'appareil émetteur saisit des données (telles que la paie de
100 dollars de Terry Smith et la clé secrète) dans l'algorithme de hash et calcule l'empreinte
ou le condensé HMAC de longueur fixe. Le destinataire récupère l'empreinte authentifiée
jointe au message.
Les VPN qui utilisent le protocole IPsec dépendent des fonctions HMAC pour authentifier
l'origine de chaque paquet et pour fournir le contrôle d'intégrité des données.
Comme illustré sur cette figure, les produits Cisco utilisent le hash pour l'authentification des
entités, l'intégrité des données et l'authenticité des données :
Les routeurs Cisco IOS utilisent le hash avec des clés secrètes de la même manière
qu'une fonction HMAC pour ajouter des informations d'authentification aux mises à
jour du protocole de routage.
Les passerelles et les clients IPsec utilisent des algorithmes de hash, tels que MD5 et
SHA-1 en mode HMAC, pour garantir l'intégrité et l'authenticité des paquets.
Une somme de contrôle MD5 est disponible pour les images logicielles Cisco sur
Cisco.com, de telle sorte que les clients puissent vérifier l'intégrité des images
téléchargées.
Remarque : le terme « entité » peut désigner des appareils ou des systèmes au sein d'une
entreprise.
Qu'est-ce qu'une signature numérique ?
Les signatures manuscrites et les sceaux prouvent la paternité du contenu d'un document. Les
signatures numériques peuvent fournir la même fonctionnalité que les signatures manuscrites.
Un document numérique non protégé peut être modifié très facilement. Une signature
numérique peut déterminer si quelqu'un modifie un document après qu'il a été signé par
l'utilisateur. Une signature numérique est une méthode mathématique utilisée pour vérifier
l'authenticité et l'intégrité d'un message, d'un document numérique ou d'un logiciel.
Dans de nombreux pays, les signatures numériques ont la même valeur légale qu'un document
signé manuellement. Les signatures électroniques ont un caractère contraignant pour les
contrats, les négociations ou tout autre document nécessitant une signature manuscrite. Une
liste d'audit retrace l'historique du document électronique à des fins de réglementation et de
défense juridique.
Alice souhaite envoyer à Bob un e-mail contenant des informations importantes sur le
lancement d'un nouveau produit. Alice souhaite s'assurer que Bob sait que le message vient
d'elle et que ce dernier n'a pas été modifié après l'envoi.
Alice crée le message, accompagné d'un condensé du message. Elle chiffre ensuite ce
condensé avec sa clé privée, comme illustré sur la Figure 1. Alice regroupe le message, le
condensé du message chiffré et sa clé publique afin de créer le document signé. Alice envoie
ce paquet à Bob, comme illustré sur la Figure 2.
Bob reçoit le message et le lit. Pour être certain que le message provient bien d'Alice, il en
crée un condensé. Il prend le condensé du message chiffré reçu d'Alice et le déchiffre à l'aide
de la clé publique d'Alice. Bob compare le condensé du message reçu d'Alice à celui qu'il a
généré. S'ils correspondent, Bob sait que personne n'a falsifié le message, comme illustré sur
la Figure 3.
Cliquez ici pour regarder une vidéo explicative du processus de création d'un certificat
numérique.
Utilisation des signatures numériques
Signer un hash plutôt que l'intégralité du document garantit efficacité, compatibilité et
intégrité. Les entreprises souhaitent remplacer les documents papier et les signatures à l'encre
par une solution qui assure au document électronique le respect de toutes les exigences
légales.
1. Génération de clé
2. Vérification de la clé
L'algorithme DSA utilise une factorisation de grands nombres. Il est utilisé par les autorités
pour créer des signatures numériques. Cet algorithme ne s'étend pas au-delà du message
proprement dit.
RSA est l'algorithme de cryptographie à clé publique le plus utilisé de nos jours. Créé en
1977, cet algorithme tire son nom des initiales de ses trois inventeurs, à savoir Ron Rivest,
Adi Shamir et Leonard Adleman. RSA dépend du chiffrement asymétrique. Outre la
signature, cet algorithme chiffre le contenu du message.
DSA s'avère plus rapide que RSA pour la signature d'un document numérique. RSA, en
revanche, convient mieux pour la signature et la vérification de documents électroniques et le
chiffrement de messages.
Les certificats numériques sont semblables à des certificats physiques. Par exemple, le
certificat CCNA-S (Cisco Certified Network Associate Security) sur papier illustré à la
Figure 1 identifie la personne, l'autorité de certification (qui a émis le certificat) et la durée de
validité du certificat. Comme vous pouvez le constater, le certificat numérique de la Figure 2
identifie des éléments similaires.
Utilisation des certificats numériques
Pour bien comprendre comment utiliser un certificat numérique, reportez-vous à la Figure 1.
Dans ce scénario, Bob confirme une commande auprès d'Alice. Le serveur web d'Alice utilise
un certificat numérique pour garantir une transaction sécurisée.
Étape 1 : Bob parcourt le site web d'Alice. Les navigateurs indiquent une connexion
sécurisée en affichant l'icône d'un verrou dans la barre d'état de sécurité.
Étape 3 : le navigateur de Bob vérifie le certificat stocké dans ses paramètres. Seuls les
certificats approuvés permettent la poursuite de la transaction.
Étape 6 : En définitive, seul le serveur web d'Alice peut lire les transactions envoyées à partir
du navigateur de Bob.
Dans l'exemple illustré sur cette figure, par exemple, Alice fait une demande de permis de
conduire. Elle fournit des preuves de son identité, telles que son certificat de naissance et une
carte d'identité avec photo, à un bureau en charge de la délivrance de permis. Le bureau valide
l'identité d'Alice et l'autorise à passer un examen de conduite. Une fois l'examen réussi, le
bureau en charge de la délivrance des permis lui délivre son permis. Plus tard, Alice doit
encaisser un chèque dans une banque. Lors de la présentation du chèque, l'employé lui
demande une pièce d'identité. La banque, qui fait confiance au bureau de délivrance des
permis, vérifie son identité et encaisse le chèque.
Une autorité de certification (AC) fonctionne de la même manière que le bureau de délivrance
des permis. Elle émet des certificats numériques qui authentifient l'identité des entreprises et
des utilisateurs. Ces certificats signent également les messages pour s'assurer que personne ne
les a falsifiés.
Que contient un certificat numérique ?
Tant qu'un certificat numérique respecte une structure standard, toute entité peut le lire et le
comprendre, quel que soit l'émetteur. X.509 est un standard permettant à une infrastructure de
clé publique (PKI) de gérer des certificats numériques. L'infrastructure à clé publique (PKI)
correspond aux politiques, aux rôles et aux procédures nécessaires pour créer, gérer,
distribuer, utiliser, stocker et révoquer des certificats numériques. La norme X.509 spécifie
que les certificats numériques contiennent l’information standard illustrée dans la figure.
Processus de validation
Les navigateurs et applications effectuent un contrôle de validation avant d'approuver les
certificats afin de s'assurer de leur validité. Les trois processus mis en œuvre sont les
suivants :
Chemin de certificat
Un utilisateur reçoit un certificat pour une clé publique d'une autorité de certification
commerciale. Ce certificat appartient à une chaîne de certificats désignée sous le nom de
chaîne de confiance. Le nombre de certificats de la chaîne dépend de la structure hiérarchique
de l'autorité de certification.
Cette figure représente une chaîne de certificats pour une autorité de certification (AC) à deux
niveaux : une AC racine hors ligne et une AC subordonnée en ligne. L'utilisation d'une
structure à deux niveaux s'explique par le fait que la signature X.509 permet une récupération
plus facile dans le cas d'une compromission. Si une AC hors ligne est présente, elle peut
signer le nouveau certificat AC en ligne. En l'absence d'AC hors ligne, un utilisateur doit
installer un nouveau certificat AC racine sur chaque tablette, téléphone ou ordinateur client.
Intégrité de l'entité : toutes les lignes doivent être associées à un identifiant unique
appelé clé primaire (Figure 1).
Intégrité du domaine : toutes les données stockées dans une colonne doivent
respecter un format et une définition identiques (Figure 2).
Intégrité référentielle : les relations entre les tables doivent rester cohérentes. Un
utilisateur ne peut donc pas supprimer un enregistrement lié à un autre (Figure 3).
Il est préférable de disposer d'une option déroulante pour les tables maîtres plutôt que d'inviter
les utilisateurs à saisir les données. Une option déroulante de ce type consiste, par exemple, à
utiliser la liste d'emplacements du système d'adresses postales des États-Unis dans le but de
standardiser les adresses.
Les masques de saisie empêchent les utilisateurs de saisir des données non valides ou
permettent de garantir une saisie cohérente (un numéro de téléphone, par exemple).
Avec un contrôle des plages de données, vous avez la garantie que l'utilisateur saisit
des données dans une plage bien précise (une date de naissance saisie sous la forme
18-01-1820, par exemple).
Approbation obligatoire par une deuxième personne (si un employé de banque reçoit
une demande de dépôt ou de retrait supérieure à une valeur spécifiée, l'approbation par
une deuxième ou une troisième personne est requise).
Déclencheur du nombre maximum d'enregistrements modifiés (si le nombre
d'enregistrements modifiés dépasse une valeur prédéfinie sur une période donnée,
l'utilisateur est bloqué jusqu'à ce qu'un supérieur détermine la légitimité des
transactions).
Règles de validation
Une règle de validation vérifie que les données respectent les paramètres définis par le
concepteur de la base de données. Une règle de validation permet de s'assurer de
l'exhaustivité, de l'exactitude et de la cohérence des données. Voici quelques critères utilisés
dans une règle de validation :
Cliquez sur chaque étape représentée sur la figure pour voir le résultat du calcul du chiffre de
contrôle.
Par exemple, les utilisateurs remplissent un formulaire au moyen d'une application web afin
de s'inscrire à une newsletter. Une application de base de données génère et envoie
automatiquement des confirmations par e-mail. Lorsque les utilisateurs reçoivent leur e-mail
accompagné d'un lien URL pour confirmer leur inscription, les hackers modifient ce lien. Ces
modifications portent sur le nom d'utilisateur, l'adresse e-mail ou l'état d'abonnement. L'e-mail
est renvoyé au serveur qui héberge l'application. Si le serveur web n'a pas vérifié que l'adresse
e-mail ou d'autres informations de compte envoyées correspondaient aux informations
d'abonnement, il a reçu de fausses informations. Les hackers peuvent automatiser l'attaque de
manière à inonder l'application web de milliers d'abonnés non valides dans la base de données
de newsletters.
Vérification des anomalies
La détection des anomalies consiste à identifier des schémas de données qui ne respectent pas
le comportement attendu. Ces schémas non conformes sont des anomalies, des valeurs
hors norme, des exceptions, des aberrations ou des « surprises » dans différentes applications
de base de données. La vérification et la détection des anomalies constituent une contre-
mesure ou un moyen de protection important pour identifier les fraudes. La détection des
anomalies de base de données permet d'identifier les fraudes à l'assurance et à la carte
bancaire. Cela permet également de protéger les données contre une modification ou une
destruction massive.
Intégrité de l'entité
Une base de données est un système de classement électronique. Il est fondamental de bien
classer les données dans la base de données pour préserver leur fiabilité et leur utilité. Une
base de données se compose de tables, d'enregistrements, de champs et de données. Pour
préserver l'intégrité du système de classement de la base de données, les utilisateurs doivent
respecter certaines règles. L'intégrité de l'entité est une règle d'intégrité qui stipule que chaque
table doit posséder une clé principale et que la ou les colonnes qui correspondent à la clé
principale doivent être uniques et non nulles. Dans une base de données, « nul » désigne des
valeurs manquantes ou inconnues. L'intégrité de l'entité permet une organisation correcte des
données de cet enregistrement, comme le montre cette figure.
Intégrité référentielle
La relation entre des tables ou systèmes de classement différents est une autre notion
importante. Les clés étrangères constituent la base de l'intégrité référentielle. Une clé
étrangère dans une table fait référence à une clé principale dans une autre table. La clé
principale identifie de manière unique des entités (lignes) dans la table. L'intégrité
référentielle préserve l'intégrité des clés étrangères.
Intégrité du domaine
L'intégrité du domaine garantit que tous les éléments de données d'une colonne respectent un
jeu défini de valeurs valides. Chaque colonne d'une table est composée d'un jeu défini de
valeurs, comme des numéros de carte de crédit, des numéros de sécurité sociale ou des
adresses e-mail. Si vous limitez la valeur attribuée à une instance de cette colonne (un
attribut), vous protégez l'intégrité du domaine. La protection de l'intégrité du domaine peut
être aussi simple que de choisir le type, la longueur ou le format approprié des données d'une
colonne.