Udostępnij przez


Weryfikowanie listy CTL

Aby utrudnić interloperowi zastąpienie fałszywej listy zaufania certyfikatów (CTL) dla istniejącego, sprawdź podpis na liście CTL za każdym razem, gdy jest używana lista CTL. Nie używaj listy CTL, która nie zawiera zaufanego podpisu.

Aby zweryfikować podpis CTL

  1. Otwórz magazyn certyfikatów zawierający żądany CTL.
  2. Uzyskaj dojście do CTL_CONTEXT dla CTL. Można to zrobić, wywołując dowolną funkcję, która zwraca uchwyt do CTL_CONTEXT, na przykład CertFindCTLInStore.
  3. Wywołaj CryptMsgGetAndVerifySigner, przekazując CTL_CONTEXT pobrane w kroku 2 w parametrze hCryptMsg, dojście do magazynu certyfikatów zawierającego certyfikat zaufanego źródła dla CTLs w parametrze rghSignerStore oraz CMSG_TRUSTED_SIGNER_FLAG w dwFlags parametru. Jeśli funkcja zwraca true, podpis został zweryfikowany, a wskaźnik do PCCERT_CONTEXT obiektu podpisjącego CTL jest zwracany w parametrze ppSigner.