Traitement Du Signal Chapitre5 2ème Année en RT

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 39

Chapitre 5 : L'art d'assurer l'intégrité

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.

Qu'est-ce que le hash ?


Les utilisateurs doivent avoir la garantie que leurs données ne subiront aucune modification,
qu'elles soient au repos ou en transit. Le hash est un outil qui assure l'intégrité des données en
prenant des données binaires (le message) et en générant une représentation de longueur fixe,
appelée valeur de hash ou condensé de message, comme illustré sur cette figure.

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.

Une fonction de hash cryptographique possède les propriétés suivantes :

 Il n'y a pas de limite de longueur pour le texte saisi.

 La longueur du résultat est fixe.

 La fonction de hash est unidirectionnelle et irréversible.

 Deux valeurs d'entrée différentes donneront pratiquement toujours deux valeurs de


hash identiques.
Algorithmes de hashage
Les fonctions de hash se révèlent particulièrement utiles pour s'assurer que les données ne
sont pas modifiées accidentellement par une erreur de communication ou par un utilisateur.
Prenons l'exemple d'un expéditeur qui souhaite s'assurer de l'intégrité de son message jusqu'à
ce qu'il parvienne au destinataire. Dans ce cas, l'appareil émetteur entre le message dans un
algorithme de hash et calcule son empreinte ou condensé de longueur fixe.

Algorithme de hachage simple (somme de contrôle 8 bits)

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.

Cliquez ici pour calculer le hash 8 bits du message BOB.

1. Convertissez BOB en valeur binaire en utilisant le code ASCII, comme illustré à la


Figure 1.

2. Convertissez les nombres binaires en nombres hexadécimaux, comme illustré à la Figure 2.

3. Saisissez les nombres hexadécimaux dans la calculatrice (42 4F 42).

4. Cliquez sur le bouton Calculate (Calculer). Le résultat est la valeur de hash 2D.
Exercez-vous avec les valeurs suivantes :

SECRET = « S »=53 « E »=45 « C »=43 « R »=52 « E »=45 « T »=54

VALEUR DE HASH = 3A

MESSAGE = « M »=4D « E »=45 « S »=53 « S »=53 « A »=41 « G »=47 « E »=45

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.

Algorithme MD5 (Message Digest 5)

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.

Secure Hash Algorithm (SHA)

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-224 (224 bits)


 SHA-256 (256 bits)

 SHA-384 (384 bits)

 SHA-512 (512 bits)

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.

Hash de fichiers et de supports numériques


L'intégrité garantit que les données et informations sont complètes et ne subissent aucune
altération au moment de leur acquisition. Il s'agit d'un élément important lorsqu'un utilisateur
télécharge un fichier sur Internet ou qu'un expert judiciaire recherche des preuves sur des
supports numériques.

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 ?

 Les données ont-elles été altérées ou modifiées ?

 L'enquêteur peut-il prouver que les fichiers n'ont pas été altérés ?

L'expert scientifique peut, à présent, examiner la copie à la recherche de preuves numériques,


en laissant intacte la version d'origine.

Hash de mots de passe


Les algorithmes de hash transforment n'importe quelle quantité de données en hash numérique
ou empreinte de longueur fixe. Il est impossible pour un hacker d'inverser un hash numérique
pour découvrir l'entrée d'origine. Si la saisie subit une quelconque modification, cela se traduit
par un hash différent. Cela fonctionne pour la protection des mots de passe. Un système doit
stocker un mot de passe sous une forme qui le protège, tout en conservant la possibilité de
vérifier qu'il est correct.

Cette figure illustre le workflow d'enregistrement et d'authentification d'un compte utilisateur


à l'aide d'un système avec hash. Le système n'écrit jamais le mot de passe sur le disque dur ; il
enregistre uniquement le hash numérique.
Applications
Vous pouvez utiliser des fonctions de hash cryptographique dans les situations suivantes :

 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 une authentification en générant des réponses uniques et


