Extrakt Server Name Indication (SNI) aus TLS-client-hello

Wie würden Sie extrahieren Sie die Server Name Indication von einem TLS-Client-Hello-Nachricht. Ich bin curently kämpfen, um das zu verstehen sehr kryptische RFC 3546 auf TLS-Erweiterungen, in denen die SNI definiert ist.

Dinge, die ich verstanden habe bisher:

  • Der host ist utf8-codiert und lesbar, wenn Sie utf8 enocde den Puffer.
  • Theres ein byte, bevor der host, bestimmt die Länge.

Wenn ich finden konnte die genaue position der Länge byte, das extrahieren der SNI wäre ziemlich einfach. Aber wie bekomme ich das byte in den ersten Platz?

  • Der einfache Ansatz, den Sie versuchen zu nehmen, ist falsch. Sie müssen zum Parsen der Anfrage einschließlich seiner Erweiterungen, und dann bekommst du die Daten aus der entsprechenden Erweiterung.
  • Ja, ich bin sicher, dass, aber ich weiß wirklich nicht, wie zu analysieren. Verstehen Sie, wie das TLS-handshake funktioniert?
  • Klar will ich, denn wir bieten eine security-Bibliothek als eines unserer wichtigsten Produkte. Sie benötigen zum öffnen der RFC ( tools.ietf.org/html/rfc5246 ) und es umsetzen.
  • Haha, gut danke, das ist wie 100 Seiten pure tech. Ich denke, die Sache wird interessant auf Seite 41. Dies ist, wo die Erweiterungen erwähnt werden, dass im Gegenzug sind beschrieben in RFC 3546. Oh mein, Oh mein. 😀
  • Hey schau, dass eine andere Antwort, wo Eugene verkauft 20 tausend-dollar-Produkt als Antwort. Ich denke, indem Menschen zu einem riesigen RFC und die Aufgabe, das Gefühl überwältigend entmutigend ist eine Verkaufstaktik?
  • Verwandte: serverfault.com/questions/574405/...
  • stackoverflow.com/questions/39624745/...

InformationsquelleAutor buschtoens | 2013-07-24
Schreibe einen Kommentar