ssl - "Craft"go_lang 中的 TLS Client Hello

标签 ssl go tls1.2 packet

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

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

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

感谢您为 go 新手提供的任何建议。 :-)

最佳答案

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

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

关于ssl - "Craft"go_lang 中的 TLS Client Hello,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852038/

相关文章:

apache - 安装SSL证书导致服务器重启失败

ssl - TLS 1.2 SSL 支持

ssl - 有人可以解释一下 "ecdh_tmp_cb"回调的用法吗?

ssl - Docker Nginx 提示 : SSL: error:02001002

python - Windows 上的 Pip SSL 错误

node.js - 在 NodeJS/Bluemix 中强制使用 SSL

c++ - 有没有可以和 boost::uniform_int 媲美的 Go 函数?

去吧, golang : traverse through struct

go - 如何运行多步 cron 作业,但仍然能够手动执行单个步骤?

delphi - Indy 10 和 sslvTLSv1_2