【要約】AWS初心者がSSL証明書の共通鍵、公開鍵、秘密鍵について深堀った話 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
Webサイトを利用するユーザーや開発者が、通信の安全性を確保するために直面する課題について述べる。インターネット上の通信は第三者に傍受されるリスクが常に存在する。具体的には以下の問題がある。
- ・IDやパスワード、クレジットカード情報などの機密情報の盗聴リスク。
- ・ログイン不要なサイトであっても、閲覧履歴などのプライバシーが漏洩するリスク。
- ・通信内容が第三者によって改ざんされるリスク。
// Approach
通信の安全性と処理速度を両立させるため、役割の異なる2種類の暗号方式を段階的に利用する。公開鍵暗号で「共通鍵」を安全に渡し、その後の通信は共通鍵で行うハイブリッド方式を採用する。
- ・【公開鍵モード】: サーバーが公開鍵を提示し、ブラウザが生成した使い捨ての共通鍵を公開鍵で暗号化して送る。
- ・【鍵交換】: サーバーが自身の秘密鍵で暗号を解除し、安全に共通鍵を共有する。
- ・【共通鍵モード】: 共有された共通鍵を用いて、実際のデータ(リクエストやレスポンス)を高速に暗号化・復号する。
// Result
二段構えの暗号化プロセスにより、通信経路全体が保護される。この仕組みにより、ユーザーとサーバー間の通信が安全な「トンネル」として確立される。具体的な成果は以下の通りである。
- ・機密情報(ID、パスワード、決済情報)の盗聴を防止する。
- ・閲覧リクエストやレスポンス内容のプライバシーを保護する。
- ・AWS ALB等のサービスにおいて、効率的なSSL終端処理が可能となる。
Senior Engineer Insight
> 概念の整理としては有用だが、実務的な実装詳細には踏み込んでいない。しかし、計算コストの高い公開鍵暗号で鍵を渡し、低コストな共通鍵暗号で通信を継続するという設計思想は、低レイテンシを実現する上で不可欠な知識である。AWS ALB等のマネージドサービスにおけるSSL終端の挙動を理解する上での基礎となる。大規模トラフィックを捌く現場では、この暗号化プロセスのオーバーヘッドを常に意識する必要がある。