Funzione CertVerifyCertificateChainPolicy (wincrypt.h)
La funzione CertVerifyCertificateChainPolicy controlla una catena di certificati per verificarne la validità, inclusa la conformità ai criteri di validità specificati.
Sintassi
BOOL CertVerifyCertificateChainPolicy(
[in] LPCSTR pszPolicyOID,
[in] PCCERT_CHAIN_CONTEXT pChainContext,
[in] PCERT_CHAIN_POLICY_PARA pPolicyPara,
[in, out] PCERT_CHAIN_POLICY_STATUS pPolicyStatus
);
Parametri
[in] pszPolicyOID
Le strutture dei criteri della catena di verifica predefinite correnti sono elencate nella tabella seguente.
Valore | Significato |
---|---|
|
Implementa i controlli di verifica dei criteri della catena di base. Il membro dwFlags della struttura a cui punta pPolicyPara può essere impostato per modificare il comportamento di controllo dei criteri predefinito. |
|
Implementa i controlli di verifica dei criteri della catena Authenticode. Il membro pvExtraPolicyPara della struttura a cui punta pPolicyPara può essere impostato in modo che punti a una struttura AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA .
Il membro pvExtraPolicyStatus della struttura a cui punta pPolicyStatus può essere impostato in modo che punti a una struttura AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS . |
|
Implementa i controlli di verifica dei criteri della catena timestamp Authenticode. Il membro pvExtraPolicyPara della struttura di dati a cui punta pPolicyPara può essere impostato in modo che punti a una struttura AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA .
Il membro pvExtraPolicyStatus della struttura dei dati a cui punta pPolicyStatus non viene utilizzato e deve essere impostato su NULL |
|
Implementa i controlli di verifica dei criteri della catena di client/server SSL. Il membro pvExtraPolicyPara nella struttura dei dati a cui punta pPolicyPara può essere impostato in modo che punti a una struttura SSL_EXTRA_CERT_CHAIN_POLICY_PARA inizializzata con criteri aggiuntivi.
Nota Per distinguere i certificati di autorizzazione client e server, la chiamata alla funzione CertGetCertificateChain per ottenere il contesto della catena deve specificare il tipo di certificato impostando l'utilizzo previsto. Impostare l'utilizzo previsto impostando il membro RequestedUsage della struttura CERT_CHAIN_PARA passata nel parametro di input pChainPara della funzione CertGetCertificateChain .
|
|
Implementa i criteri della catena di vincoli di base. Scorre tutti i certificati nel controllo della catena per un szOID_BASIC_CONSTRAINTS o un'estensione szOID_BASIC_CONSTRAINTS2. Se nessuna delle estensioni è presente, si presuppone che il certificato disponga di criteri validi. In caso contrario, per il primo elemento del certificato, controlla se corrisponde al CA_FLAG previsto o END_ENTITY_FLAG specificato nel membro dwFlags della struttura CERT_CHAIN_POLICY_PARA a cui punta il parametro pPolicyPara . Se nessuno o entrambi i flag sono impostati, il primo elemento può essere una CA o END_ENTITY. Tutti gli altri elementi devono essere un'autorità di certificazione (CA). Se PathLenConstraint è presente nell'estensione, viene controllato.
I primi elementi nelle catene semplici rimanenti (ovvero i certificati usati per firmare il CTL) vengono controllati per essere un END_ENTITY. Se questa verifica ha esito negativo, dwError verrà impostato su TRUST_E_BASIC_CONSTRAINTS. |
|
Implementa i criteri della catena di autenticazione di Windows NT, costituiti da tre verifiche distinte della catena nell'ordine seguente:
|
|
Controlla l'ultimo elemento della prima catena semplice per una chiave pubblica radice Microsoft. Se tale elemento non contiene una chiave pubblica radice Microsoft, il membro dwError della struttura CERT_CHAIN_POLICY_STATUS a cui punta il parametro pPolicyStatus viene impostato su CERT_E_UNTRUSTEDROOT.
Il membro dwFlags della struttura CERT_CHAIN_POLICY_PARA a cui punta il parametro pPolicyStatus può contenere il flag MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG , che fa sì che questa funzione controlli la radice dell'applicazione Microsoft "Microsoft Root Certificate Authority 2011". Il membro dwFlags della struttura CERT_CHAIN_POLICY_PARA a cui punta il parametro pPolicyPara può contenere il flag MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG , che fa sì che questa funzione controlli anche la presenza delle radici di test Microsoft. Nota Questo OID (Policy Object Identifier ) non esegue controlli di verifica dei criteri da solo, ma deve essere usato insieme ad altri criteri.
|
|
Specifica che viene eseguita la convalida estesa dei certificati.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato. |
|
Controlla se i certificati nella catena hanno crittografia debole o se la conformità del certificato radice di terze parti e fornire una stringa di errore. Il membro pvExtraPolicyStatus della struttura CERT_CHAIN_POLICY_STATUS a cui punta il parametro pPolicyStatus deve puntare a SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS, che viene aggiornato con i risultati dei controlli di conformità del programma radice e di crittografia deboli.
Prima di chiamare, il membro cbSize della struttura CERT_CHAIN_POLICY_STATUS a cui punta il parametro pPolicyStatus deve essere impostato su un valore maggiore o uguale a sizeof(SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS). Il membro dwError nella struttura CERT_CHAIN_POLICY_STATUS a cui punta il parametro pPolicyStatus verrà impostato su TRUST_E_CERT_SIGNATURE per la crittografia vulnerabile potenziale e impostato su CERT_E_UNTRUSTEDROOT per radici di terze parti non conformi al programma radice Microsoft. Windows 10, versione 1607, Windows Server 2016, Windows 10, versione 1511 con KB3172985, Windows 10 RTM con KB3163912, Windows 8.1 e Windows Server 2012 R2 con KB3163912 e Windows 7 con SP1 e Windows Server 2008 R2 SP1 con KB3161029 |
[in] pChainContext
Puntatore a una struttura CERT_CHAIN_CONTEXT che contiene una catena da verificare.
[in] pPolicyPara
Puntatore a una struttura CERT_CHAIN_POLICY_PARA che fornisce i criteri di verifica per la catena. Il membro dwFlags di tale struttura può essere impostato per modificare il comportamento di controllo dei criteri predefinito.
Inoltre, i parametri specifici dei criteri possono essere passati anche nel membro pvExtraPolicyPara della struttura.
[in, out] pPolicyStatus
Puntatore a una struttura CERT_CHAIN_POLICY_STATUS in cui vengono restituite informazioni sullo stato della catena. Lo stato aggiuntivo specifico dell'OID può essere restituito nel membro pvExtraPolicyStatus di questa struttura.
Valore restituito
Il valore restituito indica se la funzione è stata in grado di verificare la presenza del criterio, non indica se il controllo dei criteri non è riuscito o è stato superato.
Se la catena può essere verificata per i criteri specificati, viene restituito TRUE e il membro dwError di pPolicyStatus viene aggiornato. Un dwError pari a 0 (ERROR_SUCCESS o S_OK) indica che la catena soddisfa i criteri specificati.
Se la catena non può essere convalidata, il valore restituito è TRUE ed è necessario verificare il parametro pPolicyStatus per l'errore effettivo.
Un valore FALSE indica che la funzione non è stata in grado di verificare la presenza del criterio.
Commenti
Un membro dwError della struttura CERT_CHAIN_POLICY_STATUS a cui punta pPolicyStatus può essere applicato a un singolo elemento della catena, a una catena semplice o a un intero contesto della catena. Se dwError si applica all'intero contesto della catena, i membri lChainIndex e lElementIndex della struttura CERT_CHAIN_POLICY_STATUS vengono impostati su -1. Se dwError si applica a una catena semplice completa, lElementIndex è impostato su -1 e lChainIndex viene impostato sull'indice della prima catena con un errore. Se dwError si applica a un singolo elemento del certificato, lChainIndex e lElementIndex indicizzano il primo certificato con l'errore.
Per ottenere l'elemento del certificato, usare questa sintassi:
pChainContext->rgpChain[lChainIndex]->rgpElement[lElementIndex];
Usare la funzione CertGetCertificateChain per abilitare ed eseguire il controllo delle revoche di certificati. La funzione CertVerifyCertificateChainPolicy non controlla se i certificati nella catena di certificati vengono revocati.
Requisiti
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Crypt32.lib |
DLL | Crypt32.dll |
Vedi anche
AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA
AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per