次世代の暗号化技術が Azure Web Sites で利用可能に
このポストは、6 月 9 日に投稿した Next Generation Cryptography now available with Azure Web Sites の翻訳です。
SSL によるセキュリティ確保は以前に比べるとそれほど重要視されなくなりました。暗号化という手法は新しいものではありませんが、暗号作成者は安全性を向上させるための方法を常に模索しており、マイクロソフトでは Azure Web Sites に最も優秀な最新の技術を取り入れるために日々取り組んでいます。現在最も優秀とされているのが、楕円曲線暗号 (Elliptic Curve Cryptography: ECC) 証明書です。
楕円曲線暗号は、有限体上の楕円曲線の代数構造に基づく暗号化技術です。難しそうに聞こえるかもしれませんが、これを理解している人は、実際のところそれほど多くありませんのでご安心ください。楕円曲線とは、y2 = x3 + ax + b という代数関数で定義される曲線です。この関数の X および Y の値をグラフ化すると、対称な楕円曲線となります。たとえば、y2 =4x3 -4x+4 という関数のグラフは次のようになります。
ここでは基礎となる数学理論には深入りしませんが、この種の関数の対象性と計算の複雑さにより、非常に破られにくい公開キーと秘密キーを効率よく作成することができます。この手法では、まず秘密キーを生成し、その後指定した楕円曲線を使用して秘密キーから公開キーを生成します。攻撃者が公開キーから逆に秘密キーを計算しようとしても、現在の技術では実質的に不可能なほどの膨大な計算が必要であり、今後何年間もその状況は変わらないと考えられています。従来の秘密キーおよび公開キーの生成方法と比較すると、この手法は約 10 倍の強度を持ちます (理論的な詳細についてはこちらの記事をご覧ください、英語)。つまり、ECC により生成された 256 ビットの長さを持つキーの強度は、RSA により生成された 2600 ビット以上の長さのキーと同等ということです。現在広く使用されている標準的なキーは 2048 ビットで、これでも現在の演算能力で解析すると、とてつもなく長い時間を要します。ECC で生成されたキーの組み合わせを破ることは、スーパー コンピューターを使用しても実質的に不可能です。
このことから、現実的には、通常の SSL 証明書を購入するよりも ECC 証明書を購入したほうがサイトの安全性はより高くなることがわかります。ECC 証明書のプロバイダーには Symantec (英語) や Entrust (英語) などがあります。ECC 証明書は市場的には比較的新しいものであるため、証明書のプロバイダーはまだそれほど多くありませんが、今後急速に増えるものと思われます。
Azure Web Sites では、ECC 証明書のテストを実施し、ECC 証明書を完全にサポートしました。任意の証明書プロバイダーから証明書を購入し、従来の RSA 証明書と同様に PFX ファイルとして Azure にアップロードし、サイトに割り当てるだけで、簡単にご利用いただけます。一部のクライアントでは ECC 証明書がサポートされていないので注意が必要です。Windows Vista またはそれ以降の OS をご利用のお客様は、クライアントの構成や変更を行うことなく、通常の状態で SSL を使用してサイトを閲覧できるようにしておかれることを推奨します。サイトの安全性確保にぜひご活用ください。