Notions de cryptographie

La cryptographie, c'est la science du chiffrement et du déchiffrement d'informations, dans le but de les rendre illisibles par des non initiés. Cependant, le chiffrement est toujours déchiffrable et la durée de vie de la confidentialité dépendra de l'investissement sur la force du chiffrement.

En informatique, c'est la base de tout échange sécurisé. La notion de sécurité inclut non seulement l'aspect confidentiel, mais également l'authentification des partenaires.

C'est une science très hautement mathématique et nous n'aborderons pas du tout cet aspect ici, c'est vraiment une affaire de spécialistes, et je n'en suis pas un.

Nous verrons plutôt comment mettre en œuvre de tels procédés et dans quel cadre les utiliser, car la cryptographie n'est finalement qu'une fonctionnalité. Elle peut être appliquée à peu près à tous les niveaux du modèle OSI, principalement au niveau IP (avec par exemple IPsec) et au niveau des applications. A peu près tous les protocoles de haut niveau (HTTP, FTP, POP, IMAP…) peuvent la mettre en œuvre. Il y a également SSH, le shell distant sécurisé, qui permet, entre autres, de disposer d'un terminal distant, un peu comme telnet, mais avec plus de sécurité.

Une application des plus intéressantes dans le domaine des réseaux est certainement la réalisation d'un tunnel sécurisé. Un tel procédé permet l'établissement d'un « réseau privé virtuel » (VPN) à travers un réseau de faible sécurité, comme l'internet, en créant une liaison point à point entre deux hôtes. La cryptographie intervient pour sécuriser cette liaison, pour la rendre « étanche ».

Nous allons mettre en place un tel tunnel avec le chapitre Open VPN, et ce tunnel, nous allons le sécuriser au moyen d'OpenSSL.