问题描述
我目前正在用 C# 实现一个内部 OCSP 响应器,并想为响应创建一个验证器类,但需要一些说明
- 收到的响应中标识的证书对应于 在相应请求中标识的证书;
有问题的证书是请求试图查找其状态的证书吗?还是整个请求/响应的链对象中的一个?我应该比较请求和响应之间的哪些信息以确保它们匹配?
我目前正在检查单个请求中的 CertificateID 是否与单个响应列表中的任何 CertificateID 匹配
public static bool CertificateMatch(OcspSingleRequest singleRequest,OcspResponse response) =>
response.Responses.Any(x => x.GetCertID().Equals(singleRequest.GetCertID()));
- 响应上的签名有效
对基本响应执行 .Verify(IssuerCertificate)
是否足以满足此标准?
- 签名者的身份与请求的预期接收者相匹配
将响应响应者 ID Name
和 KeyHash
与传入的 expectedResponderCertificate
SubjectDN
匹配并计算 publicKeyHash
是否足以验证这一点?
if ((responderID.Name != expectedResponderCertificate.SubjectDN) &&
(responderID.KeyHash != expectedResponderKeyHash))
{
return false;
}
return true;
- 签名者目前被授权为相关证书提供回复
我认为唯一的方法是直接联系 CA,或者如果它没有过期就信任它
感谢您提供任何见解。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)