Heim > Artikel > WeChat-Applet > Entwickler von Miniprogrammen müssen auf die eingehende Analyse des HTTPS-Protokolls achten
Schwierigkeiten beim Zugriff auf WeChat-Miniprogramme
Das neue Mondjahr rückt näher und die WeChat-Miniprogramme werden wie geplant veröffentlicht. Beim Zugriff auf WeChat-Miniprogramme werden die folgenden Probleme auftreten:
Das Miniprogramm erfordert, dass die Kommunikation mit dem Server über HTTPS erfolgt. Wenn der Entwickler den HTTPS-Dienst selbst erstellen möchte, muss er sein eigenes SSL-Zertifikat beantragen und bereitstellen, um die Einrichtung des HTTPS-Dienstes abzuschließen und langwierig; und das SSL von HTTPS muss auf dem Server analysiert werden. Die CPU hat einen erheblichen Overhead.
Nicht nur Mini-Programme, sondern auch die Apple iOS-Plattform und Google Android zwangen Entwickler im Jahr 2017 nach und nach dazu, den HTTPS-Zugriff zu nutzen. HTTPS scheint eine unvermeidbare Schwelle zu sein, die vielen Entwicklern Kopfzerbrechen bereitet.
Als Reaktion auf die oben genannten Probleme hofft der Lastausgleichsdienst (Cloud Load Balance) von Tencent Cloud, SSL-Zertifikatsanwendungsdienste mit einem Klick bereitzustellen, indem die Leistung von HTTPS optimiert, der Anwendungsschwellenwert und die Nutzungskosten von HTTPS gesenkt werden. Dadurch können Entwickler schnell auf Dienste wie WeChat-Miniprogramme zugreifen. Werfen wir zunächst einen Blick auf HTTP vs. HTTPS, um Ihre Geheimnisse nacheinander zu lüften.
2. Warum sollten Sie eine Verbindung zu HTTPS herstellen – die Sicherheitsrisiken von HTTP
Das HTTP-Protokoll ist ein sehr einfaches und effizientes Protokoll. Die meisten Mainstream-Anwendungen im Internet verwenden standardmäßig HTTP. Aufgrund von Leistungs- und Nutzungsbeschränkungen in den 1990er Jahren ist das HTTP-Protokoll selbst kein auf Sicherheit ausgelegtes Protokoll. Es gibt weder eine Identitätsauthentifizierung noch eine Konsistenzprüfung. Das Problem besteht darin, dass alle HTTP-Inhalte im Klartext übertragen werden.
Andererseits verändert sich auch die Entwicklung des Internets mit jedem Tag, und verschiedene HTTP-Anwendungen dringen weiterhin in alle Aspekte des Lebens der Menschen ein. Ob soziale Netzwerke, Einkaufen, Finanzen, Spiele oder Suche – diese HTTP-Dienste können den Menschen großen Komfort bieten und die Lebensqualität und Effizienz verbessern.
HTTP ist offensichtlich eng mit dem Leben und den wirtschaftlichen Interessen der Menschen verbunden. Leider ist es nicht sicher. Das bedeutet, dass hier große Sicherheitsrisiken verborgen sein müssen. Diese versteckten Gefahren konzentrieren sich auf die folgenden zwei Aspekte:
1. Datenschutzverlust
Da es sich bei HTTP selbst um eine Klartextübertragung handelt, kann der Übertragungsinhalt zwischen dem Benutzer und dem Server eingesehen werden Mittelsmann. Mit anderen Worten: Informationen wie Ihre Online-Suchen, Einkäufe, besuchte Websites und angeklickte Seiten können von „Zwischenhändlern“ eingeholt werden. Da die meisten Chinesen dem Schutz der Privatsphäre wenig Aufmerksamkeit schenken, sind die Risiken hier relativ verborgen und die Folgen eines Schadens sind nicht einfach quantitativ abzuschätzen. Zu den schwerwiegenderen bekannten Datenschutzlecks gehören:
Der QQ-Anmeldestatus wurde von Kriminellen gestohlen und sich dann an einem anderen Ort angemeldet, um Werbung und Betrug zu betreiben.
Die Mobiltelefonnummer und Identitätsinformationen des Benutzers wurden durchgesickert.
Durchsickern des Online-Verhaltens des Benutzers. Wenn Sie beispielsweise nach einem Krankenhaus suchen, wird bald jemand anrufen, um dafür zu werben (wirkungslose Werbung).
2. Seitenhijacking
Das Risiko eines Datenschutzverlusts ist relativ verborgen und die Benutzer sind sich dessen im Grunde nicht bewusst. Aber die Auswirkungen einer anderen Art von Hijacking sind sehr offensichtlich und direkt: Seitenhijacking, also die direkte Manipulation der Browserseite des Benutzers. Es gibt viele Seitenhijacks, die sehr einfach und grob sind und direkt Werbung von Drittanbietern oder Verkehrsaufforderungsinformationen von Betreibern einschleusen.
Aber es gibt auch einige subtilere Entführungen, wie zum Beispiel die folgende Seitenentführung von JD: Das Bild oben zeigt eine Seite, die HTTP verwendet, und es gibt eine Seite, die durch gekennzeichnet ist der obere Pfeil Die Einkaufsempfehlungen sind sehr realistisch, genau wie die offiziellen Tools von JD.com oder Browser.
Aber wenn Sie zum HTTPS-Zugriff wechseln, gibt es keine solche Tool-Seite und sie wird offensichtlich gekapert.
3. Hijacking-Pfade und Klassifizierungen
Wie kommt es zu Hijacking? Technisch gesehen ist es relativ einfach, den Inhalt überall zu überwachen und zu manipulieren. Um jedoch die gesamte Kette der Entführungsindustrie zu verstehen, müssen wir tief in die Schwarzindustrie vordringen, was schwieriger ist. Sicher ist, dass die meisten Entführungen an zwischengeschalteten Netzwerkknoten stattfinden, auch „Man in the Middle“ (MITM) genannt. Wie in der folgenden Abbildung dargestellt:
Da die Informationsübertragung über die oben genannten „Middleman-Knoten“ erfolgen muss, haben sie auch die Berechtigung, die Informationen zu lesen und zu schreiben. Wenn die Informationen nicht verschlüsselt sind, erfolgt keine Überprüfung. Wenn Sie die Privatsphäre überprüfen und die Seite manipulieren möchten, ist dies für den „Zwischenhändler“ sehr einfach.
Was sind die Hauptkategorien von Entführungen? Gemäß dem Entführungspfad gibt es hauptsächlich drei Kategorien, wie in der Abbildung unten dargestellt:
DNS-Hijacking, Client-Hijacking und Link-Hijacking. Unseren unvollständigen Statistiken zufolge handelt es sich bei den meisten Hijackings (90 %), mit denen Unternehmen konfrontiert werden, um Link-Hijackings.
3. HTTPS ist eine Atomwaffe zur Lösung von Link-Hijacking
Warum kann HTTPS Link-Hijacking gut lösen? Hauptsächlich drei Waffen:
1. Identitätsauthentifizierung – Fälschungsschutz, Anti-Zurückweisung
Jedes Mal, wenn eine neue HTTPS-Verbindung hergestellt wird, muss die Identität authentifiziert werden, um sicherzustellen, dass der Benutzer zugreift Zweckgerechte Website.
2. Inhaltsverschlüsselung – Abhörschutz
Inhaltsverschlüsselung bedeutet, dass der End-to-End-Kommunikationsinhalt ausschließlich Chiffretext ist und der Mittelsmann dies nicht kann Sehen Sie sich den gesamten HTTPS-Text direkt an. Der Inhalt der Anwendungsschicht wird durch symmetrische Verschlüsselung verschlüsselt und entschlüsselt.
3. Konsistenzprüfung – Manipulationsschutz
Verhindern Sie die Manipulation von Nachrichteninhalten und stellen Sie Daten durch MAC-Codes von Daten und gemeinsame Schlüssel sicher.
4. Der Schmerz der Popularisierung von HTTPS
Tatsächlich wurde HTTPS 1995 geboren und ist ein sehr altes und ausgereiftes Protokoll. Gleichzeitig kann die Entführung von Inhalten wirksam verhindert und die Privatsphäre der Benutzer geschützt werden. Aber warum unterstützen die meisten Websites bis heute immer noch kein HTTPS und verwenden nur HTTP?
Der Hauptgrund für die Beliebtheit von HTTPS lässt sich in zwei Worten zusammenfassen: „ „Langsam.“ „ und „teuer“.
1. Langsam
Ohne jegliche Optimierung wird HTTPS die Zugriffsgeschwindigkeit des Benutzers erheblich verlangsamen. Zu den Hauptfaktoren gehören:
Netzwerkzeitaufwändig. Aufgrund der Bestimmungen des Protokolls muss eine Netzwerkübertragung erfolgen. Zum Beispiel SSL Full Handshake, 302 Jump usw. Im schlimmsten Fall könnten dadurch 7 RTTs hinzukommen.
Berechnungszeit. Sowohl der Client als auch der Server müssen symmetrische Ver- und Entschlüsselung, Protokollanalyse, Berechnung des privaten Schlüssels, Zertifikatsüberprüfung und andere Berechnungen durchführen, was viel Berechnungszeit verursacht.
2. Teuer
HTTPS ist teuer, was sich hauptsächlich in den folgenden drei Aspekten widerspiegelt:
Serverkosten. Die Berechnung des privaten Schlüssels von HTTPS führt zu einem starken Rückgang der Serverleistung, der sogar weniger als ein Zehntel des HTTP-Protokolls beträgt. Mit anderen Worten: Wenn die Leistung von HTTP 10.000 cps beträgt, beträgt die Leistung von HTTPS möglicherweise nur wenige Hundert cps, was die Serverkosten um ein Vielfaches oder sogar Dutzendes erhöht.
Zertifikatskosten. Abhängig von der Anzahl und Art der Zertifikate können die Zertifikatskosten zwischen Hunderten und Millionen pro Jahr liegen.
Entwicklungs-, Betriebs- und Wartungskosten. Das HTTPS-Protokoll ist relativ komplex und bei der Open-Source-Implementierung von OpenSSL treten häufig Sicherheitslücken auf. Eine Reihe von Problemen, darunter Protokollkonfiguration, Zertifikatsaktualisierungen, Ablaufüberwachung, Client-Kompatibilität usw., erfordern die Nachverfolgung und Behebung durch technisches Personal mit professionellem Hintergrund mit ihnen.
5. Tencent Cloud Load Balancer HTTPS-Leistungsoptimierung
Tencent Cloud Load Balancer wurde umfassend für die Schwachstellen im Promotion- und Bewerbungsprozess von HTTPS optimiert . . Als nächstes stellen wir diese Optimierungslösungen im Detail vor:
1. Optimierung der Zugriffsgeschwindigkeit
Wie bereits erwähnt, ist HTTPS auch sehr langsam. Wir haben die Zugriffsgeschwindigkeit hauptsächlich auf zwei Ebenen optimiert Stack sowie Front-End- und Back-End-Ressourcen.
Full-Link-Protokollstapeloptimierung
HTTPS kann als HTTP über SSL betrachtet werden, und HTTPS verwendet das TCP-Protokoll für die Übertragung, sodass die Optimierung des gesamten Protokollstapels drei Ebenen umfasst:
TCP-Optimierung. Einschließlich Anpassung des Überlastungsfensters, schnelles Öffnen von TCP, Unterstützung für Wiederverwendung, Unterstützung für den neuesten BBR-Algorithmus zur Überlastungskontrolle usw.
SSL-Protokolloptimierung. Verteilter Sitzungscache, Sitzungsticket, Fehlstart, OCSP-Heftdatei, dynamische Datensatzgröße usw.
Das wichtigste Ziel der SSL-Protokolloptimierung besteht darin, den Anteil vereinfachter Handshakes zu erhöhen. Tencent Cloud verbessert das vereinfachte Handshake-Verhältnis von SSL durch die Implementierung eines globalen Sitzungscache und eines globalen Sitzungstickets, wodurch Benutzerzugriffszeit und Rechenressourcen gespart werden.
Optimierung des Protokolls der Anwendungsschicht. Unterstützt auch SPDY, HTTP2, HSTS usw.
Der größte Vorteil von HTTP2 im Vergleich zu HTTP1.X ist das Multiplexen mehrerer HTTP-Anfragen parallel über eine TCP-Verbindung. Im Vergleich zum seriellen Senden von HTTP1.X ist die Leistung zweifellos A viel Verbesserung.
Da HTTP2 von SPDY geerbt und entwickelt wurde, unterstützen einige ältere Clients nur SPDY und nicht HTTP2. Die meisten neuen Clients unterstützen nur HTTP2 und kein SPDY. Um mit der Leistung alter und neuer Clients kompatibel zu sein, unterstützt Tencent Cloud sowohl SPDY als auch HTTP2, um die Leistung alter und neuer Clients zu maximieren.
Front-End- und Back-End-Optimierung
Das größte Merkmal und der größte Vorteil von HTTP2 und SPDY ist das Multiplexing, das mehrere Anfragen parallel über eine Verbindung senden kann. Obwohl diese Funktion sehr leistungsstark ist, ist der Effekt des Multiplexings sehr begrenzt, wenn weiterhin herkömmliche HTTP-Optimierungsstrategien verwendet werden. Beispielsweise wirken sich Domänennamen-Sharding, Pipeline usw. auf den Multiplexeffekt aus. Daher haben wir durch mehrere Datenexperimente einige Front-End-Ressourcen angepasst, einschließlich Back-End-Zugriffsstrategien:
Abruf von Domainnamen. Bestätigen Sie durch Seitenressourcen- und Leistungsanalyse den Plan zum Abrufen des Domainnamens, z. B. das Verschieben von nicht mehr als drei Seiten.
Vorgefertigte Verbindungen. STGW stellt Pre-Connection-Seiten bereit. Durch die Analyse des Benutzerverhaltens auf Hot-Pages werden Verbindungen im Voraus hergestellt, um die Auswirkungen des Protokoll-Overheads auf die Benutzererfahrung zu reduzieren.
Vollständiges HTTPS-Offloading über die globalen CDN- und IDC-Knoten von Tencent Cloud.
2. Optimierung der Rechenleistung
Für die Rechenleistung von HTTPS hat Tencent Cloud sie hauptsächlich auf drei Ebenen optimiert, darunter:
Minimierung des vollständigen Handshakes , wodurch das vereinfachte Handshake-Verhältnis verbessert wird. Zum Beispiel der zuvor erwähnte globale Sitzungscache und das Sitzungsticket.
Für den unvermeidlichen vollständigen Handshake hat Tencent Cloud asynchrones RSA-Proxy-Computing implementiert. Durch die Transformation des Protokollstapels und die Verwendung von SSL-Hardwarebeschleunigerkarten wurden die Rechenleistung und die Angriffsschutzfunktionen von HTTPS erheblich verbessert .
Der symmetrische Verschlüsselungsberechnungsprozess wurde auch für den Szeneneinsatz optimiert.
Das Folgende ist eine detaillierte Einführung:
RSA-Asynchron-Proxy-Berechnung
Tencent Cloud zielt auf den schwerwiegendsten Link im HTTPS-Leistungsverbrauch ab – den asymmetrischen Schlüsselaustauschalgorithmus. Gezielte Optimierung. Die Optimierungsidee umfasst hauptsächlich die folgenden drei Teile:
Algorithmustrennung. Das bedeutet, die Algorithmen, die die meisten CPU-Ressourcen verbrauchen, zu entfernen und zu verhindern, dass sie lokale CPU-Ressourcen verbrauchen.
Agentenberechnung. Verwenden Sie einen Rechner mit leerer CPU oder eine dedizierte SSL-Hardwarebeschleunigungskarte, um RSA-Berechnungen durchzuführen.
Asynchrone Ausführung. Wenn herkömmliches OpenSSL RSA ausführt, müssen Anwendungen der oberen Schicht wie NGINX synchron warten. Dieser Schritt ist ebenfalls sehr einflussreich und muss asynchron geändert werden, damit der Zugriffsserver bei der Durchführung von RSA-Berechnungen durch den Beschleunigungscluster auch Anforderungen von anderen Benutzern zur Verbesserung des Durchsatzes empfangen kann.
Durch die tiefgreifende Transformation des OpenSSL-Handshake-Protokollstapels und der RSA-Rechenleistung der SSL-Hardware-Beschleunigerkarte wurde die SSL-Rechenleistung von Tencent Cloud CLB erhöht um 350 %. Die ECDHE_RSA-Verarbeitungsleistung einer einzelnen Maschine erreicht 65.000 cps.
Automatische optimale Auswahl des symmetrischen Verschlüsselungsalgorithmus
Tencent Cloud passt den optimalen symmetrischen Verschlüsselungsalgorithmus entsprechend dem Anwendungsszenario an:
Für Streaming-Inhalte wie Videos wird aes- bevorzugt gcm.
Für mobile Endgeräte, die keine AES-NI-Hardwarebeschleunigungsanweisungen unterstützen, verwenden Sie chacha20-poly1305.
Verwenden Sie für Antiquitäten-Clients wie IE6 den RC4-Algorithmus.
3. Parallele Deinstallation von Protokollen
Tencent Cloud CLB unterstützt den Zugriff und die Deinstallation aller aktuellen Mainstream-HTTP-Protokolle. Einschließlich:
http1.0/http1.1
http2 und sein Vorgänger spdy3.1
https, einschließlich ssl3.0, tlsv1.0, tlsv1.1, tlsv1 . 2
Websocket und sicherer Websocket.
Transparente TCP- und UDP-Weiterleitung.
CLB kann die oben genannten siebenschichtigen Protokolle einheitlich in HTTP1.1 konvertieren und transparent an das Unternehmen übertragen. Auch die Vorteile für das Unternehmen liegen auf der Hand: HTTPS und HTTP2 können ohne Entwicklungskosten genutzt werden, was den Anpassungsdruck an verschiedene Protokolle und Clients deutlich reduziert.
Sicherheit
Die mit der Sicherheit verbundenen Bereiche und Szenarien sind sehr groß. Obwohl HTTPS Link-Hijacking vollständig lösen kann, ist es gegen die folgenden zwei Arten von Problemen machtlos:
CC-Angriffe, insbesondere HTTPS-Computing-Angriffe, die Leistung von HTTPS wird reduziert. Ein starker Rückgang bringt größere Sicherheitsrisiken mit sich.
Unternehmenssicherheit, einschließlich SQL-Injection, XSS Cross-Site, Website-Malware usw.
Die beiden oben genannten Kategorien sind äußerst riskante Sicherheitsprobleme, die Unternehmen häufig plagen.
Als Reaktion auf die oben genannten Probleme hat Tencent Cloud außerdem ein Sicherheitssystem zur Verhinderung von CC und WAF für HTTPS entwickelt und implementiert, das solche Sicherheitsrisiken wirksam abwehren kann.
Die Bedeutung des schlüssellosen privaten Schlüssels (kein Laden des Schlüssels)
Freunde, die mit Zertifikaten ein wenig vertraut sind, wissen, dass sowohl SSL-Schlüssel als auch Zertifikate verwendet werden können. Ein Zertifikat muss eindeutig einem privaten Schlüssel entsprechen. Das wichtigste Datenelement im gesamten HTTPS ist der private SSL-Schlüssel. Wenn der private Schlüssel durchgesickert ist, kann der gesamte Handshake-Prozess gekapert, die Signatur gefälscht und der symmetrische Schlüssel geknackt werden. HTTPS als Ganzes ist nicht sicher.
Traditionelle Lösungen und Risiken für die Verwendung privater Schlüssel
Die traditionelle Lösung für private Schlüssel besteht darin, den privaten Schlüssel an die Anwendung zu binden. Wenn Sie beispielsweise HTTPS mit dem bekannten Nginx und Apache verwenden möchten, müssen Sie die entsprechenden Zertifikate und privaten Schlüssel auf dem Zugriffscomputer bereitstellen, auf dem Nginx bereitgestellt wird.
Diese Lösung weist die folgenden Sicherheitsprobleme auf: Der private Schlüssel wird in der Cloud oder im CDN bereitgestellt. Was passiert, wenn er durchgesickert ist?
Schlüssellose Methode
Obwohl das Intranet von Tencent Cloud sehr sicher ist, beseitigt es aus Verantwortung für die Sicherheit seiner Kunden die Bedenken der Benutzer hinsichtlich des Verlusts privater Schlüssel vollständig und stellt sicher, dass Benutzer sicher und geschützt sind Über ihre privaten Schlüssel bietet Tencent Cloud eine Ladelösung ohne private Schlüssel. Der Kern dieser Lösung besteht darin, dass „keine Notwendigkeit besteht, private Schlüssel in Tencent Cloud zu speichern, sodass Benutzer ihre eigenen Server zum Speichern privater Schlüssel und zum vollständigen HTTPS-Zugriff verwenden können.“ Tencent Cloud hat keinen Zugriff auf private Schlüssel und Kunden können private Schlüssel sogar auf ihren eigenen Servern zu Hause speichern.
Der Zugriffsprozess ist wie folgt:
Der Benutzer initiiert eine HTTPS-Handshake-Anfrage.
Wenn es um die Berechnung des privaten Schlüssels geht, leitet Tencent Cloud CLB die Anfrage zur Berechnung des privaten Schlüssels über ein verschlüsseltes benutzerdefiniertes Protokoll an den eigenen schlüssellosen Server des Benutzers weiter.
Der schlüssellose Dienst ruft den privaten Schlüssel des Benutzers auf, um die Berechnung abzuschließen.
Der schlüssellose Dienst gibt die Berechnungsergebnisse an Tencent Cloud CLB zurück.
CLB verarbeitet weiterhin HTTPS-Anfragen.
Während des gesamten Prozesses hat Tencent Cloud keinen Zugriff auf den privaten HTTPS-Schlüssel. Es ist zu beachten, dass es sich bei dem schlüssellosen Server um ein von Tencent Cloud bereitgestelltes Serverprogramm handelt kann es unabhängig bereitstellen. Das Serververhalten wird vom Benutzer gesteuert.
Null-Schwellenwert, HTTPS-Schnellzugriff auf WeChat-Miniprogramme
Tencent Cloud CLB Load Balancer erreicht dies durch eine tiefgreifende Optimierung des Protokollstapels und Server Eine enorme Verbesserung der HTTPS-Leistung. Gleichzeitig haben wir durch die Zusammenarbeit mit international renommierten Zertifikatsagenturen die Kosten für Zertifikate deutlich gesenkt. Tencent Cloud CLB kann in folgenden Aspekten erhebliche Vorteile für den Zugriff auf das WeChat-Miniprogramm bringen:
Bietet eine Ein-Klick-SSL-Zertifikatsanwendung, der CLB-Lastausgleichsdienst dient als HTTPS-Proxy und reduziert den Entwicklungsaufwand zur Entwicklung des Kleinprogrammgeschäfts.
Die Verwendung von HTTPS verringert nicht die clientseitige Zugriffsgeschwindigkeit. Die Zugriffsverzögerungen bei HTTP und HTTPS sind nahezu gleich.
SSL-Verschlüsselungs- und Entschlüsselungsleistung eines einzelnen Servers im Cluster, bis zu 6,5 Wcps vollständiger Handshake. Im Vergleich zu Hochleistungs-CPUs ist es um mindestens das 3,5-fache verbessert, wodurch Serverkosten gespart werden, die Servicefähigkeiten bei Geschäftsabläufen und Verkehrsanstiegen erheblich verbessert werden und die Fähigkeiten zur Abwehr von Computerangriffen verbessert werden.
Unterstützt die Deinstallation und Konvertierung mehrerer Protokolle. Reduzieren Sie den Druck auf das Unternehmen, sich an verschiedene Client-Protokolle anzupassen. Das Geschäfts-Backend muss nur HTTP1.1 unterstützen, um HTTP2, SPDY, SSL3.0, TLS1.2 und andere Protokollversionen zu verwenden. Erfüllen Sie die Protokollanforderungen von WeChat-Miniprogrammen, iOS-Plattformen usw.
Beantragung, Überwachung und Ersatz des SSL-Zertifikats. Wir arbeiten intensiv mit Comodo und Symantec, den führenden internationalen Zertifikatsherstellern, zusammen und verfügen über ein umfassendes Servicesystem.
Anti-CC- und WAF-Funktionen. Es kann Angriffe auf Anwendungsebene wie langsame Verbindungen, hochfrequente Festpunktangriffe, SQL-Injection und Webseiten-Malware wirksam verhindern.
Die oben genannten Vorteile können Entwicklern helfen, die Testschwelle von HTTPS zu senken.
Für weitere kleine Programmentwickler, die auf die eingehende Analyse des HTTPS-Protokolls achten müssen, achten Sie bitte auf die chinesische PHP-Website!