
Le nombre de site web accroît et de plus en plus les données ne sont pas sécurisées ce tutoriel a pour but de sécuriser votre serveur web apache
Internet est un gigantesque réseau sur lequel la confidentialité des échanges n’est pas assurée, car la plupart des protocoles de communication utilisés sont non sécurisés. Cependant SSL (Secure Socket Layer) avec la dernière version TSL (Transport Layer Security) est un protocole permettant de pallier à ce problème. Il s’intercale entre les protocoles habituels de transport et les protocoles applicatifs, et proposent ainsi une couche de sécurité pour tout type d’application. SSL est plus généralement utilisé dans le contexte Web(sécurisation des échanges sur le site web) ou mail(POP et SMTP).
Comment ce protocole se présente et fonctionne-ils ?
Dans ce tutoriel, je vais le présenter et voir comment il fonctionne. Un cas pratique met fin à ce tutoriel.
SSL pour Secure Sockets Layer est un protocole de sécurisation des échanges sur internet. Le protocole SSL était développé à l’origine par Netscape. L’IETF, en a poursuivi le développement en le rebaptisant Transport Layer Security(TSL). On parle parfois de SSL/TLS pour designer indifféremment SSL ou TSL.
SSL fonctionne suivant un mode client-serveur. Il permet de satisfaire aux objectifs de sécurité suivants :
Le protocole est très largement utilisé, sa mise en œuvre est facilité du fait que les protocoles de la couche application, comme HTTP, n’ont pas été profondément modifiés pour obtenir une connexion sécurisées, mais seulement implémentés au-dessus de SSL/TLS, ce qui pour HTTP a donné le protocole HTTPS.
Au fur et à mesure qu'Internet se développait, de plus en plus de sociétés commerciales se mirent à proposer des achats en ligne pour les particuliers. L'offre se mit à croître régulièrement, mais le chiffre d'affaires dégagé par le commerce électronique restait modeste tant que les clients n'avaient pas une confiance suffisante dans le paiement par carte bancaire. Une des façons de sécuriser ce paiement fut d'utiliser des protocoles d'authentification et de chiffrement tels que SSL. La session chiffrée est utilisée pour empêcher un tiers d'intercepter des données sensibles transitant par le réseau : numéro de carte lors d'un paiement par carte bancaire, mot de passe lorsque l'utilisateur s'identifie sur un site…
Avec un système SSL, la sécurité a été sensiblement améliorée et les risques pour le client grandement réduits, comparés à l'époque où le paiement par internet était encore une technologie émergente. Bien que, comme tout système de chiffrement, le SSL/TLS ne pourra jamais être totalement infaillible, le grand nombre de banques et de sites de commerce électronique l'utilisant pour protéger les transactions de leurs clients peut être considéré comme un gage de sa résistance aux attaques malveillantes.
En 2009, TLS est utilisé par la plupart des navigateurs Web. L'internaute peut reconnaître qu'une transaction est chiffrée à plusieurs signes :
Il existe quelques cas très spécifiques où la connexion peut être sécurisée par SSL sans que le navigateur n'affiche ce cadenas, notamment si le webmaster a inclus la partie sécurisée du code HTML au sein d'une page en http ordinaire, mais cela reste rare. Dans la très grande majorité des cas, l'absence de cadenas indique que les données ne sont pas protégées et seront transmises en clair.
Lorsqu'un utilisateur se connecte à un site web qui utilise SSL/TLS, les étapes suivantes ont lieu :
Ce TP doit être réalisé sous l’environnement Linux pour windows un nouveau tutoriel est requis.
Prérequis pour le TP :
Le but étant de sécurisé un serveur apache sous linux en implémentant le protocole SSL.
Etape du TP :
- D’abord on génère une clé non chiffré sur le disque (Pour éviter de saisir un mot de passe à chaque redémarrage d’Apache) :
NB : pour eviter le problème avec SSL il est recommendé de choisir le nom des fichiers avec le même nom du domaine du serveur.
Tout d'abord placez vous dans le repertoire /etc/ssl : cd /etc/ssl
# openssl genrsa –out localhost.key 1024
- Ensuite on crée un certificat signé avec cette clé :
# openssl req –new –x509 –days 365 –key localhost.key –out localhost.crt
-Répondre a toutes les questions posées en s’assurant de retenir les données entrées (Common name, Organisation name, city, country, etc.).
- Modifier le fichier de définition du VirtualHost : pour cela ouvrez le fichier de configuration d'apache httpd.conf selon le cas ce fichier se trouve dans /etc/apache/httpd.conf ou soit recherchez ce fichier avec la commande find une fois trouvé ouvrez le avec un éditeur comme vim, vi, nano , gedit puis ajoutez les lignes suivantes :
NameVirtualHost *:443
SSLEngine On
SSLCertificateFile /etc/ssl/localhost.crt
SSLCertificateKeyFile /etc/ssl/localhost.key
SSLVerifyClient None
Sauvegarder le fichier et quitter.
Ensuite redemarrer apache en faisant :
- service httpd restart ou
- service apache2 restart
selon le cas
Maintenant on effectue un test qui consiste à se connecter par un canal sécurisé(SSL) au serveur apache via SSL. Pour cela ouvrez votre navigateur entrer l’adresse suivante : https://localhost si le test s’effectue en local et https://adresse_du_serveur si le test s’effectue en réseau.
Le navigateur va lever une exception en disant qu’il ne reconnait pas le certificat du site et que ce site peut être un site malveillant c’est normale parce que c’est nous même qui a signé le certificat.
Voilà le tutoriel prend fin merci à Auguste, Cyriaque, pour le soutien à la réalisation de ce tuto.
Tony NGUEREZA 13 Jan 2016, 05h21
Aucun commentaire n'a encore été ajouté soyez le premier a ajouté un commentaire
Vous n'êtes pas connecter veuillez vous connecter ou créer gratuitement un compte pour poster des commentaires