我正在将SSL固定实现为项目的安全性要求,并且HTTPS端点给了我SslPolicyErrors。发生以下错误,

RemoteCertificateChainErrors
    RevocationStatusUnknown
    UntrustedRoot


如果我忽略这些问题,只是检查公钥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证书,则必须检查root和吊销状态。必须验证这些信息,以检查您是否与正确的端点进行通信。

如果您使用自签名证书,则检查指纹和有效日期应为自由游戏。但是,将指纹存储在应用程序中,还可以轻松进行中间人攻击的编辑。

也许您可以在https://security.stackexchange.com/上询问此问题以及您的协议

关于c# - 进行SSL固定安全时是否忽略SslPolicyErrors?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29685991/

10-13 05:57