Frage:
Gibt es eine Möglichkeit zu beweisen, dass HTTPS die Kommunikation mit meiner Site verschlüsselt?
NTHINGs
2016-10-06 00:06:44 UTC
view on stackexchange narkive permalink

Ich arbeite für ein Unternehmen, das sich mit der Entwicklung von Webanwendungen befasst, und bin der "Sicherheitsexperte". Ich habe kürzlich HTTPS in einer Anwendung mit Let's Encrypt implementiert, und mein Chef bittet mich zu beweisen, dass HTTPS die Informationen wirklich verschlüsselt.

Wie kann ich das machen?

https://www.ssllabs.com/ssltest/ oder zeigen Sie das Zertifikat in Aktion mit dem grünen Schlosssymbol in Ihrem Browser.Das sind zwei Wege von meinem Kopf entfernt.BEARBEITEN: Eine andere Methode wäre, Ihren Datenverkehr mit etwas wie Wireshark zu schnüffeln und ihm die verschlüsselten Pakete zu zeigen.@crovers hat mich geschlagen
Wenn diese nicht zufrieden sind, können Sie mit WireShark jederzeit anzeigen, dass im Klartext nichts vorhanden ist.
Ich habe Wireshark ausprobiert, aber es werden nur TCP-Pakete angezeigt
Was hast du dir erhofft?HTTPS läuft über TCP, verwendet sehr selten ein anderes Protokoll.
Entschuldigung an den Neuling hier und wie sollte das verschlüsselte Paket in Wireshark aussehen?
Folgen Sie dem TCP-Stream und prüfen Sie, ob die Daten im Klartext angezeigt werden.[Hier ist ein Link] (https://ask.wireshark.org/questions/14802/how-to-confirm-encrypted-data-using-wireshark)
@NTHINGs findet eine Site, die sowohl http als auch https unterstützt.Vergleichen Sie das Wireshark-Browsing in beiden Modi.Sie werden den Unterschied sehen.
Vergessen Sie auch nicht, HTTP auf Port 80 herunterzufahren und den Header [Http Strict Transport Security] (https://www.owasp.org/index.php/HTTP_Strict_Transport_Security_Cheat_Sheet) zu implementieren, damit kein Downgrade-Angriff ausgeführt werden kann.
OpenSSL und GnuTLs sind freie Software. Lesen Sie doch einfach die Quelle und überprüfen Sie, ob sie funktioniert, und zeigen Sie sie Ihrem Chef?:) Das ist das gesamte Verkaufsargument für freie Software, nicht wahr?Dass Sie die Quelle lesen und überprüfen können, ob sie nicht schief geht.Und jeder tut es.Außer dir.(/ s)
Ich denke, nur Ihr Chef kann diese Frage beantworten. Wenn er dem Hinweis des Browsers, dass die Sitzung sicher ist, nicht vertraut, nach welchem Beweis sucht er?Will er eine Paketerfassung sehen?Wie können Sie ihm beweisen, dass erfasste Pakete verschlüsselt und nicht nur verdeckt (oder komprimiert) sind?Will er einen anderen Beweis?Vielleicht eine Erklärung, wie TLS funktioniert und was die Browserangaben bedeuten?
Ich habe den Fragentitel so bearbeitet, dass es weniger Unterschiede zwischen dem Titel und der im Text gestellten Frage gibt.Der vorherige Titel war meiner Meinung nach etwas vage und mehrdeutig.Ich hatte das Gefühl, dass der ursprüngliche Titel eher "wie konfiguriere ich HTTPS, damit es auf allen Clients funktioniert" und nicht "wie beweise ich, dass HTTPS funktioniert".
Können Sie näher erläutern, was der Chef zu beweisen versucht?Versucht er festzustellen, ob branchenübliches SSL angewendet wird, oder prüft er, ob vertrauliche Informationen nicht über Klartext gesendet werden, oder ist er paranoid, dass die von Ihnen angewendete Verschlüsselung (die im Browser angezeigt wird) nicht sicher ist?
Unabhängig davon, welchen Test Sie am Ende durchführen, stellen Sie sicher, dass Sie denselben Test mit HTTP durchführen und die Ergebnisse vergleichen.
Es ist erwähnenswert, dass HTTPS nicht immer verschlüsselt ist, z.wenn der Server und der Client das [Nullprotokoll] unterstützen (http://security.stackexchange.com/questions/39315/checking-ssl-tls-servers-for-null-encryption-support).Sie müssen dies deaktivieren, um [Downgrade-Angriffe] zu verhindern (https://www.praetorian.com/blog/man-in-the-middle-tls-ssl-protocol-downgrade-attack).Siehe [OWASP A5] (https://www.owasp.org/index.php/Top_10_2013-A5-Security_Misconfiguration) und dessen [Korrektur] (https://www.owasp.org/index.php/Testing_for_Weak_SSL/TLS_Ciphers,_Insufficient_Transport_Layer_Protection_ (OTG-CRYPST-001)).
Zeigen Sie ihm diese Frage.Vielleicht lernt er tatsächlich etwas.Bitte teilen Sie uns aus Liebe zu allen Heiligen mit, dass die Websites dieses Unternehmens bisher noch keine Benutzeranmeldeinformationen im Klartext über das Internet weitergegeben haben.Wenn es so wäre und niemand es überhaupt wüsste ... würde ich gerne anfangen, an meinem Lebenslauf zu arbeiten.
Sechs antworten:
Bryan Field
2016-10-06 00:41:47 UTC
view on stackexchange narkive permalink

Mein Chef bittet mich zu beweisen, dass HTTPS die Informationen wirklich verschlüsselt. Wie kann ich das tun?

Grundsätzlich können Sie einen Paketinspektor oder einen einfachen Portweiterleitungs-Proxy verwenden. Möglicherweise überprüft Wireshark die Pakete einfach genug.

Sie sollten schnell feststellen können, dass der HTTP-Verkehr nur Text ist, während das HTTPS binärer Kauderwelsch ist. (mit Ausnahme des Hostnamens)

Dies beweist jedoch nur, dass die Verbindung verschleiert ist. Es beweist keine Verschlüsselung oder Sicherheit. Insbesondere zeigt es keine Immunität gegen MiTM.

Glücklicherweise erledigt der Browser dies alles für Sie. Wenn ein moderner Browser versucht, eine Verbindung zu einer HTTPS-Webseite herzustellen, wird Folgendes überprüft:

  • Stark genug Hash-Algorithmen für die beteiligten Zertifikate.
  • Stark genug Verschlüsselungsalgorithmen. (dh es ist tatsächlich verschlüsselt)
  • Zertifikatkette, ausgestellt von vertrauenswürdigen Zertifizierungsstellen (dh Zertifizierungsstellen, die den Domänenbesitz vor der Ausstellung ihrer Zertifikate überprüfen)
  • Nicht ablaufen der Zertifikate
  • Übereinstimmende Hash-Werte bedeuten, dass es kein MiTM gibt.

Während Ihr Chef gerne möchte, dass der Wireshark-Kauderwelsch HTTP mit HTTPS vergleicht Ein stärkerer Test besteht darin, die HTTPS-Site ganz einfach mit einem modernen Browser zu besuchen.

Stellen Sie sicher, dass der Browser nicht vorkonfiguriert wurde, um die Warnung zu ignorieren. (dh Test von mehreren Computern und Smartphones)

Wenn Sie vorhaben, HTTPS dauerhaft fortzusetzen (was Sie sollten), besteht eine sinnvolle Vorsichtsmaßnahme darin, die Umleitung aller HTTP-Besuche auf die HTTPS-Site zu erzwingen, da Sie nicht garantieren können, dass alle Besucher beim Besuch Ihrer Website das Präfix https: // angeben.

Eine Demonstration in WireShark reicht normalerweise aus, wenn jemand dumm genug ist, um eine Demonstration zu verlangen, dass sie geschützt ist.
Ich denke nicht, dass es * überhaupt * dumm ist, nach Beweisen zu fragen.Wenn das OP versehentlich tatsächlich HTTP verwenden würde, würde alles gut funktionieren - es wäre einfach nicht sicher!
@Joshua, es ist überhaupt nicht dumm.Wenn ein Manager kein Vertrauen in seinen Experten hat und keine Ressourcen zur Einstellung und zum Experten hat, auf die er vertraut, ist dies das nächstbeste.Indem Sie Ihren Untergebenen bitten, zu beweisen, dass Sie einen Denkprozess anregen, eine weitere Runde des kritischen Denkens.Es ist eine sehr kluge Frage.
@AndrewSavinykh: Der Beweis ist eigentlich nicht gut.Sie können gute Verschlüsselung nicht von schlechter unterscheiden, indem Sie nachsehen.
@Joshua - Ich denke, Sie verpassen meinen Standpunkt
Sie beweisen, dass ein Dach undicht ist, indem Sie entweder auf Regen warten oder den Schlauch herausnehmen.Wenn weder Sie noch Ihr Chef eine Idee haben, wie Sie eine schlechte oder deaktivierte Verschlüsselung ausnutzen können, warten Sie nur auf Regen.
INV3NT3D
2016-10-06 00:42:49 UTC
view on stackexchange narkive permalink

Dies sind wenige Möglichkeiten (nicht umfassend), um zu beweisen , dass Ihre Anwendung Informationen verschlüsselt :

  1. SSL Labs verfügt über eine Webanwendung zum Testen der SSL-Implementierung Ihrer Webanwendung
  2. ol>

    ODER

    1. In Ihrem Webbrowser wird auf mit HTTPS gesicherten Websites eine grüne Sperre neben der URL angezeigt, wie folgt: a picture that shows the green lock icon next to the URL for google.ca
    2. ol>

      Wenn Sie weitere Details benötigen oder besser nachweisen möchten, dass Ihr Zertifikat anders als das grüne Schloss funktioniert, klicken Sie auf dieses Schloss, zeigen Sie Details an, und Sie werden sehen So etwas (in Chrome für dieses Beispiel):

      details that describe the certificate is encrypting your connection and working properly

      Dies gibt Ihnen alle schmutzigen kleinen Details, die Sie benötigen, um zu überprüfen, ob Ihre Zertifikat funktioniert wie erwartet.

      ODER

      1. Wireshark starten oder a Packet Sniffer / Analyzer Ihrer Wahl, dann führen Sie einige Daten durch Ihre Anwendung aus, die verschlüsselt werden sollen (Anmelden, Senden eines Formulars usw.). Suchen Sie das Paket , folgen Sie dem TCP-Stream und stellen Sie sicher, dass nichts im Klartext übertragen wird.
      2. ol>
Nun ... für eine paranoide Person zeigen alle drei hier beschriebenen Methoden * bestenfalls * Indizienbeweise, können aber nicht als Beweis bezeichnet werden.Der einzige Weg, dies zu beweisen, besteht darin, alle Pakete zu erfassen und ** manuell ** zu überprüfen, ob das TLS-Protokoll effektiv ausgeführt wird. Die Daten werden mit dem richtigen Algorithmus und Schlüssel verschlüsselt (was Sie nur durch 1 statistische Tests beweisen können) und 2) entschlüsseln Sie es mit dem entsprechenden Entschlüsselungsalgorithmus & Schlüssel) usw. und es gibt keine einfache und schnelle Möglichkeit, dies zu tun, insbesondere für jemanden, der keine Ahnung von Sicherheit hat.
@Bakuriu, Ich stimme vollkommen zu.Dies sollte einfache Methoden zum "Beweisen" der Verschlüsselung für eine möglicherweise nicht so technisch versierte Person zeigen.Eigentlich ziehe ich George Baileys Antwort meiner eigenen vor.Gute Punkte.
@Bakuriu Alles, was aus dem Fenster geht, wenn Sie dem Browser sowieso nicht vertrauen.
symcbean
2016-10-06 04:25:08 UTC
view on stackexchange narkive permalink

