API Developer PortalのSSL/TLS暗号スイートの強度の設定について

Document created by Koichi_Ikarashi Employee on Jan 26, 2018Last modified by Masayasu_Sato on Jan 29, 2018
Version 2Show Document
  • View in full screen mode

文書番号: JTEC002625
製品名: CA API Developer Portal


この技術情報は既存のTEC0000001286の概要内容を日本語で案内するものです。

 

背景:

API Developer Portal(以下ADPと省略)は、SSL/TLS暗号スイートについて予め決められたセキュリティレベルをサポートするように構成することができます。デフォルトでは、ADPは暗号スイートの全てのセキュリティレベルを許容し、より厳密な暗号化方式をサポートしていないレガシーシステムとの互換性を保証します。ADPのこの設定は、ADPアプライアンスのApache HTTPサーバのSSL/TLS設定により管理されます。設定ファイルは、ADPアプライアンスの以下のディレクトリに保存されています: /etc/httpd/conf.d/ssl.conf

 

ApacheのSSL/TLS設定ファイルでは、それぞれの属性に基づいて、特定のスイートクラスを有効化したり無効化したりするように設定できます。四つの属性に対して暗号スイートをテストすることができます:

  1. キー交換アルゴリズム (例: Diffie-HellmanまたはRSA)
  2. 認証アルゴリズム (例: Elliptic Curve Diffie-HellmanまたはDSA)
  3. 暗号化アルゴリズム (例: DES, 3DES, またはRC4)
  4. メッセージ認証ダイジェスト (例: MD5またはSHA1)

許可された暗号スイートの強度の調整

  1. ADPアプライアンスのSSL/TLS設定ファイルをテキストエディタで開きます: /etc/httpd/conf.d/ssl.conf
  2. SSLCipherSuite ディレクティブを特定します
  3. ディレクティブの設定値に適切な値を指定します
  4. 変更を保存してテキストエディタを閉じます
  5. Apache HTTPサーバを再起動します: service httpd restart

 

暗号スイートの強度の設定
デフォルトのSSLCipherSuite ディレクティブは以下のとおりです:
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

 

このディレクティブは複雑に見えますが、各部分が分かれば単純です。このデフォルト値は以下のように解釈できます: 全て(ALL)の暗号スイートを許可します。Anonymous Diffie Helman (ADH)キー交換を使用するものを除外します。export-grade暗号スイートは40ビット以上のキーの長さをサポートしませんが、これを除外します。SSLv2接続用の暗号スイートを除外します。続いて優先順位を指定しており、高(high)強度の暗号化が最も優先され、次に中(medium)強度の暗号化、そして低(low)強度の暗号化と指定されています。

 

それぞれ、暗号スイートの「強度」はキーの長さで指定されます。高(High) 強度の暗号化は128ビットより大きく、中(medium)強度の暗号化は56ビットより大きく、低(low)強度の暗号化は56ビット以下です。システムをより強固にするには、低(low)強度または中(medium)強度の暗号化を除外することができます。これは、+MEDIUM を!MEDIUMに、または+LOWを!LOWにそれぞれ変更します。記号(+)はクラスが含まれることを意味し、記号(!)はクラスが除外されることを意味します。

ディレクティブの設定についての完全なドキュメントは、以下のApache HTTPサーバのマニュアルを参照してください: https://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslciphersuite

 

スイートの強度設定についてのテスト

暗号スイートディレクティブの値は直接テストしてどの暗号スイートがサポートされているかを確認することができます。OpenSSLスイートにはciphers コマンドがあります。このコマンドは、指定した文字列に基づいて利用可能な暗号スイートをリストすることができます。これは暗号スイートと属性の表をタブでフォーマットして提示し、特定の暗号スイートディレクティブとサーバ設定の要件に合ったものが表示されます。以下の例は、ADPアプライアンスのデフォルト設定でOpenSSLライブラリがApache HTTPサーバに接続した場合、利用可能な暗号スイートがを表示しています。この表は、スイート名、SSL/TLSバージョン、キー交換方式、認証方式、暗号化方式、そしてメッセージ認証方式を表示します。

openssl ciphers -v 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW'
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
KRB5-DES-CBC3-MD5       SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) Mac=MD5 
KRB5-DES-CBC3-SHA       SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
KRB5-RC4-MD5            SSLv3 Kx=KRB5     Au=KRB5 Enc=RC4(128)  Mac=MD5 
KRB5-RC4-SHA            SSLv3 Kx=KRB5     Au=KRB5 Enc=RC4(128)  Mac=SHA1
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
KRB5-DES-CBC-MD5        SSLv3 Kx=KRB5     Au=KRB5 Enc=DES(56)   Mac=MD5 
KRB5-DES-CBC-SHA        SSLv3 Kx=KRB5     Au=KRB5 Enc=DES(56)   Mac=SHA1
EDH-RSA-DES-CBC-SHA     SSLv3 Kx=DH       Au=RSA  Enc=DES(56)   Mac=SHA1
EDH-DSS-DES-CBC-SHA     SSLv3 Kx=DH       Au=DSS  Enc=DES(56)   Mac=SHA1
DES-CBC-SHA             SSLv3 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=SHA1

 

コマンドの出力が提供する特定の暗号スイートは、デフォルト暗号スイートディレクティブを用いてApache HTTPサーバに接続する際の要件に合致するものでOpenSSLスイートが使用するものです。もし中(medium)強度の暗号化と低(low)強度の暗号化が除外されていれば、以下のリストが利用可能です。このリストは明らかに短く、128ビット未満のキーの長さの暗号スイートは含みません。

openssl ciphers -v 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:!MEDIUM:!LOW'
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
KRB5-DES-CBC3-MD5       SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) Mac=MD5 
KRB5-DES-CBC3-SHA       SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1

 

openssl ciphers -vコマンドは特定の暗号スイートの設定ディレクティブの出力が期待されたものか否かをデプロイせずにテストすることができます。

 

◆追加情報:
TEC0000001286: Configuring SSL/TLS cipher suite strength within the API Developer Portal

Attachments

    Outcomes