自己署名証明書を作成し、それをクライアントの信頼されたルートにインストールし、.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;
}
それで、誰かが偽のcertification.pfxを作成し、それを彼の偽のサーバーに関連付けて、私のクライアントを彼の偽のサーバーに接続することができますか?