【セキュリティ】RSA方式・DHE方式・ECDHE方式についてざっくりまとめ
はじめに
Webサイトで鍵マークが表示され、安全に通信できるのは、暗号技術による保護があるからです。
特に重要なのが、最初に使われる「鍵交換方式」です。
本記事では、よく使われてきた3つの代表的な鍵交換方式であるRSA方式・DHE方式・ECDHE方式について、ざっくりとまとめていきます。
鍵交換方式
HTTPS通信では、共通鍵(セッション鍵)と呼ばれる鍵を使って通信内容を暗号化します。しかしこの共通鍵を安全にやりとりするためには、盗聴されない方法で共有する必要があります。
その方法こそが鍵交換方式です。
※https://active.nikkeibp.co.jp/atclact/active/17/032000256/032000005/ より
RSA方式(旧来の方式)
RSAは公開鍵暗号方式を利用したシンプルな鍵交換手法です。
サーバーが持つ公開鍵を使って、クライアントが共通鍵を暗号化して送信します。
- サーバーが証明書(中に公開鍵を含む)をクライアントに送信
- クライアントが共通鍵を生成
- サーバーの公開鍵で共通鍵を暗号化して送信
- サーバーが秘密鍵で復号 → 共通鍵を共有完了
※一度暗号化された通信を盗聴・記録され、後で秘密鍵が漏洩すると過去の通信内容も復号されてしまう点には注意が必要です。
DHE方式(Diffie-Hellman Ephemeral)
DHEは、数学的な方法(離散対数問題)を使って、共通鍵を直接やり取りせずに両者で同じ鍵を導き出す方式です。
- サーバーとクライアントが一時的な鍵ペア(エフェメラル鍵)をそれぞれ生成
- お互いの公開鍵を交換
- 数学的な計算により、両者が同じ共通鍵を得る
※前方秘匿性(PFS: Perfect Forward Secrecy)
→ 通信ごとに異なる鍵を生成するため、過去の通信は将来秘密鍵が漏れても復号できない特性。
ECDHE方式(楕円曲線Diffie-Hellman)
DHEの進化版で、楕円曲線暗号(ECC)を使って計算を高速・安全に行う方式です。現在のHTTPS通信の主流です。
基本的にはDHEと同様ですが、鍵の生成・計算に楕円曲線を用いるため高速で高セキュリティ。
まとめ
HTTPS通信における代表的な3つの鍵交換方式(RSA・DHE・ECDHE)の仕組みについて解説しました。
・RSA方式はシンプルで高速ですが、「前方秘匿性」がないため、現在はTLS 1.3では非推奨。
・DHE方式は数学的手法で共通鍵を安全に合意でき、「前方秘匿性」があるものの処理がやや重め。
・ECDHE方式はDHEの改良版で、楕円曲線暗号により高速かつ高い安全性を実現。現在の主流方式です。
今やWeb通信の安全性を支える「当たり前」の技術ですが、その裏ではこのような複雑かつ洗練された仕組みが働いていることが理解できたと思います。
最後までお読みいただき、ありがとうございました。
参考・画像引用元URL
Discussion