SSL/TLS — définition, protocoles et principe de fonctionnement du chiffrement

Auteur : IT Sectr Publié le : 2026-04-02 Temps de lecture : 8 min

SSL (Secure Sockets Layer) et TLS (Transport Layer Security) sont des protocoles cryptographiques qui assurent une transmission sécurisée des données entre un client et un serveur sur le réseau. Ils chiffrent tout le trafic, empêchant l'interception et la modification des données par des attaquants. Selon le Google Transparency Report (2025), plus de 95% de tout le trafic mobile mondial utilise le chiffrement TLS. Sans ce protocole, toute information envoyée via un Wi-Fi ouvert ou un réseau mobile peut être lue par des tiers. Cloudflare, 2024

Points Clés

  • SSL et TLS — des protocoles cryptographiques pour chiffrer les données lors de la transmission sur le réseau, TLS étant la version moderne de SSL.
  • Handshake — le processus d'établissement d'une connexion sécurisée, incluant l'authentification du serveur et la négociation des clés de chiffrement.
  • TLS 1.3 — la version la plus récente du protocole, offrant de meilleures performances et sécurité par rapport à TLS 1.2.
  • Certificats X.509 — des certificats numériques qui vérifient l'authenticité du serveur lors d'une connexion TLS.
  • HTTPS — HTTP sur TLS — la méthode standard pour sécuriser le trafic web dans les applications mobiles.

Qu'est-ce que SSL/TLS ?

SSL (Secure Sockets Layer) est un protocole développé par Netscape en 1995 pour sécuriser le trafic web. La première version, SSL 1.0, n'a jamais été publiée ; SSL 2.0 (1995) et SSL 3.0 (1996) ont été utilisés jusqu'au début des années 2000, mais contenaient des vulnérabilités critiques. SSL a été remplacé par TLS (Transport Layer Security) — une version améliorée standardisée par l'IETF. TLS 1.0 (1999) était basé sur SSL 3.0, tandis que les versions suivantes TLS 1.1 (2006), TLS 1.2 (2008) et TLS 1.3 (2018) se sont progressivement éloignées de l'architecture d'origine, ajoutant de nouveaux algorithmes de chiffrement et corrigeant des vulnérabilités. Aujourd'hui, SSL est considéré comme obsolète et tous les systèmes modernes utilisent TLS, bien que les deux protocoles soient souvent mentionnés ensemble comme SSL/TLS par inertie.

Histoire du protocole

L'histoire de SSL/TLS a commencé avec le besoin de transmission sécurisée des données sur le web naissant. En 1994, Netscape a développé SSL 1.0 pour son navigateur Navigator, mais le protocole n'a jamais été publié en raison de graves problèmes de sécurité. SSL 2.0 est sorti en 1995 et a été utilisé en pratique, mais contenait de nombreuses vulnérabilités : absence de protection contre les attaques Man-in-the-Middle, algorithmes de chiffrement faibles et sensibilité aux attaques par troncature. SSL 3.0 (1996) a corrigé la plupart des problèmes, mais en 2014, la vulnérabilité POODLE a été découverte, après quoi l'IETF a officiellement déclaré toutes les versions de SSL obsolètes. TLS 1.0–1.3 ont progressivement amélioré la robustesse cryptographique, les performances et la confidentialité, TLS 1.3 réduisant le handshake de deux allers-retours à un seul — un point critique pour les applications mobiles avec des connexions instables.

Comment fonctionne le handshake SSL/TLS

Handshake est le processus d'établissement d'une connexion sécurisée entre un client et un serveur. Il se compose de plusieurs étapes séquentielles au cours desquelles les parties s'accordent sur la version du protocole, sélectionnent les algorithmes de chiffrement, échangent les clés et s'authentifient mutuellement. Dans TLS 1.3, le handshake ne nécessite qu'un seul aller-retour réseau (1-RTT), alors que TLS 1.2 en nécessitait deux (2-RTT).

La première étape est l'envoi par le client d'un ClientHello — un message contenant une liste des versions TLS prises en charge, des suites de chiffrement et un nombre aléatoire. Le serveur répond par un ServerHello contenant la version et le chiffrement choisis, son certificat X.509 et une signature numérique. Le client vérifie le certificat via la chaîne d'autorités de certification (CA), génère une clé de session et l'envoie chiffrée avec la clé publique du serveur extraite du certificat. Après confirmation du serveur, la transmission sécurisée des données commence. L'ensemble du handshake prend 1 à 3 millisecondes sur les appareils modernes, le rendant imperceptible pour l'utilisateur.

Certificats X.509 et chaîne de confiance

