我可以配置 Wndows NDES 服务器以使用三重 DES (3DES) 算法进行 PKCS#7 答案加密吗?

我可以配置 Wndows NDES 服务器以使用三重 DES (3DES) 算法进行 PKCS#7 答案加密吗?

我正在运行 SCEP 客户端以在 NDES 服务器上注册证书。如果 OpenSSL 未处于 FIPS 模式 - 一切正常。

在 FIPS 模式下我收到以下错误:

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:

这是因为NDES服务器使用DES算法来加密返回的PKCS#7数据包。我使用了以下调试代码:

/* 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);

最后一个字符串总是打印:

evp_cipher->nid = 31

在 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

我在我的代码中使用 3DES 算法对 PKCS7 请求进行加密(pscep.enc_alg = (EVP_CIPHER *)EVP_des_ede3_cbc())并且 NDES 服务器接受这些请求,但它始终返回用 DES 加密的答案。

我可以配置 Wndows NDES 服务器以使用三重 DES (3DES) 算法进行 PKCS#7 答案加密吗?

答案1

我得到了微软支持(Diana Zhang)的答复,说这是不可能的: 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

相关内容