unidirectionnelles aux challenges des protocoles d'authentification.

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

Lors de la sélection d'un algorithme de hash, utilisez SHA-256 ou un algorithme plus


puissant, car il s'agit, pour l'heure, des formes les plus sécurisées. Évitez MD5 et SHA-1 en
raison des failles de sécurité qui ont été découvertes. Dans les réseaux de production, optez
pour l'algorithme SHA-256 ou pour une version plus puissante.

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.

Qu'est-ce que le salage ?


Le salage est une méthode permettant de renforcer la sécurité des mots de passe. Si deux
utilisateurs possèdent le même mot de passe, ils auront également les mêmes hashs de mot de
passe. Une valeur de salage, qui correspond à une chaîne aléatoire de caractères, est une
entrée supplémentaire du mot de passe avant le hash. Elle crée un résultat de hash différent
pour les deux mots de passe, comme illustré sur la figure. Une base de données stocke le hash
et la valeur de salage.

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.

Tables de correspondance inversées

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

Les rainbow tables privilégient la réduction de la taille des tables de correspondance au


détriment de la vitesse de piratage des hashs. Une table plus petite permet, en effet, de stocker
les solutions d'un plus grand nombre de hashs dans un espace réduit. Cliquez ici pour accéder
à une rainbow table capable de pirater n'importe quel hash MD5.

Mise en œuvre du salage


Un CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) est l'outil idéal
pour générer une valeur salt. Les CSPRNG génèrent un nombre aléatoire à haut degré de
stochasticité et entièrement imprévisible ; par conséquent, il est sécurisé sur le plan
cryptographique.

Voici quelques recommandations pour la mise en œuvre réussie du salage :

 La valeur salt doit être unique pour chaque mot de passe utilisateur.

 Ne jamais recycler une valeur salt.

 La longueur de la valeur salt doit être égale à celle de la sortie de la fonction de hash.

 Toujours effectuer le hash sur le serveur dans une application web.

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.

Seuls l'expéditeur et le récepteur connaissent la clé secrète, et le résultat de la fonction de hash


dépend à présent des données d'entrée et de la clé secrète. Seules les parties qui ont accès à
cette clé secrète peuvent calculer le condensé d'une fonction HMAC. Cette caractéristique
bloque les attaques MitM et fournit une authentification de l'origine des données.
Fonctionnement de l'algorithme HMAC
Prenons l'exemple d'un expéditeur désireux de s'assurer de l'intégrité de son message en
transit et de fournir au destinataire un moyen d'authentifier l'origine du message.

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.

Dans la Figure 2, l'appareil récepteur supprime l'empreinte du message et utilise le message


en clair avec sa clé secrète comme entrée dans la même fonction de hash. Si l'appareil
récepteur calcule une empreinte égale à l'empreinte envoyée, le message est toujours sous sa
forme d'origine. En outre, le récepteur connaît l'origine du message, car seul l'expéditeur
possède une copie de la clé secrète partagée. La fonction HMAC a prouvé l'authenticité du
message.
Application de l'utilisation du code HMAC
Les codes HMAC peuvent également authentifier un utilisateur web. De nombreux services
web utilisent l'authentification de base, laquelle ne chiffre pas le nom d'utilisateur et le mot de
passe lors de la transmission. Avec la fonction HMAC, l'utilisateur envoie un identificateur de
clé privée et un code HMAC. Le serveur recherche la clé privée de l'utilisateur et crée un code
HMAC. La valeur HMAC de l'utilisateur doit correspondre à celle calculée par le serveur.

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.

L'authenticité, l'intégrité et la non-répudiation sont établies grâce à une signature numérique.


Les signatures numériques possèdent des propriétés spécifiques qui assurent l'authentification
des entités et l'intégrité des données, comme illustré sur cette figure.

Elles constituent une alternative à HMAC.


