gpt4 book ai didi

ssl - TLS 1.2 是否具有针对 VerifyData 的密码套件特定算法/行为?

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

我正在使用 DTLS 的 Golang 实现,但我无法为 VerifyData 生成有效值。我有一个工作示例 here这显示了我的代码(以及我如何获得与 OpenSSL 不同的东西)

printf 调试 OpenSSL 看起来握手主体的哈希与我的不同。这似乎不太可能,我会假设我收集的数据包是错误的。但是在

之前放置 printf 语句

密码套件是 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,您可以在 https://github.com/pions/dtls 查看整个代码库

最佳答案

VerifyData(在 Finished 中)始终使用 TLS 定义的 PRF,对于 TLS1.2(和 DTLS1.2)来说,它是使用哈希的双倍 HMAC,可以取决于密码套件。对于所有预先存在的密码套件,D/TLS1.2 PRF 使用 SHA256,而您确定的新的 TLS1.2 套件也使用 SHA256。 (事实上​​ ,它对 PRF 使用 SHA256,因为 GCM 套件不对数据使用 HMAC。)其他一些新的 TLS1.2 套件使用 SHA384。此外,1.2 中 VerifyData 的长度正式依赖于密码套件,但所有 1.2 之前的套件必须使用 12 之前的协议(protocol)大小,并且所有 1.2 中的新套件也使用 12 ,所以在实践中没有区别。

但是,按照您的要旨,您的问题是您包含了初始的 ClientHello 和 HelloVerifyRequest,这是您不应该包含的。请参阅第 4.2.1 节的倒数第二个(倒数第二个词,我不经常使用这个词!),靠近 page 18 in rfc6347 的顶部。和 section 4.2.6它还指出,虽然这在您的示例中不是问题,但如果使用碎片进行传输,您仍然必须散列未碎片化消息。

关于ssl - TLS 1.2 是否具有针对 VerifyData 的密码套件特定算法/行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53273484/

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