Security Web
2020/2021
P.Lafourcade
TP3 Authentification and GPG
Exercise 1 (SHA1 (2 points))
• (1 point) Trouver deux images .jpg de moins de 64Kb avec le mˆeme ratio. Calculer SHA-1 de ces deux images (openssl dgst -sha1 file).
• (1 point) Utiliser le site http://alf.nu/SHA1pour g´en´erer 2 pdf avec la mˆeme empreinte SHA-1 et contenant chacune les images choisies. V´erifier avec openssl que les deux pdf ont le mˆeme hach´e.
Exercise 2 (PGP (6 points))
PGP (Pretty Good Privacy) est un logiciel qui permet `a ses utilisateurs de transmettre des messages chiffr´es ou sign´es. Il suit le standard OpenPGP. L’impl´ementation GNU du standard OpenPGP s’appelle GnuPG ou GPG (GNU Privacy Guard).
Objectif : Prendre en main l’outil gpgen ligne de commande.
1. Avec gpg --gen-key, cr´eez une clef OpenPGP permettant la signature avec DSA et le chiffrement avec ElGamal1. Explorez les diff´erents choix de param`etres disponibles. La dur´ee de validit´e de la clef doit ˆetre de 10 jours. La phrase de passe ne doit pas ˆetre vide.
2. Avecgpg --list-key, affichez la liste des clefs de votre trousseau.
3. (1 point) `A partir du menu d’´edition (gpg --edit-key):
(a) Affichez l’empreinte (fingerprint) de votre clef.
(b) Changer la date d’expiration.
(c) Ajoutez un nom d’utilisateur (uid) de type image `a votre clef, par exemple une photo d’identit´e num´erique.
(d) Ajoutez une sous-clef de chiffrement RSA 4096 expirant dans 4 jours.
(e) Modifiez les pr´ef´erences de votre clef pour mettre AES192, SHA256 comme fonction de chiffrement sym´etrique et de de hachage.
(f) Quittez le menu d’´edition en enregistrant les changements.
4. Supprimer la premi`ere clef et cr´eer une clef associ´ee avec votre adresse email de l’UCA en mettant les bonnes informations.
5. (1 point) Avecgpg --gen-revoke, cr´eez un certificat de r´evocation de la clef que vous venez de cr´eer. Pourquoi cr´eer un tel certificat?
6. (1 point) Avec gpg --export, exportez votre clef au format binaire et au format texte (--armor).
7. (1 point) Cr´eez un message chiffr´e [email protected]2ce message sera sign´e et contiendra votre clef publique. Pour cela installez un plugin GPG sur votre client de messagerie pr´ef´er´e (par exemple Enigmailpour Mozilla, gpgtoolssous Mac, Gpg4win ou kleopatrasous Windows,APGsous Android, ou configurermutt etc.). Avant de m’envoyer votre message faites des tests avec vos camarades.
1man gpgougpg --helpseront vos amis.
2Elle se trouve sur ma page web,https://sancy.iut-clermont.uca.fr/ lafourcade/
1
8. (1 point) T´el´echargez 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´e par rapport au message clair. V´erifier que le fichier se d´echiffre bien. Faire de mˆeme avec un fichier mp3. Expliquer les diff´erences.
gpg --encrypt --armor <filename>
gpg --output <new filename> --decrypt <filename>
gpg --sign <filename>
gpg --verify <filename>
9. (1 point) Chiffrez maintenant le mˆeme message pour vous et pour votre binˆome une seule fois. Observez la taille du nouveau message chiffr´e. V´erifier que le fichier se d´echiffre bien par les deux destinataires.
Chiffrez maintenant les deux mˆemes messages en utilisant un algorithme de chiffrement sym´etrique AES256. Que constatez-vous ?
Exercise 3 (Casser des mots de passe (3 points))
R´ecup´erer sur ce site la base phpbb3, vous y trouvez aussi de nombreuses bases de donn´ees de mots de passe qui ont fuit´e ces derni`eres ann´ees :
https://wiki.skullsecurity.org/index.php?title=Passwords
1. (1 point) $1$AAAA$H9wXcd/WaaomJUgWKFspy. est un mot de passe hash´e et sal´e, retrou- ver l’agorithme de hachage utilis´e, identifier le sel (rtfm openssl). Avec openssl et la commandepasswdv´erifier que le mot de passe est!!1331xxx
2. (2 points) Quel sont les mots de passe associ´es `a $1$BABA$DOzBWHNx08SgVSX/YuYvC/ et `a
$1$CACA$XLWo4OqFFCYICqYrZ0y5i/ `a partir dephpbb.
V´erifier sur ce sitehttps://unix4lyfe.org/crypt/que vos calculs sont corrects.
Exercise 4 (Stockage des mots de passe (5 points))
Cr´eer une page web d’authentification et stocker dans une base de donn´ees les mots de passe de vos utilisateurs suivant les politiques suivantes :
1. Les mots de passe sont stock´es en clair.
2. Les mots de passe sont stock´es hash´es.
3. Les mots de passe sont stock´es hash´es et sal´es.
4. Les mots de passe sont stock´es hash´es et sal´es par utilisateur.
5. Les mots de passe sont stock´es chiffr´es avec un chiffrement sym´etrique et hash´es et sal´es par utilisateur.
Vous expliquerez comment vous avez fait, donnerez les fichiers de configurations du site et des preuves de sont bon fonctionement pour chaque version.
Exercise 5 (Webmail (4 points))
Le but de cette manipulation est d’observer comment les webmails classiques utilisent SSL/TLS pour g´erer la s´ecurisation des donn´ees.
1. (1 point) Allez sur les pages de connexion de trois de vos webmails favoris. Relevez l’URL (l’adresse) de connexion. Ne vous connectez pas ! V´erifiez la pr´esence de l’acronyme httpsavant l’adresse de connexion. Si c’est le cas, la page de connexion est prot´eg´ee par le protocole SSL/TLS. Comparer les diff´erents webmails pour lesquels vous avez une adresse email, pour cela :
(a) Cliquez sur le cadenas et demandez plus d’informations.
3Aussi accessible ici : https://sancy.iut-clermont.uca.fr/~lafourcade/phpbb.txt.bz2
(b) Une fenˆetre s’ouvre. Relevez les informations cryptographiques qui vous semblent per- tinentes (par exemple, noms des algorithmes, tailles des cl´es, dates, etc.).
(c) Affichez le contenu du certificat et relevez `a nouveau les informations cryptographiques qui vous semblent pertinentes.
2. Nous allons utiliser vdn. La documentation est disponible4 :
https://opale.u-clermont1.fr/info/wiki/doku.php?id=public:vdn:guide&#utilisation Dans le compte rendu vous noterez toutes les instructions que vous avez tap´ees et les r´esultats obtenus une fois connect´es.
Pour copier un fichier de votre session vdn vous devez dans une fenˆetre sshsur debian-1 utilisez la commande scp [email protected]:file . afin de copier le fichier file dans la racine dedebian-1.
Dans l’autre sensvdn-scp file root@debian-1:. pour copier le fichierfilesurdebian-1.
Fairevdn-halt debian-1pour arrˆeter proprementvdn.
Pr´eliminaires.
Connectez vous enssh`a l’IUT surtokyo. Scannez les machines allum´ees~gudavala/bin/iut-scan puis connectez `a une machine parsshde puistokyo. La commandeiut-tmux -a palafour vous permettra de me donner acc`es `a votre terminal. Lancer la commandevdn-tmuxpour avoir 4 fenˆetres5.
Si vous quitter un terminal (exit) par inadvertance vous obtiendrez le message : Pane is dead...Si vous voulez relancer un shell dedans :
CTRL b + : + respawn-pane -k
Apr`es avoir quittertmux (CTRL b + d), pour terminer compl`etement la session tmux il faut ex´ecuter (ou attendre que la machine reboot) :
vdn-tmux -r
ou encore tmux kill-sessionpour quitter ce mode
La commandewget https://sancy.iut-clermont.uca.fr/~lafourcade/vdn-start-secure-1 vous permet de r´ecup´erer le fichiervdn-start-secure-1
Fairechmod 755 vdn-start-secure-1 Lancer la commande./vdn-start-secure-1
Puis t´el´echargez le scriptwget https://sancy.iut-clermont.uca.fr/~lafourcade/SECWEB/baseConfigSecure-1 et faitesvdn-scripts baseConfigSecure-1
Connectez-vous `adebian-1en tant querootavec la commande suivantevdn-ssh root@debian-1 Si besoin pouvouvez vous connectez `adebian-1en tant quetestavec la commandevdn-ssh test@debian-1
3. (1 point) Le scripttestssl.shest install´e `a la racine dans le r´epertoiretestssl.sh.
Appliquer ce script suruca.fret votre page https favorite. Analyser et comparer les r´esultats obtenus. La commande suivante devrait fonctionner.
./testssl.sh -x ECDH proxy.iut-clermont.uca.fr
./testssl.sh -x ECDH --proxy 193.49.118.36:8080 limos.fr 4. Comparer les r´esultats obtenus avec la commande :
openssl s_client -proxy 193.49.118.36:8080 -connect uca.fr:443
4login : sesame / password : 2019
5vdn-tmux -rpour arretertmux.
5. (1 point) Avez-vous vraiement compris :
(a) Pourquoi est-il utile de prot´eger une connexion en https ? (b) Quelles donn´ees cherche-t-on `a prot´eger ? De quelle attaque ?
(c) Qu’apprend votre fournisseur de mail en HTTP et en HTTPS ?