【问题标题】:"Craft" TLS Client Hello in go_langgo_lang 中的“Craft”TLS 客户端 Hello
【发布时间】:2018-11-23 21:50:02
【问题描述】:

我是 Go 编程语言的新手,我正在使用 Google 的“gopacket”库自己制作以太网帧。我已经成功地在用户空间中实现了用于教育目的的基本 TCP 功能,并且我可以成功地启动与 Web 服务器的 3 次握手。

现在我想在此基础上启动 TLS 握手,我的问题是 go 中所有现有的 TLS 库都使用套接字或 Conn 接口来启动 TLS 连接。是否有一些简单的方法可以在 go 中制作原始 TLS 客户端 Hello 消息,我可以将其用作我的 TCP 段的有效负载?

我不想实现诸如数据传输之类的花哨的东西。如果我能够将 Client-Hello 发送到服务器并在结束连接之前查看回复的样子就足够了。

感谢您对 Go 新手的任何建议。 :-)

【问题讨论】:

    标签: ssl go tls1.2 packet


    【解决方案1】:

    两种方法我都试过了,但都没有成功。

    最后,我选择了最丑陋的解决方案,但它适用于我的简单场景:我通过 Wireshark 捕获了一个 TLS 客户端 Hello,并将其硬编码为十六进制字节数组。

    【讨论】:

      【解决方案2】:

      我想说一种方法是模拟一个 Conn 你提供给 TLS 库,这样你就可以拦截调用并转发/中继它们,或者......你通过查看例如 @ 来手动执行此操作987654321@ 并复制您需要的任何内容(遗憾的是,它包含的方法只是私有的)。

      我个人可能会选择Conn 方法。

      【讨论】:

        猜你喜欢
        • 2020-03-19
        • 2016-05-17
        • 2012-01-05
        • 2013-07-23
        • 1970-01-01
        • 1970-01-01
        • 2019-10-25
        • 2021-06-09
        • 1970-01-01
        相关资源
        最近更新 更多