比特币P2P协议对传输的数据使用自己的序列化格式。这种序列化是否被认为比JSON更安全地抵御DoS攻击?
协议
点对点
分享
改进这个问题
跟随
编辑时间:12月26日11:02
葛罗芬戴尔
44022金徽章77银徽章1515铜徽章
12月22日15:53问
xdimy公司
111青铜徽章
添加评论
1个答案
0
我不知道比特币的P2P消息和JSON之间是否有任何安全性差异的比较,但是二进制格式肯定比JSON更紧凑。
我认为假设存在安全隐患是合理的,但在最初定义P2P格式时,安全可能不是主要考虑的问题。更容易实现和消息大小是可能的问题。
二进制格式比JSON字符串更小、更紧凑。字符串占用大量空间,尤其是表示字节的数据字符串。此外,将二进制数据转换为字符串,然后在接收到字符串后将其转换回字符串,需要更多的逻辑和时间。二进制数据的任何字符串编码都不会像二进制本身那样有效。对于用户永远看不到的数据,以及不基于文本的协议,使用JSON是不合理的。
最后,虽然这个决定背后可能不存在安全问题,但选择二进制格式而不是JSON肯定会带来安全隐患。在许多不同的软件中,可变长度字符串解析一直是安全问题的根源。由于JSON是基于字符串的,任何实现使用JSON的东西的人都有可能犯错误,从而在其字符串解析中引入严重的漏洞。所以二进制格式在这方面会更好。
分享
改进这个答案
跟随
回复时间:12月22日20:32
麻吉弟弟周立铭♦
53.1k44金徽章5555银徽章108108青铜徽章
谢谢你的回答,这一切看起来都很合理。我还认为json通常不会被模式验证,因此攻击者很容易在消息中添加额外字段,并试图使服务器内存和cpu过载。在使用p2p格式的情况下,每个消息字段都会被解析,并且不可能添加泛洪数据,因此dos-xdimy 12月25日9:55更可靠
添加评论