SSLlabs ist ein großartiges Tool zum Analysieren einer HTTPS-Website. Aber ...

  • Es beweist nicht, dass Sie die Nicht-SSL-Teile der Website geschlossen haben.
  • Ich habe den Eindruck, dass Ihr Chef dies nicht tun wird Verstehe, was es dir über deine Website sagt.
  • Aus deinen Kommentaren zu Wireshark geht hervor, dass du ein bisschen Schwierigkeiten hast zu verstehen, was mit dir selbst los ist.

Du sagst, dass du ' Wir wurden gebeten zu beweisen, dass "HTTPS die Informationen wirklich verschlüsselt". Vielleicht hat jemand seine Worte schlecht gewählt, aber Sie sagen, Sie werden gebeten zu beweisen, dass die Technologie, auf die sich die Welt stützt, um den E-Commerce zu sichern, ihre grundlegendsten Anforderungen wirklich umsetzt. Ich denke, jemand hätte es inzwischen bemerkt, wenn dies nicht der Fall wäre.

(Ich sollte darauf hinweisen, dass es technisch möglich ist, https so zu konfigurieren, dass bei einigen Clients und eine Null-Chiffre verwendet wird Server, aber es ist extrem schwierig, dies mit Absicht zu tun. Sie könnten es nicht versehentlich tun.)

