Comment fonctionne le protocole HTTPS fonctionne réellement, Robert Heaton

1. Qu'est-ce que le protocole HTTPS et que fait-il?

  • Vérification que vous parlez directement au serveur que vous pensez que vous parlez
  • Faire en sorte que seul le serveur peut lire ce que vous envoyez et que vous pouvez lire ce qu'il renvoie

La réalité, une partie très intelligent est que tout le monde peut intercepter chaque un des messages échangés avec un serveur, y compris ceux où vous acceptez la stratégie clé et le chiffrement à utiliser, et ne pas être en mesure de lire l'un des réelle les données que vous envoyez.

2. Comment une connexion SSL est établie

Une connexion SSL entre un client et le serveur est mis en place par une poignée de main, les objectifs qui sont:

  • Pour satisfaire le client qu'il parle au bon serveur (et éventuellement vice versa)
  • Pour les parties se sont entendues sur une « suite de chiffrement », qui comprend l'algorithme de cryptage qu'ils utiliseront pour échanger des données
  • Pour les parties se sont entendues sur toutes les clés nécessaires à cet algorithme

Une fois la connexion établie, les deux parties peuvent utiliser l'algorithme convenu et les clés d'envoyer des messages en toute sécurité les uns aux autres. Nous allons briser la poignée de main en 3 phases principales - Bonjour, certificat d'échange et d'échange de clés.

3. Certificats

Au niveau le plus élémentaire, un certificat SSL est simplement un fichier texte, et tout le monde avec un éditeur de texte peut créer un. Vous pouvez en effet créer trivialement un certificat prétendant que vous êtes Google Inc. et que vous contrôlez le domaine gmail.com. Si tel était toute l'histoire alors SSL serait une blague; vérification de l'identité serait essentiellement le client demande au serveur « êtes-vous Google? », le serveur répondre « heu, oui tout à fait, voici un morceau de papier avec « Je suis Google » écrit dessus » et le client en disant « OK grand, voici toutes mes données. » la magie qui empêche cette farce est dans la signature numérique, qui permet à une partie de vérifier que la pièce d'une autre partie de papier est vraiment légitime.

Il y a 2 raisons sensibles pour lesquelles vous pourriez faire confiance à un certificat:

  • Si elle est sur une liste de certificats que vous avez confiance implicitement
  • Si elle est en mesure de prouver qu'il est approuvé par le contrôleur de l'un des certificats sur la liste ci-dessus

Le premier critère est facile à vérifier. Votre navigateur a une liste pré-installé des certificats SSL de confiance des Autorités de certification (CA) que vous pouvez afficher, ajouter et retirer de la. Ces certificats sont contrôlés par un groupe centralisé de (en théorie, et généralement dans la pratique) des organisations extrêmement sûres, fiables et dignes de confiance comme Symantec, Comodo et GoDaddy. Si un serveur présente un certificat de cette liste, vous savez que vous pouvez leur faire confiance.

3.2 Les signatures numériques

Donc, si un serveur arrive en prétendant avoir un certificat pour Microsoft.com signé par Symantec (ou un autre CA), votre navigateur ne pas prendre sa parole. Si elle est légitime, Symantec ont utilisé leur (ultra-secrète) clé privée pour générer la signature numérique du certificat SSL du serveur, et ainsi de votre utilisation du navigateur peut utiliser leur (ultra-public) clé publique pour vérifier que cette signature est valide. Symantec aura pris des mesures pour assurer l'organisation qu'ils signent pour ne vraiment posséder Microsoft.com, et ainsi étant donné que votre client fait confiance Symantec, il peut être sûr qu'il est vraiment parler de Microsoft Inc.

3.3 auto-signature

Notez que tous les certificats de CA racine sont « auto-signé », ce qui signifie que la signature numérique est générée à l'aide propre clé privée du certificat. Il n'y a rien de spécial intrinsèquement certificat d'une autorité de certification racine - vous pouvez générer votre propre certificat auto-signé et l'utiliser pour signer d'autres certificats si vous voulez. Mais depuis votre certificat aléatoire est pré-chargé non comme un CA dans tous les navigateurs partout, aucun d'entre eux vous faire confiance à signer soit vos propres ou d'autres certificats. Vous dites effectivement « euh oui, je suis tout à fait Microsoft, voici un certificat officiel d'identité délivré et signé par moi-même », et tous les navigateurs fonctionnent correctement jetterez un message d'erreur très effrayant en réponse à vos informations d'identification louches.

3.4 Qu'est-ce que vous approuvez?

4. faits vraiment vraiment fun

4.1 un café peut-il surveiller mon trafic HTTPS sur leur réseau?

4.2 Mon entreprise peut surveiller mon trafic HTTPS sur leur réseau?

Soit dit en passant, c'est aussi la façon dont vous utilisez un proxy pour inspecter et modifier les requêtes HTTPS inaccessibles autrement faites par une application iPhone.

4.3 Qu'est-il arrivé avec lavabit et le FBI?

Une fois qu'il a respecté, GoDaddy, l'lavabit CA, révoqué le certificat, ayant (correctement) a jugé compromis. Cela a ajouté le certificat lavabit à une liste de révocation de certificats (CRL), une liste de certificats discréditées que les clients ne doivent plus faire confiance pour fournir une connexion sécurisée. COMPROMISE, certificats auto-signés ou autrement indignes de confiance provoquent des navigateurs pour afficher un grand message d'erreur rouge et soit dissuadent ou carrément interdire d'autres actions de l'utilisateur. Malheureusement, les navigateurs continueront à faire confiance à un certificat cassé jusqu'à ce qu'ils tirent les plus récentes mises à jour de la liste de révocation, un processus qui est apparemment imparfaite dans la pratique.

5. Conclusion

HTTPS n'est pas incassable, et le protocole SSL doit constamment évoluer en tant que de nouvelles attaques contre elle sont découverts et écrasés. Mais il est encore une façon impressionnante robuste de transmission de données secrètes sans se soucier qui voit vos messages. Il y a bien sûr beaucoup de détails de mise en œuvre ne sont pas mentionnés ici, tels que le format exact et l'ordre des messages poignée de main, poignées de main abrégée pour ramasser des sessions récentes sans avoir à renégocier les clés et les algorithmes de chiffrement, et les nombreuses différentes options de cryptage disponibles à chaque étape. L'essentiel à retenir est que si HTTPS conserve les données en toute sécurité sur le fil à sa destination, en aucune façon, vous protège (comme un utilisateur ou un développeur) contre les fuites de XSS ou la base de données ou l'une des autres choses que go-bosse -dans la nuit. Soyez heureux que ça a le dos, mais rester vigilant. Dans les mots immortels de Will Smith, « Marcher dans l'ombre, se déplacer en silence, garde contre la violence extra-terrestre. »

Articles Liés