openssh
Présentation d'OpenSSH


OpenSSH est une implémentation libre du protocole SSH, permettant une connexion interactive comme pour Telnet mais de manière sécurisée. Il peut également servir à mettre en place des "tunnels" sécurisés pour y faire passer des applications (transfert de fichiers, application X-Window...). Il permet ainsi d'éviter la diffusion des mots de passe en clair sur le réseau, contrairement à certains protocoles comme ftp ou telnet. Distribué sous license de type Apache, OpenSSH assure des fonctions de cryptographie basée sur OpenSSL.



Historique

OpenSSH est issu, à l'origine, de la version libre 1.2.12 de ssh développée par Tatu Ylönen . Ce logiciel a évolué et a finit par se placer sous des licenses de plus en plus restrictives puis n'est devenue utilisable qu'au sein d'un environnement commercial.
C'est à partir  de cette version et du travail de  Björn Grönvall  sur  le développement de sa propre version (OSSH), que des développeurs du projet OpenBSD ont commencé à travailler (correction de  bugs et ajout de fonctionnalités) pour  sortir la première version d'OpenSSH  (la  1.2.2) inclue dans OpenBSD 2.6 à la fin de l'année 1999. Cette version d'OpenSSH ne supportait que les versions 1.3 et 1.5 du protocole et ce n'est qu'au milieu de l'année 2000 que la version 2.0 du protocole fut intégré au sein de la version  2.0 d'OpenSSH, distribuée  dans OpenBSD 2.7.

Depuis le début, le projet OpenSSH se compose de deux équipes distinctes de développeurs. L'une s'attache à fournir un code simple et optimisé pour OpenBSD tandis que l'autre s'occupe de rendre ce code portable pour la plupart des systèmes Unix (AIX, HP-UX, SOLARIS, MacOS X, Linux, Cygwin,....). Cela permet de fournir un code plus fiable, plus facile à maintenir et surtout plus rapide à produire.

OpenSSH en est à la version 3.7 et supporte les versions 1 et 2 du protocole SSH. Il est toutefois préférable, dans la mesure du possible, d'utiliser la version 2 de SSH car celle-ci corrige quelque failles de sécurité présentes dans la version 1.




Contenu et fonctionnalités

Architecture

Le protocole SSH2 est standardisé par le groupe de travail secsh de l'IETF.
La structure générale de SSH2 est décrite dans le draft d' architecture et se compose en trois couche distinctes :

Fonctionnalités


OpenSSH fournit les fonctionnalités suivantes :


Programmes disponibles

Les différentes fonctionnalités offertes par OpenSSH et citées précédemment sont assurées à travers différents programmes fournis à l'issu de l'installation du logiciel. On retrouve ainsi :

Caractéristiques des protocoles SSH


Le tableau ci-dessous retrace les principales différences entre les protocoles SSH1 et SSH2.


caracteristiques

Outre le nombre beaucoup plus important de fonctionnalités et d'algorithmes supportés par SSH2, il convient d'utiliser cette version du protocole en raison du plus haut niveau de sécurité offert.




Principe du chiffrement par clés


Chiffrement par clés privées

chiffrement privé
Aussi appelé chiffrement symétrique ou chiffrement à clé secrète; cette technique de cryptage nécessite l'utilisation d'une seule et même clé pour le chiffrement ainsi que pour le déchiffrement.
Le principal inconvénient de cette technique concerne la distribution des clés qui doivent rester secrètes et ne doivent pas être partagées. Ainsi, si n personnes partagent veulent utiliser un système à clés secrètes, il faudra générer n*(n-1)/2 clés différentes. De plus l'échange de ces clés sur un canal non sécurisé est fortement déconseillé.

Chiffrement par clés publiques

chiffrement clé publique


Le chiffrement par clé publique ou chiffrement asymétrique nécessite, quant à lui, l'utilisation de deux clés (une privée et une publique). La clé publique est utilisée pour chiffrer les données que seule la clé privée est capable de déchiffrer. Il suffit donc à un utilisateur voulant utiliser ce type de chiffrement de diffuser sa clé publique aux personnes avec qui il veut échanger des données sécurisées. Ces dernières auront ainsi la possibilité de chiffrer des données que seul le détenteur de la clé privé pourra déchiffrer.

Les clés publiques peuvent être distribués librement puisqu'elles ne permettent pas d'effectuer de déchiffrement. Néanmoins, il faudra veiller à s'assurer de l'identité de la personne fournissant la clé publique pour ne pas risquer de lui fournir des informations confidentielles en pensant s'adresser à quelqu'un d'autre.