Non-répudiation
Dans le jargon juridique, la répudiation est synonyme de renonciation. La non-répudiation est
le fait de s'assurer que l'expéditeur d'un message ou document ne peut nier le fait qu'il l'a
envoyé et que le destinataire ne peut nier le fait qu'il l'a reçu.

Une signature numérique garantit que l'expéditeur a signé électroniquement le message ou


document. Une signature numérique étant propre à la personne qui l'a créée, cette dernière ne
peut pas nier l'avoir appliquée.
Processus de création d'une signature
numérique
La cryptographie asymétrique est à la base des signatures numériques. Un algorithme de clé
publique comme RSA génère deux clés : une privée et l'autre publique. Ces clés sont
associées mathématiquement.

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.

Voici deux situations qui illustrent l'utilisation de signatures numériques :

 Signature de code : permet de vérifier l'intégrité des fichiers exécutables téléchargés à


partir du site web d'un fournisseur. La signature de code utilise également des
certificats numériques pour authentifier et vérifier l'identité du site (Figure 1).

 Certificats numériques : utilisés pour vérifier l'identité d'une entreprise ou d'une


personne afin d'authentifier le site web d'un fournisseur et d'établir une connexion
chiffrée pour l'échange de données confidentielles (Figure 2).
Comparaison des algorithmes de signature
numérique
Les trois algorithmes de signature numérique les plus courants sont DSA (Digital Signature
Algorithm), RSA (Rivest-Shamir-Adleman) et ECDSA (Elliptic Curve Digital Signature
Algorithm) Tous trois génèrent et vérifient les signatures numériques. Ces algorithmes
dépendent des techniques de chiffrement asymétrique et de clé publique. Dans le cas des
signatures numériques, deux opérations sont requises :

1. Génération de clé

2. Vérification de la clé

Ces deux opérations nécessitent le chiffrement et le déchiffrement 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.

Comme c'est généralement le cas dans le domaine de la cryptographie, l'algorithme RSA


repose sur deux principes mathématiques, à savoir la factorisation de nombres premiers et de
modules. Cliquez ici pour savoir comment l'algorithme RSA utilise la factorisation de
nombres premiers et de modules.

ECDSA est l'algorithme de signature numérique le plus récent. Il remplace progressivement


l'algorithme RSA. L'avantage de ce nouvel algorithme est de pouvoir utiliser des clés bien
plus petites pour le même niveau de sécurité et de nécessiter moins de puissance de calcul que
RSA.
Qu'est-ce qu'un certificat numérique ?
Un certificat numérique est l'équivalent d'un passeport électronique. Il permet à des
utilisateurs, des hôtes et des entreprises d'échanger des informations de manière sécurisée sur
Internet. Plus précisément, un certificat numérique authentifie et vérifie que l'expéditeur d'un
message est bien celui qu'il prétend être. Les certificats numériques peuvent également
assurer la confidentialité du destinataire en lui permettant de chiffrer sa réponse.

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 2 : le serveur web d'Alice envoie un certificat numérique au navigateur de Bob.

É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 4 : le navigateur web de Bob crée une clé de session unique.


Étape 5 : le navigateur web de Bob utilise la clé publique du serveur web sur son certificat
pour chiffrer la session.

Étape 6 : En définitive, seul le serveur web d'Alice peut lire les transactions envoyées à partir
du navigateur de Bob.

Qu'est-ce qu'une autorité de certification ?


Sur Internet, échanger continuellement des informations d'identification entre toutes les
parties s'avérerait peu pratique. Les parties concernées acceptent donc l'intervention d'un tiers
neutre. Il est probable que ce tiers effectue un examen approfondi avant d'émettre les
informations d'identification. Ces informations d'identification sont particulièrement difficiles
à falsifier. À partir de ce moment-là, toutes les personnes qui font confiance au tiers acceptent
simplement les informations d'identification qu'il émet.

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 :

 La détection de certificats valide le chemin de certification en vérifiant que chaque


certificat commence par le certificat de l'autorité de certification racine.

 La validation de chemin sélectionne un certificat de l'autorité de certification émettrice


