certificate - 使用 RSA 签署 DTLSv1.0 证书验证消息的内容
问题描述
我DTLS v1.0
用来与服务器通信。我在弄清楚究竟要做什么来生成certificate verify message
. 我一直在阅读RFCs
(DTLSv1.0和TLS1.1,这是 DTLS v1.0 的基础),但是当涉及到这个特定的消息时,它们有点不具体。
我看到消息的结构如下,我知道签名类型是RSA
.
struct { Signature signature; } CertificateVerify;
签名类型在 7.4.3 中定义。
CertificateVerify.signature.md5_hash MD5(handshake_messages); CertificateVerify.signature.sha_hash SHA(handshake_messages);
根据我所读到的内容,它似乎是sha1
散列和md5
所有先前发送和接收的消息的散列的串联(直到和不包括这个),然后RSA
签名。
让我有点困惑的是如何组装消息来散列它们。
它是使用每个片段还是使用重新组装的消息?此外,它使用消息的哪些部分?
TLS 1.1 的 RFC 说
从客户端 hello 开始直到但不包括此消息,包括握手消息的类型和长度字段
但是 DTLS 特定部分(如message_seq
、fragment_offset
和fragment_length
)呢?我是否包含它们?
更新:我已尝试按照DTLS 1.2的 RFC所示进行操作(意味着使消息保持碎片化,使用所有握手字段,包括DTLS
特定字段,不包括初始Client Hello
或Hello Verify Request
消息),但我仍然收到“错误签名”。我确实相信我签名正确,所以我相信我不正确地连接数据以进行签名。
解决方案
对于 DTLS 1.2,它已定义。阅读 RFC 4347,我的印象是,RFC 6347 并没有什么不同,它澄清了计算。
推荐阅读
- apache-spark - 网络绑定转换和线程
- angular - 卡片被放置在彼此的顶部,角度 10
- ios - ios Facebook inApp UserAgent中的手机号码代表什么?
- tabs - ASP.Net Core MVC 导航选项卡
- amazon-web-services - AWS Lambda:如果等待 Amazon S3 的 File 事件,Lambda 会产生费用吗
- r - 制作一个 ggplot 箱线图,其中每列都是它自己的箱线图
- python - 保存矩形时出现问题,它使我的游戏崩溃
- amazon-elastic-beanstalk - 在 AWS Elastic Beanstalk 中识别失败的命令挂钩
- javascript - 在绘制新图表之前清除 Anychart (Javascript) 容器
- android - Android 上的 RotationTransition 错误