Frage:
Welche Schicht ist TLS?
Andrew Spott
2015-07-07 19:51:29 UTC
view on stackexchange narkive permalink

TLS steht für " Transport Layer Security". Die Liste der IP-Protokollnummern enthält "TLSP" als "Transport Layer Security Protocol". Diese beiden Dinge lassen mich glauben, dass TLS ein Transportschichtprotokoll ist.

Die meisten Leute scheinen jedoch über TLS über TCP zu sprechen. Wikipedia listet es als "Application Layer" -Protokoll auf. Dies wird durch die Tatsache weiter erschwert, dass TCP keine Protokollnummer hat: Es packt nur Rohbytes zusammen. Wie können Sie also analysieren, dass Sie ein TLS-Paket erhalten, im Vergleich zu einem Paket, das gerade mit beginnt? 0x14 - 0x18 oder gleichwertig?

Verwandte: [Wo findet die SSL-Verschlüsselung statt?] (Http://security.stackexchange.com/questions/19681/where-does-ssl-encryption-take-place)
Dies beantwortet Ihre primäre Frage nicht, aber ... TCP hat Ports. Sie sind keine Protokollnummern, aber sie übernehmen häufig diese Rolle, da auf den meisten Servern jeder Netzdienst einen dedizierten Port hat und weiß, welche Art von Paketen an diesem Port zu erwarten sind.
Fünf antworten:
Tom Leek
2015-07-07 20:17:35 UTC
view on stackexchange narkive permalink

Das OSI-Modell, das Kommunikationsprotokolle in aufeinanderfolgende Schichten unterteilt, ist genau das: ein Modell . Es ist ein Versuch, eine physische Realität in ordentlich definierte, beschriftete Kästchen zu schieben. Niemand hat jemals garantiert, dass es funktioniert ...

Historisch gesehen wurde dieses Modell erstellt und veröffentlicht, als die ISO auf die Einführung eigener Netzwerkprotokolle drängte. Sie verloren. Die ganze Welt zog es vor, das viel einfachere TCP / IP zu verwenden. Das "Modell" überlebte den Tod seines ursprünglichen Ökosystems, und viele Menschen haben versucht, es auf TCP / IP anzuwenden. Es wird sogar allgemein so gelehrt. Das Modell passt jedoch nicht gut zu TCP / IP. Einige Dinge passen nicht in die Ebenen, und SSL / TLS ist eine davon.

Wenn Sie sich die Protokolldetails ansehen:

  • SSL / TLS verwendet ein zugrunde liegendes Transportmedium, das einen bidirektionalen Bytestrom bereitstellt. Das würde es irgendwo über Schicht 4 platzieren.
  • SSL / TLS organisiert Daten als Datensätze, die insbesondere Handshake-Nachrichten enthalten können. Handshake-Nachrichten sehen aus wie Schicht 5. Dies würde SSL / TLS auf Schicht 6 oder 7 setzen.
  • Was SSL / TLS jedoch übermittelt, sind "Anwendungsdaten", bei denen es sich tatsächlich um einen bidirektionalen Strom von Bytes handelt . Anwendungen, die SSL / TLS verwenden, verwenden es wirklich als Transport -Protokoll. Sie verwenden dann ihre eigene Datendarstellung sowie Nachrichten und Semantik innerhalb dieser "Anwendungsdaten". Daher kann SSL / TLS im OSI-Modell nicht über Schicht 4 hinausgehen.

Daher muss sich SSL / TLS im OSI-Modell in Schicht 6 oder 7 befinden und gleichzeitig in Schicht 4 oder darunter. Die Schlussfolgerung ist unausweichlich: Das OSI-Modell funktioniert nicht mit SSL / TLS. TLS befindet sich in keiner Ebene.

(Dies hindert einige Personen nicht daran, TLS willkürlich in eine Ebene zu verschieben. Da dies keine praktischen Auswirkungen hat - dies ist nur ein Modell - können Sie dieses TLS konzeptionell deklarieren ist Schicht 2, 5 oder 17; es wird nicht als falsch erwiesen.)

Vielen Dank. Das hilft wirklich. Kennst du dann die Antwort auf meine letzte Frage? Wie kann ich feststellen, dass TCP ein TLS-Paket betrachtet, da es keine Protokollnummern hat?
Normalerweise geschieht TLS, weil Client und Server sich einig sind, dass TLS stattfinden sollte. Wenn ein Webbrowser beispielsweise eine Verbindung zu einer "https: //" - URL herstellt, weiß er nur, dass er mit TLS beginnen sollte, da dies das "s" in "https" bedeutet. Von außen können Sie normalerweise schließen, dass TLS auftritt, weil Sie die TLS-Datensatzheader erkennen. Jeder Datensatz beginnt mit einem Fünf-Byte-Header: ein Byte für den Datensatztyp (0x14 bis 0x17), dann die Protokollversion (0x03 gefolgt von 0x00, 0x01, 0x02 oder 0x03), dann die Datensatzlänge (über zwei Bytes, Big-Endian). .
Zusammenfassend wissen Sie normalerweise, dass TLS aufgrund des Kontexts vorhanden ist (z. B. wenn es sich auf TCP-Port 443 befindet, besteht die Möglichkeit, dass es sich um TLS handelt), und Sie können TLS-Datensätze mit einer niedrigen Falsch-Positiv-Rate _heuristisch erkennen. Zum Beispiel habe ich erst gestern einige RDP-Pakete angeschaut und genau in der Mitte einen gekapselten TLS-Handshake erkannt. Insbesondere impliziert der Handshake das Senden eines Zertifikats vom Server, und das codierte Zertifikat fällt in hexadezimalen Dumps wirklich auf (zumindest für mich).
Eines der nützlichsten Konzepte im OSI-Modell ist die Trennung von Schichten. TCP / IP folgt diesem bis zu einem gewissen Grad. TCP weiß also nichts darüber, was in den Paketen eingekapselt ist, also keine Protokollnummer. Sie müssen das Paket also durch eine sogenannte "Deep Packet Inspection" implizieren.
@AndrewSpott TCP hat zwar keine Protokollnummer, aber Portnummern, die zum Teil dem gleichen Zweck dienen. Normalerweise überwacht nicht mehr als ein Dienst eine bestimmte Portnummer, und dieser Dienst weiß, welches Protokoll an diesem Port gesprochen werden soll. In weniger häufigen Fällen kann man sich dafür entscheiden, dass ein Dienst verschiedene Protokolle an einem einzelnen Port versteht und diesen Dienst aus den vom Client gesendeten Bytes ableiten lässt, welches Protokoll verwendet wird. In einigen Fällen kann es sich um eine Sicherheitslücke handeln, wenn Client und Server unterschiedliche Protokolle sprechen.
Es ist klar, dass für TLS imaginäre Zahlen verwendet werden sollten. TLS ist Schicht 4i.
Es stellt sich heraus, dass OSI in den oberen Schichten zu feinkörnig ist (in der "realen Welt" verwenden wir die Internetprotokolle, die die Schichten 5-7 zu einer einzigen Schicht komprimieren), während es in den unteren Schichten zu grobkörnig ist (Auch in der "realen Welt" verwenden wir IEEE-basierte Protokolle wie Ethernet oder WiFi, die die OSI-Schichten 1 und 2 in drei Schichten aufteilen: PHY, MAC und LLC).
@JörgWMittag: Das OSI-Layer-Modell weist zusätzliche Einschränkungen bei der Kommunikation über Links mit unterschiedlichen Laufzeit- und Zuverlässigkeitsmerkmalen auf und trägt wahrscheinlich zu einer großen Frustration der Benutzer mit WiFi bei. Wenn ein Benutzer auf eine Schaltfläche klickt und keine Antwort erhält, erkennt der WLAN-Handler des lokalen Computers, ob die mit dem Klick verbundenen Anforderungen den Router bereits erreicht haben, und wie lange es her ist, seit er zuletzt darüber informiert wurde, dass der Router keine Daten hat verfügbar, aber es gibt keinen Mechanismus, über den die Anwendung informiert werden kann.
RoraΖ
2015-07-07 20:14:49 UTC
view on stackexchange narkive permalink

TCP / IP-Modell

  1. Verbindungsschicht
  2. Internet (IP) -Schicht
  3. Transportschicht
  4. Anwendung
  5. ol>

    TLS arbeitet zwischen der Transportschicht und der Anwendungsschicht (Art von). Wirklich, es verpackt nur den Datenverkehr der Anwendungsschicht während des Transports in Verschlüsselung.

    Der TLS-Schlüsselaustausch findet zwischen den Ebenen statt. Hier ist es nicht wirklich die Transportschicht, da Dinge wie Portnummern und Sequenznummern bereits in der Transportschicht vorhanden sind. Es werden nur Daten gesendet, um Verschlüsselungsprotokolle einzurichten, damit die Anwendungsschicht umbrochen werden kann.

    IPSec macht das Gleiche, nur in einer früheren Ebene. IP-Sicherheit schützt alles über der IP-Schicht. Transportsicherheit schützt alles über der Transportschicht. Der Schlüsselaustausch für beide befindet sich an einem seltsamen Ort, da sie nur Daten senden müssen, um die sichere Schicht einzurichten. Ähnlich wie ICMP als IP-Protokoll betrachtet wird, enthält es jedoch weiterhin Daten nach der IP-Schicht. Ist dies eine Transportschicht? Nein.

    OSI-Modell

    Das OSI-Modell ist etwas detaillierter.

    1. Physikalische Schicht
    2. Datenverbindungsschicht
    3. Netzwerkschicht (IP)
    4. Transportschicht (TCP)
    5. Sitzungsschicht (TLS)
    6. Präsentation Schicht
    7. Anwendungsschicht (HTTP)
    8. ol>

      TLS richtet eine verschlüsselte Sitzung ein. Im OSI-Modell arbeitet TLS hier. Es richtet seine Sitzung ein und fügt eine Verschlüsselungsebene für die Anwendungsschicht (HTTP) hinzu.

      Eine verwandte Antwort.

      TLS wird analysiert

      Im Transmission Control Protocol Header befindet sich ein Datenversatz -Feld. Dieses Feld gibt die Größe des TCP-Headers in 32-Bit-Wörtern an. Die Mindestgröße für diesen Wert beträgt 5 (20 Byte). Dies ist ein fester Versatz vom Anfang des TCP-Headers. Mit diesem Wert kennen Sie die Größe des TCP und können damit den Beginn des TLS-Teils berechnen.

      Ein TLS-Datensatz beginnt immer mit einem Inhaltstyp und dann mit der SSL-Version. Es gibt nur 5 verschiedene Inhaltstypen und 4 verschiedene Versionen, über die Sie sich Sorgen machen müssen. Wenn Sie also die ersten 3 Bytes der Daten nach dem TCP-Header verwenden, sollten Sie feststellen können, ob SSL / TLS verwendet wird.

      Ich würde Wireshark auf Ihrem Computer ausführen (nicht -work) und filtern Sie nach "ssl". Navigieren Sie dann einfach zu https://www.google.com. Sie können den gesamten Handschlag sehen. Alle Schichten sind für Sie ausgebrochen. Es gibt eine gute Darstellung, wie die Ebenen mit TLS aufgebaut sind, und Sie können jeden der TLS-Datensätze sehen.

Vielen Dank. Können Sie den zweiten Teil meiner Frage beantworten? Nämlich, jetzt habe ich die Nutzlast eines TCP-Pakets. Wie kann ich feststellen, dass ich ein TLS-Paket betrachte?
@AndrewSpott Entschuldigung, hat meine Antwort aktualisiert.
StackzOfZtuff
2015-07-07 20:28:07 UTC
view on stackexchange narkive permalink

Diese Antwort behandelt nur den Unteraspekt "TLSP" der Frage.


Die Liste der IP-Protokollnummern enthält "TLSP" als "Transport Layer Security Protocol".

Ich hatte noch nie von diesem Protokoll gehört. Es ist nicht das Protokoll, das Sie zum Anzeigen von HTTPS-Seiten verwenden.

TLSP scheint ein sehr dunkles Protokoll zu sein. Und es wurde 1994-10 registriert. Dies war vor dem Protokoll, das wir heute allgemein als "TLS" bezeichnen. Damals hieß das Protokoll noch "SSL". Der erste öffentliche Entwurf für "TLS" ist zwei Jahre später, am 26.11.1996, datiert.

Einzelheiten zur Zeitleiste finden Sie in dieser Frage:

Die IANA nennt "Christer_Oberg@bull.se" als Registranten. Dieser Name klingelt für mich nicht. Die bull.se-Website ist ebenfalls nicht mehr aktiv.

Es gibt tatsächlich eine LinkedIn-Seite für einen schwedischen Christer Öberg, der 1994 als "CTO-Sicherheitslösungen" für ein "Bull" -Unternehmen arbeitete. Ich vermute, das ist der Typ, der einmal die "TLSP" -Registrierung eingereicht hat. (Und auch, dass er der einzige ist, der Ihnen sagen kann, was "TLSP" wirklich war.)

Laut Wikipedia ist "Transport Layer Security Protocol" ein Synonym für "Transport Layer Security". Es könnte sein, dass Wikipedia falsch ist.
Ja. Sie geben kein Zitat dafür. Ich glaube, jemand war verwirrt. Aber ich habe nicht nachgesehen. Sollte leicht aus dem Bearbeitungsverlauf zu erkennen sein, der diesen Link erstellt hat.
Tyler Durden
2015-07-08 02:47:41 UTC
view on stackexchange narkive permalink

TCP hat eine IP-Protokollnummer: 0x06

TSL / SSL ist ein Anwendungsprotokoll, dh ein Programm (nicht das Betriebssystem) verarbeitet die Pakete. Wenn ein Webserver beispielsweise HTTPS-Anforderungen akzeptiert, verarbeitet der Webserver die SSL-Pakete, die sich in den TCP-Paketen befinden.

Das TLSP 0x38-Protokoll ist Kryptonet-spezifisch. Seit Jahren verwendet niemand mehr die Kryptonet-Schlüsselverwaltung.

Kommunikationspakete werden aufgrund ihres Inhalts nicht generisch verarbeitet. Der Server erwartet von Anfang an, dass sich die Pakete im richtigen Protokoll befinden. Wenn ein SSL-Server beispielsweise einen Socket abhört und ein Nicht-SSL-Paket empfängt, wird er ignoriert.

Amar T
2020-02-19 17:47:50 UTC
view on stackexchange narkive permalink

Transportschicht , wie der Name schon sagt. Die Transportschicht ist für die End-to-End-Kommunikation verantwortlich. Alle Daten, die in die Netzwerk- / Internetschicht gelangen, müssen verschlüsselt werden. Dies erfolgt über die Schicht über der Netzwerk- / Internetschicht. Und das ist Transport Layer

TLS ist nicht durchgängig.Es ist leicht an mehreren Stellen auf dem Weg zu brechen.TLS kann nicht zum Transportieren von Daten verwendet werden, sondern nur zum Verschlüsseln der zu transportierenden Daten. Nein, es befindet sich nicht auf der Transportschicht.


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