Angenommen, Ihr Chef hat das nicht wirklich so gemeint, werden Sie gebeten, zu überzeugen ihm, dass die Arbeit, die Sie getan haben, gültig ist. Die meisten Browser zeigen Ihnen die Verschlüsselungsalgorithmen, die für den Zugriff auf eine Website verwendet werden.

Wenn Ihr Chef etwas anderes / mehr möchte, wissen wir nicht, was ihn überzeugen wird. Sie müssen ihn nach einer spezifischeren Anforderung und Einzelheiten darüber fragen, was er / sie als akzeptablen Beweis betrachten würde.

Ich sollte auch hinzufügen, dass es eine sehr schlechte Verwaltungspraxis ist, den Implementierer um etwas zu bitten, um zu beweisen, dass es funktioniert, ob es sich um ein Sicherheits-, Funktions-, Leistungs-, Kapazitäts- oder Usability-Merkmal handelt.
"Ich denke, jemand hätte es inzwischen bemerkt, wenn es nicht so wäre."Die Welt hat.Viele Male.Alte Versionen von SSL / TLS sind veraltet.Fehler in SSL / TLS-Bibliotheken wurden behoben.Die wichtigsten Festigkeitsanforderungen wurden erhöht.Es ist sicher ein unvollkommenes System, aber es ist ein unvollkommenes System, das die Welt sehr genau beobachtet und jedes Jahr Millionen (Milliarden?) Dollar investiert, um es so gut wie möglich zu machen.Kein kleines Unternehmen mit einem Chef, der nicht einmal weiß, wie weit verbreitet HTTPS ist, wird eine bessere Alternative finden.+1
bdsl
2016-10-06 16:56:33 UTC
view on stackexchange narkive permalink

