1 votes

Puis-je configurer le serveur Windows NDES pour qu'il utilise l'algorithme Triple DES (3DES) pour le cryptage des réponses PKCS#7 ?

J'utilise le client SCEP pour enrôler des certificats sur le serveur NDES. Si OpenSSL n'est pas en mode FIPS, tout fonctionne bien.

En mode FIPS, j'obtiens l'erreur suivante :

pkcs7_unwrap():pkcs7.c:708] error decrypting inner PKCS#7
139968442623728:error:060A60A3:digital envelope routines:FIPS_CIPHERINIT:disabled for fips:fips_enc.c:142:
139968442623728:error:21072077:PKCS7 routines:PKCS7_decrypt:decrypt error:pk7_smime.c:557:

C'est parce que le serveur NDES utilise l'algorithme DES pour crypter les paquets PKCS#7 renvoyés. J'ai utilisé le code de débogage suivant :

/* Copy enveloped data from PKCS#7 */
    bytes = BIO_read(pkcs7bio, buffer, sizeof(buffer));
    BIO_write(outbio, buffer, bytes);

    p7enc = d2i_PKCS7_bio(outbio, NULL);

/* Get encryption  PKCS#7 algorithm */

    enc_alg=p7enc->d.enveloped->enc_data->algorithm;
    evp_cipher=EVP_get_cipherbyobj(enc_alg->algorithm);
    printf("evp_cipher->nid = %d\n", evp_cipher->nid);

La dernière chaîne s'imprime toujours :

evp_cipher->nid = 31

défini dans openssl-1.0.1c/include/openssl/objects.h

#define SN_des_cbc "DES-CBC"
#define LN_des_cbc "des-cbc"
#define NID_des_cbc 31

J'utilise l'algorithme 3DES pour le cryptage des requêtes PKCS7 dans mon code (pscep.enc_alg = (EVP_CIPHER *)EVP_des_ede3_cbc()) et le serveur NDES accepte ces requêtes, mais il renvoie toujours une réponse cryptée avec DES.

Puis-je configurer le serveur Windows NDES pour qu'il utilise l'algorithme Triple DES (3DES) pour le cryptage des réponses PKCS#7 ?

1voto

O.Shevchenko Points 31

J'ai reçu une réponse du support Microsoft (Diana Zhang) qui me dit que c'est impossible : http://social.technet.microsoft.com/Forums/en-US/winserversecurity/thread/83a6680c-6610-4cf7-a4fa-1bc63f32a8be

After in-depth research, want to let you know:
The content encryption algorithm for P7 in hardcoded to DES(in CBC mode).
Regards,
Diana

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X