paint-brush
Un guide simplifié des certificats TLS 📝par@jaypmedia
881 lectures
881 lectures

Un guide simplifié des certificats TLS 📝

par Jean-Paul Rustom8m2023/08/09
Read on Terminal Reader

Trop long; Pour lire

Pour assurer une communication sécurisée sur l'Internet public, JayP doit résoudre les problèmes d'authentification, de confidentialité et d'intégrité. Les certificats numériques jouent un rôle essentiel dans la résolution de ces problèmes. Ils vérifient l'identité de sites Web comme YouTube et empêchent les attaques de l'homme du milieu en confirmant la source de la clé publique. Les autorités de certification (CA) signent des certificats numériques, créant ainsi une chaîne de confiance. Les systèmes d'exploitation incluent des autorités de certification racine de confiance et les sites Web obtiennent des certificats intermédiaires auprès des autorités de certification. Le navigateur vérifie l'authenticité des certificats par hachage et décryptage, garantissant des connexions sécurisées. Trois types de certificats TLS sont expliqués : domaine unique (pour un domaine spécifique), caractère générique (pour le domaine principal et les sous-domaines) et multi-domaine (SAN, pour plusieurs domaines non liés dans un certificat).
featured image - Un guide simplifié des certificats TLS 📝
Jean-Paul Rustom HackerNoon profile picture
0-item

Supposons que JayP souhaite se connecter à youtube.com via l'Internet public. Avant toute communication, certaines préoccupations se poseront :


Comment peut-il vérifier qu'il communique bien avec youtube ? (Authentification)

Comment JayP peut-il savoir que personne n'a intercepté son message ? (Confidentialité)

Aussi, comment peut-il être sûr que personne n'a altéré le message ? (Intégrité)


Eh bien, abordons chaque problème séparément. Tout d'abord, JayP doit vérifier l'identité de Youtube . Pour cela, il a besoin de la clé publique de Youtube. La clé publique représente l'identité de YouTube.


Le problème

Le problème est que les attaquants ont trouvé des moyens d'intercepter une requête d'un ordinateur à un autre ordinateur sur Internet et de lancer une attaque de type "man-in-the-middle" . Avec ce genre d'attaque, notre attaquant Chady injecterait sa propre clé publique et ferait croire à JayP qu'il communique avec Youtube, alors qu'en réalité, il communique avec Chady.


Chady se faufile et envoie SA clé publique


Chady se faufile et envoie SA clé publique.


Maintenant, vous pouvez penser, effrayant, n'est-ce pas ? Imaginez ce qui pourrait être possible avec ce type d'attaque, du vol d'informations personnelles telles que les identifiants de connexion ou les détails de la carte de crédit à la distribution de logiciels malveillants ou à d'autres objectifs malveillants. Comment alors, JayP peut-il être sûr que la clé publique qu'il a reçue provient bien de Youtube ? C'est là qu'interviennent les certificats numériques. (TADAAA)


Exemple de certificat TLS


Ils assurent que la clé publique provient bien de Youtube, et non d'un Chady malveillant. En fait, les certificats numériques peuvent être utilisés non seulement pour HTTPS, mais aussi pour le courrier, l'IOT et le VPN...


Informations à l'intérieur du certificat TLS

Un certificat numérique contiendra pas mal d'informations, explorons les plus importantes :


Certificat de Youtube tel qu'indiqué dans le navigateur Chrome


  • L'émetteur est le tiers qui a signé ce certificat, nous y reviendrons un peu. Certaines informations de base comprendront le nom commun, l'organisation et le pays.

  • Bien entendu, un certificat numérique comportera également sa Validité , avec deux champs critiques, pas avant et pas après

  • Le sujet est le propriétaire du certificat et serait Youtube dans notre cas. Le sujet contiendra des informations telles que le nom commun, l'adresse et, surtout, la clé publique.

  • Enfin, un certificat numérique comporte sa Signature . C'est la signature signée par l'émetteur qui prouve que ce certificat est authentique.


    Autorité de certification


Qui signe le certificat numérique ?

Les certificats numériques sont signés par des entités appelées autorités de certification (par exemple DigiCert, Comodo, Symantec, Google Trust Services).

Mais attendez, que sont les autorités de certification ?

Eh bien, en un mot, les autorités de certification sont des organisations tierces de confiance chargées de délivrer des certificats numériques.

Autorité de certification


