Maison  >  Article  >  Applet WeChat  >  Les développeurs de mini-programmes doivent prêter attention à l'analyse approfondie du protocole HTTPS

Les développeurs de mini-programmes doivent prêter attention à l'analyse approfondie du protocole HTTPS

高洛峰
高洛峰original
2017-02-27 14:11:571723parcourir

Difficultés d'accès aux mini-programmes WeChat

Le Nouvel An lunaire approche et les mini-programmes WeChat seront publiés comme prévu. Les développeurs rencontreront les problèmes suivants lors de l'accès aux mini-programmes WeChat :

. Le mini-programme nécessite que la communication avec le serveur soit effectuée via HTTPS. Si le développeur choisit de créer lui-même le service HTTPS, il devra demander et déployer son propre certificat SSL pour terminer l'établissement du service https. et long ; et le SSL de HTTPS doit être analysé et doit être analysé sur le serveur. Le processeur a une surcharge importante.

Non seulement les mini-programmes, la plateforme Apple iOS et Google Android ont également progressivement forcé les développeurs à utiliser l'accès HTTPS en 2017. HTTPS semble être un seuil incontournable, causant des maux de tête à de nombreux développeurs.

En réponse aux problèmes ci-dessus, le service d'équilibrage de charge de Tencent Cloud (équilibrage de charge cloud) espère fournir des services d'application de certificat SSL en un clic en optimisant les performances de HTTPS, en abaissant le seuil d'application et le coût d'utilisation de HTTPS, permettant aux développeurs d'accéder rapidement à des services tels que les mini-programmes WeChat. Tout d’abord, jetons un coup d’œil à HTTP et HTTPS pour percer vos mystères un par un.

2. Pourquoi devriez-vous vous connecter à HTTPS - les risques de sécurité du HTTP

Le protocole HTTP est un protocole très simple et efficace. La plupart des applications grand public sur Internet utilisent HTTP par défaut. En raison des limitations des performances et de l'environnement d'utilisation dans les années 1990, le protocole HTTP lui-même n'est pas un protocole conçu pour la sécurité. Il n'y a ni authentification d'identité ni test de cohérence. Le plus gênant est que tout le contenu HTTP est transmis en texte clair.

D'un autre côté, le développement d'Internet évolue également chaque jour qui passe, et diverses applications HTTP continuent de pénétrer dans tous les aspects de la vie des gens. Qu'il s'agisse de réseaux sociaux, d'achats, de finances, de jeux ou de recherche, ces services HTTP peuvent apporter une grande commodité aux gens et améliorer la qualité et l'efficacité de la vie.

De toute évidence, HTTP est étroitement lié à la vie et aux intérêts économiques des gens. Malheureusement, il n’est pas sécurisé. Cela signifie qu’il doit y avoir d’énormes risques de sécurité cachés ici. Ces dangers cachés se concentrent sur les deux aspects suivants :

1. Fuite de confidentialité

Étant donné que HTTP lui-même est une transmission en texte clair, le contenu de la transmission entre l'utilisateur et le serveur peut être visualisé par le intermédiaire. En d’autres termes, des informations telles que vos recherches en ligne, vos achats, les sites Web visités, les pages cliquées, etc. peuvent toutes être obtenues par des « intermédiaires ». Étant donné que la plupart des Chinois ne prêtent pas beaucoup d’attention à la protection de la vie privée, les risques sont ici relativement cachés et les conséquences des préjudices ne sont pas faciles à évaluer quantitativement. Certaines des fuites de confidentialité connues les plus graves incluent :

Le statut de connexion QQ a été volé par des criminels, puis connecté à un autre endroit pour faire de la publicité et de la fraude.

Le numéro de téléphone portable et les informations d’identité de l’utilisateur ont été divulgués.

Fuite du comportement en ligne de l’utilisateur. Par exemple, si vous recherchez un hôpital, quelqu’un vous appellera bientôt pour en faire la promotion (publicité inefficace).

2. Piratage de pages

Le risque de fuite de confidentialité est relativement caché et les utilisateurs l'ignorent pratiquement. Mais l'impact d'un autre type de détournement est très évident et direct : le détournement de page, c'est-à-dire la falsification directe de la page de navigation de l'utilisateur. Il existe de nombreux détournements de pages très simples et grossiers, insérant directement des publicités de tiers ou des informations d'invite de trafic provenant des opérateurs.

小程序开发者需要关注HTTPS 协议深度解析

Mais il existe aussi des détournements plus subtils, comme le détournement de page JD suivant : L'image ci-dessus est une page utilisant HTTP, et il y a une page indiquée par la flèche du haut. Les recommandations d'achat sont très réalistes, tout comme les outils officiels de JD.com ou les navigateurs.

