Поделиться через


Проверка CTL

Чтобы interloper усложняло замену фиктивного списка доверия сертификатов (CTL) на существующий, проверяйте подпись в CTL каждый раз при использовании CTL. Не используйте CTL, который не содержит доверенной сигнатуры.

Проверка подписи CTL

  1. Откройте хранилище сертификатов , содержащее требуемый CTL.
  2. Получение дескриптора CTL_CONTEXT для CTL. Это можно сделать, вызвав любую из функций, возвращающих дескриптор CTL_CONTEXT, например CertFindCTLInStore.
  3. Вызовите CryptMsgGetAndVerifySigner, передав CTL_CONTEXT , полученные на шаге 2, в параметре hCryptMsg , дескриптор в хранилище сертификатов, содержащее сертификат доверенного источника для списков ctls в параметре rghSignerStore , и CMSG_TRUSTED_SIGNER_FLAG в параметре dwFlags . Если функция возвращает значение TRUE, подпись была проверена, а в параметре ppSigner возвращается указатель на PCCERT_CONTEXT подписывателя CTL .