Dans ce TP vous utiliserez l'outil OpenSSL pour expérimenter le chiffrement de fichiers sous Unix.
Pour cette première partie, vous aurez besoin des manpages
des commandes openssl
et dd
dd
, créez un fichier de données aléatoires de 1Go dans le répertoire /tmp
openssl
via le cryptosystème AES-128
en mode CBC
. Chronométrez le chiffrement à l'aide de la commande time
openssl
via le cryptosystème AES-256
en mode CBC
. Chronométrez le chiffrement à l'aide de la commande time
openssl
via le cryptosystème 3-DES
. Chronométrez le chiffrement à l'aide de la commande time
openssl
? Le temps de réaction est-il de l'ordre du temps de chiffrement. Expliquez pourquoi ? Pour cela, comparez les tailles des fichiers chiffrés avec celles des fichiers originaux : comment expliquez-vous les différences ?AES-256
bits en utilisant le mot de passe motDePasse
.3-DES
en utilisant la clé explicite de code hexadécimal 0x0102030405060708
et du vecteur d'initialisation 0x1234
.motDePasse
.OpenSSL
, qu'est-ce qui change ? Pourquoi ?
La commande genrsa
d' OpenSSL
permet la création d'une paire de clés RSA de taille donnée.
keys.pem
.rsa
de openssl
.keys.pem
vers un fichier public.pem
.openssl
, vous allez maintenant échanger des messages chiffrés avec RSA.bash
ou autre) automatisant le chiffrement et le déchiffrement de messages de grande taille à faisant intervenir exclusivement l'algorithme rsa
. Expérimentez votre solution par le biais d'un transfert par mail.dgst
et rsautl
de openssl
. Au final votre solution devra assurer les contraintes de confidentialité, d'intégrité et d'authenticité.
Grâce à la commande req
de openssl
, créez un certificat racine X.509
qui servira à votre autorité de certification. Pour cela, créez un fichier config.cnf
qui contiendra les paramètres de votre CA. Le certificat racine devra avoir les caractéristiques suivantes :
SHA-1
Grâce à la commande x509
de openssl
, observez le contenu de votre certificat racine.
req
de openssl
pour créer une demande de certificat pour votre machine (vous utiliserez par exemple son adresse IP pour l'identifier).req
permet de générer automatiquement le couple de clés à utiliser ou bien d'utiliser une clé déjà générée. Testez les deux manières de générer une requête de certificat.req
de openssl
pour créer une demande de certificat pour vous-même.ca
de openssl
, créez un certificat pour votre machine, signé par votre autorité de certification.
Ces deux certificats peuvent notamment servir respectivement à l'identification d'un serveur web et à votre identification pour la connexion à ce serveur. Une telle configuration dans une salle de TP n'est pas facile à expérimenter. Vous pouvez cependant essayer d'installer un serveur web léger gérant SSL sur votre compte (Nginx
ou autre) pour les utiliser.
Idée générale. Appréhender la manipulation et la configuration client de OpenSSH
.
L'option -v
de la commande client ssh
vous permettra d'activer le mode verbose
. Cette option vous permettra de visualiser les différentes procédures d'authentification déjà vues.
ssh
sous le nom de login d'un autre utilisateur (celui d'un binôme que vous aurez choisi). Quelle(s) question(s) vous sont posées ? Répondez par l'affirmative à ces questions ?.ssh/known_hosts
.#
au début de la ligne) à la machine distante contactée à la question précédente. Recommencez la procédure de connexion. Que remarquez-vous ? Expliquez pourquoi.passphrase
pour vous connecterconfig
afin que la commande ssh myconnect
vous logue automatiquement sur la machine distante avec un login différenttelnet
. Déloguez-vousTCP
grâce à l'utilitaire wireshark
par exemple. Que remarquez-vous ?ssh
et analysez le flux TCP
grâce à l'utilitaire wireshark
par exemple. Que remarquez-vous ?ssh
en transférant le port distant telnet
(25 ou 23) sur un port local de votre choix. Initiez une connexion telnet
sur le port local que vous avez choisi et vérifiez grâce à wireshark
le chiffrement de cette connexion.