インフラエンジニアbacchiのわかったことまとめ

bacchi.me

使うべきでないCipherSuites

使用すべきでない暗号化スイートを調べました。

暗号化スイートを確認してみて、使用すべきでないものが有効になっていたら設定の変更をおすすめします。

暗号化スイートを確認する

以下のコマンドで任意の暗号化スイートで使用される暗号化方式の一覧が見れます。

openssl ciphers -V 'CipherSuites_NAME'

実行例

# openssl ciphers -V 'ALL'
          0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
          0xC0,0x2C - ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
          0xC0,0x28 - ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
          0xC0,0x24 - ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
          0xC0,0x14 - ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
          0xC0,0x0A - ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
          0x00,0xA3 - DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(256) Mac=AEAD
          0x00,0x9F - DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
          0x00,0x6B - DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
          0x00,0x6A - DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256
          0x00,0x39 - DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
          0x00,0x38 - DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
          0x00,0x88 - DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(256) Mac=SHA1
          0x00,0x87 - DHE-DSS-CAMELLIA256-SHA SSLv3 Kx=DH       Au=DSS  Enc=Camellia(256) Mac=SHA1
          0xC0,0x19 - AECDH-AES256-SHA        SSLv3 Kx=ECDH     Au=None Enc=AES(256)  Mac=SHA1
          0x00,0xA7 - ADH-AES256-GCM-SHA384   TLSv1.2 Kx=DH       Au=None Enc=AESGCM(256) Mac=AEAD
          0x00,0x6D - ADH-AES256-SHA256       TLSv1.2 Kx=DH       Au=None Enc=AES(256)  Mac=SHA256
          0x00,0x3A - ADH-AES256-SHA          SSLv3 Kx=DH       Au=None Enc=AES(256)  Mac=SHA1
          0x00,0x89 - ADH-CAMELLIA256-SHA     SSLv3 Kx=DH       Au=None Enc=Camellia(256) Mac=SHA1
          0xC0,0x32 - ECDH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
          0xC0,0x2E - ECDH-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
          0xC0,0x2A - ECDH-RSA-AES256-SHA384  TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(256)  Mac=SHA384
          0xC0,0x26 - ECDH-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA384
          0xC0,0x0F - ECDH-RSA-AES256-SHA     SSLv3 Kx=ECDH/RSA Au=ECDH Enc=AES(256)  Mac=SHA1
          0xC0,0x05 - ECDH-ECDSA-AES256-SHA   SSLv3 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA1
          0x00,0x9D - AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD
          0x00,0x3D - AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
          0x00,0x35 - AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1

よく使用される暗号化スイート

CipherSuitesの設定サンプルなんかを見た時によく登場する暗号化スイートをまとめました。

  • ALL

    • OpenSSLで使用できるすべての暗号化方式(CipherSuite)からeNULLに該当するものを除いたものです。
  • DEFAULT

    • ALLから更にaNULLとSSLv2を除いたものです。
  • aNULL

    • 通信開始時にサーバの認証をしないものです。
  • eNULL

    • 通信時に暗号化をしないものです。
  • SSLv2

    • SSLv2で使用される暗号化方式です。
  • EXP

    • 米国輸出規制緩和により使用可能となった暗号化方式です。鍵長が40bitもしくは56bitの暗号化方式。
  • RC4

    • 暗号化方式にRC4を使用するものです。
  • MD5

    • メッセージ認証符号にMD5を使用するものです。
  • LOW

    • 米国輸出制限緩和により使用可能となったものを除く鍵長が56bitもしくは64bitの暗号化方式です。
  • MEDIUM

    • 128bitの鍵長の暗号化方式です。
    • 128bitRC4やSEEDなどがこちらに含まれます.
  • HIGH

    • 128bit以上の鍵長の暗号化方式
    • AESや3DES、Camelliaなどがこちらに含まれます

禁止すべき暗号化方式とプロトコル

  • SSLv2

    • 暗号強度が弱い、色んな攻撃に無防備、使いどころがない。の三拍子揃った暗号界のクズ。激マズ。
  • SSLv3

    • POODLE脆弱性でおなじみですね。マズい
  • EXP

    • FREAK脆弱性がある。激マズ。
  • LOW

    • 56bit、60bitの暗号方式で暗号化強度が低すぎる。激マズ。
  • aNULL

    • ShakeHandsのときにサーバー認証しないのはいただけない。激マズ。
  • eNULL

    • 通信時に平文でやりとりするのはいただけない。激マズ。
  • ADH

    • ADHは匿名暗号方式をサポートします。匿名暗号とか意味あるんですかね?激マズ。
  • MD5

    • MD5は選択プレフィックス衝突攻撃に対し脆弱性が存在します。激マズ。
  • DSS

    • RSAと違って通信の暗号化はしていますが、ユーザ認証を行っていないため暗号強度が低いです。マズい。
  • PSK

    • クラックツールが出まわって久しいですね。基本的になくても困らない。マズい。
  • SRP

    • バッファオーバーフローの脆弱性があります。基本的になくても困らない。マズい。
  • RC4

    • RC4は解読が容易になるようなアルゴリズムが存在するため危殆化しています。おいしくない。
  • 3DES

    • すでに暗号を破られた実績あり。米国標準からも外された。けどRC4を禁止して、3DESも禁止にするとXP+IEな環境が駄目になる。おいしくない。

CipherSuitesの指定の際につける記号の意味

  • !は暗号化スイートを使わせない。
  • -は暗号化スイートを削除する。
  • +は暗号化スイートの追加。

最後に

Mozillaのページを参考にさせていただきました。

https://wiki.mozilla.org/Security/Server_Side_TLS

  • B!