Um zu verstehen, was verschlüsselt wird und was nicht, müssen Sie wissen, dass SSL/TLS die Schicht zwischen der Transportschicht und der Anwendungsschicht ist.
im Falle von HTTPS ist HTTP die Anwendungsschicht und TCP die Transportschicht. Das bedeutet, dass alle Header unterhalb der SSL-Ebene unverschlüsselt sind. Außerdem kann SSL selbst Daten preisgeben. Zu den offengelegten Daten gehören (für jeden Header der Schicht):
HINWEIS: Es können auch weitere Daten offengelegt werden, aber diese Daten werden ziemlich sicher offengelegt.
MAC:
- Quell-MAC-Adresse
- Ziel-MAC-Adresse
IP (vorausgesetzt IPv4):
- Ziel-IP-Adresse
- Quell-IP-Adresse
- IP-Optionen (falls eingestellt)
- Art des Dienstes (TOS)
- Die Anzahl der Hops, die das aktuelle Paket passiert hat, wenn TTL auf 64 gesetzt ist
TCP:
- Quelle: Hafen
- Zielhafen
- TCP-Optionen
Theoretisch kann man die TCP-Header verschlüsseln, aber das ist schwer zu implementieren.
SSL:
- Hostname (wenn SNI verwendet wird)
Normalerweise verbindet sich ein Browser nicht einfach über die IP-Adresse mit dem Zielhost, wenn er HTTPS verwendet. Es gibt einige frühere Anfragen, die die folgenden Informationen preisgeben können (wenn Ihr Client kein Browser ist, kann er sich anders verhalten, aber die DNS-Anfrage ist ziemlich üblich):
DNS: Diese Anfrage wird gesendet, um die korrekte IP-Adresse eines Servers zu erhalten. Sie enthält den Hostnamen und das Ergebnis enthält alle IP-Adressen, die zu dem Server gehören.
HTTP: die erste Anfrage an Ihren Server. Ein Browser verwendet SSL/TLS nur, wenn er dazu angewiesen wird, unverschlüsseltes HTTP wird zuerst verwendet. In der Regel führt dies zu einer Umleitung auf die eigentliche Website. Einige Header können jedoch bereits hier enthalten sein:
- User-Agent(Spezifikation des Clients)
- Host (Hostname)
- Accept-Language (Benutzersprache)