小程序开发者需要关注HTTPS 协议深度解析

Mais si vous passez à l'accès HTTPS, une telle page d'outil n'existe pas, et elle est évidemment détournée.

小程序开发者需要关注HTTPS 协议深度解析

3. Chemins et classifications du détournement

Comment se produit le détournement ? Techniquement parlant, c'est relativement simple. Il suffit de surveiller et de falsifier le contenu partout où il passe. Cependant, pour comprendre l’ensemble de la chaîne industrielle du détournement, nous devons approfondir l’industrie noire, ce qui est plus difficile. Une chose est sûre, c'est que la plupart des détournements se produisent au niveau des nœuds intermédiaires du réseau, également appelés « l'homme du milieu » (MITM). Comme le montre la figure ci-dessous :

小程序开发者需要关注HTTPS 协议深度解析

Étant donné que la transmission des informations doit passer par les « nœuds intermédiaires » mentionnés ci-dessus, ils ont également l'autorisation de lire et d'écrire les informations. Si les informations ne sont pas cryptées, il n'y a pas de vérification. Si vous souhaitez vérifier la confidentialité et falsifier la page, c'est très simple pour l'« intermédiaire ».

Quelles sont les principales catégories de détournement ? Selon le parcours de détournement, il existe principalement trois catégories comme le montre la figure ci-dessous :

小程序开发者需要关注HTTPS 协议深度解析

Détournement de DNS, détournement de clients et détournement de liens. Selon nos statistiques incomplètes, la plupart des détournements (90 %) rencontrés par les entreprises sont des détournements de liens.

3. HTTPS est une arme nucléaire pour résoudre le piratage de liens

Pourquoi HTTPS peut-il bien résoudre le piratage de liens ? Principalement trois armes :

1. Authentification de l'identité - anti-contrefaçon, anti-répudiation

Chaque fois qu'une nouvelle connexion HTTPS est établie, l'identité doit être authentifiée pour garantir que l'utilisateur accède Site Web à objectif correct.

小程序开发者需要关注HTTPS 协议深度解析

2. Cryptage du contenu - anti-écoute clandestine

Le cryptage du contenu signifie que le contenu de la communication de bout en bout est entièrement constitué de texte chiffré et que l'intermédiaire ne peut pas le faire. afficher directement le texte brut HTTPS tout Le contenu de la couche application est crypté et déchiffré via un cryptage symétrique.

小程序开发者需要关注HTTPS 协议深度解析

3. Vérification de la cohérence - anti-falsification

Empêcher les intermédiaires de falsifier le contenu des messages et garantir la cohérence des données via les codes MAC et les clés partagées.

小程序开发者需要关注HTTPS 协议深度解析

4. La douleur de la vulgarisation du HTTPS

En fait, HTTPS est né en 1995 et est un protocole très ancien et mature. Dans le même temps, il peut empêcher efficacement le détournement de contenu et protéger la confidentialité des utilisateurs. Mais pourquoi jusqu'à aujourd'hui, la plupart des sites Web ne prennent toujours pas en charge HTTPS et utilisent uniquement HTTP ?

小程序开发者需要关注HTTPS 协议深度解析

La principale raison affectant la popularité du HTTPS peut être résumée en deux mots : " Lent " et " cher ".

1. Lent

Sans aucune optimisation, HTTPS ralentira sérieusement la vitesse d'accès de l'utilisateur. Les principaux facteurs incluent :

Le réseau prend beaucoup de temps. En raison des dispositions du protocole, une transmission réseau doit être effectuée. Par exemple, prise de contact complète SSL, saut 302, etc. Dans le pire des cas, cela pourrait ajouter 7 RTT.

小程序开发者需要关注HTTPS 协议深度解析

Temps de calcul. Le client et le serveur doivent effectuer un cryptage et un déchiffrement symétriques, une analyse de protocole, un calcul de clé privée, une vérification de certificat et d'autres calculs, ce qui ajoute beaucoup de temps de calcul.

2. Cher

HTTPS est cher, cela se reflète principalement dans les trois aspects suivants :

Coût du serveur. Le calcul de la clé privée de HTTPS entraînera une forte baisse des performances du serveur, qui est même inférieure à un dixième de celle du protocole HTTP. En d'autres termes, si les performances de HTTP sont de 10 000 cps, les performances de HTTPS peuvent n'être que de quelques-unes. cent cps, ce qui augmentera plusieurs fois, voire des dizaines de fois, le coût du serveur.

