SSPI Schannel API — можно ли повторно использовать дескрипторы учетных данных?

В настоящее время я добавляю поддержку SSPI Schannel API в libcurl, чтобы можно было использовать протоколы с поддержкой SSL в Windows без каких-либо внешних зависимостей, таких как OpenSSL.

У меня уже есть работающая реализация SSL/TLS, но у меня есть очень специфический вопрос относительно повторного использования дескрипторов учетных данных, возвращаемых функцией AcquireCredentialsHandle.

Правильно ли и возможно ли повторно использовать сеансы SSL/TLS, вместо создания нового дескриптора повторно используя существующий и передавая его InitializeSecurityContext несколько раз?

Мою работу над модулем Schannel для libcurl можно найти здесь, а также экспериментальную версию, которая пытается для повторного использования можно найти здесь.

Буду признателен за любую подсказку или отзыв по этому поводу. Итак, можно ли повторно использовать дескрипторы учетных данных таким образом? И это правильно?

Заранее спасибо!


person mback2k    schedule 10.04.2012    source источник


Ответы (1)


Я нашел ответ на свой вопрос и записал его здесь для других:

  1. Об этом уже спрашивали, и первый ответ можно найти здесь.
  2. Следующую информацию можно найти на этой странице MSDN. :

Ваше приложение получает учетные данные, вызывая функцию AcquireCredentialsHandle, который возвращает дескриптор запрошенных учетных данных. Поскольку дескрипторы учетных данных используются для хранения информации о конфигурации, один и тот же дескриптор нельзя использовать как для операций на стороне клиента, так и для операций на стороне сервера. Это означает, что приложения, поддерживающие как клиентские, так и серверные подключения, должны получить как минимум два дескриптора учетных данных.

Поэтому можно считать безопасным повторное использование одного и того же дескриптора учетных данных для нескольких подключений. И я убедился, что это действительно заставляет Schannel повторно использовать сеанс SSL/TLS. Это было протестировано на Windows 7 Professional SP1.

person mback2k    schedule 10.04.2012