La base de l'authentification TLS est l'infrastructure à clé publique (PKI) construite sur des certificats au format X.509. Chaque certificat contient : un nom de domaine (Common Name ou Subject Alternative Name), la clé publique du serveur, le nom de l'émetteur (Autorité de Certification), une date d'expiration et la signature numérique de la CA. Le client vérifie le certificat du serveur le long de la chaîne de confiance : du certificat du serveur jusqu'à la CA racine, dont le certificat est intégré dans le système d'exploitation. Sur les appareils Android, les certificats racine sont stockés dans le magasin de clés système, mis à jour via Google Play Services ; sur iOS — via les mises à jour iOS. Si un maillon de la chaîne est rompu (certificat expiré, non-concordance de domaine, CA inconnue), le client interrompt la connexion. Pour les certificats auto-signés (utilisés en développement), une confiance explicite est requise — sur Android via Network Security Config, sur iOS via NSExceptionDomains dans Info.plist. Le processus de validation de la chaîne de certificats inclut également la vérification du statut de révocation via CRL (Liste de Révocation de Certificats) ou OCSP (Protocole de Statut de Certificat en Ligne), bien que sur les appareils mobiles les requêtes OCSP soient souvent ignorées pour accélérer la connexion — c'est un compromis entre sécurité et performance que les architectes doivent prendre en compte.

SSL vs TLS : différences clés

Bien que les termes SSL et TLS soient souvent utilisés de manière interchangeable, il existe des différences techniques fondamentales entre eux qui affectent la sécurité et les performances des applications mobiles.

CaractéristiqueSSL 3.0TLS 1.2TLS 1.3
Année de sortie199620082018
StatutObsolète (RFC 7568)Actif (recommandé)Actuel (meilleur)
Allers-retours221
Algorithme d'échange de clésRSARSA, ECDHEECDHE (uniquement)
Chiffrement authentifiéNonGCM, CCMAEAD obligatoire
Perfect Forward SecrecyNonOptionnelObligatoire

La principale différence entre TLS 1.3 et ses prédécesseurs est l'utilisation obligatoire de Perfect Forward Secrecy (PFS) via le protocole ECDHE. Cela signifie que même si un attaquant accède à la clé privée du serveur, il ne peut pas déchiffrer le trafic intercepté précédemment. Pour les applications mobiles, où le compromission du serveur est une menace réelle, TLS 1.3 avec PFS est une exigence de sécurité obligatoire.

Vulnérabilités connues des anciennes versions

Les anciennes versions de SSL et TLS ont des vulnérabilités bien documentées qui les rendent inadaptées à une utilisation en production. POODLE (CVE-2014-3566) attaque SSL 3.0 via un oracle de padding, permettant de déchiffrer les cookies de session en 256 requêtes. BEAST (CVE-2011-3389) exploite une vulnérabilité dans le mode CBC de TLS 1.0 via un IV prévisible. Heartbleed (CVE-2014-0160) — n'est pas une vulnérabilité du protocole mais un bug dans l'implémentation d'OpenSSL permettant de lire la mémoire du serveur : selon Netcraft, plus de 500 000 serveurs étaient vulnérables en 2014. À partir d'Android 10 (API 29) et d'iOS 13, tous ces protocoles sont désactivés au niveau du système. Néanmoins, les développeurs doivent vérifier la configuration de leur serveur via SSL Labs Test (qualys.com) avant de lancer une application pour s'assurer de l'absence de suites de chiffrement obsolètes et du support de TLS 1.3.

Comment SSL/TLS protège les données dans les applications mobiles

Dans les applications mobiles, TLS protège les données à trois niveaux : chiffrement du contenu (personne sauf le serveur ne peut lire les données), vérification d'intégrité (les données ne peuvent pas être modifiées en transit) et authentification du serveur (le client est certain de se connecter au bon serveur). L'authentification est particulièrement critique : sans elle, un attaquant peut usurper le serveur via un spoofing DNS ou un point d'accès Wi-Fi factice.

Selon une étude de Google Play Protect (2024), 76% des applications Android utilisent TLS correctement avec vérification des certificats. Les 24% restants commettent des erreurs : ils désactivent la vérification des certificats pour les tests (et oublient de la réactiver en production), utilisent des certificats auto-signés sans validation ou autorisent des protocoles obsolètes comme SSL 3.0 et TLS 1.0. Apple App Transport Security (ATS) sur iOS exige au moins TLS 1.2 depuis 2017, et depuis iOS 15, il utilise TLS 1.3 par défaut pour toutes les requêtes réseau. Pour une protection supplémentaire, il est également recommandé de mettre en œuvre Certificate Pinning — le liage à un certificat serveur spécifique.