pour chaque certificat de la chaîne.

 La révocation détermine si le certificat a été révoqué, ainsi que la raison de la


révocation.

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é des données


Les bases de données permettent de stocker, de récupérer et d'analyser efficacement des
données. À mesure que le volume des données collectées augmente et que les données
deviennent plus sensibles, il est important que les professionnels de la cybersécurité protègent
les bases de données toujours plus nombreuses. Une base de données est un système de
classement électronique. L'intégrité des données fait référence à l'exactitude, à la cohérence et
à la fiabilité des données stockées dans une base de données. La responsabilité de l'intégrité
des données revient aux ingénieurs, aux développeurs et à la direction de l'entreprise.
Les quatre contraintes ou règles d'intégrité des données sont les suivantes :

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

 Intégrité définie par l'utilisateur : ensemble de règles définies par un utilisateur et


n'appartenant à aucune des autres catégories. Par exemple, un client passe une
nouvelle commande, comme illustré à la Figure 4. L'utilisateur vérifie d'abord s'il
s'agit d'un nouveau client. Si c'est le cas, il l'ajoute dans la table des clients.
Contrôle de la saisie de données
Pour s'assurer que les utilisateurs saisissent des données correctes dans un système, plusieurs
contrôles peuvent être mis en œuvre.

Liste déroulante de contrôles de données principales

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.

Contrôles de validation des champs de données

Établissez des règles pour les vérifications de base, notamment :

 La saisie obligatoire garantit qu'un champ spécifique contient des données.

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

 Montants positifs en euro.

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

 Déclencheur d'activités inhabituelles (un système se verrouille lorsqu'il identifie une


activité inhabituelle).

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 :

 La taille : vérifie le nombre de caractères dans un élément de données

 Le format : vérifie que les données respectent un format spécifié

 La cohérence : s'assure de la cohérence des codes contenus dans les éléments de


données
 La plage : vérifie que les données sont comprises entre une valeur minimale et une
valeur maximale

 Le chiffre de contrôle : fournit un calcul supplémentaire pour générer un chiffre de


contrôle en vue de la détection d'erreurs

Cliquez sur chaque étape représentée sur la figure pour voir le résultat du calcul du chiffre de
contrôle.

Validation du type de données


La validation du type de données est la forme la plus simple de validation des données. Elle
vérifie qu'un utilisateur saisit les données conformément au type des caractères attendus. Un
numéro de téléphone, par exemple, ne doit pas contenir de caractères alphabétiques. Les bases
de données acceptent trois types de données : nombres entiers, chaînes et nombres décimaux.
Validation d'entrées
Le contrôle du processus de saisie de données est l'un des aspects les plus vulnérables de la
gestion de l'intégrité des bases de données. De nombreuses attaques communes ciblent une
base de données et y insèrent des données sous un format incorrect. Cela peut se traduire par
une déstabilisation de l'application, une panne ou la divulgation d'un nombre trop important
d'informations au hacker. Les hackers lancent des attaques de saisie automatisées.

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.

La vérification des anomalies nécessite des modifications ou des demandes de données de


vérification lorsqu'un système détecte des schémas inhabituels ou inattendus. Il peut s'agir, par
exemple, de deux transactions effectuées en peu de temps avec une même carte de crédit,
mais à des endroits très éloignés l'un de l'autre. Supposons qu'une demande de transaction soit
effectuée à Lille à 10h30 et qu'une deuxième soit effectuée à Marseille à 10h35. Dans ce cas,
le système déclenche une vérification sur la deuxième transaction.

Autre exemple : un nombre inhabituel de modifications d'adresses e-mail se produit dans un


nombre inhabituel d'enregistrements de base de données. Dans la mesure où les données d'e-
mail lancent des attaques DoS, la modification d'adresses e-mail de centaines
d'enregistrements peut indiquer qu'un hacker utilise la base de données d'une entreprise
comme outil pour commettre son attaque.

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.

Vous aimerez peut-être aussi