サーバとクライアントの暗号リスト(chiper suite) -SSL/TLS徹底解明 Part.2

前回はサーバ側で証明書の作成について説明した。

サーバ証明書とハッシュアルゴリズム -SSL/TLS徹底解明 Part.1
2014年は脆弱性の話が多くありましたが、ここでは脆弱性の話を絡めながらSSL/TLSの通信を徹底解明していきます。 ECC証明書につ...

おさらいをすると以下の通りである。

  • 秘密鍵と公開鍵のペアを作成する。暗号化として(RSA/DSA/ECC)が存在する。
  • CSRにはディスティングイッシュ・ネームと公開鍵の情報が含まれる。
  • 電子署名の認証のためにハッシュアルゴリズムが使用されている。
  • ハッシュアルゴリズムは2種類あり、電子署名のハッシュアルゴリズムについてはSHA-1からSHA-2へ移行が促されている。
  • SSL証明書は以下の情報を含んで認証局より発行されりる。
    「SSL証明書」 + 「公開鍵」 + 「電子署名」

今回はクライアントとサーバとの通信について紐解いていく。
長くなるため、クライアントとサーバ側のSSL/TLSの設定についてから述べていく予定だ。

スポンサーリンク

サーバ側に証明書のインストール

サーバ証明書インストール

1.CAから入手したサーバ証明書をインストールする。

CAから送られてきたサーバ証明書と一緒に通常はルート証明書が送られてくる(サイトにて自分でダウンロードする場合もある。)
サーバ証明書と必要であればルート証明書をWEBサーバにインストールする必要がある。
このサーバ証明書には以下の情報が含まれている

「SSL証明書」 + 「公開鍵」 + 「電子署名」

2.SSL/TLSプロトコルとChiper Suite(暗号リスト)

ApacheなどのWEBサーバは証明書をインストールしたあとに、SSL/TLSの使用できるプロトコルChiper Suite(暗号リスト)を指定することができる。
SSL/TLSプロトコルchiper Suiteとはクライアントと通信をする場合に、どのSSL/TLSプロトコルを許可し暗号は何を使うかを設定するところである。
実際にはクライアント側も同じようにSSL/TLSプロトコルChiper Suiteのリストを保持しており、サーバ側のリストと照合してどの暗号方式を使うかをきめる(ネゴシエートする)

暗号リストについては、以下のアルゴリズムが組み合わされて作成されている。(※代表的なものの一部を示す。)

SSL Protocol
[SSL2.0 /SSL3.0 / TLS1.0 / TLS1.1/TLS1.2]

Chiper suite(暗号リスト)
Kx
(Key exchange)
 [RSA / DH / EDH / ECDH / EDHE / ECDHE]
Au(Authentication)
 [RSA / DSA / ECDSA]
Enc (bulk encryption)
 [AES / RC4 / DES /AECGCM]
Mac(bulk encryption)
 [SHA1 / SHA2 / MD5]

サーバ上での暗号リストの制限方法や、確認方法については過去に紹介しているためそちらを参照していただきたい。

WEBサーバのセキュリティを高める簡単な方法
“あなたのサイトセキュリティは大丈夫?” 以前の記事にてSSL関連のセキュリティ診断を実施した。 結果については惨敗である。 そこ...

クライアント側について

認証局の証明書について

ルート証明書②

常日頃、ウェブブラウザでHTTPSでサイトに接続した場合、何も気にせず接続できているはずだ。
前回の記事で、「電子署名を認証局の公開鍵で複合化し・・」と記載していたが、認証局の公開鍵についてはある一定以上の信頼のおける認証局についてはブラウザ側で事前にインストールされており、そのおかげで我々は意識せずに、HTTPSでのSSL/TLSの通信をすることができるのである。

どの認証局の証明書がインストールされているかについてはブラウザにより変わってくる。
Firefoxの場合だと、[ツール]⇒[オプション]⇒[詳細]⇒[証明書]⇒[証明書を表示]と選ぶことによりインストールされている証明書の一覧を見ることができる。

ルート証明書①

これにより、ブラウザ側は認証局の証明書をインストールしたりするなどの作業が省かれているのである。

クライアント側の暗号リストについて

Firefoxについてまずは説明する。
URLに「about:config」を入力し、設定画面にアクセスする。
検索にて「security」で検索することで一覧として表示される。

WS000004

ここで表示されている暗号リストとWEBサーバの暗号リストを比較し一致するものがなければ、SSL/TLSでの通信ができない。
そのため、不用意にサーバ側の暗号リストを制限しすぎてしまうと通信ができなくなってしまう可能性がある。

まとめ

  • サーバに証明書をインストールするときにSSL/TLSのプロトコルとChiper Suite(暗号リスト)を設定することができる。
  • クライアント側の暗号リストとサーバ側の暗号リストで一致したものがSSL/TLSの通信に利用することができる。
  • 認証局のルート証明書は、信頼されている認証局についてはブラウザにデフォルトでインストールされている。
  • クライアント側はSSL/TLSプロトコル及び暗号化リストについて設定変更することができる。