我正试图与协议不规范的SSL服务器进行通信.我想在握手中插入自定义数据包。我正在使用几个SSL工具,因此在每个工具上更改源代码是一项很大的工作。更愿意使用网络过滤器来修改(插入自定义数据包)到每一次SSL握手中。
已经上网了。不去。它可以修改现有的数据包,但不能插入新的数据包。
尝试过ncat。不去。它可以插入数据包,但当我们启动SSL工具时,将设置第二个TCP会话。尝试了很多变体。这是问题的根源:如何将数据包插入SSL握手会话的中间(而不启动单独的TCP会话)?
发布于 2013-03-27 20:08:21
在SSL握手中,客户端和服务器交换记录中编码的握手消息。如果协议变体包含额外的握手消息,那么就有一个问题:在握手结束时,交换两条Finished消息,它们的内容被计算为所有先前握手消息的哈希函数,因此包括额外的消息。推论:如果要插入额外的握手消息,则必须修改SSL客户端工具,因为该工具计算哈希,如果不知道额外的消息,则会计算错误的值。
如果您的协议变体包含一种与“握手消息记录”不同的类型的额外记录(标准中的类型为22 ),并且额外的记录不会影响握手的计算,那么您的筛选策略可能会工作。你必须:
所以你是在参与一些编程。SSL的记录协议并不复杂,只要您篡改未加密的记录(握手完成前的记录),请参阅标准第6节。此外,有关协议的详细介绍,请参见这个答案 (我认为该协议比标准更容易阅读)。对于中继,最简单的实现策略可能是启动两个线程,每个线程在从一台机器到另一台机器的读到写的循环中运行。
https://security.stackexchange.com/questions/33300
复制相似问题