2008-10-09 9 views
407

Wenn ich Daten über HTTPS sende, weiß ich, dass der Inhalt verschlüsselt ist, aber ich höre gemischte Antworten darüber, ob die Header verschlüsselt sind oder wie viel vom Header verschlüsselt ist.Sind HTTPS-Header verschlüsselt?

Wie viel von HTTPS-Header sind verschlüsselt?

Einschließlich GET/POST-Request-URLs, Cookies usw.

+6

HTTP-Header über HTTPS sind verschlüsselt und auch nicht HTTP-Compressed (auch wenn der Körper ist). Dies macht sie weniger anfällig für kompressionsbezogene Angriffe wie BEAST –

Antwort

382

Die ganze Menge verschlüsselt ist - alle Header. Aus diesem Grund funktioniert SSL auf vhosts nicht so gut - Sie benötigen eine dedizierte IP-Adresse, da der Host-Header verschlüsselt ist.

Der Server Name Identification (SNI) -Standard bedeutet, dass der Hostname möglicherweise nicht verschlüsselt wird, wenn Sie TLS verwenden. Unabhängig davon, ob Sie SNI verwenden oder nicht, werden die TCP- und IP-Header niemals verschlüsselt. (Wenn ja, wären Ihre Pakete nicht routingfähig.)

+2

@Greg, Da der vhost-Gateway autorisiert ist, Konnte das Gateway sie nicht entschlüsseln, den Host-Header beobachten und dann bestimmen, an welchen Host die Pakete gesendet werden sollen? – Pacerier

+0

Afaik URL selbst ist nicht verschlüsselt. – Teddy

+2

@Teddu was meinst du mit "URL selbst ist nicht verschlüsselt.". Es ist verschlüsselt, da es Teil der Kopfzeile ist. –

37

Mit SSL ist die Verschlüsselung auf der Transportebene, also findet sie statt, bevor eine Anfrage gesendet wird.

Also alles in der Anfrage ist verschlüsselt.

+0

Da SSL in der Transportschicht stattfindet und die Zuweisung der Zieladresse in Paketen (im Header) in der Netzwerkschicht erfolgt (was unterhalb des Transports ist), wie werden dann die Header verschlüsselt? –

+0

@PrateekJoshi Da HTTP-Header auf der Anwendungsebene vorhanden sind, werden sie standardmäßig verschlüsselt, da eine niedrigere/Vorgänger-Ebene verschlüsselt ist. – Aquarelle

76

Die Header sind vollständig verschlüsselt. Die einzige Information über das Netzwerk "im Klartext" bezieht sich auf die SSL-Einrichtung und den D/H-Schlüsselaustausch. Dieser Austausch ist sorgfältig darauf ausgelegt, den Lauschangriffen keine nützlichen Informationen zu liefern, und sobald sie stattgefunden haben, werden alle Daten verschlüsselt.

+2

Nicht alle SSL-Einstellungen beinhalten DH – Dori

+9

Um ein wenig pedantisch zu sein: Die IP-Adresse des Clients und Servers, der Hostname des Servers und Signale über ihre SSL-Implementierungen sind nützlich für Lauscher und sind sichtbar. – poolie

29

HTTPS (HTTP über SSL) sendet den gesamten HTTP-Inhalt über ein SSL-Tunnel, so dass HTTP-Inhalt und Header ebenfalls verschlüsselt werden.

42

HTTP-Version 1.1 hinzugefügt eine spezielle HTTP-Methode, CONNECT - beabsichtigte den SSL-Tunnel zu erstellen, einschließlich der erforderlichen Protokoll-Handshake und kryptografischen Setup.
Die regulären Anfragen danach werden alle in den SSL-Tunnel, Header und Körper inklusive gesendet gesendet.

40

Neue Antwort auf alte Frage, sorry. Ich dachte, ich würde meine $ .02

hinzufügen Das OP fragte, ob die Header verschlüsselt waren.

Sie sind: auf der Durchreise.

Sie sind NICHT: wenn nicht unterwegs.