Coût du certificat. Selon le nombre et le type de certificats, les coûts des certificats peuvent varier de plusieurs centaines à plusieurs millions par an.

Coûts de développement et d'exploitation et de maintenance. Le protocole HTTPS est relativement complexe et des bogues de sécurité surviennent souvent dans l'implémentation open source d'openssl. Une série de problèmes, notamment la configuration du protocole, la mise à jour des certificats, la surveillance de l'expiration, la compatibilité des clients, etc. nécessitent un personnel technique ayant une expérience professionnelle pour suivre et traiter. avec eux.


5. Optimisation des performances HTTPS de Tencent Cloud Load Balancer

Tencent Cloud Load Balancer a été profondément optimisé pour les points faibles du processus de promotion et d'application de HTTPS. . Ensuite, nous présentons ces solutions d'optimisation en détail :

1. Optimisation de la vitesse d'accès

Comme mentionné précédemment, HTTPS est très lent. Nous avons également optimisé la vitesse d'accès principalement à deux niveaux : Protocole. pile et ressources front-end et back-end.

Optimisation de la pile de protocoles Full Link

HTTPS peut être considéré comme HTTP sur SSL, et HTTPS utilise le protocole TCP pour la transmission, donc l'optimisation de l'ensemble de la pile de protocoles implique trois niveaux :

Optimisation TCP. Y compris l'ajustement de la fenêtre de congestion, l'ouverture rapide de TCP, la prise en charge de la réutilisation, la prise en charge du dernier algorithme de contrôle de congestion BBR, etc.

小程序开发者需要关注HTTPS 协议深度解析

Optimisation du protocole SSL. Cache de session distribué, ticket de session, faux départ, fichier d'agrafage ocsp, taille d'enregistrement dynamique, etc.

L'objectif le plus important de l'optimisation du protocole SSL est d'augmenter la proportion de poignées de main simplifiées. Tencent Cloud améliore le taux de négociation simplifié de SSL en implémentant un cache de session global et un ticket de session global, économisant ainsi le temps d'accès des utilisateurs et les ressources informatiques.

小程序开发者需要关注HTTPS 协议深度解析

Optimisation du protocole de la couche application. Prend également en charge SPDY, HTTP2, HSTS, etc.

Le plus grand avantage de HTTP2 par rapport à HTTP1.X est le multiplexage. Il peut envoyer plusieurs requêtes HTTP en parallèle via une connexion TCP. Par rapport à l'envoi série de HTTP1.X, les performances sont sans aucun doute A. beaucoup d'amélioration.

Étant donné que HTTP2 est hérité et développé de SPDY, certains clients plus anciens ne prennent en charge que SPDY et non HTTP2. La plupart des nouveaux clients ne prennent en charge que HTTP2 et ne prennent pas en charge SPDY. Afin d'être compatible avec les performances des anciens et des nouveaux clients, Tencent Cloud prend en charge à la fois SPDY et HTTP2 pour maximiser les performances des anciens et des nouveaux clients.

Optimisation front-end et back-end

La plus grande fonctionnalité et avantage de HTTP2 et SPDY est le multiplexage, qui peut envoyer plusieurs requêtes en parallèle via une seule connexion. Bien que cette fonctionnalité soit très puissante, si les stratégies d’optimisation HTTP traditionnelles sont toujours utilisées, l’effet du multiplexage sera très limité. Par exemple, le partage de nom de domaine, le pipeline, etc. affecteront l'effet de multiplexage. Ainsi, grâce à plusieurs expériences de données, nous avons ajusté certaines ressources front-end, y compris des stratégies d'accès back-end :

Récupération de nom de domaine. Grâce à l'analyse des ressources de page et des performances, confirmez le plan de récupération du nom de domaine, par exemple en ne déplaçant pas plus de 3 pages.

Connexions prédéfinies. STGW fournit des pages de pré-connexion. En analysant le comportement des utilisateurs sur les pages actives, les connexions sont établies à l'avance pour réduire l'impact de la surcharge du protocole sur l'expérience utilisateur.

Déchargement HTTPS complet via les nœuds CDN et IDC mondiaux de Tencent Cloud.

2. Optimisation des performances informatiques

Pour les performances informatiques du HTTPS, Tencent Cloud l'a principalement optimisé à partir de trois niveaux, notamment :

Minimiser la prise de contact complète , améliorant le rapport de prise de contact simplifié. Par exemple, le cache de session global et le ticket de session mentionnés précédemment.

