Vérification des messages signés à l’aide de listes de contrôle cloud
L’un des avantages de l’utilisation de listes d’approbation de certificats (CTL) est que les applications peuvent être conçues pour vérifier automatiquement les messages signés par rapport aux certificats approuvés sans déranger l’utilisateur avec des boîtes de dialogue. Il donne également à un administrateur réseau des sources de contrôle à faire confiance.
La procédure suivante peut être utilisée pour vérifier la signature d’un message signé à l’aide d’une CTL.
Pour vérifier un message signé à l’aide d’une CTL
Décodez le message comme suit :
- Obtenez un pointeur vers le message reçu (objet BLOB encodé).
- Appelez CryptMsgOpenToDecode en passant les arguments nécessaires.
- Appelez CryptMsgUpdate une fois, en passant le handle récupéré à l’étape b et un pointeur vers les données à décoder. Cela entraîne l’exécution des actions appropriées sur le message, en fonction du type de message.
Vérifiez la signature du message décodé et signé et obtenez un pointeur vers le CERT_CONTEXT du signataire.
Pour ce faire, appelez CryptMsgGetAndVerifySigner, en transmettant le handle de message récupéré à l’étape 1c en tant que paramètre hCryptMsg . Si l’appel de fonction retourne TRUE, la signature a été vérifiée et un pointeur vers le PCCERT_CONTEXT du signataire est retourné dans le paramètre ppSigner .
Vérifiez que le signataire est une source approuvée comme suit :
- Ouvrez le magasin de certificats contenant la CTL appropriée.
- Obtenez un pointeur vers le CTL_CONTEXT en appelant CertFindCTLInStore.
- Pour confirmer que le signataire est une source approuvée, appelez CertFindSubjectInCTL, en passant le pointeur récupéré à l’étape précédente du paramètre pCtlContext , CTL_CERT_SUBJECT_TYPE dans le paramètre dwSubjectType , et le pointeur vers le CERT_CONTEXT récupéré à l’étape 2 dans le paramètre pvSubject . Si l’appel de fonction retourne TRUE, le CERT_CONTEXT passé à la fonction est une source approuvée dans la CTL.