2023 TP2 Authentification
2023 TP2 Authentification
2023 TP2 Authentification
2023/2024
Avant de commencer. Un peu de préparation sera nécessaire pour les exercises suivants: Efail,
Json Web Token, Brute-force en ligne et Cookie.
1. Réseau secure sur vdn: Entrer la ligne de commande suivante avant d’aller sur vdn dans
votre home ! Si une erreur survient, vérifier tout de même sur vdn si le réseau secure est
disponible.
2. Extraction et Installation: Connectez-vous sur vdn sur le réseau secure (Network > Open > secure),
puis téléchargez l’archive suivante:
wget http://perso.limos.fr/~gamarcadet/enseignement/websec23/tp2.tar.gz
Vous allez l’extraire avec tar -zxvf tp2.tar.gz. Aller dans le dossier websec23-tp2 et
lancer la commande suivante:
Une fois l’exercice terminé, il faut remettre le proxy à l’aide de la commande suivante:
export http_proxy=http://192.168.128.139:8080
export https_proxy=http://192.168.128.139:8080
• Une commande qui ne marche pas ? Vérifier que votre commande est correcte, bien
écrite et bien prendre le soin d’échapper les caractères pouvant être interprétés par le shell.
1
Exercise 1 (Brute-force locale (3 points))
Récupérer sur ce site phpbb1 la base de donées utilisateurs (à extraire avec bunzip2 phpbb.txt.bz2).
Vous y trouvez aussi de nombreuses bases de données de mots de passe qui ont fuité ces dernières
années :
1. Aller sur le site https://jwt.io pour construire un token JWT. Vous aurez besoin de
choisir un mot de passe de votre choix (disons, un prénom de trois ou quatres caractères)
à entrer dans “la clé secrète”, dans la partie à droite en bas. Attention à bien l’indiquer
dans l’emplacement de l’entrée de la clé secrète.
2. Aller dans le dossier jwtcracker, puis trouver l’outil jwtcrack (compiler-le si besoin avec
apt update && apt install openssl libssl-dev && make) pour brute-forcer le token
en faisant ./jwtcrack <token>.
3. Retrouver le mot de passe utiliser pour forger le token dans le fichier token.txt (Cela
prendra au plus 1 minute).
sancy.iut.uca.fr/~lafourcade/phpbb.txt.bz2
2 openssl passwd -1 -salt BBBB ’Toto’
2
Pour vous éviter de prendre du temps, nous vous fournissons efail.py, qui se chargera
de lire le fichier mail.txt, de parser le chiffré, et d’appeler la fonction efail définie plus
haut avec les bons paramètres. Pour exécuter le fichier efail.py, entrer la commande
python3 efail.py --mail mail.txt Si votre fonction retourne le nécessaire, efail.py se
chargera alors de générer le nouveau mail et de l’envoie au serveur SMTP. Le message sera
alors visible dans les logs du serveur. Le voyez-vous ?
1. Avec gpg --gen-key, créez une clef OpenPGP permettant la signature avec DSA et le
chiffrement avec ElGamal3 . Explorez les différents choix de paramètres disponibles. La
durée de validité de la clef doit être de 10 jours. La phrase de passe ne doit pas être vide. 4
4. Supprimer la première clef et créer une clef associée avec votre adresse email de l’UCA en
mettant les bonnes informations.
5. (1 point) Avec gpg --gen-revoke, créez un certificat de révocation de la clef que vous venez
de créer. Pourquoi créer un tel certificat?
6. (1 point) Avec gpg --export, exportez votre clef au format binaire et au format texte
(--armor).
7. (1 point) Créez un message chiffré pour gael.marcadet@uca.fr5 ce message sera signé
et contiendra votre clef publique. Pour cela installez un plugin GPG sur votre client de
messagerie préféré (par exemple Enigmail pour Mozilla, gpgtools sous Mac, Gpg4win ou
kleopatra sous Windows, APG sous Android, ou configurer mutt etc.). Avant de m’envoyer
votre message faites des tests avec vos camarades.
3 man gpg ou gpg --help seront vos amis.
4 Si erreur de timeout dû à l’entropie, les commandes suivantes peuvent vous aider rm -r .gnupg dans votre
HOME, puis gpg --full-gen-key
5 Elle se trouve sur la page web, perso.limos.fr/ gamarcadet/gpg/pk.gpg
~
3
8. (1 point) Téléchargez un message texte (quelques centaines de Ko, par exemple un livre dans
le domaine public sur le site http://www.gutenberg.org/). Chiffrez-le pour votre binome
et observer la taille du message chiffré par rapport au message clair. Vérifier que le fichier
se déchiffre bien. Faire de même avec un fichier mp3. Expliquer les différences.
gpg --encrypt --armor <filename>
gpg --output <new filename> --decrypt <filename>
gpg --sign <filename>
gpg --verify <filename>
9. (1 point) Chiffrez maintenant le même message pour vous et cd .. pour votre binôme une
seule fois. Observez la taille du nouveau message chiffré. Vérifier que le fichier se déchiffre
bien par les deux destinataires.
Chiffrez maintenant les deux mêmes messages en utilisant un algorithme de chiffrement
symétrique AES256. Que constatez-vous ?
4
Remarque
Les exercices suivants traiterons des sujets différents et utiliserons des outils variés. Nous
vous recommandons de faire un dossier par exercice pour mieux vous organiser.