it-swarm.com.de

Möglichkeit, HTTPS-Verkehr auf Geräten zu überwachen, ohne ein Zertifikat zu installieren

Mein Ziel ist es, den HTTPS-Verkehr einiger digitaler Geräte (AppleTV, Spielekonsolen usw.) zu überwachen und die HTTPS-Pakete in meinem lokalen Netzwerk zu entschlüsseln.

Ich kann mit einigen HTTPS-Debugging-Proxy-Tools wie Charles oder Fiddler keinen Weg finden, da auf dem Gerät ein Zertifikat installiert sein muss. Ich habe keinen Zugriff auf das Dateisystem auf dem Gerät. Ich kann das Zertifikat nicht kopieren. Ich kann den Proxy des Geräts jedoch so einstellen, dass er auf meinen Laptop zeigt oder den Hotspot meines Laptops verwendet.

22
Yifei

Der springende Punkt bei SSL ist der Widerstand gegen das Abhören durch Man-in-the-Middle-Angriffe wie den von Ihnen vorgeschlagenen. Wenn Sie das Clientgerät nicht dazu bringen können, Ihrem selbstsignierten Zertifikat zu vertrauen, haben Sie nur folgende Möglichkeiten:

  • Fangen Sie eine erste HTTP-Anforderung ab und lassen Sie die Kommunikation niemals auf HTTPS aktualisieren (dies funktioniert jedoch nicht, wenn der Client explizit zu einer https://... - URL wechselt).
  • Stellen Sie sich als Server mit Ihrem eigenen selbstsignierten Zertifikat vor und hoffen Sie, dass das System, das die Anforderung naiv stellt, ein selbstsigniertes Zertifikat akzeptiert (dies ist die Entscheidungsfindung, die einem Benutzer entspricht, der die strengen Warnungen des Browsers vor einem möglichen MITM-Angriff ignoriert in Bearbeitung)
  • Überprüfen Sie die Anfälligkeit für bekannte frühere Angriffe auf SSL (Heartbleed, BEAST usw.). Beachten Sie, dass diese Option höchstwahrscheinlich illegal ist, da möglicherweise ein Angriff auf den Server (den Sie nicht besitzen) und nicht ein Angriff auf den Client (den Sie möglicherweise besitzen) erforderlich ist.

Wenn Ihnen viele Billionen Dollar zur Verfügung stehen, haben Sie möglicherweise einige andere Möglichkeiten:

  • Gefährden Sie erfolgreich eine weltweit vertrauenswürdige Zertifizierungsstelle und verwenden Sie ihren geheimen Signaturschlüssel, um gefälschte Zertifikate für Ihr eigenes Schlüsselpaar zu erstellen
  • Erwerben oder entdecken Sie eine Zero-Day-Sicherheitslücke in einem Webclient, Webserver oder (am besten) einer vom Client oder Server verwendeten SSL/TLS-Bibliothek
  • Entdecken Sie eine lähmende Schwäche in einem zugrunde liegenden kryptografischen Grundelement, das von SSL verwendet wird (z. B. kann es hilfreich sein, AES vollständig zu brechen).
  • Geben Sie Billionen von Dollar für Computerhardware aus, um Brute-Force-Angriffe auf abgefangene verschlüsselte Kommunikation durchzuführen

Wenn Sie uneingeschränkten physischen Zugriff auf das Gerät haben, ist ein Angriff auf den eigenen vertrauenswürdigen Zertifikatspeicher des Geräts mit ziemlicher Sicherheit einfacher als ein Angriff auf SSL (obwohl dies auch alles andere als einfach sein kann).

40
apsillers

Irgendwelche Vorschläge? Ist machbar?

Sie müssen ein Zertifikat besitzen, dem das Gerät vertraut, um den Datenverkehr abzufangen. Wie dies erreicht werden kann, hängt davon ab, wie ordnungsgemäß und offen die Zertifikatvalidierung auf dem Gerät ist.

  • Das Gerät verfügt möglicherweise über eine fehlerhafte oder nicht vorhandene Validierung von Zertifikaten. Dies ist typischerweise
    • Überhaupt keine Validierung. In diesem Fall können Sie ein beliebiges Zertifikat verwenden.
    • Überprüft nur die Vertrauenskette, nicht jedoch den Namen im Zertifikat. In diesem Fall können Sie jedes Zertifikat verwenden, das von einer Zertifizierungsstelle signiert ist, der das Gerät vertraut.
  • Das Gerät verfügt über eine ordnungsgemäße Zertifikatsprüfung, ermöglicht jedoch die Installation benutzerdefinierter Vertrauensanker. In diesem Fall können Sie Ihre eigenen Zertifikate erstellen und als vertrauenswürdig importieren.
  • Das Gerät verfügt über eine ordnungsgemäße Zertifikatsprüfung, ist jedoch gegen das Hinzufügen neuer Vertrauensanker geschlossen. Dies ist schlecht für Sie, es sei denn, Sie veranlassen eine der vertrauenswürdigen Zertifizierungsstellen, ein neues Zertifikat für Sie zu signieren, das vom Gerät akzeptiert wird. Wahrscheinlich wird dies keine Zertifizierungsstelle tun.

Wenn dies nicht hilft, gibt es möglicherweise andere Fehler. Schauen Sie sich die SSL-Probleme der letzten Jahre an und prüfen Sie, ob Sie einen dieser Fehler einsetzen können. Sie können auch versuchen, Nicht-SSL-Fehler zu verwenden, um das Gerät zu hacken und das Verhalten der Software zu ändern.

11
Steffen Ullrich

Nein, die Natur von HTTPS besteht darin, dass das Zertifikat zum Entschlüsseln erforderlich ist. Sie könnten den Verkehr schnüffeln, aber er wäre verschlüsselt und für Sie nutzlos.

3
armani

Nein. Dies ist der Punkt von SSL, um diese Art von unbefugtem Schnüffeln zu verhindern. Um Ihren Proxy zu autorisieren, müssen Sie das Gerät anweisen, dem Proxy-Zertifikat zu vertrauen, und die Geräte-Clients anweisen, Ihrem Zertifikat zu vertrauen oder den privaten Schlüssel des Geräts zu verwenden, auf den Sie anscheinend keinen Zugriff haben. Für mehr Informationen:

https://en.wikipedia.org/wiki/Transport_Layer_Security

3
Antonius Bloch

Schauen Sie sich die Sicherheitsanfälligkeit von FREAK tls an. Sie sollten in der Lage sein, Daten in die SSL-Aushandlung einzufügen, um das Gerät in eine RSA-Export-Verschlüsselung zu locken, und von dort aus ist die Entschlüsselung des Datenverkehrs durch einen Mann in der Mitte erheblich einfacher (auch bekannt als möglich).

Charles ist in Java geschrieben und sollte nicht zu schwer zu ändern sein, um dies automatisch auszunutzen.

3
Damian Nikodem

Dies hängt alles davon ab, an welchem ​​Datenverkehr Sie interessiert sind. Wenn Sie den Datenverkehr zwischen Ihrem Client und dem Gerät entschlüsseln möchten, ist dies mit einem Proxy möglich. Tatsächlich ist es der Funktionsweise von Superfish sehr ähnlich. Unter Lenovo bricht die HTTPS-Sicherheit auf seinen neuesten Laptops finden Sie eine Übersicht über die Funktionsweise von Superfish.

Wenn Sie andererseits die Informationen entschlüsseln möchten, die Ihr Gerät von anderen Punkten aus sendet/empfängt, z. B. was Apple TV sendet/empfängt möglicherweise von Apple), ist dies viel schwieriger. Ich vermute, dass dies wahrscheinlich der Verkehr ist, an dem Sie mehr interessiert sind.

