L’objectif de cette partie c’est bien sûr de parler du mot de passe et de vous conseiller sur vos choix de mot de passe, de vous engager à être particulièrement prudent dans certaines situations, de vous aider à appliquer les recommandations ; mais c’est surtout de comprendre comment fonctionnent les systèmes qui emploient les mots de passe, c'est-à-dire les systèmes d’authentification.
L'originalité de cette bonne pratique est qu'elle est liée à notre identité numérique, puisque le mot de passe représente la partie "secret" de l'incontournable " login - mot de passe ".
Dans quels cas utilise-t-on les mots de passe ?
Sur le schéma, toutes les flèches rouges expriment les points de stockage ou de transit de vos mots de passe ; ce qu’il faut savoir, c’est qu’un mot de passe est l'un des moyens les plus employés pour permettre à un émetteur de prouver son identité. Le but de l'émetteur est de convaincre le récepteur de son identité numérique, le but du récepteur sera de la valider ; le mot de passe permet aux deux de se reconnaître, c'est comme cela qu'ils établissent leur confiance.
L’émetteur, en tant qu'identité numérique, peut être vous ou une machine qui va prendre votre rôle, le destinataire peut être l’interlocuteur avec qui vous avez partagé l’information que vous protégez avec votre mot de passe, mais il peut également être des serveurs, votre disque dur ou un objet connecté ; par exemple, quand vous êtes en bluetooth on vous demande un code qui est l'équivalent d’un mot de passe, que vous partagez avec votre système qui est un objet connecté.
Un cas d’usage très courant est l'usage du mot de passe en entreprise : quand vous vous connectez sur vos données d’entreprise, votre mot de passe vous sera demandé via une « mire d’authentification Windows », ou vos sites web, ou le cloud, ou votre réseau WiFi. Un dernier exemple est lorsque vous êtes en voiture et que vous connectez votre smartphone au tableau de bord, on va vous demander à un moment donné un code pour faire un appariement, ou jumelage "bluetooth".
Par conséquent, vous allez vouloir faciliter ces usages par des moyens mnémotechniques mais en faisant cela, vous faciliterez la tâche de l’attaquant ; d’autant qu’une multitude de ressources dans le NSI (« navigateur sur Internet ») nécessitent l’utilisation de vos mots de passe, que l’attaquant utilise des outils de surveillance des réseaux pour détecter la présence de mots de passe, et que lorsque ces mots de passe ne sont pas complexes, il peut les déduire ou les lire.
Comment ça marche, l'échange des mots de passe ?
Tout d’abord, l’usage d’un mot de passe fait intervenir 2 acteurs, l'émetteur et le récepteur, pouvant être une machine et/ou un humain. L'émetteur présente son mot de passe, le récepteur le valide, nous les appellerons respectivement le client et le serveur.
Ce qu’il faut comprendre, c’est que quand vous engagez un échange, vous pouvez le faire avec beaucoup d’outils et d’équipements ; à chaque fois que vous faites une demande de connexion à une application, celle-ci vous demandera un mot de passe via une « mire d’authentification », et après un contrôle de la part du serveur, l’accès vous sera ouvert, les 5 étapes présentées ci-dessous se déroulent toujours ainsi pour établir le lien de confiance.
Comme mentionné précédemment, le mot de passe se passe entre 1 client et 1 serveur. Le serveur peut être une borne WIFI, un objet connecté, un poste de travail, etc. Le principe est toujours le même, comme vous le montre le schéma que vous avez en 1, c’est ce qu’on appelle une mire d’authentification (1) qui vous demande (2) votre identité et votre mot de passe et vous cliquez pour vous connecter ; ces informations vont être transmises à votre serveur (3) pour pouvoir être contrôlées puis vous donner l’autorisation d’accès ensuite (4).
Le mot de passe est la 1re propriété de votre identité numérique ; donc on comprend que si l’attaquant a le mot de passe, il a votre identité numérique également et bien sûr toutes les ressources qui sont derrières : cela peut être l'accès à vos réseaux sociaux sur Internet mais pas seulement, l'accès à votre entreprise, à vos données personnelles => l’enjeu est considérable.
Comment protéger l'échange de votre mot de passe ? Quels mécanismes se cachent derrière tout cela ?
Vous avez des « paquets réseaux » qui vont circuler entre le client et le serveur pour transmettre ces identifiant et mot de passe (comme le montre le schéma) ; si vous êtes en cloud, alors ça va circuler sur Internet, si vous êtes dans le réseau local de votre entreprise, alors ils vont être restreints au site de l’entreprise. Ces identifiants seront envoyés au serveur, il doit pouvoir les contrôler ; ça veut donc dire que le serveur doit héberger quelque part ces informations, et ce sera sur son disque dur. Une fois contrôlé, vous pourrez entrer en communication avec le serveur et aurez accès à toutes les ressources.
N'est-ce pas dangereux de laisser les identifiants sur le réseau ou de les stocker sur le client et le serveur ?
Bien sûr, chacun est en droit de se demander s'il ne serait pas plus prudent de masquer ces informations. En particulier en cloud, c’est ouvert à tout le monde, donc n’importe quel attaquant qui voit votre paquet réseau va pouvoir le reconstituer et associer le couple identité-mot de passe, on peut aussi très bien imaginer que l’attaquant accède au serveur et par ce biais à la liste que le serveur possède pour contrôler vos identifiants. Par conséquent, il va falloir chiffrer vos mots de passe ! Le chiffrement (qu’on verra plus tard) utilise des opérations mathématiques, car l’information que vous transmettez est numérisée.
Tout à l’heure, on avait un client et un serveur et on voit qu’on a envoyé nos paquets réseaux de manière chiffrée ; donc, l’attaquant, s’il se trouve sur le réseau, ne pourra accéder à ces informations. De cette manière, le serveur reçoit les informations chiffrées. On peut alors se demander comment le serveur peut contrôler ces informations, alors qu'elles sont chiffrées.
Le protocole décrit comment faire, mais il ne permet pas de protéger le message de regards indiscrets ; on va ajouter un verrou et un jeu de clés pour fermer et ouvrir le message. Bien sûr, il s'agit d'une image ! C'est tellement parlant de dire qu'il faut une clé pour fermer et ouvrir le message, que seuls ceux qui ont la clé peuvent le fermer et l'ouvrir, qu'un attaquant a pour seul but de l'ouvrir, il cherchera à subtiliser ou forger la clé. C'est également parlant de dire que la clé doit être partagée, les propriétaires de la clé autorisent la fermeture et l'ouverture du message. Ce principe est tout le temps utilisé en cryptographie, on parlera de "clé de chiffrement" ; cette clé est partagée par le client et le serveur : le client ferme le message avec sa clé et le serveur pourra l'ouvrir.
Pour que cette clé puisse agir et protéger ce qu'il y a derrière, il faut ajouter un verrou : en quelque sorte, il coopère avec la clé pour fermer ou ouvrir. L'algorithme de chiffrement sera donc à comparer à un verrou, il va transformer un message en clair en un message chiffré à l’aide de la clé de chiffrement. En réseau, on parle de "chiffré" ou de "cryptogramme" pour désigner le paquet fermé qui circule sur les réseaux : le réseau local, WiFi ou Internet.
Nous résumons les caractéristiques du chiffrement : pour que deux interlocuteurs échangent en masquant leurs paquets réseaux, il faudra 3 éléments : un protocole, un algorithme et une clé qu'ils devront partager.
Quelles sont ces tentatives d’attaque ? Quelles sont les bonnes pratiques en retour ?
On a expliqué l’authentification et la façon dont les mots de passe circulaient et pouvaient être contrôlés par le serveur avec cette notion de « hash ». Donc si on revient à notre situation initiale où on observait une grande prudence sur le réseau et sur le disque dur, on voit qu’avec le principe de la signature et le principe des clés privée/publique on a résolu ces 2 questions. Ça veut dire que si vous utilisez une clé partagée, vous serez soumis à une autre question qui est la complexité de votre mot de passe ; autrement, l’attaquant peut employer des méthodes d’attaque sur votre mot de passe chiffré.
Les bonnes pratiques et les "attaques en force brute"
On considère qu’un attaquant peut essayer de deviner votre mot de passe et va créer un dictionnaire de tous les mots de passe possibles et imaginables. L’image du dictionnaire est assez intéressante, il va aussi bien y enfermer de l’information générique (par exemple : bonjour, loulou (nom de son chien)), qu'un mot de la langue française, etc. Il va donc enfermer dans cette liste toutes les possibilités qui sont connues sur les mots de passe utilisés ; c’est pour ça qu’il ne faut jamais laisser traîner ses mots de passe ne serait-ce que pour ne pas donner aux attaquants l’occasion de faire des statistiques avec des mots de passe utilisés.
Ensuite, avec ce dictionnaire il va fabriquer un petit outil capable d’automatiser les tentatives de remplissage de votre identité et de votre mot de passe, l’identité étant généralement simple à deviner (c’est souvent nom prénom)... par conséquent, la bonne pratique porte vraiment sur le mot de passe.
Il fera les mêmes essais en testant les codes de « hash », remplaçant caractère par caractère, tout en regardant si ça peut être votre mot de passe. C’est impressionnant et vous verrez que les outils permettent, une fois qu’ils ont le flux, de deviner 6 caractères sur 10 ; d’où l’intérêt de rester avec les bonnes pratiques avec des mots de passe complexes.
Les mots de passe complexes sont des mots qui ne font pas partie du dictionnaire et qui emploie des caractères spécifiques.
Pour construire vos mots de passe, il faudra donc des stratégies mnémotechniques, vous permettant de vous souvenir de choses peu "signifiantes". Par exemple n’utilisez pas « bonjour » comme mot de passe, par contre si tout d’un coup vous écriviez « vonjour » ou « vontour » ou « vonture » => la difficulté commence à se faire voir pour l’attaquant.
Ensuite, si vous utilisez des mots de passe ordinaires comme « bonjour » l’attaquant par défaut va mettre des minuscules ; mais si c’est une majuscule, comme la plupart des outils sont sensibles à la « casse », il va falloir encore qu’il fasse un autre test, donc ça va retarder l’attaquant. Et puis après, si vous prenez des chiffres et que vous faites des combinaisons un peu étranges, l’attaquant va avoir davantage de difficultés pour trouver dans son dictionnaire des chiffres, des caractères spéciaux comme : % , . Le fait de combiner tous ces caractères et chiffres avec votre mot de passe va retarder l’attaquant ; de plus, comme l’attaquant procède caractère par caractère, plus votre mot de passe sera long, plus il sera retardé.
Ensuite, la façon dont travaillent les protocoles de chiffrement (ou déchiffrement) fait que si vous personnalisez un mot de passe de longueur inférieure à 8 caractères, l’attaquant pourra le trouver plus facilement, car son outil sera capable de regrouper en quelque sorte les caractères pour accélérer le processus de déchiffrement. Par contre, si la longueur est supérieure à 8 caractères, l’attaquant va devoir relancer une deuxième fois l’exécution de son outil pour retrouver votre mot de passe.
Les bonnes pratiques et les "keylogger "
Après les attaques par dictionnaire, il y a d’autres manières de pouvoir vous surprendre en train de taper vos mots de passe. Il y a toute la génération de « keyloggers » par exemple : vous tapez votre mot de passe, vous pensez que ce sont des petites étoiles qui circulent et que votre mot de passe est protégé, mais en réalité ça passe en clair sur le réseau. Parce que l’attaquant a forgé un « keylogger » qu’il a déposé sur votre machine quand vous avez cliqué malencontreusement sur un site web. Le rôle du « keylogger » est de vous donner l’impression que votre mot de passe est protégé, alors qu’en réalité il est en clair.
Autre petite astuce, c’est de vous envoyer sur des pages Internet trafiquées : vous avez l’impression que vous êtes sur un bon site web en « https » (mode sécurisé), alors qu’en réalité votre mot de passe circule en clair. Là encore, vous avez eu un cheval de Troie sur votre machine lorsque vous avez cliqué sur un site Internet ; ce « trojan » vous redirige sur la page web du pirate.
Vous avez aussi la possibilité de donner des informations physiques : bruit de clavier, champ électrique, ondes radio… qui permettent de déduire les caractères que vous tapez sur votre clavier.
Ça, c’est une première génération où les choses se passent sur votre clavier informatique d’une part, et d’autre part sur votre machine où les « keyloggers » ou les « trojans » sont en relation avec le « driver » (pilote) de votre clavier.
Les bonnes pratiques et l'écoute réseau
Un autre point est l’écoute du réseau. On a vu que le réseau pouvait être écouté et que les protocoles réseaux ne sont pas forcément tous chiffrés, même avec certains logiciels de chiffrement qui soit-disant chiffrent votre navigation sur le réseau, alors que ce n’est pas le cas et que vous pouvez très bien naviguer à découvert même en HTTP, ce qui est de moins en moins autorisé de par vos navigateurs. Pour votre sécurité, vous pouvez utiliser des fonctions comme FTP pour télécharger des logiciels, ou aller sur des annuaires pour vous découvrir et taper à la demande des mots de passe.
À partir du moment où vous savez que vous avez chiffré votre information, qu’elle sort de votre machine et que vous pouvez la valider, vous pouvez être certain qu’elle va être véhiculée sur le réseau en mode chiffré ; la question est : comment vous assurer que cette information soit bien chiffrée par votre machine ?
Donc, bien sûr vous avez la « mire HTTPS » qui permet de le faire avec des protocoles SSN et des serveurs de chiffrement intermédiaires ; mais rien n’est jamais vraiment garanti puisqu’il y a d’autres attaques qui peuvent survenir. Par exemple, il y a « l’attaque de l’homme dans le milieu » où vous êtes sur un site web que vous n’avez pas référencé et vous allez entretenir une liaison avec un attaquant qui va pouvoir vous répondre et transmettre vos informations de manière chiffrée. Par conséquent, vous êtes persuadé que vous êtes en sécurité, alors que vous êtes en cours avec un attaquant.
Donc « l’homme dans le milieu » peut surtout arriver dans le cadre de la confusion entre HTTP et HTTPS, mais il y a une autre manière toute bête de se faire prendre son mot de passe, qui est « l’ingénierie sociale ».
Les bonnes pratiques et l'ingénierie sociale
Ça m’est arrivé d’aller chez des clients et de pouvoir entrer sur leur système, parce que la personne était allée boire un café ; donc il me suffisait de soulever le clavier pour trouver le mot de passe et de pouvoir faire mon travail de technicien. Attention, ne laissez pas d'indices pour votre mot de passe comme l'attaque avec TV5 et le post-it, ou le post-it sous votre clavier.
Il existe aussi de l’ingénierie sociale beaucoup plus insidieuse, comme une discussion d’un administrateur réseau avec un pirate qui va essayer de le faire parler en boîte de nuit, au restaurant ou à l’écoute au restaurant avec quelqu'un pour essayer de voir quelles sont vos pratiques, quels sont les noms des services qui ont pu être mis en place. Ça peut être aussi par interrogation d’une secrétaire pour essayer de savoir si vous avez des marques de matériels de type « Cisco » ou « Juniper » en se faisant passer pour un ingénieur commercial vous faisant convoiter un prix plus compétitif. On peut imaginer toutes les astuces qui existent pour « l’ingénierie sociale » ; et puis n’oublions pas que l’ingénierie sociale a trouvé un super vecteur, c’est la messagerie : on sait forger des messages qui ressemblent à ceux que pourrait envoyer votre banque ou votre administrateur réseau qui va vous demander votre mot de passe.
Les bonnes pratiques et la distribution du premier mot de passe
Parce que si j’utilise le réseau pour transmettre la clé de chiffrement à mon serveur, l’attaquant peut déjà y être présent et récupérer puis utiliser cette clé. Par exemple, Alice décide d'utiliser la clé : « Aladin » et transmet un message à Bob en lui disant : « voilà, Bob, je te transmets « Aladin » comme clé". Si l’attaquant est présent au moment où cet échange se réalise, forcément il va pouvoir déchiffrer tous les messages ; donc, par sécurité il ne faut pas utiliser le même canal pour faire toutes les transactions. C’est pour ça que souvent, au sein d’une entreprise, on vous envoie votre mot de passe par un mail alors que vous avez créé un compte par le biais d’un site web. Vous verrez aussi que c’est beaucoup plus fort d’utiliser par exemple un SMS pour vous envoyer le mot de passe plutôt qu’un site web ou un mail. Donc, en changeant de canal on va augmenter le niveau de robustesse des futures transactions qu’on va réaliser.
Donc il est encore une fois recommandé de changer de mot de passe le plus tôt possible, parce que ça évite à l’attaquant de pouvoir être à la fois sur tous les canaux.
Vous avez tous envoyé un courrier postal ?
De façon plus générale, on voit que toutes ces situations d'échange rendent l'usage quotidien de vos identités numériques et de vos applications extrêmement complexe.
Certains principes peuvent vous aider, comme identifier la légitimité "électronique" de celui qui vous a envoyé un message ou de celui qui le reçoit. Cela permet d'établir la confiance entre les interlocuteurs de l'échange.
Vous avez tous envoyé un courrier postal. On distingue le courrier simple, le courrier recommandé avec et sans accusé de réception, le Chronopost... Chacun de ces principes apporte des services pour garantir pendant le transport certaines propriétés. Si vous avez envie ou besoin de préserver vos courriers de regards indiscrets, de prouver l'envoi d'un courrier ou sa réception, le nom de l'émetteur ou du destinataire, alors vous verrez ces mesures de protection d'un bon œil !
Quand vous cherchez à ce que seules les personnes que vous avez autorisées puissent lire votre courrier, vous souhaitez disposer de mécanismes de confidentialité, pendant le transport de votre message en particulier, mais également vous assurer que le destinataire est bien celui qu'il dit être.
Quant on envoie une lettre recommandée, c'est bien pour prouver son envoi. C'est le principe d'imputabilité de la source ; et en même temps on ne pourra pas nier l'avoir envoyé, c'est le principe de non-répudiation, cela apporte pour le destinataire une garantie sur la source.
En revanche, ce principe ne prouve rien sur le destinataire, on ne sait pas s’il a réceptionné ce courrier, s’il l’a lu, de plus ; cela pourrait être n'importe qui, qui pourrait recevoir ce courrier et le lire. Pour établir la légitimité du destinataire, on choisira d’envoyer une lettre recommandée avec accusé de réception qui établira la réception du courrier par son destinataire ; c'est le principe d'imputabilité de la cible, et cette dernière ne pourra nier avoir reçu ce courrier.
La clé, la serrure et le cadenas
La cryptographie appliquée aux messages électroniques fait appel à des concepts simples du monde réel.
Comme dans le monde réel, vous cherchez généralement à garantir vos biens contre le vol, la destruction, le détournement d’usage, la détérioration ; vous pensez peut être moins à garantir les personnes.
Pourtant, bien que quasi quotidiens, les échanges sur Internet présentent le désavantage de ne pouvoir identifier les interlocuteurs avec qui vous interagissez. Vous avez l’impression d’échanger avec une vraie personne, mais n’oubliez jamais qu’elle n’est que virtuelle ; au fond, vous-même, vous êtes également virtuel pour votre interlocuteur. Vous allez donc chercher à garantir certaines choses : la légitimité de votre interlocuteur et des biens que vous échangez.
Mais les techniques d’échanges employées dans le monde réel ne s’adaptent plus, vous n’êtes plus au jugé des valeurs que vous avez l’habitude d’employer, là, vous êtes en « aveugle » pour décider de la légitimité de vos actions et de celles des autres. C’est pourquoi nous allons vous apprendre comment protéger les vôtres, vos amis, vos biens et vous-même.
Comment mettre en place des mesures de protection sur vos objets personnels ?
Lorsque vous vous voulez être certain que personne ne puisse accéder à vos objets personnels sans votre accord, vous allez utiliser un coffre, muni d’une serrure actionnée à l’aide d’une clé.
La serrure et la clé forment un système de protection plus évolué qu’un simple verrou, la serrure est dotée d’un mécanisme de fermeture et d’ouverture à clé.
Seul celui qui possède la clé - vous en l’occurrence – peut fermer afin de protéger les objets de votre coffre et ouvrir la serrure afin d’y accéder. La serrure et la clé doivent former un couple unique, la sécurité de votre coffre ne repose absolument pas sur la complexité de la serrure - qui est un mécanisme connu de tous - mais sur la possession et la complexité de la clé ; aussi, une clé forgée par un attaquant ne doit pas pouvoir fonctionner.
Partagez vos objets personnels avec vos amis ?
Ce principe a néanmoins des limites. La clé est dans ce cas le secret que vous cherchez à préserver, ce système de protection est appelé pour cette raison à clé secrète et parfois à clé symétrique, du fait que la même clé permet de fermer et ouvrir votre serrure, ce secret ne pourra être reproduit, rejoué, dupliqué, diffusé.
Lors de votre échange avec votre ami, il faudra lui fournir une clé identique à la vôtre pour qu’il puisse accéder à votre coffre. Dans ce cas, la clé devient un secret partagé entre vous et votre ami. La règle principale étant que celui qui possède la clé peut fermer et ouvrir la serrure du coffre pour accéder aux objets, sa distribution étendue à votre cercle d’amis rend chacun d’entre eux légitime pour fermer ou ouvrir la serrure et accéder à vos objets personnels.
Ce système vous permet de garantir l’accès, au moment de l’accès, à vos amis ayant la clé secrète partagée, mais il présente le désavantage que la clé subtilisée par un attaquant pourrait immédiatement lui permettre d’ouvrir votre serrure ; autre exemple, en cas de vol (sans effraction) de vos objets personnels, vous penserez qu’un de vos amis a trahi votre confiance, mais vous ne serez pas en mesure de le désigner. Lequel d’entre eux a :
fermé ou ouvert la serrure ;
ouvert et simplement regardé ;
ouvert, et subtilisé vos objets personnels ?
Vous souhaitez partager vos objets personnels avec vos amis ?
Afin d’avoir un œil sur l’ensemble des activités et organiser les accès effectués par vos amis, vous allez dresser une liste associant chacun d’entre eux par ses nom, prénom, à sa clé propre ; cette liste d’amis autorisés est un annuaire élaboré au préalable par vous, également appelé « white list ». Ce mécanisme repose sur une gestion des identités dont le but est de rendre chacun unique par sa clé, le système de protection reposant sur un cadenas « bi-clé » permet d’identifier celui qui ouvre.
Au moment de l’accès au coffre, le système de protection vérifiera et reconnaîtra la clé ou le code secret. Dans le cas du cadenas, ce mécanisme d’authentification sera passif. Le possesseur du code secret a pu ouvrir la serrure, le code secret individualisé est lié au destinataire, ce qui constitue le moyen de garantir son identité, d’identifier et d’authentifier l’ami à l’origine de l’ouverture et des actions sur vos objets personnels : cette opération est une garantie du destinataire.
Vous souhaitez repérer qui parmi vos amis a ouvert le cadenas ?
Il faudrait que votre système de protection permette une identification affectant à chacun de vos amis une clé unique associée à son identité. Si vous souhaitez partager vos objets personnels avec vos amis et surtout savoir qui parmi eux a ouvert votre coffre pour subtiliser vos affaires, vous allez devoir créer un code secret individualisé par cadenas et par ami.
Un cadenas est une serrure actionnée par une clé, un système de roues chiffrées (code secret) ou les deux. Il constitue un système de protection dit « bi-clé » ou asymétrique, qui possède un mécanisme de fermeture (clé de fermeture) qui diffère de son mécanisme d’ouverture (clé d’ouverture). Par exemple, certains cadenas se ferment d’un simple clic par tout le monde, alors qu’ils ne s’ouvrent qu’avec une clé d’ouverture ou un code secret correspondant. Nous allons voir les différentes utilisations des 2 clés pour garantir certaines situations d’échanges qui pourraient être gênantes.
Le cadenas « bi-clé », également appelé cadenas à « clé maîtresse » vous permet en tant que propriétaire de choisir le code secret d’ouverture de la serrure. Vous tenez le cadenas ouvert avec cette « clé maîtresse », vous choisissez le « code secret individualisé » qui permettra ultérieurement l’ouverture du coffre, vous le destinez à votre ami afin qu’il puisse actionner l’ouverture du coffre dès qu’il le recevra ou sera en sa présence.
Puisque seul celui qui possède le « code secret individualisé» ouvre, votre ami peut le faire. De plus, avec votre annuaire, vous pourrez connaître qui parmi vos amis a effectué l’ouverture et quelles actions ont été commises. Si vous avez plusieurs amis, il sera préférable de mettre en place un cadenas par ami et d’utiliser votre annuaire.
Êtes-vous certain de votre ami ?
Il n’est pas possible d’actionner la serrure de votre coffre personnel sans posséder le « code secret individualisé» ; néanmoins, il est possible que vous ayez envoyé ce code par erreur ou que votre ennemi l’ait subtilisé lors de sa transmission à votre ami ou en fouillant chez lui, ou même chez vous.
Il convient de vous assurer que seul votre ami puisse recevoir le « code secret individualisé » ; vous allez convenir avec lui d’utiliser sa propre boîte à clés pour y déposer son « code secret individualisé » de façon sûre. La méthode choisie repose sur un système de protection asymétrique où :
la serrure ne peut être ouverte qu’avec la clé privée du propriétaire de la boîte à clés, en l’occurrence votre ami ;
la serrure ne peut être fermée qu’avec le « code secret public » que vous aura délivré votre ami ; le propriétaire l’aura généré au préalable à partir de sa propre clé privée ;
la boîte à clés permet en outre d’y déposer votre coffre avec vos objets personnels, elle est en outre fermée pour son transport à l’aide de votre clé privée.
La boîte à clés de votre ami, paramétrée de cette façon, permet de déposer un secret - en l’occurrence le « code secret individualisé » de votre ami - tout en lui en réservant l’ouverture, à lui et à lui seul, puisqu’il est propriétaire de la boîte à clés et possesseur de la clé privée.
Avec cette méthode, vous avez la garantie que le code secret individualisé est bien transmis à son destinataire légitime. Si ce dernier retire le code secret individualisé de la boîte à clés, il pourra ainsi accéder à votre coffre fermé, puis l’ouvrir avec votre clé. De votre côté, vous gagnez la possibilité d’identifier celui qui ouvre, vous avez obtenu la garantie du destinataire.
Dans le cas où votre ennemi chercherait à obtenir le « code secret public » de la boîte à clés en vue d’utiliser le code secret individualisé de votre ami, il ne peut ouvrir, il lui faudrait pour cela subtiliser la clé privée de votre ami. Néanmoins, votre ennemi pourrait déposer comme tout le monde une clé dans la boîte à clés, cette clé pourrait être erronée, falsifiée pour tromper votre ami.
Vos amis sont-ils certains de vous ?
Vos amis ont besoin d’être assurés que c’est bien vous qui êtes à l’origine de leurs autorisations d’accès, ils pourraient être victimes d’un ennemi qui en usurpant votre identité (« Spoofing », « Mascarade ») chercherait à les rediriger vers lui ou vers un coffre piégé !
Pour éviter ces déboires, la garantie du destinataire n’est plus suffisante, il convient de garantir à vos amis la source (vous, dans notre cas). Nous avons montré comment vous pouviez vous assurer de l’identité de votre destinataire ; maintenant, il convient de donner les moyens à vos amis de s’assurer de votre identité, de vous reconnaître afin qu’ils sachent que c’est bien vous qui avez déposé un secret.
Il faudrait que vous soyez en mesure de signer votre dépôt. Vous allez convenir avec votre ami d’une méthode spécifique, à partir d’un système de protection « bi-clé » utilisant votre coffre de transport avec un cadenas pour y déposer la boîte à clés de votre ami ; la méthode choisie permet de vous identifier et d’identifier votre ami :
la serrure de votre coffre de transport ne se ferme qu’avec votre clé privée. En dehors de vous, personne ne peut la fermer, vous êtes le propriétaire de la clé privée à partir de laquelle vous allez générer un « code secret public » ;
la serrure de votre coffre de transport ne s’ouvre qu’avec le « code secret public » ;
vous adressez le « code secret public » à votre ami par un canal autre (courrier postal) ;
votre coffre de transport permet de déposer la boîte à clés de votre ami, elle contient le code.
Avec cette méthode, vous avez la garantie que votre ami, avec son code secret individualisé, est bien légitime pour accéder à votre coffre personnel. De son côté, il n’est pas piégé et est certain que c’est vous qui lui avez remis son code grâce à votre signature matérialisée par votre coffre de transport.
Dans le cas où votre ennemi chercherait une voie d’attaque, il pourrait à ce stade :
soit subtiliser votre coffre personnel, ce qu’il ne peut pas faire sans obtenir la clé privée de votre ami pour ouvrir sa boîte à clés ;
soit usurper votre envoi, ce qu’il ne peut pas faire sans obtenir votre clé privée pour refermer votre coffre de transport.
Il ne pourra pas aller plus loin ! La sécurité repose sur les clés privées qui doivent être protégées soigneusement.
Néanmoins, votre ennemi pourrait bénéficier de l’échange que vous entretenez avec votre ami pour mettre en place une mascarade avec vous et/ou votre ami, sans que vous puissiez comprendre de quelle mascarade il s’agit.
Votre ennemi est-il l’homme dans le milieu ?
Votre ennemi, il y a quelque temps, a intercepté le « code secret public » que vous aviez envoyé par mail à votre ami. Votre ennemi, alors informé de vos échanges avec votre ami, s’est mis à l’écoute de vos échanges et guette en particulier l’envoi de votre coffre de transport.
Entretemps, vous avez reçu un message forgé par votre ennemi, usurpant l’identité de votre ami. Ce message vous transmet, de la part de votre ami, le nouveau « code secret public » de sa « boîte à clés » ; votre ennemi possède bien entendu la clé privée correspondante.
Vous allez procéder à votre envoi. Vous déposez dans la « boîte à clés » de votre ami :
le « code secret individualisé » de votre ami afin qu’il puisse ouvrir votre coffre personnel ;
votre coffre personnel avec vos objets personnels et fermé avec votre clé privée.
Voici ce que vous devez faire ensuite :
vous fermez la « boîte à clés » à l’aide du faux « code secret public » ;
vous déposez la « boîte à clés » dans le coffre de transport ;
vous signez avec votre clé privée votre coffre de transport ;
vous envoyez le coffre de transport à votre ami ;
votre ennemi intercepte votre envoi, ouvre votre coffre de transport avec l’ancien « code secret public ».
Il accède alors au code secret individualisé qui permet d’ouvrir votre coffre fort.
Les fonctions de base des protocoles de cryptographie
Quel est son principe ?
On va utiliser une clé générée par une fonction mathématique « one-way » c'est-à-dire qu’on ne s’occupe pas tellement de savoir ce qu’est le message chiffré à partir d’un message en clair, mais simplement de savoir que quand on a appliqué la clé sur le message en clair, on obtient bien une seule et unique valeur, qu'on nommera m’, et que je vais comparer sans même connaître sa signification.
L’hypothèse est qu’on pourrait imaginer qu’un attaquant qui a m’ puisse également remonter à la source ; or, comme c’est une fonction mathématique « one-way », ça veut dire que la simple connaissance de m’ sans la clé ne me permettra jamais statistiquement de retrouver m. C’est pour ça qu’on dit que les protocoles de hash sont statistiquement sûrs, parce qu’il peut arriver qu’à force de chercher l’information le pirate y parvienne, ce qui est extrêmement peu probable sauf dans le cas des « collisions ».
La collision : c’est lorsque je vais utiliser la même fonction mathématique sur une clé donnée, je vais obtenir 2 informations identiques (mais c’est peu probable !). Il est important de connaître cette base-là, car la quasi-totalité des mots de passe l’utilisent (ou utilisent des certificats qu’on traitera plus tard).
La cryptographie à clé symétrique ou secrète
Il existe plusieurs protocoles, plusieurs algorithmes qui peuvent être publiés ou non. Maintenant, nous allons voir le principe des cryptosystèmes à clé symétrique. Le nom d’algorithme à clé symétrique est donné car la clé pour fermer est la même que la clé pour ouvrir, on a un texte en clair qui peut être un mot de passe (c’est l’objet de cette bonne pratique) et ce texte clair va être chiffré, puis on va envoyer le message chiffré avec ce texte.
Avec cette « clé de chiffrement » partagée entre le serveur et le client, le serveur pourra ouvrir ce paquet fermé. Dans ce cas, le client et le serveur ont chacun la même clé et le même algorithme de chiffrement ; c’est le principe de base d'un cryptosystème à clé symétrique : la clé est la même pour fermer et ouvrir le message, c'est-à-dire qu’avant de commencer les échanges, le client et le serveur se sont mis d’accord, ils se sont échangé une clé.
Bien entendu, l’attaquant ne pourra pas déchiffrer puisqu’il ne possède pas la clé ; le message chiffré va circuler sur le réseau et parvenir au récepteur qui, lui, va pouvoir le déchiffrer puisqu’il a déjà reçu la clé. C’est le mécanisme à clé secrète, ou symétrique, puisque l’émetteur et le récepteur ont la même clé.
La cryptographie à clé asymétrique ou à clé publique
Donc tout à l’heure, on a vu que le principe à clé symétrique c’était simple, on a une clé chacun, la donnée circule de manière fermée et on peut utiliser la même clé pour produire le chiffrement ou le déchiffrement d’un texte.
Le problème avec ce principe est que si l’attaquant obtenait la clé de déchiffrement, eh bien effectivement, il pourrait déchiffrer automatiquement le chiffré. Cela sera de plus très grave si ce texte est le mot de passe.
Donc, on va avoir recours à un principe extrêmement subtil qui est de dire : « je ne vais pas utiliser la même clé pour chiffrer que pour déchiffrer » ; c’est le principe des clés asymétriques. Donc je vais chiffrer mon texte avec une clé n°1 (appelée clé publique), je vais envoyer ce texte à Jean, mon récepteur, qui va pouvoir déchiffrer mon texte avec la clé n°2 (appelée clé privée) que je lui aurai donnée au préalable.
Cette méthode est en outre extrêmement intéressante parce qu’elle permet de prouver l'auteur du message chiffré, puisque seul le possesseur de la clé n°1 - la clé privée - peut être l'auteur de ce texte. Il ne peut déchiffrer en revanche ce texte qu'il a chiffré avec cette même clé. Seuls ceux qui auront la clé n°2, la clé publique, pourront déchiffrer le texte. Bien sûr, il est fort probable que le possesseur de la clé privée possède également la clé publique.
C’est assez simple et ressemblant au principe du cryptosystème symétrique, finalement ?
La clé publique peut être offerte à tout le monde ; ce n’est pas très différent sur le principe en soi puisque pour le cryptosystème symétrique, si l'attaquant tombe sur la clé secrète partagée, il peut déchiffrer ; et pour le cryptosystème asymétrique, si l'attaquant tombe sur la clé privée, il peut aussi avoir accès à l’information. Alors, la clé privée ne doit être jamais révélée, on voit que toute la force de la sécurité du cryptosystème asymétrique repose sur la clé privée.
Mais en quoi est-ce vraiment différent de la clé symétrique ?
Le principe d’une clé asymétrique diffère car il utilise un couple de clés asymétrique : une clé privée et une clé publique ; ce système s'appelle également un cryptosystème "bi-clé" C={A,A'} parce qu'à une clé privée donnée A ne correspond qu'une et une seule clé publique A' ; je vais déjà expliquer que si je chiffre un message en clair M avec la clé privée A, seul le possesseur de la clé publique A' sera en mesure de déchiffrer ce message chiffré C. La clé A' est générée à partir de A à l'aide d'une fonction mathématique, par exemple ; une clé A" générée à l'aide d'une fonction différente ne fonctionnera pas. Inversement, en chiffrant le message M à l'aide de la clé publique A', on obtient le chiffré C. Seul le possesseur de la clé privée A correspondant à la clé publique A' sera en mesure de déchiffrer C.
Derrière ce principe, on peut tirer de nouveaux avantages comme identifier la légitimité de celui qui émet le message ou de celui qui le reçoit. Pour comprendre le principe de preuve qui lie l'auteur et l'action d'envoyer ou recevoir un message, on peut utiliser l'analogie du courrier postal :
quant on envoie une lettre recommandée, on veut prouver son envoi (principe d'imputabilité de la source) et en même temps on ne peut pas nier l'avoir envoyé (principe de non-répudiation). À l'image de ce schéma, en chiffrant le message avec sa clé privée, le possesseur de la clé privée prouve son envoi et ne peut le nier ;
en revanche, on ne prouve rien sur le destinataire, quand il déchiffrera avec la clé publique correspondante, la présence de plusieurs possesseurs de clés ne pourra prouver ni l'identité ni la bonne réception du message ;
l’auteur de la lettre recommandée avec accusé de réception impute en plus la réception du courrier à son destinataire et ce dernier ne pourra nier avoir reçu ce courrier ;
À l'image de ce schéma, en chiffrant, seul celui qui a la clé privée et qui chiffre ce message peut être l’auteur, et tout le monde peut constater que par exemple c’est bien Marie.
Alors, vous allez me dire que ce n’est pas suffisant puisque ce qu’on cherche à faire, c’est quand même de protéger le texte chiffré, donc pour cela on va compléter cet usage avec un 1er chiffrement avec la clé publique de Marie, et Marie va chiffrer son texte avec sa clé publique, et seul Jean qui possède sa clé privée va pouvoir le déchiffrer.
Les certificats
Nous avons donc atteint notre objectif qui était de faire circuler un message chiffré, de ne pas permettre à n’importe qui de déchiffrer ce message, et de pouvoir en plus identifier la source du message. Regardons cela par rapport à la clé partagée de tout à l’heure : n’importe qui qui a la clé est l’auteur du message, alors que là, seule Marie peut être l’auteure du message. Donc c’est ce principe de clé publique/clé privée qui sera utilisé dans le cas où on doit communiquer entre plusieurs acteurs.
Regardons cela de plus près, comment Jean a-t-il reçu la clé publique de Marie ? Puisque c’est une clé publique, Marie a pu la lui fournir à travers le réseau, parce que même si l’attaquant obtient cette clé publique ce n’est pas grave, il va seulement déduire que Marie est l’auteur du message, ce qui n'est en soi pas un vrai problème, puisque c’est ce qu’elle cherche à prouver. Si maintenant Marie chiffre avec la clé publique de Jean, l’attaquant va obtenir le message chiffré, mais que va-t-il pouvoir faire ? Il ne possède pas la clé privée de Jean, sauf si Jean a été imprudent (et c’est là qu’il faudra faire attention), autrement il ne pourra rien faire => Ce principe est bien plus puissant que le principe de la clé symétrique. Le désavantage est que ces clés doivent être passées et sont beaucoup moins efficaces en termes de réseaux donc très souvent on va utiliser le principe de la crypto asymétrique pour passer des informations hautement sensibles et de petite taille. Par exemple, on pourra transmettre un mot de passe.
Comment fonctionnent ces protocoles ? Comment créer une signature ? Et comment cette signature sera-t-elle contrôlée par le récepteur ?
On est toujours avec Marie et Jean qui vont cette fois-ci utiliser les mêmes notions que nous venons de définir. Marie possède ses clés privée et publique, Jean possède également ses propres clés privée et publique ; lorsque Marie et Jean savent qu’ils vont communiquer ensemble, ils vont s’envoyer leur clé publique par le réseau.
Donc Marie au départ de la communication possède en plus de ses clés la clé publique de Jean et de même pour Jean. Que va faire Marie ? Elle envoyer ce qu’on appelle une empreinte, c'est-à-dire un « hash ». Cette fonction à sens unique permet de codifier de l’information avec sa clé privée, elle va donc envoyer un « hash » de sa clé privée sur le média à Jean, elle envoie en même temps par un autre canal sa clé publique, Jean va donc recevoir plusieurs choses : l’empreinte de Marie générée par un « hash », la clé privée de Marie et le message de Marie qui lui donne sa clé publique. Avec la clé publique de Marie, Jean va pouvoir hasher la fonction et comme on a vu que c’était une fonction à sens unique, il va obtenir une nouvelle empreinte (qu’on va appeler E’) qu’il va pouvoir comparer avec l’empreinte de Marie ; et si l’empreinte jaune et l’empreinte bleue sont identiques, ça veut dire que c’est bien de Marie que vient le message et Jean peut donc de cette manière-là contrôler la qualité de message.