web-dev-qa-db-ja.com

OpenSSL1.0.2kで3DESSSL暗号を有効にする方法

OpenSSL 1.0.2kはデフォルトで3DES暗号を削除しました。これは、一部のレガシーブラウザ(Windows XPのIE8など)がサポートされなくなったことを意味します。

OpenSSL公式ブログ によると、3DES暗号を再度有効にするには、コンパイル時にenable-weak-ssl-ciphersフラグを追加する必要があります。

それで、どのようにそれに対処するのですか?コンパイル時に必要な他のフラグはありますか?さらに、DPKG(Debianパッケージ管理ツール)によってインストールされたopensslを、自己コンパイルされた3DES対応バージョンでカバーできますか?それが実行可能な場合、どのように?

ありがとう:-)

4
Hardrain

その問題を解決するのに役立つ答えがないので、私がそれに対して行ったことを共有したいと思います。

まず、ソフトウェアを構築するためのツールとOpenSSLの依存関係を入手する必要があります(例:Debianのようなディストリビューション)

_apt install build-essential make zlib1g-dev libxml2-dev
_

次に、OpenSSLの最新リリースを入手し、署名を確認して、オプション_enable-weak-ssl-ciphers_を使用してコンパイルします。GODD** N Microsoft IE6の廃止されたSSLv3のサポートを取り戻したい場合は、_enable-ssl3_ and _enable-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_にインストールされます(OSに同梱されているバージョンをカバーするのではなく)。

リンカにOpenSSLライブラリのカスタムバージョンをリンクさせるためのこれらのオプションを使用して、アプリケーションを再コンパイルする必要がある場合もあります(_/etc/ld.so.conf_またはPKGCONFIG変数から構成をオーバーライドします)

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

ほとんどのアプリケーションがAPIをサポートするようになったため、OpenSSL 1.1.0を試すこともできます。

2
Hardrain

必要になるだろう:

  1. DebianのOpenSSLパッケージ —Debianリリースに含まれているバージョンを再構築します。
  2. どこかでホストして、元のマシンを置き換えるすべてのマシンで利用できるようにします。
  3. 在庫のOpenSSLパッケージがセキュリティアップデートを取得するたびにカスタムバージョンを再構築するようにしてください(そのため、新しいパッチバージョンがセキュリティアップデートチャネルを通じてリリースされます)。

残念ながら、上記のすべてのステップではさらに拡張する必要があるため、私が持っている主な質問は、sureトリプルDESがストックDebianビルドで無効になっていることです。私のストレッチシステムには次のものがあります。

$ 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がサポートされていることが示唆されます。

それで、あなたはテストしましたか?

1
kostix