Frage:
Wie ist es möglich, dass Personen, die beobachten, dass eine HTTPS-Verbindung hergestellt wird, nicht wissen, wie sie entschlüsselt werden sollen?
Joshua Carmody
2011-08-15 23:58:32 UTC
view on stackexchange narkive permalink

Ich habe oft gehört, dass die von Ihnen übermittelten Informationen vor dem Schnüffeln durch Dritte geschützt sind, wenn Sie sich über HTTPS bei einer Website anmelden - einer Bank, GMail, was auch immer. Ich war immer ein wenig verwirrt darüber, wie dies möglich sein könnte.

Sicher, ich verstehe die Idee der Verschlüsselung ziemlich gut (glaube ich), und dass es Menschen ohne Kenntnis des Verschlüsselungsschlüssels schwer fallen würde, die Verschlüsselung zu brechen. Nach meinem Verständnis wird jedoch beim Herstellen einer HTTPS-Verbindung der Verschlüsselungsschlüssel zwischen den verschiedenen beteiligten Computern "besprochen", bevor die verschlüsselte Verbindung hergestellt wird. Bei der Auswahl eines Verschlüsselungsschlüssels können viele Faktoren eine Rolle spielen, und ich weiß, dass dies mit einem SSL-Zertifikat zu tun hat, das möglicherweise von einem anderen Server stammt. Ich kenne den genauen Mechanismus nicht.

Es scheint mir jedoch, dass jeder Angreifer mit Zugriff auf das Netzwerk, wenn der Verschlüsselungsschlüssel zwischen dem Server und dem Client ausgehandelt werden muss, bevor der Verschlüsselungsprozess beginnen kann Der Datenverkehr könnte auch die Aushandlung des Schlüssels überwachen und würde daher den Schlüssel kennen, der zum Einrichten der Verschlüsselung verwendet wird. Dies würde die Verschlüsselung unbrauchbar machen, wenn sie wahr wäre.

Es ist offensichtlich, dass dies nicht der Fall ist, da HTTPS sonst keinen Wert hätte, und es ist allgemein anerkannt, dass HTTPS eine ziemlich effektive Sicherheitsmaßnahme ist . Ich verstehe jedoch nicht, warum es nicht wahr ist. Kurz gesagt: Wie können Client und Server eine verschlüsselte Verbindung über HTTPS herstellen, ohne den Verschlüsselungsschlüssel an Beobachter weiterzugeben? B>

Siehe 1. SSL erklärt - http://www.youtube.com/watch?v=a72fHRr6MRU und 2. Was ist HTTPS? - http://www.youtube.com/watch?v=JCvPnwpWVUQ
Nur der Administrator der Website hat den Schlüssel der Website. Wenn Sie an den Fall denken, in dem der ISP die Website betreibt, dann ist der ISP kein Mann in der Mitte, der ISP ist der Mann.
@Johnny Ich denke an den Fall, in dem der ISP das Zertifikat irgendwie kompromittiert hat. NDF1 erklärt es unten ein bisschen von dem, woran ich gedacht habe.
Mögliches Duplikat von [Wie funktioniert SSL / TLS?] (Https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work)
Vierzehn antworten:
Thomas Pornin
2011-08-16 00:35:59 UTC
view on stackexchange narkive permalink

Es ist die Magie der Kryptographie mit öffentlichem Schlüssel. Mathematik ist beteiligt.

Das am einfachsten zu verstehende asymmetrische Schlüsselaustauschschema ist die asymmetrische Verschlüsselung mit RSA. Hier ist eine stark vereinfachte Beschreibung:

Sei n eine große Ganzzahl (z. B. 300 Stellen); n wird so gewählt, dass es sich um ein Produkt aus zwei Primzahlen ähnlicher Größe handelt (nennen wir sie p und q ). Wir werden dann die Dinge "modulo n " berechnen: Dies bedeutet, dass wir jedes Mal, wenn wir zwei ganze Zahlen addieren oder multiplizieren, das Ergebnis durch n teilen und den Rest behalten (was ist) zwischen 0 und n-1 , notwendigerweise).

Bei x wird x 3 berechnet sup> modulo n ist einfach: Sie multiplizieren x mit x und dann erneut mit x , und dann dividieren Sie durch n und behalten den Rest. Das kann jeder. Andererseits scheint die Wiederherstellung von x angesichts von x / modulo n übermäßig schwierig zu sein (die bekanntesten Methoden sind viel zu teuer für vorhandene Technologie) - es sei denn Sie kennen p und q . In diesem Fall wird es wieder einfach. Die Berechnung von p und q aus n scheint jedoch ebenfalls schwierig zu sein (dies ist das Problem, das als Ganzzahlfaktorisierung bekannt ist).

Hier ist also, was der Server und der Client tun:

  • Der Server hat ein n und kennt das entsprechende p und q (es hat sie generiert). Der Server sendet n an den Client.
  • Der Client wählt ein zufälliges x aus und berechnet x 3 sup> modulo n.
  • Der Client sendet x 3 sup> modulo n an die Server.
  • Der Server verwendet seine Kenntnisse von p und q , um x wiederherzustellen.

Zu diesem Zeitpunkt kennen sowohl Client als auch Server x . Aber ein Lauscher sah nur n und x 3 sup> modulo n ; Er kann p , q und / oder x aus diesen Informationen nicht neu berechnen. X ist also ein gemeinsames Geheimnis zwischen dem Client und dem Server. Danach ist dies eine recht einfache symmetrische Verschlüsselung, bei der x als Schlüssel verwendet wird.

