Mcanismes d'authentication
Les ressources utilises dans cet article sont directement rfrences par une note de bas de page, l o elles apparaissent. Toute autre information contenue dans le prsent document est le fruit d'une opinion personnelle, du consensus d'une conversation avec des interlocuteurs du domaine des rseaux, ou de connaissances acquises par notre formation ou notre exprience personnelle.
David TORTEL
Table des matires
1.1 La cryptographie asymtrique . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 L'algorithme Die Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Concept de l'authentication par cl . . . . . . 2.2 L'authentication par cl, en dtail et en image 2.2.1 ouverture de connexion TCP . . . . . . 2.2.2 versions supportes . . . . . . . . . . . . 2.2.3 Mthode d'authentication . . . . . . . 2.2.4 mise en place d'un secret commun . . . 2.2.5 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 4 4 5 5 5 6 7 7
Tlcom Paristech
David TORTEL
Le Secure Shell que l'on abrgera dans toute la suite par SSH est un protocole de communication scurise entre deux machines. SSH permet l'tablissement d'un tunnel scuris entre deux entits qui sont alors en mesure d'changer des donnes sensibles de manire sure. Aujourd'hui, la version 2 de ce protocole permet aussi bien d'accder une console sur la machine distante et donc de saisir des commandes et de modier le systme distance - que de transfrer des chiers de manire scurise ou encore d'apporter de la scurit des applications par nature sujettes des attaques de type MITM, rejeux ou coute passive du rseau par exemple, le protocole SSH apporte de la scurit au protocole POP3 qui lorsqu'il rcupre les courriers lectroniques sur le serveur de messagerie ne chire pas leur contenu et ne garantit pas leur intgrit. Peu prsent sur les stations Windows l'application du protocole ncessite alors l'installation d'un logiciel comme Putty et support d'origine dans les systmes UNIX/Linux, SSH utilise par dfaut le port 22. Dans la mesure o le protocole SSH fournit une communication chire et signe entre deux entits interdisant alors un MITM, il est ncessaire d'avoir une authentication forte entre les deux entits mises en jeu an de prvenir de toutes les attaques qui peuvent venir en amont de la connexion. Si plusieurs mthodes d'authentication ont t dveloppes, suivant le degr d'exigence des parties concernes, ce document s'attardera sur la mthode d'authentication par cl.
Tlcom Paristech
David TORTEL
Deux stations exprimant le dsir de communiquer en utilisant le protocole SSH doivent possder chacune leur couple de cls publique/prive.
Ces nombres n et g circulent en clair sur le rseau, ce qui signie que n'importe quelle personne qui coute le rseau a accs ces donnes. Alice choisit arbitrairement un nombre a et calcule X g a [modn] Bob choisit alatoirement b et calcule Y g b [modn]
X et Y sont ensuite transmis en clair sur le rseau. Le pirate malveillant a donc accs X et Y . Nanmoins, trouver a ou b partir de g et X ou Y revient rsoudre le problme
id est
Lorsqu'Alice reoit Y , elle calcule k Y a [modn] g ba [modn] De mme lorsqu'il reoit X , Bob calcule k X b [modn] g ab [modn] 1 Ainsi Alice et Bob ont mis en place un secret partag sans que jamais celui-ci ne soit disponible pour un tiers. En eet, puisqu'il est dans l'impossibilit de trouver a ou b, le pirate malveillant ne peut tre en possession de k.
Tlcom Paristech
David TORTEL
La scurit de l'authentication par cl est assure par les trois lments suivant : La cl publique : La cl publique du client est exporte, manuellement, sur le serveur d'authentication lorsqu'il est dclar apte se connecter sur ce serveur. De mme l'utilisateur possde la cl publique du serveur dans un rpertoire protg. La cl prive : garde secrte, dans un rpertoire protg, c'est elle qui assure l'authentication. Une passphrase : Il s'agit d'une phrase secrte dont le but est de dfendre l'accs la cl prive. Seule la saisie de cette phrase secrte permet l'ordinateur du client d'utiliser la cl prive. L'ide de la phrase secrte repose sur la multiplication des caractres par rapport un mot de passe -. Cette multiplication se transforme en croissance exponentielle de l'entropie des mots de passe, augmentant de faon similaire de temps d'attaque du mot de passe en force brute. L'authentication par cl est une authentication forte, id est reposant sur la validation de deux paramtres indpendants : la passprahse et la cl prive. La connaissance de l'un seul de ces paramtres n'est pas susante pour s'authentier. Lorsqu'il souhaite s'authentier auprs du serveur l'utilisateur chire un challenge qui est un secret partag entre le serveur et l'utilisateur avec sa cl prive qui n'est accessible qu'aprs validation du mot de passe. D'un point de vue d'un MTIM, l'utilisateur chire un champ inconnu avec une cl inconnue et inaccessible. Lorsqu'il reoit le message, le serveur le dchire avec la cl publique de l'utilisateur stocke dans son disque dur et arme ou inrme la validation de l'authentication. Le serveur s'authentie auprs de l'utilisateur de faon analogue.
Tlcom Paristech
David TORTEL
supporte trois rponses peuvent tre possible : 1.0, 2.0 ou 1.9 si les deux versions sont supportes. Il est important de noter que dans la mesure o de nombreuses failles ont t dceles dans la version 1.0, il est recommand d'utiliser la version 2.0 .
Une fois la rponse reue et si les versions sont compatibles, le processus d'authentication continue
Dans toute la suite, on considre que client et serveur mettent au point leur secret commun avec l'algorithme Die Hellman dont le principe est explicit en premire partie.
Tlcom Paristech
David TORTEL
2.2.4 mise en place d'un secret commun
Lors de cette tape, les deux protagonistes vont partager un secret qui sera indispensable pour l'authentication. Lors du premier change, client et serveur se mettent au point sur les constantes publiques n et g grce aux messages key exchange init. L'image ci- dessous dmontre que le client entame la conversation en prcisant la fentre de connexion maximale qu'il pourra supporter pour ses calculs. Le serveur lui rpond dans le choix de constantes correspondant aux prfrences du client. Les constantes n et g sont maintenant dnies et partages par les deux entits. Une fois le groupe de travail dni, le client charge les constantes g et n et calcule X g a [modn] - dni dans la partie I) - Il utilise ensuite un message Die-Hellman GEX init pour partager ce X avec l'entit adverse. Un exemple de ce message est fourni ci-dessous
Lorsqu'il reoit ce message, le serveur gnre Y g b [modn] notation dnie dans la partie I) et l'envoie l'utilisateur.
2.2.5
Authentication
Les deux acteurs sont dsormais en accord sur la cl partage k. Cette cl est un secret partage entre ces deux entits uniquement ; personne d'autre, mme en ayant au pralable couter l'intgralit de la conversation ne connait la valeur de la cl k. Nanmoins, ces entits ne sont pas encore ni identis ni authentis. Autrement dit, un pirate aurait pu jusqu' prsent se faire passer pour le serveur et engager la gnration d'une cl partage pigeant alors le client. Il est donc fondamental que l'utilisateur authentie le serveur. Cette authentication doit tre la premire. En eet, si l'utilisateur s'authentiait en premier, le pirate malveillant spoofant l'identit du serveur pourrait voler des informations prcieuses sur l'identication du client lgitime. Le serveur cre alors un message contenant le hash chir de champs connus par le couple client/serveur. Le secret k fait partie de ces champs mais n'est pas prcis explicitement de telle sorte qu'il n'est pas disponible pour un pirate malveillant qui couterait la conversation. Le hash est ensuite chir par la cl prive du serveur. Il s'agit du message Gex response. Lorsqu'il reoit le message, le client en vrie la signature. Celle-ci valide la fois la bonne connaissance de la cl k sinon le hash serait incorect et l'authenticit du serveur. Pour vrier la signature, le client reconstruit le message original ; il le hache. Il rcupre la cl publique du serveur dans son rpertoire protg knownh ost puis dchire la signature. S'il y a concordance entre le hash calcul et
Tlcom Paristech
David TORTEL
le dchirement de la signature id est si les chaines de caractres aprs ces oprations en parallle sont identiques le serveur est authenti. Si la cl publique du serveur n'est pas connue id est qu'elle ne fait pas partie du rpertoire knownh osts - un message prvient l'utilisateur l'informant ainsi qu'il s'agit peut-tre d'une attaque de type MITM id est que celui qui prtend tre le serveur ne l'est en fait pas. . . Une fois le serveur authenti, le client gnre une nouvelle cl symtrique qu'il chire avec k et envoie au serveur. Cette cl sera la nouvelle cl utilise par le couple pour leur communication future. Il s'agit d'une cl de session. En ralit, le protocole SSHv2 prvoit plusieurs cls de session ; une pour chirer la communication dans le sens client/serveur, une pour chirer le sens serveur/client ainsi que d'autres pour vrier l'intgrit. Les cls suivantes sont mises en place aprs authentication du client. Avant que la communication ne puisse commencer, le client doit son tour s'authentier. L'authentication se fait de faon analogue celle du serveur. Le client prend la concatnation de champs connus ainsi que de la cl partage k, qu'il hash et signe avec sa cl prive. L'accs sa cl prive est assujetti la saisie d'une phrase secrte qui en assure la scurit. Lorsqu'il reoit le message, le serveur vrie son tour la bonne connaissance du secret partag k et de l'authenticit du client grce sa cl prive la cl publique tant dj sauvegarde dans le serveur. Si le client est authenti, la conversation chire peut commencer entre les deux protagonistes Le protocole SSH donne la possibilit de modier un systme d'information distance. Il est par consquent fondamental d'assurer la non violabilit du systme. Celle-ci passe par une authentication forte, puis la garantie de la condentialit, de l'intgrit et de l'authenticit de chaque message. Ce document a explor une des solutions d'authentication propose par le protocole SSH. Cette solution est souvent considre comme la plus sure qui soit et peut galement tre amliore en ltrant les demandes de connexions par les adresses IP. On y vu comment le couple cl prive/cl publique pouvait assurer de la lgitimit des acteurs.
Tlcom Paristech