ニュース
楕円曲線暗号のサーバー証明書、導入第1号は「小悪魔女子大生のサーバエンジニア日記」
(2013/6/7 14:48)
株式会社シマンテックは6日、楕円曲線暗号(ECC)対応版SSLサーバー証明書が、株式会社ディレクターズの運営する商用Webサイトとブログに導入されたと発表した。シマンテックは2月に商用のECC対応版SSLサーバー証明書の提供を開始したが、今回が導入第1号となる。
ECC対応版SSLサーバー証明書の第1号ユーザー
今回、同証明書が導入されたのは、ディレクターズが運営する、上場企業約3600の情報を網羅した企業情報ポータルサイト「kmonos(クモノス)」と、初心者向けのネットワーク関連技術をまとめたブログサイト「小悪魔女子大生のサーバエンジニア日記(以下、小悪魔ブログ)」。
どちらも情報を発信するサイトで、サイトの運営者の身元を明確にすることでユーザーに安心を与えるため、全ページSSL化(常時SSL)を行っていた。しかし、kumonosは配信ニュースが話題となりアクセスが集中したとき、小悪魔ブログは記事がアップデートされたときなどピーク時にサーバーがつながりにくくなっていたという。
原因はSSL化することに伴うCPU使用率の上昇で、これまで解決策としてはサーバーを増強するか、常時SSLをやめるかの二択しかなかった。そこに従来よりも暗号強度が高く、サーバーリソースの消費が少ないECC対応版SSLサーバー証明書が登場したことで、新たな選択肢が出現。ディレクターズ自身がサーバー証明書取得代行事業を行っていることもあって導入を決めたとディレクターズ 代表取締役の加藤慶氏は語る。
ECCが高強度で処理が速い理由
ECCは、楕円曲線を用いた暗号方式。楕円曲線における離散対数問題の一方向性を根拠とし、署名(ECDSA)や鍵交換(ECDH)を実現したものだ。この離散対数問題を高速かつ効率的に解析する手法が発見されていないため、その一方向性(解析困難性)はRSAより強い。そのため短い鍵長でもより高い強度を実現できる。鍵長が短いことからパフォーマンスにも優れているのが特長だ。
しかし、なぜRSAより複雑な演算をするECCの方が速いのか。その理由はECC p256はその鍵の短さからRSA 2048ビットと比較してWebサーバーによる署名および鍵交換における負荷が軽くなっているためだ。
より詳細に説明すると、サーバー証明書のハンドシェイクにかかる時間は「署名(サーバー側の処理)」「鍵交換」「署名検証(ブラウザ側の処理)」の総和によって決まる。このうち「署名(サーバー側の処理)」「鍵交換」は鍵の短いECCの方が速度的に有利で、「署名検証(ブラウザ側の処理)」では複雑な演算があだとなって不利となる。
このことからECCのパフォーマンスが本領を発揮するのは、サーバーへの同時接続数が増えたときとされている。それは、サーバーへの同時接続数が増えると、「署名(サーバー側の処理)」「鍵交換」の処理が多数発生することになり、鍵長の長いRSAのレスポンスタイムが悪化。逆にECCが不得意な「署名検証(ブラウザ側の処理)」はサーバー側の同時セッション数の影響を受けないため、結果としてRSAのサーバー側の速度劣位が拡大し、ECCが相対的に優位となるためだ。
シマンテックの検証では、300リクエスト/秒あたりでRSAとECCのレスポンスタイムに差が生じ始め、450リクエスト/秒ではその差が顕著となっている。逆に同時接続数が少ない場合は、サーバー側とブラウザ側の処理における得手不得手による速度差異が打ち消しあって、RSAとECCでレスポンスタイムの差異はほとんど見られなかったという。
ディレクターズでの検証結果
ディレクターズでは、このECCの特性により、サーバーのCPU使用率が抑制されることに期待。kmonosと小悪魔ブログで実際に利用しているApacheとNginxで検証を行った。
まずサーバーのCPU使用率では、ApacheとNginxともに効果が上がった。ApacheではRSA使用時の76.4%から41.53%に減少。Nginxでは41.95%から30.5%に減少した。サーバーレスポンスタイムでは、200同時接続×100回の負荷をかけた際に、Apacheは394msから313msに減少した。しかし、Nginxでは逆に782msから793msに増加してしまった。
加藤氏は「CPUの使用率ではECCの効果が実証できた。レスポンスタイムはkmonosと小悪魔ブログともに同時接続数がそれほど多いサイトではないので効果としては十分。ただしNginxでは逆にレスポンスが遅くなるという結果が出ており、サーバー側での最適化が不十分という感想を持った。ここは次期バージョンなどに期待している」と結果を評価した。
テスト用のECC対応版サーバー証明書を無償提供
ベリサインによれば「まだ実際に本番環境でECCを導入しようという案件は少ない。が、Webサイトがバースト時に重くなるなどの課題を持っている企業が、サーバーを増強して対処するのではなく、ECCを導入してその代替とできないかと興味を持っているような声も多い。ECC導入が本格化するためには、PCブラウザやモバイル端末、サーバープラットフォームでのECC対応の充実が必要となるが、逆にそこがクリアされればニーズは存在すると感じている」という。
今後の普及に向けて、同社ではテスト用の「ECC p256対応版SSLサーバ証明書」を無償提供する。テスト利用期間は14日間で、6月10日よりSSLサーバー証明書の購入サイト「ベリサインストアフロント」にて申し込みを受け付ける。併せて、次世代暗号アルゴリズムのSHA-2を採用したテスト用「RSA 2048ビット SHA 256対応版SSLサーバ証明書」も無償で提供する。