ssl应用程序数据零字节神话

ssl应用程序数据零字节神话,ssl,wireshark,traffic,tls1.2,Ssl,Wireshark,Traffic,Tls1.2,最近,我分析了几个SSL/TLS应用程序数据包,发现一些数据包在SSL/TLS应用程序数据包的最开始以固定的7个零字节开始 我不知道为什么会这样?直观地说,加密的消息应该是随机字节。每个SSL块中的7个前导0意味着它不太可能是SSL加密的数据。必须有一些混淆,否则这只是SSL流/块中隐藏的数据通道 我认为这是Galois计数器模式特有的特性。Wireshark所称的“加密应用程序数据”在本例中是一种通用EADCHIPER,它在中定义并以以下内容开头: opaque nonce_explici

最近,我分析了几个SSL/TLS应用程序数据包,发现一些数据包在SSL/TLS应用程序数据包的最开始以固定的7个零字节开始


我不知道为什么会这样?直观地说,加密的消息应该是随机字节。

每个SSL块中的7个前导0意味着它不太可能是SSL加密的数据。必须有一些混淆,否则这只是SSL流/块中隐藏的数据通道

我认为这是Galois计数器模式特有的特性。Wireshark所称的“加密应用程序数据”在本例中是一种
通用EADCHIPER
,它在中定义并以以下内容开头:

opaque nonce_explicit[SecurityParameters.record_iv_length];
描述GCM的此字段:

nonce_explicit的每个值对于每个不同的 对任何固定密钥调用GCM加密函数。未能 满足此唯一性要求会显著降低安全性。 nonce_explicit可以是64位序列号

现在不需要是随机的或不可预测的——但它绝对必须是唯一的(另请参见)。使用TLS记录序列号(而不是TCP序列号!)是确保一个连接内唯一性的好方法,因此,例如,NSS遵循该建议(请参阅NSS 3.27.1中的
lib/ssl/ssl3con.c
,第2148-2167行和2994-3016行)


因此,在新的TLS连接开始时,nonce将只是一堆零。请注意,在第二个屏幕截图中,最后一个字节已经是
01
——这大概是连接中的第二条记录。

欢迎使用。尽量避免链接图片,因为它们可能会在将来消失,使您的问题变得不可理解仍然不太清楚,请给我一个参考链接或其他什么?谢谢。很抱歉,没有参考,在加密输出中出现如此多的连续0是非常罕见的。