Les autorités de certification ont leurs propres clés publiques et privées. À partir de là, expliquons comment les signatures sont faites.


Les informations mentionnées précédemment contenues dans un certificat numérique seront hachées à l'aide d'un algorithme SHA-256 , par exemple. Une fois le hachage généré, l'autorité de certification chiffre le hachage à l'aide de sa clé privée à l'aide du chiffrement à clé asymétrique RSA. Ce hachage chiffré est la signature d'un certificat et ne peut être déchiffré qu'à l'aide de la clé publique de l'autorité de certification. Toute personne disposant de la clé publique de l'autorité de certification qui a signé ce certificat peut déchiffrer et vérifier que le certificat est authentique et n'a pas été falsifié.


Lorsque le navigateur reçoit le certificat, il hache toutes les informations de son côté en utilisant le même algorithme de hachage, dans cet exemple, SHA-256. Ensuite, il déchiffre la signature à l'aide de la clé publique de l'autorité de certification pour que le hachage soit reçu de l'autorité de certification. Si les deux hachages correspondent, le navigateur peut confirmer que ce certificat provient bien de l'autorité de certification revendiquée.


Hiérarchies pour les autorités de certification

Des hiérarchies existent pour les autorités de certification : l'autorité de certification racine et l'autorité de certification intermédiaire.



Autorité de certification racine et intermédiaire



Ces autorités de certification racine n'émettent pas directement de certificats numériques pour les serveurs. Elle n'émet de certificats numériques que pour les AC intermédiaires qui agissent en son nom. Les CA intermédiaires peuvent émettre des certificats numériques pour une autre CA intermédiaire ou directement pour un serveur.



Par conséquent, il existe une chaîne de confiance, de l'autorité de certification racine au serveur.

Les systèmes d'exploitation sont livrés avec un magasin de confiance, qui est une liste d'autorités de certification racine de confiance. Cette liste est maintenue par les sociétés qui fabriquent des systèmes d'exploitation comme Apple et Microsoft. Ils nécessitent tous qu'une autorité de certification racine subisse un ou plusieurs audits prouvant leur fiabilité et leur validité.


Comment tout cela s'intègre-t-il dans l'image?

Visualisons l'ensemble du processus depuis le début.

Tout d'abord, supposons que youtube.com est une toute nouvelle startup. Comprenant la nécessité d'être sécurisé sur un Internet accessible au public, Youtube devrait posséder un certificat numérique de confiance et le présenter à ses visiteurs.



Étape 1 : Youtube achète un certificat numérique

Tout d'abord, Youtube part à la recherche d'une autorité de certification intermédiaire. N'oubliez pas que les autorités de certification intermédiaires sont des intermédiaires entre les serveurs et les autorités de certification racine. Dans le cas de Youtube, Google possède sa propre autorité de certification appelée Google Trust Services.



Après avoir choisi une autorité de certification intermédiaire, Youtube fait une demande de signature de certificat. La demande de signature de certificat contiendra des informations qui seront incluses dans le certificat numérique de Youtube, telles que le nom commun, l'organisation et, surtout, la clé publique de Youtube. Youtube enverra la demande de signature de certificat à l'autorité de certification intermédiaire.



L'autorité de certification intermédiaire vérifiera le CSR contenant des informations sur le propriétaire, également appelé sujet. Ensuite, il ajoute des champs comme les informations sur l'émetteur, qui sont des informations sur le certificat intermédiaire, et la validité, puis signe toutes ces informations comme expliqué précédemment dans le processus de signature. Après la signature, l'autorité de certification intermédiaire renverra le certificat numérique pour youtube.


Youtube peut désormais joindre son certificat numérique nouvellement acheté à ses serveurs Web.


Étape 2 : JayP se connecte à youtube.com pour regarder des vidéos de fitness


Lorsqu'il se connecte à Youtube, Youtube enverra son propre certificat et des certificats d'autorités de certification intermédiaires. L'autorité de certification racine ne sera pas envoyée car elle est disponible sur le système d'exploitation de JayP. Le certificat de Youtube comprendra les informations sur l'émetteur, qui est l'autorité de certification intermédiaire. Le navigateur saura donc que ce certificat est signé par Google Trust Services Intermediate Certificate Authority, et aura son certificat. Tout certificat numérique contiendra des informations et une signature, comme expliqué précédemment. Le navigateur va hacher toutes les informations pour obtenir sa valeur de hachage. Ensuite, il déchiffrera la signature à l'aide de la clé publique de l'émetteur, c'est-à-dire la clé publique de l'autorité de certification intermédiaire. Encore une fois, rappelez-vous que la signature ne peut être déchiffrée qu'à l'aide de la clé publique de l'émetteur. Après cela, le navigateur comparera les deux valeurs de hachage, si elles sont identiques, alors cette partie de la chaîne est vérifiée, et le navigateur passera à la vérification de l'autorité de certification intermédiaire car, comme expliqué, les autorités de certification intermédiaires ne sont pas approuvées directement par les systèmes d'exploitation.



