gpt4 book ai didi

rsa - 验证服务器如何识别在 RSA 中使用哪个公钥?

转载 作者:行者123 更新时间:2023-12-02 00:41:48 37 4
gpt4 key购买 nike

enter image description here

我正在尝试在我的 (Java) 应用程序中实现一个(简化的)类似 RSA 的验证过程。客户端发送一个请求(数据+私钥签名),服务器要么拒绝他的请求,要么处理它——取决于签名的有效性。

但是我不明白验证服务器是怎么知道用哪个公钥来签名解密的。实际上,似乎没有公钥 - 也没有公钥 ID - 被发送到验证服务器。

它真的测试了所有授权的公钥吗?还是从以前的通信交换中存储的公钥?

最佳答案

该图有几处错误和一些遗漏,因为它可能是一种简化:

  • 散列是数字签名的,未加密,并且签名是经过验证的,而不是解密的。底层加密操作是不等价的。

  • 签名数据应包括证书和认证链

  • 如果您使用 CMS、pkcs#7 或 XMLDsig 等已知格式,要签名的哈希通常还包括对签名证书和内容类型的引用,以避免篡改

要验证签名文档,您使用附加证书的公钥验证签名,但必须检查签名证书是否受信任,验证证书本身或颁发者证书颁发机构存在于客户端的信任库中

签名包括证书链,因为通常信任库不包含中间 CA。之前交换了信任库的证书

此外,验证过程应检查证书是否过期且未被吊销


请注意,公钥基础设施中的所有数字证书的验证过程都是相同的,而不仅仅是 RSA

关于rsa - 验证服务器如何识别在 RSA 中使用哪个公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46141265/

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