So kann die URL Ihres Browsers (und in einigen Fällen der Titel) den Querystring (der normalerweise die sensibelsten Details enthält) und einige Details in der Kopfzeile anzeigen; der Browser kennt einige Header-Informationen (Inhaltstyp, Unicode usw.); und Browserverlauf, Passwortverwaltung, Favoriten/Lesezeichen und zwischengespeicherte Seiten enthalten alle Querystrings. Serverprotokolle auf dem Remote-Ende können auch Querystring sowie einige Inhaltsdetails enthalten.

Außerdem ist die URL nicht immer sicher: Die Domäne, das Protokoll und der Port sind sichtbar - andernfalls wissen Router nicht, wohin sie Ihre Anfragen senden sollen.

Auch wenn Sie einen HTTP-Proxy haben, kennt der Proxy-Server die Adresse, in der Regel wissen sie nicht die volle Querystring.

Wenn also die Daten verschoben werden, ist es in der Regel geschützt. Wenn es nicht unterwegs ist, ist es nicht verschlüsselt.

Nicht zu picken, aber Daten am Ende wird auch entschlüsselt, und kann nach Belieben analysiert, gelesen, gespeichert, weitergeleitet oder verworfen werden. Und Malware kann an jedem Ende Snapshots von Daten erstellen, die in das SSL-Protokoll eintreten (oder es verlassen) - wie zum Beispiel (schlechtes) Javascript innerhalb einer Seite innerhalb von HTTPS, die http (oder https) Aufrufe an Protokollierungswebsites aufrufen kann (seit Zugriff auf lokale Festplatte) ist oft eingeschränkt und nicht sinnvoll).

Cookies werden auch nicht unter dem HTTPS-Protokoll verschlüsselt. Entwickler, die sensible Daten in Cookies (oder anderswo) speichern möchten, müssen einen eigenen Verschlüsselungsmechanismus verwenden.

Zum Cache werden die meisten modernen Browser keine HTTPS-Seiten zwischenspeichern, aber diese Tatsache ist nicht durch das HTTPS-Protokoll definiert, sondern hängt vollständig vom Entwickler eines Browsers ab, um Seiten, die über HTTPS empfangen werden, nicht zwischenzuspeichern.

Also, wenn Sie sich Sorgen über Packet Sniffing machen, sind Sie wahrscheinlich in Ordnung. Aber wenn Sie sich Sorgen machen über Malware oder jemanden, der durch Ihren Verlauf, Lesezeichen, Cookies oder Cache stochert, sind Sie noch nicht aus dem Wasser.

+5

Ich weiß, die guten Antworten sind oben, aber das fügt wieder * fehlerhafte * Informationen ein. Domain ist * nicht * sichtbar, es sei denn, SNI wird verwendet. Protokoll außer IP und TCP sind * nicht * sichtbar. Sie können nicht sagen, ob ich HTTP 1.1, SPDY oder HTTP2 verwende. Was an den beiden Endpunkten sichtbar ist, ist irrelevant, da das Ziel der Verschlüsselung nicht darin besteht, Dinge * unsichtbar * zu machen, sondern Dinge * nur für vertrauenswürdige Parteien * sichtbar zu machen. Daher sind die Endpunkte in der Frage enthalten und etwa 2/3 Ihrer Antwort können entfernt werden. Die Proxy-Informationen sollten lauten: Wenn Sie einen HTTPS-Proxy verwenden, hat er * Zugriff auf alles *. – Melvyn

+2

Ich stehe zu meiner Antwort. https://https.cio.gov/faq/ – Wigwam

+0

Ihr Link sagt ausdrücklich, dass Cookies verschlüsselt sind: "Die Verbindung des Besuchers ist verschlüsselt und verdeckt URLs, Cookies und andere sensible Metadaten." – DylanYoung

5

die URL ist auch verschlüsselt, Sie haben wirklich nur die IP, Port und wenn SNI, der Host-Name, die unverschlüsselt sind.

11

Ja, Header sind verschlüsselt. Es ist here geschrieben.

Alles in der HTTPS-Nachricht ist verschlüsselt, einschließlich der Header und der Anfrage/Antwort-Last.

+4

Wikipedia ist nicht die Spezifikation, die Sie zitieren sollten. –