我已经创建了我的自签名认证并将其安装到我的客户端的受信任根目录并用于 .pfx [服务器端] 以确认认证和身份验证顺利进行,没有任何错误
但是有一个问题让我非常困惑,黑客有什么办法可以伪造我的客户的身份验证吗?用他的假证书和服务器?
例子 :
我验证认证的代码是
private static bool OnCertificateValidation(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors == SslPolicyErrors.None)
{
if (CaVerify(chain) && ServerVerify(certificate)) return true;
}
return false;
}
public static bool CaVerify(X509Chain chain)
{
if (chain.ChainElements.Count > 0)
{
var certHash = chain.ChainElements[chain.ChainElements.Count - 1].Certificate.GetCertHash();
if (certHash.Length == ApiCertHash.Length)
{
for (var idx = 0; idx < certHash.Length; idx++)
{
if (certHash[idx] == ApiCertHash[idx])
{
return true;
}
}
}
}
return false;
}
public static bool ServerVerify(X509Certificate certificate)
{
var certHash = certificate.GetCertHash();
if (certHash.Length == ApiCertHash.Length)
{
for (var idx = 0; idx < certHash.Length; idx++)
{
if (certHash[idx] == ApiCertHash[idx])
{
return true;
}
}
}
return false;
}
那么有人可以创建一个伪造的certificate.pfx 并将其与他的伪造服务器相关联并将我的客户端连接到他的伪造服务器吗?