Frage:
Möglichkeit, HTTPS-Verkehr auf Geräten zu überwachen, ohne ein Zertifikat zu installieren
Yifei
2015-03-04 22:12:42 UTC
view on stackexchange narkive permalink

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.

Sie benötigen keinen Dateisystemzugriff, aber Zugriff auf den Browser. Haben Sie einen solchen Zugriff? Können Sie erläutern, um welches "digitale Gerät" es sich handelt?
@schroeder Zum Beispiel ein Apple TV oder eine Spielekonsole, die nicht geknackt wird. Und ich möchte den Datenverkehr von einer App auf diesem Gerät abhören. Auf dem Smartphone kann ich ein benutzerdefiniertes Zertifikat installieren, aber ich habe keinen solchen Zugriff auf die oben genannten Geräte.
Sofern Sie nicht über den für die Installation eines Zertifikats erforderlichen Zugriff verfügen, handelt es sich nicht zu 100% um Ihr Gerät, sodass Sie den Datenverkehr nicht überprüfen dürfen. Im übertragenen Sinne besitzen Sie den "Körper" von AppleTV, aber nicht die "Seele".
Sechs antworten:
apsillers
2015-03-04 23:06:27 UTC
view on stackexchange narkive permalink

Der springende Punkt bei SSL ist die Beständigkeit gegen 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)
  • Geben Sie vor, der Server mit Ihrem eigenen selbstsignierten Zertifikat zu sein, und hoffen Sie, dass das System Wenn Sie die Anfrage naiv stellen, wird ein selbstsigniertes Zertifikat akzeptiert (dies entspricht der Entscheidungsfindung eines Benutzers, der die strengen Warnungen des Browsers über einen möglichen laufenden MITM-Angriff ignoriert).
  • Ü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 Produkte zu erstellen Zertifikate für Ihr eigenes Schlüsselpaar
  • Kaufen oder entdecken Sie eine Zero-Day-Sicherheitslücke in einem Webclient, Webserver oder (am besten) einer SSL / TLS-Bibliothek, die vom Client oder Server
  • Entdecken Sie eine lähmende Schwäche in einem zugrunde liegenden kryptografischen Grundelement, das von SSL verwendet wird (z. B. kann ein vollständiges Brechen von AES hilfreich sein).
  • Geben Sie Billionen 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 dies mit ziemlicher Sicherheit ein Angriff auf das eigene Vertrauen des Geräts Das Speichern von Zertifikaten wäre einfacher als ein Angriff auf SSL (obwohl dies auch alles andere als einfach sein kann).

"und hoffe, der Benutzer ignoriert die strengen Warnungen des Browsers über einen möglichen Angriff" Und wir haben Dienste, die ihre Benutzer explizit darin schulen, genau das zu tun, anstatt sich selbst zu reparieren. Wenn alle Browser ein schlechtes Zertifikat rundweg ablehnen würden, hätten wir dieses Problem nicht, aber dann würde eine Reihe von fehlerhaften, aber legitimen Diensten beschädigt.
Ihr dritter Aufzählungspunkt (Ausnutzen von Sicherheitslücken zum Extrahieren privater Daten) ist wahrscheinlich illegal, wenn er gegen einen Server verwendet wird, für den Sie keine Berechtigung haben, ihn zu verwenden (was Sie wahrscheinlich nicht tun würden, wenn Sie darauf zurückgreifen müssten).
+1 für "Wenn Sie viele Billionen Dollar haben ..."
Wenn Sie einige Billionen Dollar haben, könnten Sie wahrscheinlich die Herstellerfirma des Geräts kaufen und sich die tatsächlichen Quellen ansehen.
Es funktioniert auch, hinter dem Benutzer zu stehen und über die Schulter zu schauen.
@AE unwahrscheinlich, da Benutzer keine Zertifikate eingeben.
Es braucht keine Billionen von Dollar, um diese Dinge zu tun. Diese werden grundsätzlich jeden Monat durchgeführt.
@d33tah Aber es braucht Billionen von Dollar, um ein bisschen mehr möglich zu machen, dass es ** Sie ** sind, die diese Dinge tun.
Steffen Ullrich
2015-03-04 22:54:23 UTC
view on stackexchange narkive permalink

Irgendwelche Vorschläge? Ist dies möglich?

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 normalerweise
    • überhaupt keine Validierung. In diesem Fall können Sie ein beliebiges Zertifikat verwenden.
    • Validiert 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.

    armani
    2015-03-04 22:45:41 UTC
    view on stackexchange narkive permalink

    Nein, es liegt in der Natur von HTTPS, dass das Zertifikat zum Entschlüsseln erforderlich ist. Sie könnten den Verkehr riechen, aber er wäre verschlüsselt und für Sie nutzlos.

    Antonius Bloch
    2015-03-04 22:51:01 UTC
    view on stackexchange narkive permalink

    Nein. Dies ist der Punkt von SSL, um diese Art von nicht autorisiertem Snooping 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. Weitere Informationen:

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

    Damian Nikodem
    2015-03-05 05:27:45 UTC
    view on stackexchange narkive permalink

    Sehen 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, sollte nicht zu schwer zu ändern sein, um dies automatisch auszunutzen.

    Hast du FREAK ausgenutzt? Ich bin mir nicht sicher, ob Sie es beiläufig als praktikable Lösung vorschlagen können.
    Es ist lustig, dass Sie es erwähnen, weil ich neulich einen Beitrag zu FREAK kommentiert habe und es mein Interesse an dem Punkt geweckt hat, an dem ich angefangen habe, einige der 'Client-Test'-Tools auseinanderzunehmen und herumzusuchen und ihre Zeitung zu lesen, da ich eine habe Gerät, an dem ich gerade arbeite, das zufällig einen bestimmten öffentlichen Schlüssel im ROM codiert hat (und der Frage des OP ähnelt). Ich habe mich zwar noch nicht darum bemüht, einen RSA-Export 512-Schlüssel für einen bestimmten Server zu knacken Ich habe ungefähr 20 ungerade Handshakes und ungefähr 7 GB (bereit zum Entschlüsseln) Transfers, die zu Hause auf mich warten.
    Tim X
    2015-03-06 04:30:18 UTC
    view on stackexchange narkive permalink

    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 sendet / empfängt Von anderen Punkten aus, wie beispielsweise dem, was Apple TV möglicherweise von Apple sendet / empfängt, ist dies viel schwieriger. Ich vermute, dass dies wahrscheinlich der Datenverkehr 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 den privaten Schlüssel des vom Gerät verwendeten Zertifikats besitzen oder 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. So 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 Ihr Zertifikat enthält und 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.



    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...