Vertrag mit einem professionellen IT-Sicherheitsexperten und Kryptografieexperten mit gutem Ruf. Ermöglichen Sie ihnen, den Datenverkehr in Ihrem Netzwerk zu erfassen, und bitten Sie sie, herauszufinden, welche Nachrichten an und von der Site gesendet werden.

Wenn sie fehlschlagen, haben Sie festgestellt, dass der Datenverkehr effektiv verschlüsselt ist. Natürlich ist dies wahrscheinlich nicht billig.

Dann ist es eine gute Aufgabe, dass jeder, der vage technisch ist, Wireshark verwenden kann, um die Daten selbst zu untersuchen (wie in früheren Antworten erläutert) - ohne dass jemand dafür bezahlen muss.
Es kommt darauf an, welche Beweise der Chef will und bereit ist, dafür zu bezahlen.Der Chef ist möglicherweise nicht zufrieden mit dem Zeugnis von jemandem, der "vage technisch" ist.Wenn der Chef die Daten selbst betrachtet, kann er wahrscheinlich nicht zwischen starker Verschlüsselung und einem Schema unterscheiden, das nur alle Einsen durch Nullen ersetzt und umgekehrt.
Wenn sie versagen, kann dies daran liegen, dass sie inkompetent oder faul sind oder nicht über ausreichende Ressourcen oder Budget verfügen oder tatsächlich nichts unternommen haben.Das reicht nicht aus.
Nein;Dies ist eine tragfähige Antwort.Schlagen Sie vor, einen Experten aufzusuchen und ihn / sie eine kostspielige Demonstration durchführen zu lassen.Stellen Sie dies einer Wireshark-Demonstration gegenüber.Wenn der Chef den Experten auswählt, wissen Sie, dass er seinen eigenen Leuten nicht als Experten vertraut.Es wird gerechtfertigt sein, weiterzumachen, wenn die Wirtschaft stimmt.
@EJP deshalb sollte es jemand mit einem guten Ruf sein.Wenn sie in der Vergangenheit inkompetent oder faul waren, hätten sie diesen Ruf nicht, und sie möchten wahrscheinlich den Ruf bewahren.Wenn sie nicht über ausreichende Ressourcen verfügen, sollten sie dies klarstellen wollen, um zu zeigen, dass sie nicht inkompetent oder faul sind.
Luc
2016-10-07 16:57:22 UTC
view on stackexchange narkive permalink

