go_lang中的“Craft”TLS客户端Hello

时间:2018-06-14 07:35:49

标签: ssl go tls1.2 packet

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

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

我不想实现数据传输等任何奇特的东西。如果我能够将Client-Hello发送到服务器并在结束连接之前查看回复的内容就足够了。

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

2 个答案:

答案 0 :(得分:1)

我说有一种方法是模拟您向TLS库提供的Conn,这样您就可以拦截来电并转发/转发它们......或者您通过查看手动方式例如handshake_client.go 并复制你需要的任何东西(它包含的方法只是遗憾的私人)。

我个人可能会采用Conn方法。

答案 1 :(得分:0)

我尝试了两种方法,但他们没有成功。

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