Implémentation de SSL/TLS dans les applications mobiles

Prenons un exemple de configuration d'une connexion HTTPS sécurisée sous Android avec OkHttp — l'une des bibliothèques réseau les plus populaires. Une configuration correcte inclut l'utilisation forcée de TLS 1.3 et la vérification des certificats.

kotlin
val client = OkHttpClient.Builder()
    .connectionSpecs(
        listOf(
            ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
                .tlsVersions(TlsVersion.TLS_1_3, TlsVersion.TLS_1_2)
                .cipherSuites(
                    CipherSuite.TLS_AES_128_GCM_SHA256,
                    CipherSuite.TLS_AES_256_GCM_SHA384,
                    CipherSuite.TLS_CHACHA20_POLY1305_SHA256
                )
                .build()
        )
    )
    .hostnameVerifier { hostname, session ->
        SSLSession.DefaultHostnameVerifier.verify(hostname, session)
    }
    .build()

Dans cet exemple, nous limitons l'ensemble des versions TLS prises en charge à seulement 1.3 et 1.2, en excluant les obsolètes TLS 1.0/1.1. Les suites de chiffrement sont sélectionnées parmi les algorithmes modernes avec mode AEAD et Perfect Forward Secrecy obligatoire. Le HostnameVerifier vérifie que le nom d'hôte correspond au certificat. Sous iOS, une configuration similaire s'effectue via la configuration URLSession avec le paramètre tlsMinimumSupportedProtocolVersion défini sur .TLSv13. De plus, sur iOS, on peut définir tlsMaximumSupportedProtocolVersion pour limiter la version supérieure — utile pour la compatibilité avec les serveurs existants qui n'ont pas encore migré vers TLS 1.3. Une telle configuration garantit le plus haut niveau de sécurité pour la transmission de données dans une application mobile.

Foire aux questions

Quelle est la différence entre SSL et TLS en pratique ?

TLS est une version plus récente et plus sécurisée du protocole. SSL est obsolète et ne doit pas être utilisé (RFC 7568). En pratique, les deux termes désignent le chiffrement HTTPS, mais techniquement tous les systèmes modernes fonctionnent avec TLS 1.2 ou 1.3.

Comment vérifier si une application mobile utilise TLS ?

Installez un outil proxy comme Burp Suite ou Charles Proxy et interceptez le trafic de l'application. Si la connexion utilise HTTPS et que le certificat est valide — l'application utilise TLS. Si le trafic passe par HTTP — il n'y a pas de chiffrement.

Quelle version de TLS est sûre pour la production ?

Seuls TLS 1.2 et TLS 1.3 sont autorisés pour les versions de production. Les protocoles SSL 3.0, TLS 1.0 et TLS 1.1 doivent être désactivés à la fois sur le serveur et dans l'application cliente. Depuis 2020, les principales plateformes (Android, iOS, navigateurs) exigent au moins TLS 1.2.

Le Certificate Pinning est-il nécessaire avec TLS ?

Oui, c'est recommandé. TLS vérifie le certificat via une chaîne d'autorités de certification, mais si une CA est compromise (comme ce fut le cas avec DigiNotar en 2011), un attaquant peut émettre un faux certificat. Le Pinning ajoute une couche de vérification supplémentaire.

Comment TLS 1.3 améliore-t-il les performances des applications mobiles ?

TLS 1.3 réduit le temps d'établissement de connexion de 2 allers-retours à 1, offrant une amélioration de 30 à 50% lors de la première connexion. Pour les applications mobiles avec des connexions instables (métro, trains), c'est crucial pour la vitesse de chargement des données.

Résumé

  • SSL/TLS — le fondement de la protection des données lors de la transmission réseau, chiffrant tout le trafic entre le client et le serveur.
  • SSL est complètement obsolète — tous les systèmes modernes doivent utiliser TLS 1.2 ou TLS 1.3.
  • TLS 1.3 offre un handshake en 1 aller-retour, Perfect Forward Secrecy obligatoire et le support des chiffrements AEAD modernes.
  • HTTPS — la méthode standard d'application de TLS dans les applications mobiles, obligatoire pour les versions de production.
  • Apple ATS sur iOS 15 utilise TLS 1.3 par défaut, désactivant toutes les versions obsolètes du protocole.
  • OkHttp sur Android nécessite une configuration explicite de ConnectionSpec pour restreindre les versions TLS et les suites de chiffrement.
  • Recommandation : activez uniquement TLS 1.2/1.3 avec échange de clés ECDHE dans votre application et vérifiez les certificats via Certificate Pinning.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi