我是go编程语言的新手,我正在使用Google的“gopacket”库来制作以太网帧。我已经成功地在用户空间中实现了基本的TCP功能以用于教育目的,我可以使用Web服务器成功启动3-way-handshakes。
现在我想在此基础上启动TLS握手,我的问题是所有现有的TLS库都使用套接字或Conn接口来启动TLS连接。是否有一些简单的方法来制作原始TLS客户端Hello消息,我可以将其用作TCP段的有效负载?
我不想实现数据传输等任何奇特的东西。如果我能够将Client-Hello发送到服务器并在结束连接之前查看回复的内容就足够了。
感谢您对新手的任何建议。 : - )
答案 0 :(得分:1)
我说有一种方法是模拟您向TLS库提供的Conn
,这样您就可以拦截来电并转发/转发它们......或者您通过查看手动方式例如handshake_client.go
并复制你需要的任何东西(它包含的方法只是遗憾的私人)。
我个人可能会采用Conn
方法。
答案 1 :(得分:0)
我尝试了两种方法,但他们没有成功。
最后,我选择了最丑陋的解决方案,但是为我的简单方案选择了一个解决方案:我通过Wireshark捕获了一个TLS客户端Hello,并将其作为十六进制的字节数组进行硬编码。