gpt4 book ai didi

node.js - 从套接字数据事件nodejs获取字节

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:13 25 4
gpt4 key购买 nike

我有一个奇怪的问题

我一直在尝试实现我自己的 tls 实现,以便能够连接到不是 100% 符合 TLSv1.2 规范的服务器(client_random 和 server_random 不是随机的,而是从时间戳生成的,并且服务器强制客户端将记录层版本设为 tls 1.2 以执行握手)

最重要的是,在开始 tls 握手之前,我需要使用类似于 http 但不是 http (sts/1.0) 的协议(protocol)以明文形式发送一些数据

所以我一起破解了这两件事的实现,但我遇到了一些我不知道会发生的事情

当在 tls 握手中接收到服务器的证书时,我在使用 Buffer.from(data, "ascii") 创建的缓冲区中看到的字节(是的,套接字编码也是 ascii) (而且我也尝试过使用 utf-8 编码)不是 我在 wireshark 中看到的那些,并导致我的 x509 解析器失败(如果我从复制粘贴的十六进制流创建缓冲区的话,如果有效的话)来自 wireshark 的证书)。我相信这是一个编码问题,但是我可以使用什么编码来获取 data 中的原始字节而无需对其进行编码?

例子:

wireskark 中证书消息的开头:

16:03:03:03:52:0b:00:03:4e:00:03:4b

nodejs 中以 ascii 编码的证书消息的开头:

16:03:03:00:2a:02:00:00:26:03:03:12

使用的套接字来自net.Socket

在撰写本文时,我的计划是让一种低级语言充当代理,接收原始字节,创建这些字节的 ascii 表示,然后将其发送到我的 nodejs 套接字。根本不是最好的解决方案,但这是我自己能找到的所有解决方案。

PS:如果有人知道可以接受特定 client_random 和/或在握手期间强制 tls 记录层版本为 1.2 的 nodejs tls 实现,那么您将节省我数十小时的开发时间。

PS2:我试图在 nodejs 上寻找“原始”tcp 套接字,以更好地控制我收到的数据,并且有一个“原始套接字”npm 包。但是据我所见,无法在服务器上设置要连接的端口。如果有人以前使用过这个包并且知道如何在该包下的 tcp 套接字中设置端口,我想了解你是如何做到的。

感谢您的帮助!

最佳答案

我使用 python 代理向我发送这些字节的 ascii 表示,一切正常。我很沮丧,我找不到一种方法在 Node 中做到这一点而不必做一个该死的 .node

关于node.js - 从套接字数据事件nodejs获取字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55065097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com