D'accord, le navigateur va maintenant vérifier le certificat de Google Trust Intermediate Certificate Authority. Ce certificat intermédiaire est signé par l'autorité de certification racine de Google Trust Services. Veuillez noter qu'avant cette étape, nous pourrions avoir de nombreuses autorités de certification intermédiaires entre le certificat final et le certificat racine, et pour chaque partie de la chaîne, le même processus de vérification se produira.



Dans notre exemple, nous nous en tiendrons à un seul. La signature du certificat de l'autorité de certification intermédiaire sera vérifiée avec la clé publique de l'autorité de certification racine, comme indiqué précédemment. Lorsque vous atteignez l'autorité de certification racine, c'est là que la chaîne se termine. L'autorité de certification racine, qui est auto-signée, sera disponible dans le magasin de confiance du système d'exploitation de JayPee.




C'est ça! Le navigateur, après cette vérification, affichera une jolie icône de cadenas, comme celle de votre navigateur. Maintenant, il est garanti que la communication est vraiment avec Youtube et qu'elle est sûre (HOORAY)


Trois types de certificats de domaine

Avant de conclure, nous expliquerons brièvement trois principaux types de certificats TLS.


1) Certificat de domaine unique

Un certificat de domaine unique est conçu pour sécuriser un seul nom de domaine complet. Cela signifie que le certificat n'est valable que pour un domaine spécifique et ne couvre aucun sous-domaine ou domaine supplémentaire. Par exemple, pour le domaine "www.youtube.com", un certificat de domaine unique ne sécuriserait que ce domaine et aucune autre variante comme "academy.youtube.com" ou "blog.youtube.com"

Cas d'utilisation : les certificats de domaine unique sont idéaux lorsque vous avez un seul site Web ou une seule application Web qui ne nécessite pas de sous-domaines supplémentaires. Il s'agit de l'option la plus simple et la plus rentable pour sécuriser un domaine spécifique.


2) Certificat générique


Ensuite, nous avons un certificat générique, qui est un type de certificat TLS émis pour un domaine principal et tous ses sous-domaines à l'aide d'un seul certificat. L'astérisque de caractère générique est utilisé dans le champ Nom commun (CN) ou le champ Autre nom de sujet (SAN) pour indiquer que tout sous-domaine sous le domaine spécifié est couvert. Par exemple, si vous disposez d'un certificat générique pour " .youtube.com ", il sécurisera " youtube.com ", " academy.youtube.com " , blog.youtube.com", etc.


Cas d'utilisation : les certificats génériques vous évitent d'avoir à gérer et à renouveler des certificats individuels pour chaque sous-domaine. Cependant, il est essentiel de noter que les certificats génériques ne couvrent qu'un seul niveau de sous-domaines. Par exemple, un certificat générique pour "*.youtube.com" ne couvrira pas "academy.blog.youtube.com".


3) Certificat multi-domaine (SAN)


Un certificat multi-domaine, également connu sous le nom de certificat de nom alternatif de sujet, vous permet de sécuriser plusieurs domaines non liés au sein d'un seul certificat. Chaque domaine ou sous-domaine à sécuriser est répertorié dans l'extension SAN (Subject Alternative Name) du certificat.


Par exemple, Google et d'autres grandes entreprises utiliseraient ces certificats multi-domaines. L'un des principaux avantages serait la gestion simplifiée des certificats : Google exploite de nombreux services et applications Web, chacun avec son propre domaine ou sous-domaine. L'utilisation de certificats multi-domaines leur permet de consolider la gestion des certificats pour plusieurs domaines ou sous-domaines en un seul certificat. Cela rationalise le processus de délivrance, de renouvellement et de surveillance des certificats.



Et c'est tout. Veuillez prendre le temps de regarder la leçon animée.

Dans mon prochain article, je parlerai du chiffrement avec TLS.


Également publié ici.