执行 SSL Pinning 时忽略 SslPolicyErrors 是否安全?
Is Ignoring SslPolicyErrors while doing SSL Pinning Secure?
我正在实施 SSL 固定作为项目的安全要求,并且 HTTPS 端点给我 SslPolicyErrors。出现以下错误,
RemoteCertificateChainErrors
RevocationStatusUnknown
UntrustedRoot
如果我忽略这些问题并只检查 public 密钥 certificate.GetPublicKeyString ()
是否匹配,这是否安全,或者黑客是否能够因为我们不检查链而欺骗我们的证书?
这是检查我正在考虑删除的 SslPolicyErrors 的代码。
if (sslPolicyErrors != SslPolicyErrors.None) {
Debug.Log(sslPolicyErrors);
for(int i=0; i<chain.ChainStatus.Length;i++){
Debug.Log("-");
Debug.Log(chain.ChainStatus[i].Status);
Debug.Log(chain.ChainStatus[i].StatusInformation);
}
return false;
}
如果您购买了 TSL 证书,则必须检查根证书和吊销状态。必须验证这些信息以检查您是否正在与正确的端点通信。
如果您使用自签名证书,那么检查指纹和有效期应该是公平的游戏。但是将指纹存储在应用程序中也可以轻松编辑中间人攻击。
询问这个和你的协议
我正在实施 SSL 固定作为项目的安全要求,并且 HTTPS 端点给我 SslPolicyErrors。出现以下错误,
RemoteCertificateChainErrors
RevocationStatusUnknown
UntrustedRoot
如果我忽略这些问题并只检查 public 密钥 certificate.GetPublicKeyString ()
是否匹配,这是否安全,或者黑客是否能够因为我们不检查链而欺骗我们的证书?
这是检查我正在考虑删除的 SslPolicyErrors 的代码。
if (sslPolicyErrors != SslPolicyErrors.None) {
Debug.Log(sslPolicyErrors);
for(int i=0; i<chain.ChainStatus.Length;i++){
Debug.Log("-");
Debug.Log(chain.ChainStatus[i].Status);
Debug.Log(chain.ChainStatus[i].StatusInformation);
}
return false;
}
如果您购买了 TSL 证书,则必须检查根证书和吊销状态。必须验证这些信息以检查您是否正在与正确的端点通信。
如果您使用自签名证书,那么检查指纹和有效期应该是公平的游戏。但是将指纹存储在应用程序中也可以轻松编辑中间人攻击。
询问这个和你的协议