わかった風のことを書くBLOG

仕事(IT)のはなしや、地元(沖縄)の話などなど記載してきます〜

SSL性能向上について考える(セキュリティも)サーバ証明書編

SSL通信の性能向上させたい話

f:id:parasan:20140103022821p:plain

WEBでサービス提供する際にネックになるポイントの一つ。

HTTPSでのアクセスは ハードウェア/ソフト(主にWEB系のミドルウェア)的に悩みの種になることがあります。ちょい前からでている既知の話ではありますが、これからスタンダードになる?かもしれないSSLサーバ証明書についてのメモついでにそういえばどんな対策がありましたっけという話。

SSL向上施策ってどんなん?

どこがネック?費用対効果は?
と選択することになると思いますがパッと思いつくとこ改めて整理してみます

  • ハードウェアでがんがる
    1. アクセラレータを積んだ専用機器でオフロードなど
    2. L7ロードバランサ等でオフロードなど
    3. WEBサーバ並べる
  • ミドルウェアでがんがる
    1. prefork系やめる(nginx,apache2.4~とか使う)
    2. チューニング(コネクション周り、keepaliveとかで飢えを凌ぐ)
  • クラウドとかCDNでがんがる
    1. AkamaiとかにSSLオフロードだけ肩代わりするやつあり
    2. AWS CloudFront とか静的ページならCDN

今回は「サーバ証明書でがんがる」について

今回ベリサインから紹介されているECC(楕円曲線暗号)で従来のRSA暗号化通信より性能向上が望めるとのこと。以下、引用交えながら紹介

現在の標準的な暗号方式に比べ、短い暗号鍵長でも、より強固なセキュリティを実現することができる暗号技術です。
ECCの採用によって、ウェブサーバの負荷軽減、同時SSLコネクション数の増加、ウェブページの表示時間の短縮をもたらします。
必要となるサーバのCPUパワーは小さくて済みますので、お客様は既存の資産を延命させることができます。

パフォーマンスに優れたECCと広く普及したRSAを1つのサイトで共存させるハイブリット構成を組むことができます。
このハイブリット構成により、ブラウザがECC対応しているとECCが選択され、ECC未対応であるとRSAが選択されるため、ユーザカバレッジを維持しつつ、SSL通信のパフォーマンスを向上させることができます。

[参考]https://www.verisign.co.jp/ssl/ecc-dsa/


とのこと。セキュリティ。性能ともにGOODと良いことづくしのようです。

なんでセキュリティも性能も向上するの?

ざっくりいうと

  1. 暗号化アルゴリズムがいい感じで少ないbitのものにかえるよ!
  2. bit数少ない演算だからCPU負荷かからないよ!
  3. まだいい解き方見つかってないから総当たり的な攻撃では全然解けないよ!

という認識です。ちなみに暗号化の強度はどれぐらいの時間でやぶれるの?の指標である。「準指数関数時間」とかが目安になるらしいです。ええ感じの計算方法見つかったらセキュリティについての優位性はなくなる訳ですね(数学的に楕円曲線とくのが多分難しいんでしょうが)。

で、使えるの?

  • ブラウザとか、ベリサイン以外も随時対応中〜
  • 商用サイトで徐々に採用中〜
  • 現状のRSAとハイブリットで利用できるので並行稼働かのう。

という感じなので普及はもう少しってところでしょうか。
並行稼働可能なので徐々には採用増えてるみたいですね.

おまけ

ちなみにSSL暗号か通信に利用されているアルゴリズムECC(楕円曲線暗号)は最近またブームになりつつあるフェルマーの最終定理で重要な役割を果たすので、知ってると少し親近感が湧きますw

# PS. 話かわりますが全然数学とかわからなくても読み物としておすすめです。

フェルマーの最終定理 (新潮文庫)

フェルマーの最終定理 (新潮文庫)