Das -Zertifikat ist ein Gefäß für den öffentlichen Serverschlüssel ( n) ). Es wird verwendet, um aktive Angreifer zu vereiteln, die sich als Server ausgeben möchten: Ein solcher Angreifer fängt die Kommunikation ab und sendet seinen Wert n anstelle von n des Servers. Das Zertifikat ist von einer Zertifizierungsstelle signiert, sodass der Client möglicherweise weiß, dass ein bestimmtes n wirklich das echte n vom gewünschten Server ist sprechen mit. Digitale Signaturen verwenden auch asymmetrische Kryptographie, wenn auch auf unterschiedliche Weise (zum Beispiel gibt es auch eine Variante von RSA für digitale Signaturen).

Diese Antwort gefällt mir sehr gut. Ist es in Bezug auf SSL technisch korrekt? Wenn ja, bin ich versucht, es als "am hilfreichsten" zu markieren. Gowenfawrs Antwort ist auch sehr hilfreich und hat viel mehr Stimmen, aber da sie "verstümmelte Details" enthält, frage ich mich, ob diese Antwort genauer ist.
Ich habe viele Details übersprungen, z. Der Exponent "3" kann ein anderer Wert sein (traditionell 65537), der als Teil des öffentlichen Schlüssels betrachtet wird. Außerdem wird irgendwann aufgefüllt (der vom Client gewählte Zufallswert ist kleiner als _x_; _x_ ergibt sich aus der Anwendung einer relativ einfachen Transformation). Abgesehen davon ist dies bei den meisten SSL-Verbindungen der Fall (der Schlüsselaustauschalgorithmus wird zu Beginn ausgehandelt, aber bei den meisten bereitgestellten SSL-Servern und -Clients führt dies, wie ich beschreibe, zu RSA und nicht zu Diffie-Hellman).
Eine kleine Änderung - in SSL / TLS - das X dieser Erklärung ist eigentlich das "Pre-Master-Geheimnis", es wird sowohl vom Client als auch vom Server verwendet, um das "Master-Geheimnis" zu generieren. Anschließend wird eine weitere Berechnung durchgeführt, um den "Schlüsselblock" zu erstellen, mit dem auf der Grundlage des Hauptgeheimnisses und einer Reihe von Zufallseingaben genügend Ausgaben generiert werden können, um den für die ausgewählte symmetrische Verschlüsselung erforderlichen symmetrischen Schlüssel zu erstellen. Dies ist wirklich eine kleine Schwäche, da es ziemlich linear ist - wenn ein Angreifer das Pre-Master-Geheimnis und die klaren Hallo-Nachrichten hätte, könnte er mithören.
Wie berechnet man _x_ bei _x_ gewürfeltem Modulo _n_ und _p_ und _q_?
@Justin: Kurzversion: Sie berechnen _d_, die Umkehrung von 3 Modulo _phi (n) _ wobei _phi (n) = (p-1) (q-1) _. Dann führen Sie eine modulare Exponentiation von _x 3 _ modulo _n_ mit _d_ als Exponent durch. Auf der [Wikipedia-Seite zu RSA] (http://en.wikipedia.org/wiki/RSA_%28algorithm%29) finden sich einigermaßen klare Erklärungen.
Dies ist eine großartige, gründliche Antwort!
Wäre es wahr zu sagen, dass n nur 4 Faktoren hat: 1, p, q und n?
Wenn _p_ und _q_ zwei verschiedene Primzahlen sind und _n = pq_, dann gibt es genau vier positive ganze Zahlen, die _n_ teilen, und dies sind _1_, _p_, _q_ und _n_ selbst. Die Werte _1_ und _n_ werden oft als "triviale Teiler" bezeichnet, während _p_ und _q_ schwer zu berechnen sind. Genau genommen werden nur _p_ und _q_ "Faktoren" genannt, weshalb "Divisor" hier eine genauere Terminologie wäre.
Ich denke, nachdem ich alles gelesen habe, was ich nicht verstehe, wie ein Angreifer den Computer nicht beobachten konnte, versucht er, Zugriff zu erhalten, um den Schlüssel zu generieren, der an die andere Partei gesendet wird, um die sichere Verbindung herzustellen.
@greg: Wie können Sie beobachten, wie dieser Computer Dinge tut, es sei denn, Sie haben bereits Zugriff darauf? (Antwort: Herzblut)
Wenn der Angreifer den Computer von innen beobachtet, ist der Austausch öffentlicher Schlüssel nutzlos.Es schützt nur vor Personen, die die Kommunikation beobachten, nicht vor Personen, die den internen Status des Servers selbst überwachen.
gowenfawr
2011-08-16 00:17:48 UTC
view on stackexchange narkive permalink

Hier ist eine wirklich vereinfachte Version:

  1. Wenn ein Client und ein Server HTTPS aushandeln, sendet der Server seinen öffentlichen Schlüssel an den Client.
  2. Der Client verschlüsselt die Sitzungsverschlüsselung Schlüssel, den er mit dem öffentlichen Schlüssel des Servers verwenden möchte, und sendet diese verschlüsselten Daten an den Server.
  3. Der Server entschlüsselt diesen Sitzungsverschlüsselungsschlüssel mit seinem privaten Schlüssel und beginnt mit der Verwendung.
  4. Die Sitzung ist jetzt geschützt, da nur der Client und der Server den Sitzungsverschlüsselungsschlüssel kennen können. Es wurde nie im Klartext übertragen oder in irgendeiner Weise konnte ein Angreifer entschlüsseln, so dass nur sie es wissen.
  5. ol>

    Voilà , jeder kann den öffentlichen Schlüssel sehen, Das erlaubt ihnen jedoch nicht, das mit diesem öffentlichen Schlüssel verschlüsselte Paket "Hey, lass uns von jetzt an mit diesem verschlüsseln" zu entschlüsseln. Nur der Server kann das entschlüsseln, da nur der Server diesen privaten Schlüssel hat. Angreifer könnten versuchen, die Antwort zu fälschen, die einen verschlüsselten Schlüssel enthält. Wenn der Server die Sitzung damit einrichtet, spricht der wahre Client sie nicht, da es sich nicht um den Schlüssel handelt, den der wahre Client festgelegt hat.

    Es ist die ganze Magie der asymmetrischen Schlüsselverschlüsselung. Faszinierendes Zeug.

    P.S. "wirklich vereinfacht" bedeutet "verstümmelte Details, um das Verständnis zu erleichtern". Wikipedia "Transport Layer Security" gibt eine Antwort, die in technischen Einzelheiten korrekter ist, aber ich wollte "easy to grok".

An dieser Stelle ist es wichtig zu erwähnen, dass der öffentliche Schlüssel von einer vertrauenswürdigen Behörde [signiert] (http://en.wikipedia.org/wiki/Digital_signature) ist, dh selbst wenn der Angreifer ein [Mann in der Mitte] ist (http : //en.wikipedia.org/wiki/Man-in-the-middle_attack) kann er nicht vorgeben, der Server zu sein, um den Client dazu zu bringen, den gemeinsam genutzten Schlüssel stattdessen mit dem öffentlichen Schlüssel des Angreifers zu verschlüsseln.
Was würde passieren, wenn wir nicht die asymmetrische Verschlüsselung erfunden hätten?
Ohne asymmetrische Verschlüsselung würde das Internet, wie wir es kennen, nicht existieren. Sie können keine Inhalte an zufällige Client-Systeme mit symmetrischer Verschlüsselung verkaufen. Das Internet wäre wie ein Fernseher, bei dem Sie sich die Werbung ansehen, aber Sie müssen am Telefon anrufen, um den Kauf abzuschließen. Asymmetrische Verschlüsselung ist wirklich * wirklich * ** faszinierendes Zeug **
Viola? Meinst du nicht Voila? :) :)
Es tut mir leid, das Viola-Voila-Ding ist bei mir so ein reflexives Scherz-Ding, ich habe es benutzt, ohne darüber nachzudenken, und natürlich konnte man hier niemanden erwarten, der an diesem Witz beteiligt ist. Also, ja, voila war der beabsichtigte semantische Inhalt, und Viola war kein Tippfehler, sondern ein obskurer syntaktischer Witz. Das tut mir leid.
gowenfawr - +1 Vielen Dank für Ihre Antwort. Ich hatte von asymmetrischer Verschlüsselung gehört, sie aber vergessen, als ich über diese Frage nachdachte. Ihre Antwort war sehr leicht zu verstehen. Ich akzeptierte jedoch die Antwort von Thomas Pornin, weil ich das Gefühl hatte, dass er den Mechanismus wirklich gründlich erklärte.
@gowenfawr Ja, es ist eines der faszinierendsten Dinge. Ich habe es im https://www.coursera.org/course/crypto Kurs erfahren und seitdem habe ich mich zunehmend für Kryptographie und Bitcoins interessiert.
@gowenfawr Vielen Dank für diese vereinfachte Antwort! Ich war mir sicher, dass dies schon seit einiger Zeit so funktioniert, aber da jeder Details zu jeder Ebene im OSI-Modell bereitstellen möchte, ist es unmöglich, eine Bestätigung meines Verständnisses zu finden.
Aber wenn wir asymmetrische Verschlüsselung verwenden, warum ist es wichtig, dass "nur der Client und der Server den Sitzungsverschlüsselungsschlüssel (öffentlich?) kennen"?Wenn die Kommunikation nicht mit dem öffentlichen Schlüssel, sondern nur mit dem entsprechenden privaten Schlüssel entschlüsselt werden kann, warum kann der öffentliche Schlüssel dann nicht unsicher gesendet werden?
@amphibient,, da der Sitzungsschlüssel ein symmetrischer Verschlüsselungsschlüssel ist, der zum Verschlüsseln der tatsächlichen Daten verwendet wird.Asymmetrische Schlüssel eignen sich nur zum Verschlüsseln kleiner Datenmengen (wie einstelliges K).Daher wird die auf öffentlichen Schlüsseln basierende asymmetrische Verschlüsselung verwendet, um einen kleinen geheimen Schlüssel sicher auszutauschen, der dann für die symmetrische Verschlüsselung von Daten mit hohem Datenvolumen verwendet wird.
Danke, das macht Sinn.basiert [diese beliebte Antwort] (http://security.stackexchange.com/a/8309/20014) jedoch nicht auf einer anderen Annahme, nämlich dass der Datenaustausch nach dem Handshake auch einer asymmetrischen Verschlüsselung folgt und nicht symmetrisch ist, wie Siesagen?
@amphibient Die Antwort, auf die Sie verlinkt haben, scheint ein sehr wichtiges Detail auszulassen: Nach dem ersten Austausch, der zur Einrichtung des gemeinsamen geheimen Schlüssels dient, wechseln Server und Client mit diesem geheimen Schlüssel zur symmetrischen Verschlüsselung.Dies geschieht aus verschiedenen Gründen, nicht zuletzt aufgrund der Leistung: Bei Schlüssellängen, die eine angemessene Sicherheit bieten, ist die asymmetrische Verschlüsselung sehr langsam, sodass Sie den Datenverkehr minimieren möchten, den Sie damit verschlüsseln.Symmetrische Verschlüsselung kann dagegen extrem schnell und dennoch sicher sein.
+1 Für "Ich wollte einfach zu grillen".
evil otto
2011-08-16 08:39:30 UTC
view on stackexchange narkive permalink

Die anderen Antworten sind gut, aber hier ist eine physikalische Analogie, die möglicherweise leichter zu verstehen ist:

Stellen Sie sich ein Schließfach vor, das mit einer Metallklappe versehen ist, an der Sie ein Vorhängeschloss anbringen, um es zu sichern. Stellen Sie sich vor, die Schlaufe, in die Sie das Vorhängeschloss legen, ist groß genug für zwei Vorhängeschlösser. Um etwas sicher an eine andere Partei zu senden, ohne die Vorhängeschlossschlüssel zu teilen,

  1. legen Sie das "Ding" in die Schachtel und sperren es mit Ihrem Vorhängeschloss.
  2. senden Sie das gesperrte Box an die andere Partei.
  3. Sie setzen ihr Vorhängeschloss ebenfalls auf die Schlaufe (so dass zwei Schlösser darauf sind) und geben die doppelt gesperrte Box an Sie zurück.
  4. Sie Entfernen Sie Ihr Vorhängeschloss und geben Sie die jetzt einfach verschlossene Box an sie zurück.
  5. Sie entfernen ihr eigenes Schloss und öffnen die Box.
  6. ol>

    Bei der Verschlüsselung sind die Schlösser und Schlüssel mathematisch , aber das allgemeine Konzept ist vage so.

So wollte ich es auch erklären. Die einzige andere Sache, die hinzugefügt werden muss, ist, dass dieses komplexe * Hin und Her * nur einmal benötigt wird, da das "Ding", das Sie damit übergeben, ein * gemeinsamer Schlüssel * ist. Auf diese Weise können beide Enden bis zum Ende der * Sitzung * das Schließfach öffnen und Dinge hineinlegen. Jede Sitzung verfügt über ein neues Vorhängeschloss und ein Schlüsselpaar, sodass Sie diese nach Beendigung Ihrer Sitzung einfach wegwerfen können. * 8 ')
Ein bisschen wie @Mark Booth sagte, in der Box befindet sich ein drittes Vorhängeschloss mit einem Satz Schlüssel, das für alle zukünftigen Austausche während der Sitzung verwendet wird.
Zusätzlich: Die Box und die Vorhängeschlösser bestehen aus extrem hartem Metall. Es ist absolut unmöglich, sie aufzubrechen. Es ist auch sicher gegen Röntgenstrahlen. Sie können eine Atombombe verwenden, um die Schachtel und den Inhalt zu verdampfen, und sie ist verschwunden, aber Sie können sie nicht öffnen.
Diese Erklärung hat mir immer gefallen. Viel einfacher zu verstehen als ein paar mathematische Gleichungen.
Eine Sache, die hier fehlt, ist die Authentifizierung. Das heißt, anstatt wirklich "sie" setzen die zweite Sperre in Schritt 3, könnte jemand anderes die zweite Sperre setzen.
Ich mag die Bilder :) Wäre eine asymmetrische Verschlüsselung nicht mehr so: Der Server sendet eine leere Box und sein offenes Snap-On-Vorhängeschloss ohne Schlüssel, der Client legt ein Vorhängeschloss mit einem Schlüssel an (behält den zweiten Schlüssel bei), schnappt das Vorhängeschloss des Servers auf, Box wegschicken?
@tanius, nicht ganz.Der Client erhält das geöffnete Vorhängeschloss des Servers, generiert einen Kombinationssperrcode, den er notiert und in die Box einfügt, und sperrt die Box dann mit dem Vorhängeschloss des Servers.Der Server öffnet sein eigenes Vorhängeschloss mit dem entsprechenden Schlüssel und schreibt dann den Kombinationscode zur Verwendung während der Sitzung auf.Von da an verwenden sie nur noch Zahlenschlösser.(symmetrischer Schlüssel).Eigentlich könnte ich dasselbe sagen, was Sie sind, nicht sicher.
Ich kann nicht verstehen, wie die Analogie die Kryptographie mit öffentlichen Schlüsseln darstellt.Kann jemand erklären
Diese physikalische Analogie stellt ein Drei-Durchlauf-Protokoll dar und unterscheidet sich etwas von den anderen Antworten. Daher kann sie nicht als Analogie für diese Antworten verwendet werden. Sie ist anders. Ich bitte das Poster, diese Notiz hinzuzufügen.
NDF1
2013-10-23 03:57:52 UTC
view on stackexchange narkive permalink

