На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Проверка подлинности сертификата X509
    Привет!

    Я использую протокол https для передачи данных между клиентом и сервером. На сервере имеется сертификат подписанный доверительной организацией.
    На клиенте я хочу проверить подлиность сервера. Для этого я на клиенте я написал следующий код:


    ExpandedWrap disabled
      string sLink = "https://" + ....
      ...
      System.Net.ServicePointManager.ServerCertificateValidationCallback +=
      delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                                              System.Security.Cryptography.X509Certificates.X509Chain chain,
                                              System.Net.Security.SslPolicyErrors sslPolicyErrors)
      {
           return true;
      };
       
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sLink);
      request.Method = "GET";
      request.Timeout = Timeout.Infinite;
      request.AllowWriteStreamBuffering = false;
      ....
      HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      ....
      Stream reader = response.GetResponseStream();
      ....


    Я понимаю что в обработчике ServerCertificateValidationCallback мне необходимо найти в системе сооответсвующий сертификат этой доверительной организации, взять открытый ключ,
    дешифровать с его помощью цифровую подпись сертификата который пришел от сервера и сравнить ее сравнить его на соответствие этому сертификату.
    Но я не совсем понимаю где и как искать соответсвующий сертификат на клиенте и как правильно провести верификацию не изобретая велосипед. Уверен есть какая-то стандартная реализация этой ф-и.
    Могли бы вы привести какой-либо пример?
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0508 ]   [ 17 queries used ]   [ Generated: 18.04.24, 02:45 GMT ]