Während das gleiche Prinzip gilt - im Wesentlichen ein MiTM-Angriff (Man in The Middle) -, müssten Sie Ihr Gerät irgendwie dazu bringen, einem Zertifikat zu vertrauen, das Sie besitzen, oder den privaten Schlüssel des vom Gerät verwendeten Zertifikats gefährden. Dies ist möglicherweise einfacher als es sein sollte oder sehr schwierig, je nachdem, wie gründlich der Anbieter die angemessene Sicherheit und Verwaltung von SSL-Schlüsseln gewährleistet hat. Beispielsweise wurde kürzlich berichtet, dass ein bekannter Consumer-Router und Modemhersteller auf vielen ihrer Geräte denselben Zertifikatschlüssel verwendet hat. Dies bedeutet, dass Sie nach dem Extrahieren des Schlüssels von einem Gerät Zugriff auf alle Geräte hatten, die diesen Schlüssel verwenden. Wenn der Hersteller Ihres Geräts einen ähnlich schlechten Sicherheitsschutz implementiert hat, gibt es wahrscheinlich eine Lücke, die Sie ausnutzen können. Es ist jedoch nicht unbedingt trivial, es zu finden. Es erfordert einige Hacking-Fähigkeiten und genau die richtige Art von abweichendem Verstand, um die Schwäche zu finden. Einige Leute sind Naturmenschen, andere weniger.

Sie müssten Ihr Gerät dazu bringen, einem Zertifikat zu vertrauen, das Sie besitzen, und dann einen Proxy einrichten, der über Ihr Zertifikat verfügt, das als Mann in der Mitte fungiert. Das Einrichten des Proxys ist trivial, wenn es sich um Ihr Netzwerk handelt, dh um ein Heimnetzwerk. Es ist jedoch viel schwieriger, das Gerät dazu zu bringen, einem von Ihnen erstellten Zertifikat zu vertrauen, und es birgt einige Risiken, dh Sie könnten den Zertifikatspeicher auf Ihrem Gerät beschädigen und so ziemlich verwandeln Sie es in einen Ziegelstein und ist mit ziemlicher Sicherheit illegal.

1
Tim X