Lors de la génération d’une bi-clé par un CSP (via CPGenKey depuis CryptGenKey), deux flags permettent de garantir l’exportabilité de la clé privée :
– CRYPT_EXPORTABLE 0x00000001
– CRYPT_ARCHIVABLE 0x00004000
Lors de l’export de la clé privée (CPExportKey , ces flags sont vérifiés afin de décider si l’export peut être effectué…
Depuis rsaenh.dll
:
.text:6800C350 test word ptr [eax+8], 4001h .text:6800C356 jnz short loc_6800C362 .text:6800C358 mov esi, 8009000Bh
Exemple avec Certutil pour une clé non exportable :
CertUtil : -exportPFX ÉCHEC de la commande : 0x8009000b (-2146893813) CertUtil: Clé non valide pour l'utilisation dans l'état spécifié.
Sous Windows >= NT 5.1 mais < 6.0, ce test est suivi d'un autre test. Sous Windows >= NT 6.0, ce test est répété une autre fois.
Inclus dans mimikatz (article : http://blog.gentilkiwi.com/mimikatz/crypto#patchcapi)