Pour l'inévitable poignée de main complète, Tencent Cloud a implémenté le calcul proxy asynchrone RSA Grâce à la transformation de la pile de protocoles et à l'utilisation de cartes accélératrices matérielles SSL, la puissance de calcul et les capacités de prévention des attaques de HTTPS ont été considérablement améliorées. .

Le processus de calcul du cryptage symétrique a également été optimisé pour une utilisation en scène.

Ce qui suit est une introduction détaillée :

Calcul du proxy asynchrone RSA

Tencent Cloud cible le lien le plus sérieux dans la consommation de performances HTTPS : l'algorithme d'échange de clés asymétrique. Optimisation ciblée. L'idée d'optimisation comprend principalement les trois parties suivantes :

小程序开发者需要关注HTTPS 协议深度解析

Séparation des algorithmes. Cela signifie supprimer les algorithmes qui consomment le plus de ressources CPU et les empêcher de consommer les ressources CPU locales.

Calcul des agents. Utilisez une machine CPU inactive ou une carte d'accélération matérielle SSL dédiée pour effectuer les calculs RSA.

Exécution asynchrone. Lorsque openssl traditionnel exécute RSA, les applications de couche supérieure, telles que NGINX, doivent attendre de manière synchrone. Cette étape est également très influente et doit être modifiée de manière asynchrone, de sorte que lorsque le cluster accélérateur effectue des calculs RSA, le serveur d'accès puisse également recevoir des requêtes d'autres utilisateurs pour améliorer le débit.


Grâce à la transformation en profondeur de la pile de protocoles de prise de contact openssl et aux performances informatiques RSA de la carte accélératrice matérielle SSL, la puissance de calcul SSL de Tencent Cloud CLB a été augmentée de 350 %. Les performances de traitement ECDHE_RSA sur une seule machine atteignent 65 000 cps.

Sélection automatique optimale de l'algorithme de cryptage symétrique

Tencent Cloud fait correspondre l'algorithme de cryptage symétrique optimal en fonction du scénario d'application :

Pour le contenu en streaming tel que des vidéos, aes- est préféré gcm.

Pour les terminaux mobiles qui ne prennent pas en charge les instructions d'accélération matérielle aes-ni, utilisez chacha20-poly1305.

Pour les clients de niveau antique tels que IE6, utilisez l'algorithme RC4.

小程序开发者需要关注HTTPS 协议深度解析

3. Désinstallation parallèle des protocoles

Tencent Cloud CLB prend en charge l'accès et la désinstallation de tous les protocoles HTTP courants actuels. Y compris :

http1.0/http1.1

http2 et son prédécesseur spdy3.1

https, dont ssl3.0, tlsv1.0, tlsv1.1, tlsv1 .2

websocket et websocket sécurisé.

tcp, transfert transparent udp.

CLB peut convertir uniformément les protocoles à sept couches ci-dessus en HTTP1.1 et les transmettre de manière transparente à l'entreprise. Les avantages pour l’entreprise sont également très évidents : HTTPS et HTTP2 peuvent être utilisés sans aucun coût de développement, ce qui réduit considérablement la pression d’adaptation aux différents protocoles et clients.

小程序开发者需要关注HTTPS 协议深度解析

4.Sécurité

Les domaines et scénarios impliqués dans la sécurité sont très vastes. Bien que le HTTPS puisse résoudre complètement le détournement de liens, il est impuissant face aux deux types de problèmes suivants :

Les attaques CC, notamment les attaques informatiques HTTPS, les performances de HTTPS sera réduit Une forte diminution introduit de plus grands risques de sécurité.

Sécurité de l'entreprise, y compris l'injection SQL, le cross-site XSS, les logiciels malveillants de sites Web, etc.

Les deux catégories ci-dessus constituent des problèmes de sécurité extrêmement risqués qui affligent souvent les entreprises.

En réponse aux problèmes ci-dessus, Tencent Cloud a également conçu et mis en œuvre un système de sécurité pour empêcher CC et WAF pour HTTPS, qui peut se défendre efficacement contre de tels risques de sécurité.

小程序开发者需要关注HTTPS 协议深度解析

L'importance de la clé privée sans clé (pas de chargement de clé)

Les amis qui connaissent un peu les certificats savent que les clés et les certificats SSL sont tous deux à utiliser, un certificat doit correspondre de manière unique à une clé privée. L'élément de données le plus important de l'ensemble du HTTPS est la clé privée SSL. Si la clé privée est divulguée, l'ensemble du processus de négociation peut être détourné, la signature peut être falsifiée et la clé symétrique peut être déchiffrée. Il n’y a rien de sécurisé dans HTTPS dans son ensemble.

