Проверка сертификата - GetCertHashString против GetPublicKeyString - PullRequest
0 голосов
/ 17 июня 2019

У меня есть приложение C # (.Net Framework 4.7), которое проверяет подлинность SSL-сертификата, сравнивая открытый отпечаток сертификата (хранящийся в виде константы в коде) со значением, возвращаемым X509Certificate.GetCertHashString().

httpObj.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateCertificate);
...
private static bool ValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
    return certificate.GetCertHashString().ToLower() == HASH_CONSTANT;
}

Я хотел бы знать, что рекомендуется избегать обновления константы хэш-строки и повторного выпуска приложения при каждом обновлении сертификата.

Этот пост предлагает GetPublicKeyString вернет то же значение после обновления сертификата, но GetCertHashString вернет хэш нового сертификата.

Есть ли какие-либо недостатки в аутентификации на основе открытого ключа вместо хэша сертификата?

Другой возможный кандидат в классе X509Certificate - GetSerialNumberString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...