Wenn Sie in Firefox auf das Schlosssymbol klicken und auf Weitere Informationen klicken, wird Folgendes angezeigt:

Connection encrypted with TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 256 bit keys

Hier wird eindeutig angegeben, dass die Verbindung verschlüsselt ist und welche Protokolle verwendet wurden.

Greenstone Walker
2016-10-06 06:32:34 UTC
view on stackexchange narkive permalink

Sagen Sie Ihrem Chef: "Amazon.com verwendet es."

Sie sind alt genug und erfahren genug im E-Commerce und im Web, um zu wissen, was funktioniert und was nicht. Wenn sie HTTPS als ausreichend betrachten, um Ihre Kreditkarte zu schützen, sollte dies ein Beweis genug sein.

Als ich vor vielen Monden Webprogrammierung durchführte, haben wir die Abkürzung WADI - Would Amazon Do It gelehrt. Wenn jemand sagte "Hey, unsere Website sollte das tun!", Lautete Ihre Antwort "Tut Amazon das? Wenn nicht, sollten wir das auch nicht."

Ich bin ziemlich sicher, dass Amazon Let's Encrypt NICHT verwendet. Keine dieser Antworten ist hilfreich, um zu beweisen, dass die Web-App den verschlüsselten Kanal ordnungsgemäß und einheitlich verwendet.Die OP-Frage ist besonders wichtig, wenn Sie das TLS auf einen Load Balancer oder ein anderes Grenzgerät auslagern.
Der Subtext, den ich aus der Antwort bekomme, ist, dass der Chef nicht technisch ist.In diesem Fall wird ein technischer Beweis nicht verstanden, daher suchen Sie nach nicht technischen Beweisen.
@GreenstoneWalker glaubt nicht, dass der Chef nach einem technischen Beweis sucht, aber hier gibt es zwei Fragen: 1) Hat Let's Encrypt eine moderne SSL-Verschlüsselung nach Industriestandard auf die Site angewendet und 2) Ist diese Verschlüsselung sicher?Ihre Antwort spricht nur Letzteres an und geht nicht auf die Besorgnis des Chefs ein, dass jemand etwas bei der Einrichtung und Verschlüsselung verpasst hat.
@GreenstoneWalker, der Ihren Chef anlügt, ist kein guter Weg, um sein Vertrauen in Ihren Dienst zu verdienen.


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...