Solutions et risques d'utilisation de clé privée traditionnelle

La solution de clé privée traditionnelle consiste à lier la clé privée à l'application. Par exemple, si vous souhaitez utiliser HTTPS avec les célèbres nginx et apache, vous devez déployer les certificats et clés privées appropriés sur la machine d'accès sur laquelle nginx est déployé.

小程序开发者需要关注HTTPS 协议深度解析

Cette solution aura les problèmes de sécurité suivants : La clé privée est déployée dans le cloud ou le CDN. Et si elle est divulguée ?

Méthode sans clé

Bien que l'intranet de Tencent Cloud soit très sécurisé, par responsabilité pour la sécurité de ses clients, il élimine complètement les inquiétudes des utilisateurs concernant les fuites de clés privées et garantit leur sécurité. sur leurs clés privées. Pour un contrôle absolu, Tencent Cloud propose une solution de chargement sans clé privée. Le cœur de cette solution est qu '"il n'est pas nécessaire de stocker des clés privées dans Tencent Cloud, ce qui permet aux utilisateurs d'utiliser leurs propres serveurs pour stocker les clés privées et compléter l'accès HTTPS". Tencent Cloud n'a pas accès aux clés privées et les clients peuvent même stocker des clés privées sur leurs propres serveurs à la maison.

Son processus d'accès est le suivant :

L'utilisateur initie une demande de prise de contact HTTPS.

En ce qui concerne le calcul de la clé privée, Tencent Cloud CLB transmettra la demande de calcul de la clé privée au propre serveur sans clé de l'utilisateur via un protocole personnalisé crypté.

Le service sans clé appelle la clé privée de l'utilisateur pour terminer le calcul.

Le service sans clé renvoie les résultats du calcul à Tencent Cloud CLB.

CLB continue le traitement des requêtes HTTPS.

Dans l'ensemble du processus, Tencent Cloud n'a pas accès à la clé privée HTTPS. Il convient de noter que le serveur sans clé est un programme serveur fourni par Tencent Cloud. Le code est open source et l'utilisateur. peut le déployer indépendamment. Le comportement du serveur est contrôlé par l'utilisateur.

小程序开发者需要关注HTTPS 协议深度解析

6. Seuil zéro, accès rapide HTTPS aux mini-programmes WeChat

L'équilibreur de charge Tencent Cloud CLB y parvient grâce à une optimisation en profondeur de la pile de protocoles. et serveur Une énorme amélioration des performances HTTPS. Dans le même temps, nous avons également considérablement réduit le coût des certificats en coopérant avec des agences de certification de renommée internationale. Tencent Cloud CLB peut apporter des avantages très significatifs à l'accès au mini-programme WeChat dans les aspects suivants :

Fournit une application de certificat SSL en un clic, le service d'équilibrage de charge CLB sert de proxy HTTPS, réduisant ainsi la charge de développement. sur le développement des petites entreprises de programmes.

L'utilisation de HTTPS ne réduira pas la vitesse d'accès côté client. Les délais d'accès HTTP et HTTPS sont presque les mêmes.

Performances de chiffrement et de déchiffrement SSL d'un seul serveur du cluster, jusqu'à 6,5 Wcps de prise de contact complète. Par rapport aux processeurs hautes performances, il est amélioré d'au moins 3,5 fois, ce qui permet de réduire les coûts de serveur, d'améliorer considérablement les capacités de service lorsque les opérations commerciales et le trafic augmentent, et d'améliorer les capacités de défense informatique contre les attaques.

Prend en charge la désinstallation et la conversion de plusieurs protocoles. Réduisez la pression sur l'entreprise pour s'adapter aux différents protocoles clients. Le backend de l'entreprise n'a besoin de prendre en charge que HTTP1.1 pour utiliser HTTP2, SPDY, SSL3.0, TLS1.2 et d'autres versions de protocoles. Répondez aux exigences de protocole des mini-programmes WeChat, des plateformes iOS, etc.

Demande, suivi et remplacement du certificat SSL. Nous entretenons une coopération approfondie avec Comodo et Symantec, les principaux fabricants internationaux de certificats, et disposons d'un système de service complet.

Fonctions Anti-CC et WAF. Il peut prévenir efficacement les attaques de la couche application telles que les connexions lentes, les attaques à virgule fixe à haute fréquence, l'injection SQL et les logiciels malveillants de pages Web.


Les avantages ci-dessus peuvent aider les développeurs à abaisser le seuil d'essai de HTTPS.

Pour les développeurs de petits programmes qui doivent prêter attention à l'analyse approfondie du protocole HTTPS, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn