REPUBLIQUE DU CAMEROUN FACULTE DES SCIENCE
Paix-Travail-Patrie FACULTY OF SCIENCE
REPUBLIC OF CAMEROON Département de Mathématique
Peace-Work-Fatherland et Informatique
UNIVERSITE DE DSCHANG Department of Mathematics and
Computer science
UNIVERSITY OF DSCHANG
RESEAU ET SYSTEME
THEME : PROTOCOLE HTTPS
GROUPE 32
MEMBRES DU GROUPE :
N0 NOMS PRENOMS MATRICULES
01 NANA NTONGME BETHANIE (chef de groupe) (CM-UDS-21SCI0605)
02 DIBAMY TEMGOUA SOSTHENES (CM-UDS-19SCI1550)
03 LONGO MPECK O’NEAL SHAQUILLE (CM-UDS-18SCI0573)
04 KAMDEM KAMGUIA LOIC RAYAN (CM-UDS-20SCI0363)
MOKO FOTSO LINDA (CM-UDS-18SCI0632)
05
Sous la supervision du:
Pr. KEGNE VIANNEY
Année Académique 2024/2025
PROTOCOLE HTTPS
Table des matières
I. GENERALITE SUR LE HTTP ............................................................................ 4
II. EVOLUTION DU HTTP AU HTTPS ................................................................... 4
III. LE HTTPS ................................................................................................... 7
1. GENERALITES........................................................................................................................... 7
2. FONCTIONNEMENT, ETABLISSEMENT DE CONNEXION ET ECHANGE DE DONNEES CHIFFREES . 8
3. COMMENT ACTIVER UN HTTPS ................................................................................................ 9
4. LES ATTAQUES QUE PEUT SUBIR UNE CONNEXION HTTPS ..................................................... 11
5. DIFFERENCE ENTRE LE HTTPS ET LE HTTP ............................................................................... 13
6. AVANTAGES ET INCONVENIENTS DU HTTPS ........................................................................... 13
IV. SSL / TLS .................................................................................................. 15
1. DÉFINITION GÉNÉRALE .......................................................................................................... 15
2. SSL (SECURE SOCKET LAYER) .................................................................................................. 15
3. TLS (TRANSPORT LAYER SECURITY) ........................................................................................ 15
4. FAILLES DE SECURITE DU PROTOCOLE SSL ............................................................................. 15
5. COMMENT TLS CORRIGE LES FAILLES DE SSL.......................................................................... 16
V. FONCTIONNEMENT DU HTTPS/SSL ......................................................... 18
1. Principe général du fonctionnement HTTPS/TLS .................................................................... 18
2. Les types de chiffrement utilisés............................................................................................ 19
3. CIPHER SUITE ........................................................................................................................ 20
4. LE PRE-MASTER SECRET ......................................................................................................... 21
VI. CONFIGURATION ET INSTALLATION PRATIQUE(APACHE) ........................ 24
VII. Configuration Apache HTTPS - Script Shell .............................................. 31
CONCLUSION .................................................................................................... 33
REFERENCES ..................................................................................................... 34
LEXIQUE ........................................................................................................... 35
Département Mathématique et Informatique Niveau : IN3 2
PROTOCOLE HTTPS
INTRODUCTION
À l’ère du numérique, la sécurité des échanges d’informations sur Internet est
devenue un enjeu majeur. Chaque jour, des millions de données sensibles telles que des
identifiants, des mots de passe, ou encore des coordonnées bancaires transitent sur le
web, exposant les utilisateurs à de nombreux risques. Le protocole HTTP, utilisé depuis
le début du web pour la communication entre les clients (navigateurs) et les serveurs, ne
garantit pas la confidentialité des données échangées. C’est dans ce contexte qu’a
émergé le HTTPS (HyperText Transfer Protocol Secure), une version sécurisée de
HTTP, reposant sur des mécanismes de chiffrement comme SSL/TLS.
Ce document propose une vue d’ensemble du HTTPS : de ses origines à son
fonctionnement, en passant par sa configuration et les menaces potentielles auxquelles
il peut être exposé. Nous aborderons également la différence entre HTTP et HTTPS, les
avantages et inconvénients de chaque protocole, et les fondements techniques sur
lesquels repose la sécurité des connexions HTTPS.
Département Mathématique et Informatique Niveau : IN3 3
PROTOCOLE HTTPS
I. GENERALITE SUR LE HTTP
Le protocole de transfert HTTP (hypertexte transfert Protocol) est un ensemble de
règles permettant de transférer des fichiers (images, vidéos, texte, son etc.) sur le Web
(internet étant un réseau mondial permettant d’interconnecter et de faire communiquer
les équipements et appareils en entre eux dans le monde).
Le HTTP est un protocole qui se situe dans la couche application du modèle OSI, ainsi
dès qu’un utilisateur ouvre son navigateur il l’utilise indirectement. C’est un protocole
Client-Serveur basé sur le schéma « requête-réponse » chaque action du client comme
la saisie d’un texte et envoie ou un clic sur un lien, est convertie en requête http vers un
serveur.
Réf : Google_processus de communication http (option image)
II. EVOLUTION DU HTTP AU HTTPS
D'où vient le protocole HTTPS?
Département Mathématique et Informatique Niveau : IN3 4
PROTOCOLE HTTPS
En 1989 : l'inventeur du World Wide Web Tim Berners-Lee crée
concomitamment le protocole de communication HTTP, une des trois
technologies indispensables au fonctionnement d'internet. Au moment de sa
création, le protocole de communication navigateur-serveur fait transiter les
données en clair. Sans chiffrement, le risque de piratage est alors latent. De ce
fait, internet se développe progressivement, et la vente en ligne apparaît. Mais les
internautes n'ont pas suffisamment confiance en internet pour y renseigner les
données de leur carte bancaire, donc le volume des ventes en ligne reste faible.
En 1995 : l'entreprise Netscape, pionnière d'internet avec son navigateur
Netscape Navigator, introduit le protocole SSL (Secure Sockets Layer) pour
sécuriser les échanges de données, et susciter ainsi la confiance des internautes.
HTTP devient HTTPS : un protocole de communication navigateur-serveur
enrichi d'un protocole de sécurisation des échanges des données.
1999 : L’IETF (Internet Engineering Task Force), en charge de normaliser
internet, crée le protocole TLS (Transport Layer Security). Cette version
moderne de SSL propose des méthodes de chiffrement avancées, et des liaisons
plus rapides.
2014 : Google annonce intégrer le protocole de communication sécurisée HTTPS
dans ses critères de référencement naturel. Le HTTPS, jusque-là majoritairement
utilisé par les sites web manipulant des données particulièrement sensibles, se
généralise.
2015 : La sécurité des échanges sur internet devient d'intérêt général. L'autorité
de certification à but non lucratif Let's Encrypt naît, elle propose des certificats
TLS gratuits, pour passer de HTTP à HTTPS gratuitement.
Département Mathématique et Informatique Niveau : IN3 5
PROTOCOLE HTTPS
2018 : Google sanctionne les sites web qui n'utilisent pas le HTTPS en affichant
l'avertissement « La connexion n'est pas sécurisée ». La confiance des
internautes, et la crédibilité du site web, décroissent en conséquence. Le trafic est
vraisemblablement impacté sur ces.
2024 : Hostinger, OVHcloud ou encore IONOS, la majorité des prestataires
d'hébergement populaires incluent le certificat << SSL >> par défaut dans toutes
leurs offres d'abonnement, pour garantir la sécurité des données. Par conséquent,
tous les sites hébergés via ces prestataires utilisent le HTTPS. Les prestataires
parlent de certificats SSL, plus connu, mais en réalité il s'agit de certificats TLS.
Le protocole TLS évolue à mesure des nouvelles menaces envers la
cybersécurité. Des versions actualisées paraissent régulièrement, avec des
algorithmes de chiffrement adaptés.
Département Mathématique et Informatique Niveau : IN3 6
PROTOCOLE HTTPS
III. LE HTTPS
1. GENERALITES
Le HTTPS (HyperText Transfer Protocol Secure) est une version sécurisée du
protocole HTTP. Ce protocole est utilisé pour établir une communication sécurisée entre
un navigateur web et un serveur. Il garantit que les données échangées ne peuvent pas
être interceptées ou altérées par des tiers malveillants.
Le HTTPS repose sur deux technologies fondamentales :
SSL/TLS (Secure Sockets Layer / Transport Layer Security) : Ce sont des
protocoles de chiffrement qui assurent la confidentialité, l'intégrité et
l'authentification des données transmises. Le TLS est la version moderne et plus
sécurisée du SSL.
Certificats numériques : Ces certificats sont émis par des autorités de certification
(CA) et servent à prouver l'identité du site web. Ils contiennent des informations
comme le nom du domaine, la clé publique du serveur et la signature numérique
de l'autorité de certification.
Depuis plusieurs années, le HTTPS est devenu la norme pour les sites web, notamment
ceux qui traitent des informations sensibles comme les paiements en ligne, les
identifiants utilisateurs ou les données personnelles. Les navigateurs modernes
marquent même les sites HTTP comme "non sécurisés" par l’absence de cadenas pour
encourager l'adoption du HTTPS.
a- DIFFERENTE COUCHES DU PROTOCOL HTTPS
Le Protocol https comporte quartes couches allant du plus haut niveau au plus bas
niveau, ainsi nous avons :
Couche Application : HTTP
C’est là où ton navigateur (ou une API) envoie des requêtes comme GET, POST, etc.
Gère les URL, les en-têtes, les cookies, les données de formulaire, etc.
Département Mathématique et Informatique Niveau : IN3 7
PROTOCOLE HTTPS
Sans HTTPS, ces données sont transmises en clair.
Couche Sécurité : TLS (anciennement SSL)
TLS assure trois choses :
- Chiffrement : protège les données échangées.
- Authentification : vérifie l’identité du serveur (via certificat).
- Intégrité : empêche les modifications invisibles en transit.
TLS se situe entre la couche HTTP et TCP en chiffrant tout le contenu HTTP avant qu’il
parte vers le réseau.
Couche Transport : TCP
Protocole de transport fiable. Gère la connexion, l’ordre des paquets, la retransmission
si besoin.
TLS utilise TCP comme base (et non UDP, sauf pour QUIC/HTTP/3).
Couche Réseau : IP + Ethernet
C’est la couche la plus basse (souvent gérée par le système). Elle s’occupe de
l’acheminement des paquets via Internet jusqu’au serveur
Schéma simplifié des couches HTTPS :
[Application] -> HTTP
[Sécurité] -> TLS
[Transport] -> TCP
[Réseau] -> IP + Ethernet
2. FONCTIONNEMENT, ETABLISSEMENT DE CONNEXION
ET ECHANGE DE DONNEES CHIFFREES
Le fonctionnement du HTTPS repose sur une série d'étapes appelée "TLS
Handshake" (poignée de main TLS). Voici une explication détaillée de ce processus :
Département Mathématique et Informatique Niveau : IN3 8
PROTOCOLE HTTPS
Coté client : Lorsqu'un utilisateur accède à un site HTTPS, son navigateur envoie
une requête au serveur pour établir une connexion sécurisée. Cette requête inclut
les versions de TLS supportées par le navigateur et une liste des algorithmes de
chiffrement qu'il peut utiliser (chiffrement asymétrique, symétrique et le hachage
crytographique).
Coté du serveur : après réceptions de la requête client le serveur répond en
envoyant son certificat SSL/TLS, qui contient sa clé publique, un certificat est
signé par une autorité de certification (CA) pour prouver son authenticité.
Coté client : Apres réceptions de la réponse serveur, le navigateur vérifie
l'authenticité du certificat en le comparant avec une liste de certificats approuvés.
Si le certificat est valide, le navigateur génère une clé de session symétrique
unique.
Coté client : Après vérification du certificat le navigateur chiffre cette clé de
session avec la clé publique du serveur (extraite du certificat) et l'envoie au
serveur. Seul le serveur, qui possède la clé privée correspondante, peut déchiffrer
cette clé de session.
Chiffrement des données : Une fois la clé de session partagée, toutes les données
échangées entre le navigateur et le serveur sont chiffrées à l'aide de cette clé
symétrique. Cela garantit que les données ne peuvent pas être lues ou modifiées
par des tiers pendant leur transit
Pour en savoir plus vous pouvez suivre le lien :
[Link]
Ce processus de chiffrement/déchiffrement est essentiel pour protéger les informations
sensibles comme les mots de passe, les numéros de carte bancaire ou les informations
personnelles.
3. COMMENT ACTIVER UN HTTPS
Activer le HTTPS sur un site web nécessite plusieurs étapes techniques. Voici un guide
détaillé :
Département Mathématique et Informatique Niveau : IN3 9
PROTOCOLE HTTPS
Obtenir un certificat SSL/TLS :
Un certificat SSL/TLS peut être acheté auprès d'une autorité de certification (CA)
comme DigiCert, GlobalSign, ou Let's Encrypt (une option gratuite mais tout aussi
sécurisée).
Pour obtenir un certificat, il faut généralement fournir des informations comme le nom
de domaine et dans certains cas, des documents justificatifs pour prouver la propriété du
domaine.
Installer le certificat sur le serveur :
Une fois le certificat obtenu, il doit être installé sur le serveur web. Cela implique de
configurer le serveur pour qu'il utilise le certificat lors des communications HTTPS.
Par exemple, sur un serveur Apache, cela se fait en modifiant le fichier de configuration
httpd. Conf ou ssl. Conf pour inclure le chemin vers le certificat et la clé privée.
Rediriger le trafic HTTP vers HTTPS :
Pour forcer les utilisateurs à accéder au site via HTTPS, il est nécessaire de configurer
des redirections permanentes (code HTTP 301(redirection vers la nouvelle adresse
sécurisé). Cela peut se faire en ajoutant des règles dans le fichier .htaccess ou
directement dans la configuration du serveur.
Département Mathématique et Informatique Niveau : IN3 10
PROTOCOLE HTTPS
Tester la configuration (illustration):
Une fois le certificat installé et la redirection configurée, il est important de tester la
mise en place du HTTPS. Des outils comme SSL Labs permettent de vérifier que le
certificat est correctement installé et que le site est sécurisé
4. LES ATTAQUES QUE PEUT SUBIR UNE CONNEXION
HTTPS
Bien que le HTTPS soit conçu pour être sécurisé, il n'est pas à l'abri de certaines attaques
sophistiquées. Voici quelques exemples :
Attaque Man-in-the-Middle (MITM):
Dans une attaque MITM, un pirate intercepte la communication entre le client et le
serveur. Cela peut arriver si un attaquant réussit à usurper l'identité du serveur ou du
client en utilisant un certificat falsifié.
Ref: Google_Man in the middle (option image)
Département Mathématique et Informatique Niveau : IN3 11
PROTOCOLE HTTPS
Attaque par rejeu (Replay Attack) :
Dans ce type d'attaque, l'attaquant capture des données chiffrées et les rejoue
ultérieurement pour tromper le système. Bien que le TLS inclue des mécanismes pour
prévenir cela, des failles peuvent exister dans certaines implémentations.
Ref: Google_replay attack (option image)
Compromission de certificats :
Si un certificat est volé ou falsifié, un attaquant peut usurper l'identité d'un site légitime.
C'est pourquoi les certificats doivent être renouvelés régulièrement et stockés en toute
sécurité.
Failles dans les implémentations TLS/SSL :
Des vulnérabilités comme Heartbleed (2014), POODLE (2014) ou encore BEAST ont
été découvertes dans des versions anciennes de SSL/TLS. Ces failles permettent aux
pirates d'exploiter des faiblesses dans le chiffrement pour accéder aux données
Département Mathématique et Informatique Niveau : IN3 12
PROTOCOLE HTTPS
5. DIFFERENCE ENTRE LE HTTPS ET LE HTTP
La principale différence entre HTTP et HTTPS réside dans la sécurité en effet:
Le HTTP transmet les données en clair, ce qui les rend vulnérables aux interceptions
(Toute personne capable d’intercepter les informations sur un trafic réseau peut lire ses
informations et les échangées, y compris les mots de passe et les données sensibles)
alors que le HTTPS, en revanche, utilise des protocoles de chiffrement (SSL/TLS) pour
sécuriser les données. Cela garantit la confidentialité, l’intégrité et l’authentification. De
plus, le HTTPS utilise des certificats numériques pour vérifier l'identité du serveur.
Ref : Google_difference entre le HTTP et HTTPS (option image)
Autres différences notables :
Port utilisé : HTTP utilise le port 80, tandis que HTTPS utilise le port 443.
Nécessité de certificats : HTTPS nécessite un certificat SSL/TLS valide, contrairement
à HTTP.
Impact SEO : Google privilégie les sites HTTPS dans ses résultats de recherche, ce qui
améliore leur visibilité et crée un sentiment de sécurité vis-à-vis du client.
6. AVANTAGES ET INCONVENIENTS DU HTTPS
AVANTAGES :
Département Mathématique et Informatique Niveau : IN3 13
PROTOCOLE HTTPS
- Confidentialité : Les données sont chiffrées, ce qui empêche les interceptions.
Cela est crucial pour protéger les informations sensibles comme les mots de passe
ou les données bancaires.
- Intégrité : Les données ne peuvent pas être modifiées sans être détectées grâce
aux mécanismes de hachage intégrés dans le TLS.
- Authentification : Les certificats assurent que l'utilisateur communique avec le
bon serveur, évitant ainsi les attaques de phishing (est une attaque où un escroc
crée un faux site web qui ressemble trait pour trait à un site légitime (banque,
réseau social, service en ligne, etc.)).
Ref : Google
- Amélioration du référencement : Google a confirmé que les sites HTTPS
bénéficient d'un avantage en termes de classement dans les résultats de recherche
INCONVENIENTS :
- Coût : Certains certificats SSL/TLS peuvent être coûteux, bien que des options
gratuites comme Let's Encrypt soient disponibles.
- Charge serveur : Le chiffrement/déchiffrement des données peut augmenter la
charge sur le serveur, surtout pour les sites à fort trafic.
- Complexité : La gestion des certificats et leur renouvellement peut être technique,
nécessitant des compétences en administration système
Département Mathématique et Informatique Niveau : IN3 14
PROTOCOLE HTTPS
IV. SSL / TLS
1. DÉFINITION GÉNÉRALE
Le SSL (Secure Socket Layer) et le TLS (Transport Layer Security) sont des protocoles
cryptographiques utilisés pour sécuriser les communications sur un réseau informatique,
en particulier sur Internet.
Ils sont principalement utilisés pour :
Assurer la confidentialité des échanges.
Garantir l’authenticité du serveur.
Protéger l’intégrité des données échangées.
Ces protocoles interviennent notamment dans les connexions HTTPS afin de chiffrer les
informations échangées entre un client (navigateur web) et un serveur web.
2. SSL (SECURE SOCKET LAYER)
Le SSL est le premier protocole de sécurité développé par la société Netscape en 1994.
Il a connu plusieurs versions, notamment SSL 2.0 et SSL 3.0.
3. TLS (TRANSPORT LAYER SECURITY)
TLS est une version améliorée et plus sécurisée du protocole SSL. Il a été standardisé
par l’IETF (Internet Engineering TaskForce) et est devenu le protocole de référence pour
sécuriser les échanges sur Internet.
4. FAILLES DE SECURITE DU PROTOCOLE SSL
Malgré son rôle pionnier dans la sécurisation des communications web, le protocole SSL
présente de nombreuses vulnérabilités, en particulier dans ses versions 2.0 et 3.0 .
Département Mathématique et Informatique Niveau : IN3 15
PROTOCOLE HTTPS
Failles de conception
- Négociation possible de suites de chiffrement faibles (clés de 40 ou 56 bits).
- Manque de protection contre les attaques par rejeu.
- Authentification souvent unidirectionnelle (le serveur seulement).
Attaques connues
- POODLE : exploite le mode CBC de SSL 3.0 pour intercepter des données.
- DROWN : utilise la présence de SSLv2 pour casser une connexion TLS.
- BEAST : attaque CBC sur SSL 3.0 / TLS 1.0 visant à voler des cookies.
- FREAK : forçait l’utilisation de clés RSA faibles et vulnérables.
Algorithmes faibles
- SSL repose parfois sur MD5 ou SHA-1, tous deux considérés comme vulnérables
aux attaques par collision.
5. COMMENT TLS CORRIGE LES FAILLES DE SSL
Le protocole TLS a été conçu pour combler les lacunes de SSL et renforcer la sécurité :
Chiffrement renforcé
- Négociation stricte des suites cryptographiques modernes.
- Abandon des algorithmes faibles (RC4, export-grade, etc.).
Résistance aux attaques
- POODLE : non vulnérable grâce à une meilleure gestion du padding.
- BEAST : contourné par des correctifs et TLS 1.1+.
- DROWN : évité par l’abandon complet de SSLv2.
- FREAK : désactivation possible des suites RSA faibles.
Département Mathématique et Informatique Niveau : IN3 16
PROTOCOLE HTTPS
Hachage sécurisé
- Utilisation de SHA-2 (SHA-256, SHA-384) à la place de MD5 et SHA-1.
TLS 1.3 : une avancée majeure
- Suppression des fonctionnalités obsolètes (CBC, RSA statique).
- Handshake plus rapide et la confidentialité persistante activée par défaut.
Département Mathématique et Informatique Niveau : IN3 17
PROTOCOLE HTTPS
[Link] DU HTTPS/SSL
1. Principe général du fonctionnement HTTPS/TLS
a) Les étapes d’une connexion HTTPS
Lorsqu’un utilisateur tente d’accéder à un site web sécurisé ([Link] plusieurs étapes
se déroulent en arrière-plan.
Étape 1 : Client Hello
Le client (navigateur) envoie au serveur :
- Une liste des versions TLS qu’il supporte.
- Une liste des algorithmes de chiffrement qu’il accepte.
- Un nombre aléatoire (Random Client).
- Des informations diverses.
Étape 2 : Server Hello
Le serveur répond en envoyant :
- La version TLS qu’il a choisie.
- L’algorithme de chiffrement retenu.
- Son certificat numérique (contenant sa clé publique).
- Un autre nombre aléatoire (Random Server).
NB : Ce certificat est délivré par une Autorité de Certification (CA) et permet au
client de vérifier l’identité du serveur.
Étape 3 : Authentification du serveur
Le navigateur vérifie si le certificat du serveur est valide :
- Si le certificat est valide → la connexion continue.
- Sinon → message d’alerte (connexion non sécurisée).
Étape 4 : Génération du secret partagé
- Grâce à la clé publique du serveur, le client chiffre un secret (appelé Pre-
MasterSecret) et l’envoie au serveur.
Seul le serveur, grâce à sa clé privée, peut déchiffrer ce message.
Ce Pre-Master Secret va servir à générer la clé de session (clé symétrique).
Département Mathématique et Informatique Niveau : IN3 18
PROTOCOLE HTTPS
Étape 5 : Chiffrement symétrique
À partir du Pre-Master Secret, le client et le serveur génèrent la même clé de session.
Cette clé symétrique va être utilisée pour chiffrer et déchiffrer toutes les données
échangées jusqu’à la fin de la connexion.
2. Les types de chiffrement utilisés
a) Le chiffrement asymétrique
Utilisé au début de la connexion. Fait intervenir deux clés : Une clé publique (connue
de tous) et une clé privé (Connue uniquement du serveur).
Sert uniquement à échanger la clé de session en toute sécurité.
b) Le chiffrement symétrique
Utilisé pour échanger les données après l’établissement de la clé de session.
Utilise une seule clé secrète partagée entre le client et le serveur.
Rapide et efficace pour le transfert de données.
Département Mathématique et Informatique Niveau : IN3 19
PROTOCOLE HTTPS
3. CIPHER SUITE
Une cipher suite est un ensemble de plusieurs algorithmes de sécurité que le protocole
TLS (et donc HTTPS) utilise pour sécuriser une communication entre ton navigateur
(client) et un serveur web. C’est comme une formule de sécurité que le client et le
serveur choisissent ensemble au début de la connexion. Elle définit comment les
données seront :
Chiffrées
Authentifiées
Intégrées (non modifiées)
Échangées de manière sécurisée
Une cipher suite contient 4 éléments :
Élément Rôle Exemple
ECDHE, DHE,
Échange de clés Établir un secret partagé
RSA
Authentification Vérifier l’identité du serveur RSA, ECDSA
AES_128,
Chiffrement symétrique Chiffrer les données
ChaCha20
Fonction de hachage / Vérifier que les données n’ont pas été SHA256,
intégrité modifiées SHA384
Exemple :
Nginx
CopierModifier
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Département Mathématique et Informatique Niveau : IN3 20
PROTOCOLE HTTPS
Signifie que :
ECDHE = échange de clés sécurisé avec Diffie-Hellman éphémère (donc Perfect
Forward Secrecy)
RSA = le serveur s’authentifie avec RSA (certificat)
AES_128_GCM = chiffrement des données avec AES en 128 bits, mode GCM
SHA256 = pour l’intégrité (vérifier que rien n’a été modifié)
Il est important car il détermine le niveau de sécurité de ta connexion HTTPS.
Une mauvaise cipher suite peut rendre la connexion vulnérable à des attaques.
Les bonnes cipher suites protègent tes données contre l’espionnage ou la falsification
4. LE PRE-MASTER SECRET
Une fois la méthode d’échange de clés choisie, le client et le serveur collaborent pour
générer un secret commun :
Si c’est RSA, le client chiffre un Pre-Master Secret avec la clé publique du serveur, et
l’envoie.
Si c’est DHE/ECDHE, les deux parties échangent des paramètres et calculent un secret
commun avec l’algorithme de Diffie-Hellman.
PERFECT FORWARD SECRECY (PFS)
PFS garantit que même si la clé privée du serveur est compromise plus tard, les sessions
passées ne peuvent pas être déchiffrées.
Pour cela, le TLS handshake doit utiliser DHE ou ECDHE, qui génère un secret unique
par session, non dérivable de la clé privée du serveur.
RESUME SIMPLE
Département Mathématique et Informatique Niveau : IN3 21
PROTOCOLE HTTPS
Sans PFS Avec PFS
Même clé utilisée longtemps Nouvelle clé par session
Pré-master envoyé chiffrer Pré-master calculé séparément
Risque en cas de vol de clé privée Sécurité même si la clé est volée
RSA pour échange de clé DHE / ECDHE
MASTER SECRET & PRF (PSEUDO-RANDOM FUNCTION)
Le Master Secret est une valeur secrète principale calculée à partir du Pre-Master Secret,
du ClientRandom, et du ServerRandom.
C’est le cœur de la sécurité TLS : à partir du Master Secret, on dérive toutes les clés de
chiffrement symétrique, clés d’intégrité, et IVs (vecteurs d’initialisation) nécessaires
pour sécuriser la session HTTPS.
La PRF est une fonction spéciale qui :
Combine plusieurs entrées (secret, texte, données aléatoires)
Et produit une suite de bits pseudo-aléatoires totalement imprévisibles
Utilise des fonctions de hachage cryptographiques comme HMAC-SHA256 ou HMAC-
SHA384
Département Mathématique et Informatique Niveau : IN3 22
PROTOCOLE HTTPS
Objectif :
Générer des clés solides, uniques à chaque session, une fois le Pré-Master Secret établi,
les deux parties utilisent une PRF (fonction pseudo-aléatoire) pour générer le Master
Secret :
Ini
CopierModifier
MasterSecret = PRF(PreMasterSecret, "master secret", ClientRandom +
ServerRandom)
Ensuite, ce Master Secret sert à dériver :
- Les clés de chiffrement symétrique
- Les clés de MAC (intégrité)
- Les IVs (initialization vectors)
CHANGE CIPHER SPEC
À ce stade, les deux parties sont prêtes à chiffrer la communication. Chacune envoie un
message "ChangeCipherSpec", pour dire :
"À partir de maintenant, tous les messages seront chiffrés avec les clés dérivées."
Puis un message "Finished" est envoyé :
- Chiffré
- Signé avec un hash de tout le handshake, vérifiant ainsi que personne n’a modifié
les messages.
ÉCHANGE SECURISE DES DONNEES
Désormais, les messages sont :
- Chiffrés (confidentialité)
- Signés/MACés (intégrité/authenticité)
- Grâce à des clés symétriques dérivées du Master Secret
Département Mathématique et Informatique Niveau : IN3 23
PROTOCOLE HTTPS
VI. CONFIGURATION ET INSTALLATION
PRATIQUE(APACHE)
1er étape : Mise à jour de la liste des paquets
Etant sur une distribution linux (ubuntu), la première chose à faire est de s'assurer que
votre système Ubuntu est à jour au travers de la commande : ‘’ sudo apt update ’’
Réf : par nos soins
2e étape : Installation du serveur Apache
Ayant mis les paquets à jour, nous allons passer à l’installation d’apache au travers de
la commande : ‘’ sudo apt install apache2 ’’
3e étape: vérifier si le server apache est bien installer
Après son installation le server apache peut connaitre trois étapes à savoir
- Start ou en marche qui permet de lancer le serveur apache, la commande est la
suivante : ‘’ sudo service apache2 start ’’
Département Mathématique et Informatique Niveau : IN3 24
PROTOCOLE HTTPS
- Status qui permet de voir si le server apache est en marche ou en arrêt, la
commande est la suivante : ‘’ sudo service apache2 status ’’
Réf : par nos soins.
Si vous avez le résultat précèdent, suffit d’aller dans l’url d’un navigateur et de saisir
‘’http//localhost ’’ et vous obtiendrez le résultat suivant :
Réf : par nos soins.
Ici nous pouvons constate un manque de sécurité au niveau de l’url qui me matérialise
par l’absence du Cardenas.
- Stop qui permet d’arrêter le server apache la commande est la suivante :
Département Mathématique et Informatique Niveau : IN3 25
PROTOCOLE HTTPS
‘’sudo service apache2 stop ’’
Réf : par nos soins.
4e étape : installation du module SSL/TLS pour apache
Il permet de sécuriser les requêtes http en https, la commande ‘’ sudo a2enmod ssl ’’
permettant ainsi ça mise en place
Réf : par nos soins.
Puis relancer apache à l’aide de la commande ‘’sudo service apache2 reload ’’
Réf : par nos soins.
5e étapes : Création d’un certificat SSL auto-signé (si tu n’as pas de domaine)
La commande suivante permet sa réalisation
‘’ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/[Link] \
-out /etc/ssl/certs/[Link] ’’
Département Mathématique et Informatique Niveau : IN3 26
PROTOCOLE HTTPS
Réf : par nos soins.
6e étapes : Configurer un site HTTPS
Permet de créer les différents fichiers de configuration, la commande est la suivante :
‘’ sudo nano /etc/apache2/sites-available/[Link] ’’
Réf : par nos soins.
Et vous aurez une interface vierge qui se présentera et vous n’aurez qu’à copier le
script suivant et à coller :
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName [Link]
DocumentRoot /var/www/html
SSLEngine on
Département Mathématique et Informatique Niveau : IN3 27
PROTOCOLE HTTPS
SSLCertificateFile /etc/ssl/certs/[Link]
SSLCertificateKeyFile /etc/ssl/private/[Link]
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/[Link]
CustomLog ${APACHE_LOG_DIR}/[Link] combined
</VirtualHost>
Département Mathématique et Informatique Niveau : IN3 28
PROTOCOLE HTTPS
Et vous obtiendrez le résultat suivant :
Réf : par nos soins.
7e etapes : Activer le site SSL
‘’ sudo a2ensite [Link] ’’
Réf : par nos soins.
Département Mathématique et Informatique Niveau : IN3 29
PROTOCOLE HTTPS
Puis relancer le server apache et puis revenez dans le navigateur ajouter un ‘’s’’ au
niveau du http et vous obtiendrez le résultat suivant :
Réf : par nos soins.
Et vous observer la présence du Cardenas au niveau de l’url, matérialisant la sécurité
du site.
Département Mathématique et Informatique Niveau : IN3 30
PROTOCOLE HTTPS
VII. Configuration Apache HTTPS - Script Shell
Script Shell : Installation et Configuration Apache avec HTTPS sur Ubuntu
#!/bin/bash
# Définir les variables DOMAIN="[Link]" SITE_DIR="/var/www/gci"
SSL_DIR="/etc/apache2/ssl"
CONF_FILE="/etc/apache2/sites-available/[Link]"
echo "Mise à jour des paquets..." sudo apt update
echo "Installation d'Apache..." sudo apt install -y apache2
echo "Activation du module SSL..." sudo a2enmod ssl
echo "Création du répertoire du site : $SITE_DIR" sudo mkdir -p $SITE_DIR
echo "<h1>Bienvenue sur $DOMAIN en HTTPS !</h1>" | sudo tee
"$SITE_DIR/[Link]"
echo "Création des certificats SSL auto-signés..." sudo mkdir -p $SSL_DIR
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout
"$SSL_DIR/[Link]" \
-out "$SSL_DIR/[Link]" \
-subj "/C=FR/ST=France/L=Paris/O=GCI/CN=$DOMAIN"
echo "Création du fichier de configuration HTTPS..." sudo bash -c "cat >
$CONF_FILE" <<EOF
<IfModule mod_ssl.c>
<VirtualHost *:443> ServerName $DOMAIN ServerAlias www.$DOMAIN
DocumentRoot $SITE_DIR
SSLEngine on
SSLCertificateFile $SSL_DIR/[Link] SSLCertificateKeyFile $SSL_DIR/[Link]
Département Mathématique et Informatique Niveau : IN3 31
PROTOCOLE HTTPS
ErrorLog \${APACHE_LOG_DIR}/monsite_error.log
CustomLog \${APACHE_LOG_DIR}/monsite_access.log combined </VirtualHost>
</IfModule> EOF
Configuration Apache HTTPS - Script Shell
echo "Activation du site HTTPS..." sudo a2ensite [Link]
echo "Redémarrage du serveur Apache..." sudo service apache2 reload
echo "Installation et configuration terminées !"
echo "Accédez à : [Link] -I | awk '{print $1}')"
Département Mathématique et Informatique Niveau : IN3 32
PROTOCOLE HTTPS
CONCLUSION
La transition du HTTP vers le HTTPS n’est plus une simple option, mais une nécessité
pour garantir la confidentialité, l’intégrité et l’authenticité des communications sur le
web. Grâce aux protocoles de sécurité comme SSL/TLS, le HTTPS permet de chiffrer
les échanges, rendant ainsi plus difficile l’interception ou la manipulation des données
par des attaquants.
Toutefois, bien que HTTPS offre un niveau de sécurité élevé, il n’est pas infaillible et
peut lui aussi être la cible d’attaques sophistiquées. Il est donc crucial de bien configurer
les serveurs (comme Apache), de suivre les bonnes pratiques en matière de cyber
sécurité et de rester informé des évolutions technologiques.
En somme, l’intégration du TLS dans le http sécurise la communication au niveau de la
couche application Layer et Transport Layer, mais ne chiffre pas les données de niveau
inferieur notamment le numéro de port et l’adresse IP. Ce qui nécessitera l’ajout des
protocoles tels que : IPSEC, VPN etc… pour une communication encore plus sécurisée
en masquant le numéro de port et l’adresse IP.
Département Mathématique et Informatique Niveau : IN3 33
PROTOCOLE HTTPS
REFERENCES
Comprendre les différences entre HTTP et HTTPS Keyfactor
Sécurité des applications web, failles et attaques courantes - Vaadata
HTTPS vs HTTP : Le Guide Complet pour Comprendre …… - AYRADE
Département Mathématique et Informatique Niveau : IN3 34
PROTOCOLE HTTPS
LEXIQUE
DHE : Diffie Hellman Ephemeral
ECDHE : Elliptic Curve Diffie-Hellman Ephemeral
RSA : Rivest–Shamir–Adleman
AES : Advanced Encryption Standard
CBC : Cipher Block Chaining
GCM : Galois/Counter Mode
SHA : Secure Hash Algorithm
MAC : Message Authentication Code
SNI: Server Name Indication
ALPN : Application-Layer Protocol Negotiation
UDP : User Datagram Protocol
VPN : Virtual Private Network
IPSEC : Internet Protocol Security
Département Mathématique et Informatique Niveau : IN3 35