Installer un serveur "WEB sécurisé" HTTPS         

Le protocole HTTPS

Ce protocole est la variante sécurisée du protocole* HTTP; elle est sécurisé en ce sens que les communication entre client et serveurs sont chiffrée (c-a-d "codée"). Si un individu tiers intercepte cette communication, il ne peut rien en faire, à moins d'avoir les moyens# de la déchiffrer.

Cette variante consiste en fait à rajouter une couche de chiffrage SSL sur le contenu HTTP.

Que protège HTTPS ? de ce que nous avons dit ci-dessus découle que tout le contenu des pages, ainsi que les méthodes d’authentification (échange du mot de passe, carte bancaire, ..) sont protégées

Quelles applications ? tous les sites web qui, ayant besoin d'identifier à coup sûr les utilisateurs, leur demandent un mot de passe. Le chiffrage évite que ce mot de passe ne soit volé par un tiers

* Rappel : le protocole est langage commun utilisé par le client (ex : navigateur web) et le serveur (ex : serveur web) pour s'échanger des données.
# le choix du système de chiffrage permet de rendre ce coût très (trop) élevé

Est-ce fiable ? oui; des rumeurs prétendent que (seuls) des services de renseignement pourraient casser les codes; il est peu probable que ces fonctionnaires viennent vider vos comptes en banques... et ils ont des moyens bien moins coûteux d'y accéder !



Installation du serveur HTTP
Insérez le code suivant dans le "corps" (body) de la page "index.php" :

<?php
echo "<form method=post action=index.php?page=2 name=test > <br> ";
echo "Entre ton mot de passe ======> <input type=password name=mdp size=10 > ";
echo "<input type=submit value='ok' > ";
echo "</form>";
? >

Chapitre 1.

Installons un serveur web basique;

Utilisez pour cela le tutoriel :

Installation de Centos5-serveur

puis créez le fichier "index.php" dans "/var/ww/html" en suivant les instructions ci-contre.

Capture d'un échange HTTP

1 . Lancer le logiciel Wireshark sur le poste client, puis démarrer la capture des trames

2. Lancer le navigateur (chrome/firefox/ie) sur le poste client

3. Connectez-vous à votre serveur web : http://192.168.7.XX

4. Entrez le login et le mot de passe que vous avez choisi, plus cliquez sur "Envoyer"

5. Arrêtez la capture Wireshark, puis examinez les trames envoyée par le poste client au serveur

6. Retrouvez les "login" et "mot de passe" dans les trames capturées


Pouvez-vous capturer les trames venant du poste de votre voisin, pour "pirater" son mot de passe ?

Pourquoi ? (pensez à la manière de fonctionner des switches)

Pourriez-vous le faire si le réseau était en WIFI et que vous soyez connecté sur le même Hotspot ?

Est-il recommandé d'utiliser un site Web qui demande un mot de passe, mais qui n'est pas en HTTPS, quand on est sur un hotspot Wifi public ?

Chapitre 2.

Mettons nous à la place d'un "pirate informatique" : nous allons "voler" le mot de passe envoyé par l'utilisateur au site web

Mise en place de HTTPS
yum install mod_ssl openssl

openssl genrsa -out ca.key 2048

openssl req -new -key ca.key -out ca.csr

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

cp ca.crt /etc/pki/tls/certs
cp ca.key /etc/pki/tls/private
cp ca.csr /etc/pki/tls/private

nano +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf

ci-dessous le contenu à ajouter ou modifier dans le fichier

SSLCertificateFile /etc/pki/tls/certs/ca.crt

SSLCertificateKeyFile /etc/pki/tls/private/ca.key

pour enregistrer les changement taper => CTRL-O, puis CTRL-X


/etc/init.d/httpd restart


Chapitre 3.

Nous allons maintenant modifier le serveur web, pour qu'il travaille en HTTPS :


- Installation de OpenSSL(logiciel de chiffrement)

 

- création d'une clé privée et d'un certificat "auto-signé"

(Pour une utilisation professionnelle, on utiliserait un certificat fourni par une "Trusted Certificate Authority")

- copie de ces fichiers dans les bons dossier


- mise à jour du fichier "/etc/httpd/conf.d/ssl.conf"



- redémarrage du serveur



Capture d'un échange HTTPS

Reprends la procédure du chapitre 2. pour vérifier qu'il n'est plus possible de récupérer les mots de passe que l'utilisateur transmet au serveur Web

Chapitre 4.

Vérifions que le "pirate" ne peut plus voler les mots de passe