10 年続くサービスを作るための、TLS 証明書の EC 化

Taiga ASANO
MIXI DEVELOPERS
Published in
5 min readFeb 16, 2024

--

MIXI でモンストサーバーチームとセキュリティ室を兼務している、atponsです。

昨今 RSA に代わる暗号として楕円曲線暗号が多く用いられるようになってきました。そこで、身近にある暗号を応用した技術である、TLS 証明書における楕円曲線 (EC) 暗号について、調べてみました。

TLS では、鍵交換は TLS セッション上でやりとりするための鍵ですが、すでに ECDHE (楕円暗号DH鍵交換) や ChaCha20-Poly1305 (高速、かつ安全) が多く利用されているので、省略します。
今回はその先で利用される TLS における証明書について解説します。

RSA 証明書について

RSA を用いた証明書が、TLS では広く一般的に利用されています。RSA は DSA に代わる安全な暗号として、TLS 1.2 以前から利用されてきました。

ECDSA 証明書って、使えるんですか?

TLS で利用できる楕円曲線暗号を用いた暗号方式は、ECDSA (楕円曲線 DSA)と呼ばれるものになります。ECDSA のほかに楕円曲線を用いた暗号方式として Ed25519 も利用可能ですが、発行している認証局 (CA) がなさそうです。
NIST / CRYPTREC によれば、2030 年で RSA 2048 bit は利用を推奨しないことになっています。
なので、今後 5 年以内に TLS 証明書を ECDSA ルートのものにしていくという動きが出る可能性があります。

ただし、ECDSA 証明書を利用するためには CA の証明書がそもそも ECDSA である必要があります。
それでは、認証局において ECDSA ルート証明書はいつごろから利用され始めたのでしょうか。Mozilla の資料によれば、最初に ECDSA 鍵で CA 証明書を作られたのは、2008 年の Comodo (現 Sectigo) で、COMODO ECC Certification Authority というものでした。
また、ECDSA 証明書を利用するためには OS のサポートも必要不可欠になってきますが、各 OS では 2~3 世代以前ではすでに対応がされているため、昨今のクライアントであれば対応していると言って差し支えないはずです。

ECDSA 証明書発行、できるんですか?

Let’s Encrypt や 商用 TLS サービスで提供が進んでいます。パブリッククラウドの CA では、現在 AWS では利用可能ですが、Google Cloud では持ち込む必要があるようです。

また、AWS でも利用できるサービスに以下のような制限があります。

ECDSA と RSA の等価安全性

暗号強度を比較する際に、どのアルゴリズムと鍵長が、どの程度の計算量 (2^n) があれば解読できるかという指標に等価安全性 (n bit 安全性、n ビットセキュリティ) という尺度が NIST SP800–57 に存在します。
256 bit ECDSA 鍵は 128 bit 安全性とされており、2048 bit RSA 鍵の 112 bit 安全性よりも高い安全性を確保することができます。ECDSA TLS 証明書では 384 bit の鍵長になることが多く、その場合 192 bit 安全性を得ることができます。
仮に ECDSA 256 bit の場合でも 128 bit 安全性を得ることができ、2040 年までは安全とされています。

パフォーマンス

CPU により RSA は支援機構が備わっていることがありますが、サーバーとしては鍵長が段違いなため、十分に速い速度を得ることができるようです。

まとめ

  • RSA 2048 bit は 2030 年以降安全性が落ちるとしてNIST によって周知されている
  • CRYPTREC やデジタル庁などの政府機関も、対応を準備しはじめている
  • 10 年続くサービスを作るためには TLS への ECDSA 鍵の利用を視野に入れておく
  • 使っているサービスや、提供先が対応していない場合は対応したらどうするのかを検討しておく
  • RSA ではなく ECDSA で十分なパフォーマンスが得られるかどうか検討する
  • RSA のハードウェア支援よりも、TLS 1.3 や ChaCha20-Poly1305 などの採用により、暗号スイートの鍵以外の部分を工夫することで十分高速になるかもしれません

今後、自身の関わっているサービスなどでも ECDSA 証明書への対応を進めていきたいと考えています。

参考情報

--

--