Viele der bereits bereitgestellten Antworten übersehen die Abhörfähigkeit des ISP oder der NSA. Schauen Sie sich Raum 641A im AT&T-Rechenzentrum an. Es gibt geschätzte 10 bis 20 solcher Einrichtungen, die in den Vereinigten Staaten installiert wurden. Schauen Sie sich auch das One Wilshire -Gebäude an, in dem 260 ISP-Verbindungen zu einem Gebäude zusammenlaufen. Dieser Standort ist ein erstklassiger Standort für eine Abhöreinrichtung.

Tatsache ist, dass ein ISP (oder die von der NSA im ISP installierte Ausrüstung) eine SSL-Verbindung abfangen und MITM angreifen kann und sie können es tatsächlich ganz einfach tun.

Hier ist ein Diagramm von nsawatch .org:

the NSA surveillance octopus

Würden sie nicht einfach den Betreiber der Website zwingen, ihr eigenes Zertifikat zu übergeben, was das Ganze völlig transparent machen würde? Wenn die NSA für jede Website neue Zertifikate erstellen muss, zeigt das Verfolgen von Zertifikatfingerabdrücken das Abhören. Wenn sich beispielsweise der Fingerabdruck des SSL-Schlüssels meines Unternehmens zwischen dem Zugriff auf die Website bei der Arbeit und dem Zugriff zu Hause unterscheidet, weiß ich, dass das Zertifikat kompromittiert wurde. Wenn sie nur auf meine Heim-Internetverbindung tippen, kann ich nach Fingerabdruckänderungen suchen, die sich zwischen Heim- und einem anderen Netzwerk unterscheiden.
@Johnny:, das etwas funktionieren würde, aber die Faulheit der Benutzer, Zertifikatsignaturen für jede von ihnen besuchte sichere Site zu überprüfen, würde am häufigsten auftreten. Außerdem ändern einige HTTPS-Sites Zertifikate nach einem Zeitplan (z. B. alle 6 Monate), was es schwierig macht, festzustellen, ob eine Änderung der Zertifikatsignatur tatsächlich gültig ist.
@Johnny Auch ein großer Teil des Internets hat den Fehler der transparenten Austauschbarkeit der Stammzertifizierungsstelle * als Feature * verwendet. Das Navigieren im modernen Internet mit Tools wie [Certificate Patrol] (https://addons.mozilla.org/en-US/firefox/addon/certificate-patrol/) ist ein Albtraum von "legitimen" Swaps und Switches, die eine Spionageagentur wechselt könnte sich darin verstecken, wie eine Nadel im Heuhaufen. Aus diesem Grund habe ich die Verwendung von Cert Patorl aufgegeben. Der zugrunde liegende Standard * v3 X.509 * ist fehlerhaft.
@suriv Es ist keine zweifelhafte Behauptung, es ist eine Tatsache. Lesen Sie [National Security Letters] (https://en.wikipedia.org/wiki/National_security_letter) oder das [Foreign Intelligence Surveillance Act] (https://en.wikipedia.org/wiki/United_States_Foreign_Intelligence_Surveillance_Court#Secret_law).
@NDF1 Keiner dieser Artikel unterstützt Ihre Behauptung in irgendeiner Weise. Tatsächlich widersprechen sie dem: "Laut Gesetz können NSLs nur nicht inhaltliche Informationen anfordern, z. B. Transaktionsaufzeichnungen und gewählte Telefonnummern."
[Recherchieren Sie selbst] (https://nakedsecurity.sophos.com/2014/01/29/lavabit-appeals-contempt-of-court-ruling-surrounding-handover-of-ssl-keys/). Siehe auch [Gesetze zur Offenlegung von Schlüsseln] (https://en.wikipedia.org/wiki/Key_disclosure_law). Sie können ein Unternehmen oder eine Einzelperson dazu zwingen, einen SSL-Schlüssel per Gerichtsbeschluss zu übergeben. FISA befasst sich mit geheimen Gerichtsbeschlüssen. Wenn es also um die nationale Sicherheit geht, wird es nie das Licht der Welt erblicken. Wenn es im Interesse der nationalen Sicherheit liegt, eine Zertifizierungsstelle zur Übergabe ihres Stammsignaturzertifikats zu zwingen, werden sie dies tun. Natürlich sind alle amerikanischen Zertifizierungsstellen dafür anfällig.
Hendrik Brummermann
2011-08-16 00:32:12 UTC
view on stackexchange narkive permalink

In einfachen Worten: Es finden zwei verschiedene Verschlüsselungen statt:

  • Zuerst gibt es die Verschlüsselung mit öffentlichen / privaten Schlüsseln . Der Client verwendet den öffentlichen Schlüssel des Servers (der im Zertifikat enthalten ist), um einige Informationen zu verschlüsseln, die nur der Server mit seinem privaten Schlüssel entschlüsseln kann.

  • Basierend auf diesen Informationen Es wird ein Sitzungsschlüssel abgeleitet, der nur dem Server und dem Client bekannt ist. Dieser Sitzungsschlüssel wird zum Verschlüsseln dieser Daten verwendet.

Dies ist eine sehr grobe Zusammenfassung.

Es findet viel mehr statt, um verschiedene Arten zu verhindern des Angriffs:

Jeff Ferland
2011-08-16 00:55:07 UTC
view on stackexchange narkive permalink

Ich denke an die sechs Antworten, die Gowenfawr am besten erklärt. Lesen Sie dies zuerst, da dies lediglich ein Nachtrag ist.

Zu Diffie-Hellman

In mehreren Antworten wird der Austausch von Diffie-Helman erwähnt. Diese werden in einer Minderheit von Börsen umgesetzt. Ein DH-Austausch wird vom Serverschlüssel signiert, um einen MITM -Angriff zu verhindern. Da der Schlüssel nicht mit einem öffentlichen Schlüssel verschlüsselt ist, kann er nicht mithilfe eines erfassten privaten Schlüssels gegen den erfassten Datenverkehr eines Schlüsselaustauschs wiederhergestellt werden. Dies ist die Idee von Perfect Foward Secrecy. OpenSSL ermöglicht je nach Konfiguration sowohl den "regulären" als auch den DH-Schlüsselaustausch.

In MITM- / Signaturketten

Sowohl der Austausch von öffentlichen Schlüsseln als auch der Austausch von DH verhindern jemanden von der Beobachtung der Verbindung und der Ableitung des Schlüssels. Dies basiert auf einer ganzen Reihe von mathematischen Problemen, die Sie untersuchen / anhand von Thomas 'Antwort verstehen können. Das Problem bei beiden ist der MITM-Angriff. Bei der Kryptografie mit öffentlichen Schlüsseln wird dies behoben, indem entweder der öffentliche Schlüssel im Voraus bekannt ist (auch wenn der Austausch beobachtet wird) oder über eine Zertifikatskette. Beispiele: Ich vertraue Alice und Alice hat Bobs Schlüssel unterschrieben, der bestätigt, dass er wirklich sein ist. Auch bekannt als Google ist zertifiziert von ... ähm, Google. Es scheint, dass sie in Firefox als ihre eigene Zertifizierungsstelle sind. Random_bank's_ssl wird also von Verisign signiert, und mein Browser vertraut darauf, dass Verisign nur legitime Zertifikate ausstellt.

Bei diesem Modell treten Probleme auf, wenn Sie beispielsweise auf eine kompromittierte Zertifizierungsstelle stoßen. In diesem Fall wird ein MITM-Angriff möglich.

apsillers
2013-10-23 02:06:14 UTC
view on stackexchange narkive permalink

SSL basiert auf Kryptografie mit öffentlichen Schlüsseln. Ein Server, der an SSL teilnimmt, verfügt über ein Schlüsselpaar mit öffentlichen und privaten Komponenten.

Stellen Sie sich vor, Sie haben ein spezielles Schließfach mit zwei Schlüsseln: Ein Schlüssel kann sperren die Box, und ein anderer kann die Box entsperren . Wenn Ihr Freund Ihnen eine geheime Nachricht senden möchte, benötigt er nur die Taste Sperren , und Sie können die Taste Entsperren privat halten.

Tatsächlich können Sie Ihren Sperrschlüssel frei an alle weitergeben. Sie beschließen, Kopien Ihrer speziellen Schließfächer und Schließschlüssel auf Ihrer Veranda wegzulassen, damit jeder eine Kopie haben kann. Bald kann Ihnen jeder in Ihrer ganzen Stadt geheime Nachrichten per Post schicken. Sie haben Ihren Sperrschlüssel öffentlich öffentlich erstellt.

Wenn Ihre Freundin Alice Ihnen eine geheime Nachricht senden möchte, legt sie ihre Nachricht in ein Schließfach und sperrt es mit einer Kopie Ihres öffentlichen Sperrschlüssels. Der Postmeister Ihrer Stadt ist Ihnen und Alice gegenüber sehr misstrauisch, aber obwohl auch er Zugriff auf Ihren öffentlichen Schlüssel hat, kann er das Schließfach nicht öffnen. Nur Sie, der alleinige Besitzer des privaten Entsperrschlüssels, können die von Alice gesperrte Box öffnen.

Somit hat Ihr ISP (hier der Postmaster) Zugriff auf Ihren öffentlichen Schlüssel Dies hilft ihnen jedoch nicht dabei, mit Ihrem öffentlichen Schlüssel verschlüsselte Nachrichten zu entschlüsseln. Ihr öffentlicher Schlüssel verschlüsselt nur und nur Ihr privater Schlüssel entschlüsselt. Daher verlässt Ihr privater Schlüssel niemals Ihren Besitz, sodass niemand außer Ihnen Zugriff darauf hat und daher niemand Ihre Nachrichten belauschen kann.

SSL bietet Ihnen ein bisschen mehr Schutz (z. B. Angenommen, der Der Postmeister wirft Alices Schachtel weg und sendet eine neue Nachricht an Sie, die vorgibt, Alice zu sein. Dies sollte jedoch klarstellen, warum Ihr ISP Ihre Nachrichten nicht einfach entschlüsseln kann.

Ich habe eine Frage. Wir verschlüsseln Daten mit einem Algorithmus und entschlüsseln sie mit einem entgegengesetzten Algorithmus. Wenn wir also die Rohdaten und den öffentlichen Schlüssel haben, warum können wir verschlüsselte Daten nicht entgegen dem Verschlüsselungsalgorithmus entschlüsseln?
@AmirrezaNasiri Public-Key-Systeme basieren auf mathematischen Problemen, die in umgekehrter Reihenfolge äußerst schwierig durchzuführen sind. Ein solches Problem finden Sie im [diskreten Logarithmusproblem] (http://en.wikipedia.org/wiki/Discrete_logarithm): Für `a = b ^ k mod q` ist es trivial,` a` zu berechnen, wenn Sie wissen` b`, `k` und` q`. Es ist jedoch schwierig, "k" zu finden, selbst wenn Sie "a", "b" und "q" kennen. Der Wikipedia-Artikel enthält ein gutes Beispiel und eine Erklärung.
deadalnix
2011-08-16 00:24:21 UTC
view on stackexchange narkive permalink

Schauen Sie sich Diffie Hellman an: http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

Aus Leistungsgründen wird die Verbindung mit verschlüsselt symmetrischer Schlüssel. Der symmetrische Schlüssel wird jedoch während des Verbindungsaufbaus generiert und nie eindeutig ausgetauscht, sondern unter Verwendung asymmetrischer Kryptografie.

Asymmetrische Kryptografie ist eine Technik, bei der zwei Schlüssel benötigt werden: ein öffentlicher und ein privater. Was mit dem öffentlichen Schlüssel verschlüsselt wird, muss mit dem privaten Schlüssel entschlüsselt werden und umgekehrt. So können beide Computer Daten basierend auf öffentlichen Schlüsseln austauschen. Aber nur der Besitzer des entsprechenden privaten Schlüssels kann ihn entschlüsseln. Der private Schlüssel wird nie ausgetauscht. Selbst wenn Sie alles beschnuppert haben, können Sie nichts entschlüsseln. Diese Techniken sind umfangreich und werden verwendet, um den Schlüssel gegen den Schlüssel der symmetrischen Kryptographie und nicht gegen die Daten selbst auszutauschen.

Diffie Hellman kann zwar verwendet werden und hat die nette Eigenschaft der Vorwärtsgeheimnis, wird jedoch normalerweise aus Leistungsgründen nicht verwendet.
@Hederik: Aber es ist das einfachste Kryptographieprotokoll, das Geheimhaltung in einem Kommunikationskanal bietet, den der Angreifer nur abhören kann.
scuzzy-delta
2013-10-23 01:30:12 UTC
view on stackexchange narkive permalink

Transport Layer Security (wie Secure Sockets Layer jetzt genannt wird) umfasst Methoden zum sicheren Austausch kryptografischer Schlüssel über einen unsicheren Kommunikationskanal (wie das Internet).

Ja, dies bedeutet, dass der ISP kann die Schlüsselaustauschinformationen beim Hin- und Hergehen sehen und verfügt dennoch nicht über ausreichende Informationen, um den Nachrichtenstrom zu lesen, sobald eine sichere Verbindung hergestellt wurde.

Ein sehr seltsames Konzept, und es ist ein ziemlich neues Stück Arbeit. Das häufigste Beispiel hierfür heißt Diffie-Hellman Key Exchange und wurde erst in den 1970er Jahren erfunden.

Der Wikipedia-Artikel enthält alle köstlichen mathematischen Details, aber ich finde die Das Bild unten (aus Wikimedia) veranschaulicht das Konzept perfekt. Schauen Sie es sich an, denken Sie darüber nach und probieren Sie es selbst aus, und Sie werden feststellen, dass ein Gegner den privaten Schlüssel nicht aus den öffentlich sichtbaren Informationen ableiten kann.

enter image description here

LateralFractal
2013-10-23 06:18:06 UTC
view on stackexchange narkive permalink

Wenn ich meinen schwarzen Hut aufsetze (nicht dieser schwarze Hut... tatsächlich funktioniert dieser Hut auch):

Ein ISP kann einfach einen Man-in-the ausführen -middle-attack auf einen Ihrer HTTP-Downloads von Anwendungen oder deren Patches und aktualisieren Sie so die Vertrauenskette des Browsers direkt oder indirekt mit einem selbstzerstörenden Trojaner.

Microsoft verlangt nur, dass die Treiber mit einem Code signiert sind. Digitale Signaturen für Anwendungen und anwendungsäquivalente ausführbare Daten werden standardmäßig nicht erzwungen *. Die meisten Consumer-Betriebssysteme sind nicht besser, wenn nur die obligatorische Signierung des Anwendungscodes (und die Überprüfung der Identität) gerade genug kosten würde, um die Größe ihrer Software-Ökologie drastisch zu verringern.

* Ich lege Wert darauf, keine Verknüpfung zu Microsoft Answers herzustellen, es sei denn, ich muss. Ihre ausgebildeten Affen benutzen offensichtlich kaputte Schreibmaschinen. Sub>

Netter Vorschlag dort. : D.
Das MITM des Patch-Prozesses ist ein ausgezeichneter Punkt ... aber für mich scheint es, dass der ISP den privaten Schlüssel des Update-Servers kompromittieren müsste, um dies zu tun (was meiner Meinung nach in das Gebiet der NSA / TLA eingreift). Haben Sie irgendwelche Vorfälle im Sinn?
@scuzzy-delta Die Update-Server größerer Organisationen sind wahrscheinlich digital signiert und werden durch den Patch-Prozess überprüft (z. B. Blizzard-Spiele). Die meisten Erstdownloads sind jedoch nicht auf den HTTPS-Zugriffskanal beschränkt, und die meisten Updates werden von der Patch-Automatisierung weder signiert noch überprüft, wenn eine Automatisierung vorhanden ist. Theoretisch sollte unser brandneuer OEM-Computer mit einem ROM-Medium mit Stammzertifizierungsstellen ausgestattet sein, das von vom OEM unabhängigen Prüfern überprüft wurde, und * alles * anschließend mit HTTPS oder einem signierten Äquivalent heruntergeladen werden.
Zds
2011-08-16 00:21:58 UTC
view on stackexchange narkive permalink

Der Schlüssel dort ist die asymmetrische oder öffentliche Schlüsselverschlüsselung. Dies bedeutet, dass Sie zwei Schlüsselelemente haben, öffentlich und privat, und eine mathematische Funktion, die einfach in eine Richtung zu berechnen ist, aber sehr, sehr schwer in die andere zu berechnen ist.

Wenn Server also ihre öffentlich senden Schlüssel, wir können den öffentlichen Schlüssel verwenden, um unsere Sachen einfach zu verschlüsseln, aber nur mit dem anderen Schlüssel des Paares, in diesem Fall dem privaten Schlüssel, können Sie ihn leicht entschlüsseln.

goodguys_activate
2011-09-21 05:34:23 UTC
view on stackexchange narkive permalink

Die EcoParty Conference kündigte ein Tool namens BEAST an, das Berichten zufolge den SSL3 / TLS1.0-Verkehr entschlüsselt und verringert, vermutlich durch Beobachtung.

Hier ist ein Link zu Der Nachrichtenbericht

Ich bin sicher, dass wir in den kommenden Tagen mehr darüber, über die Problemumgehungen und Einschränkungen erfahren werden.

Dieser Abschnitt unten wird aktualisiert, sobald weitere Informationen entdeckt werden.

Bei diesem Hack wird davon ausgegangen, dass der Angreifer Ihren Netzwerkverkehr irgendwie sehen kann. obwohl Spyware oder durch eine Netzwerkerfassung. Schlecht verwaltete Computer und Wifi-Benutzer sind höchstwahrscheinlich die üblichen Verdächtigen… obwohl nicht auf diesen Anwendungsfall beschränkt.

Es gibt Berichte, dass wir dieses Risiko durch Ändern der SSL * / TLS 1.0-Verschlüsselungsliste verringern können zu RC4 und unterstützt keine älteren Kombinationen. Eine weitere Abschwächung besteht darin, die Länge des Authentifizierungstokens zu erhöhen, was den Angriff verlangsamen würde. Hier kann das Ändern der Cookie-Konfiguration für die Siteminder- und ASP.net-Mitgliedschaftsauthentifizierung hilfreich sein.

Damit Sie wissen, dass diese Sicherheitsanfälligkeit von denselben Personen aufgedeckt wird, die im letzten Jahr den „Padding Attack on ASP.NET“ angekündigt haben. Dieses alte Problem gefährdet jeden IIS-Webserver nur durch das Einschalten, was schwerwiegender zu sein scheint als dieser Angriff.

Teilen Sie alle Links, die Sie finden, um diese anfälligen Szenarien oder Abschwächungen hier zu erwähnen oder zu bestätigen. Einiges davon ist derzeit Spekulation und wird von Kryptologie-Experten nicht überprüft.

BEAST scheint nur ein Angriff gegen HTTPS zu sein, aber dieser Fehler scheint in SSL3 / TLS1.0 zu liegen. Sind andere Anwendungen, die SSL / TLS 1.0 verwenden, für einen ähnlichen Nicht-JavaScript-Angriff anfällig?
sahmeepee
2013-10-23 01:20:57 UTC
view on stackexchange narkive permalink

Nein, sie würden den Schlüssel nicht halten, da die Verbindung, die Sie herstellen, zwischen Ihnen und der Zielwebsite (z. B. Amazon) besteht, sodass der ISP den Schlüssel nicht kennt.

Je allgemeiner Die Frage, wie SSL / TLS funktioniert, wird hier beantwortet.

WTH
2017-03-28 18:00:39 UTC
view on stackexchange narkive permalink

Hier gibt es viele gute Antworten, insbesondere diejenigen, die über die Probleme sprechen, die über die Durchführung von DH oder ECDH hinausgehen (z. B. clientseitige Korruption / Installation von Zertifikaten / Hijacking von Zertifikaten usw.).

Wenn Sie ' Ignorieren Sie den lokalen Computer selbst und sorgen Sie sich einfach um MITM - Sie benötigen DH / ECDH- und SSL-Pinning. SSL-Pinning wird immer häufiger, ist aber heute noch nicht allgegenwärtig. Dies bedeutet, dass Ihr ISP einfach so tun kann, als wäre er Ihr Server, solange er über ein gültiges SSL in Ihrer Root-Vertrauenskette verfügt. Durch SSL-Pinning wird sichergestellt, dass das von dem Server, mit dem Sie eine Verbindung hergestellt haben, verwendete SSL-Zertifikat das Zertifikat des Servers ist, zu dem Sie gelangen möchten.

Auch hier gilt, wenn Sie vor der Regierung oder Hackern sicher sein möchten - das ist nicht genug. Wenn Sie verhindern möchten, dass Ihr ISP Ihre Daten durchsucht, reicht dies wahrscheinlich aus.

Dies ist zwar ein nützlicher Rat für TLS im Allgemeinen, ich bin mir jedoch nicht sicher, ob er die hier gestellte spezifische Frage tatsächlich beantwortet.
Es ist besser als eines, das nur "weil 'Magie'" sagt ... Seltsam, weil ich mich nicht die Mühe gemacht habe, alle anderen Antworten zu kopieren, sondern sie mit den Dingen ergänzt habe, die in modernem SSL / TLS tatsächlich wichtig sindVerbindungen.Aus diesem Grund habe ich ausdrücklich darauf hingewiesen, dass viele der Antworten gut sind und einige der Gründe abdecken, warum Sie die Daten nicht entschlüsseln können - und dann darauf hingewiesen, dass sie unvollständig sind.Ich kann Sie mit ECDH / DH MITM trotz der höchsten bewerteten Antwort MITM - weil diese Antwort unvollständig ist.Ohne Pinning und einen sicheren lokalen Trust Store sind Sie unsicher.
Ich sage nicht, dass die von Ihnen angegebenen Informationen schlecht oder falsch sind - das ist es nicht.Ich sage, es beantwortet die Frage nicht.Frage: "Wie ist es möglich, dass Personen, die beobachten, dass eine HTTPS-Verbindung hergestellt wird, nicht wissen, wie sie entschlüsselt werden sollen?"Antwort: "Sie benötigen DH / ECDH- und SSL-Pinning."Das ist kein Spiel.
Sicher haben Sie dann die Antworten abgelehnt, beginnend mit: "Viele der bereits gegebenen Antworten übersehen die Abhörfähigkeit des ISP." "Ich denke an die sechs Antworten, die Gowenfawr am besten erklärt. Lesen Sie das zuerst, da dies einfach ein Nachtrag ist." "Wenn ich meinen schwarzen Hut aufsetze (nicht diesen schwarzen Hut ... eigentlich auch diesen Hut" "Der Schlüssel ist die asymmetrische oder Verschlüsselung mit öffentlichen Schlüsseln." "Die EcoParty-Konferenz hat ein Tool namens BEAST angekündigt." dann - weil auch keiner von ihnen die Frage beantwortet.Es ist keine große Sache, es scheint nur ziemlich kleinlich.Dafür ist DV nicht da.


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