株式会社ロックオン SSL三兄弟の“L“こと上原です.

データの重要性が増す昨今、WEBサイトのセキュリティ問題が取り正される機会も増えてきているので、今では当たり前となっているSSLについて、基本に立ち返ってお話ししたいと思います。

SSLとは、上記のように、”https://~”で始まるURLページで使われている暗号化の技術です。

ネットショッピングの決済ページや、問い合わせや資料請求のフォームのページなどの個人情報などを入力するページでよく利用されています。

この技術を使うことで、そのページのデータの送受信は暗号化され、盗聴などから守られて、安心・安心というわけですね。

「それなら全部、SSL使えばいいじゃん!」となった私に、より深い知識を持つSSL三兄弟の長兄・次男からSSLに潜む性能問題について、優しく論されたので、今回はその問題についてお話ししたいと思います。

では、性能問題とは何か・・・ズバリ!
「SSL通信(https)は通常のhttp通信よりものすごくパワーがいる」ということです。

どれくらいかというと、一般的に50倍以上、違うらしいです。

WEBサービスを運用していく上では、サービスを動かす機械が必要になってくるわけですが、50倍というと原付とフェラーリぐらいパワーが違います。

単純にフェラーリを買いまくると、とにかくお金がかかってしゃーないわけです。
それを何とかする策を色々と聞いてみました

「 SSL向上施策ってどんな種類があるんですか?」

 

– ハードウェアでがんがる(SSLに強い専用の良い機械を買う)

  • アクセラレータを積んだ専用機器を使う
  • L7ロードバランサ等でオフロードする
  • CPU高集積サーバ並べる

– ソフトウェア(ミドルウェア)でがんがる

  • プロセス立ち上げまくるprefork系やめる
  • チューニング(コネクション周り、keepaliveとかで飢えを凌ぐ)

– クラウドとかCDNでがんがる(もう、よそに任せる)

  • クラウド業者にSSL暗号化・複合化を肩代わりしてもらう
  • CDNとかに静的ページに任せる

– サーバ証明書でがんがる(SSLの中でも色々な種類がある)

  • 鍵長を短くする(まぁ昨今NGでしょう)
  • ECC(楕円曲線暗号)

うーん。いっぱいあるし、専門用語のオンパレードでよくわかりません。

「とりあえず安上がりで済みそうな”サーバ証明書でがんがる”について教えてください」

 

近年ベリサイン様から紹介されているECC(楕円曲線暗号)なる良い方法があるそうです。

従来のRSA暗号化通信より性能向上が望めるとのこと。
以下、引用交えながら紹介

現在の標準的な暗号方式に比べ、短い暗号鍵長でも、より強固なセキュリティを実現することができる暗号技術です。
ECCの採用によって、ウェブサーバの負荷軽減、同時SSLコネクション数の増加、ウェブページの表示時間の短縮をもたらします。
必要となるサーバのCPUパワーは小さくて済みますので、お客様は既存の資産を延命させることができます。
パフォーマンスに優れたECCと広く普及したRSAを1つのサイトで共存させるハイブリット構成を組むことができます。
このハイブリット構成により、ブラウザがECC対応しているとECCが選択され、ECC未対応であるとRSAが選択されるため、ユーザカバレッジを維持しつつ、SSL通信のパフォーマンスを向上させることができます。

[出典]https://www.verisign.co.jp/ssl/ecc-dsa/

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

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

 

ざっくりいうと

  • 暗号化アルゴリズムが良い感じで少ない文字数で解きにくい暗号化できるよ!
  • 文字数数少ない演算だからCPU負荷かからないよ!
  • まだ良い解き方見つかってないから、総当たり的な攻撃では全然解けないよ!

ということらしいです。

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

「 で、それ使えるんですか?」

 

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

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

おまけ

 

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

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