Vérification d’une CTL
Pour rendre plus difficile pour un interloper de remplacer une liste d’approbation de certificats (CTL) fausse par une liste existante, vérifiez la signature sur la CTL chaque fois que la CTL est utilisée. N’utilisez pas une CTL qui ne contient pas de signature approuvée.
Pour vérifier une signature CTL
- Ouvrez le magasin de certificats contenant la CTL souhaitée.
- Obtenez un handle à un CTL_CONTEXT pour la CTL. Pour ce faire, appelez l’une des fonctions qui retournent un handle au CTL_CONTEXT, comme CertFindCTLInStore.
- Appelez CryptMsgGetAndVerifySigner, en passant le CTL_CONTEXT récupéré à l’étape 2 dans le paramètre hCryptMsg , un handle au magasin de certificats contenant le certificat de la source approuvée pour les CTL dans le paramètre rghSignerStore et le CMSG_TRUSTED_SIGNER_FLAG dans le paramètre dwFlags . Si la fonction retourne TRUE, la signature a été vérifiée et un pointeur vers le PCCERT_CONTEXT du signataire de la CTL est retourné dans le paramètre ppSigner .