如何为 OpenSSL 1.0.2k 启用 3DES SSL 密码

如何为 OpenSSL 1.0.2k 启用 3DES SSL 密码

OpenSSL 1.0.2k 默认删除了 3DES 密码,这意味着某些旧版浏览器(例如 Windows XP 上的 IE8)不再受支持。

根据OpenSSL 官方博客,要重新启用 3DES 密码,我们应该enable-weak-ssl-ciphers在编译时添加标志。

那么,该如何应对呢?编译时还需要其他标志吗?另外,我可以用自编译的启用 3DES 的版本覆盖 DPKG(Debian 软件包管理工具)安装的 Openssl 吗?如果可行,该怎么做?

谢谢 :-)

答案1

由于我还没有任何有用的答案来解决该问题,因此我想分享我对此所做的事情。

首先,您应该获得用于构建软件的工具和 OpenSSL 的依赖项。(例如在类似 Debian 的发行版上)

apt install build-essential make zlib1g-dev libxml2-dev

然后获取最新版本的 OpenSSL,验证签名并使用选项进行编译enable-weak-ssl-ciphers,如果您想重新获得对 GOD D**N Microsoft IE6 的过时 SSLv3 的支持,enable-ssl3enable-ssl3-method应该将其附加到编译选项中。

不要忘记shared标志或libssl.so不会libcrypto.so被构建,并使用-Wl,-rpath=来告诉链接器(ld)链接哪个目录中的共享库。

wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
sha256sum openssl-1.0.2o.tar.gz
curl https://www.openssl.org/source/openssl-1.0.2o.tar.gz.sha256

tar -zxvf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o/

./config --prefix=/opt/openssl-1.0.2 \
--openssldir=/etc/ssl \
shared enable-weak-ssl-ciphers \
-Wl,-rpath=/opt/openssl-1.0.2/lib

make
make install

此后,您的自定义版本的 OpenSSL 将被安装到/opt/openssl-1.0.2(而不是覆盖您的操作系统附带的版本)。

您的应用程序可能还需要重新编译,使用这些选项强制链接器链接您的自定义版本的 OpenSSL 库(覆盖配置/etc/ld.so.confPKGCONFIG变量)

LDFLAGS="-L/opt/openssl-1.0.2/lib -lssl -lcrypto -Wl,-rpath=/opt/openssl-1.0.2/lib"

您也可以尝试 OpenSSL 1.1.0,因为现在大多数应用程序都支持它的 API。

答案2

你会需要:

  1. 重建Debian 的 OpenSSL 软件包— 您的 Debian 版本中包含的版本。
  2. 将其托管在某个地方,以使它可以在您想要替换原始机器的所有机器上使用。
  3. 确保每次库存 OpenSSL 包获得安全更新时(因此其新的修补版本通过安全更新渠道发布)都重建自定义版本。

不幸的是,上述所有步骤都需要进一步扩展,所以我的主要问题是,你是否当然在现有的 Debian 版本中禁用了三重 DES?在我的 Stretch 系统上,我有:

$ openssl version
OpenSSL 1.1.0c  10 Nov 2016

$ openssl list -cipher-algorithms | grep -i des
DES => DES-CBC
DES-CBC
DES-CFB
DES-CFB1
DES-CFB8
DES-ECB
DES-EDE
DES-EDE-CBC
DES-EDE-CFB
DES-EDE-ECB => DES-EDE
DES-EDE-OFB
DES-EDE3
DES-EDE3-CBC
DES-EDE3-CFB
DES-EDE3-CFB1
DES-EDE3-CFB8
DES-EDE3-ECB => DES-EDE3
DES-EDE3-OFB
DES-OFB
DES3 => DES-EDE3-CBC
DESX => DESX-CBC
DESX-CBC
des => DES-CBC
DES-CBC
DES-CFB
DES-CFB1
DES-CFB8
DES-ECB
DES-EDE
DES-EDE-CBC
DES-EDE-CFB
des-ede-ecb => DES-EDE
DES-EDE-OFB
DES-EDE3
DES-EDE3-CBC
DES-EDE3-CFB
DES-EDE3-CFB1
DES-EDE3-CFB8
des-ede3-ecb => DES-EDE3
DES-EDE3-OFB
DES-OFB
des3 => DES-EDE3-CBC
des3-wrap => id-smime-alg-CMS3DESwrap
desx => DESX-CBC
DESX-CBC
id-smime-alg-CMS3DESwrap

$ openssl list -disabled
Disabled algorithms:
BLAKE2
HEARTBEATS
IDEA
MD2
MDC2
RC5
SCTP
SSL3
ZLIB

对我来说,这表明我拥有比您所谈论的更新的 OpenSSL 版本,并且它支持 3DES。

那么,你测试了吗?

相关内容