SSL通信の仕組みを図解で説明
〜秘密鍵暗号方式と共通鍵暗号方式〜
SSL暗号化通信は、インターネットのWeb閲覧でよく使われています。
セキュリティが重要視されている昨今で、暗号化技術は必須の技術になります。
なんとなく何か暗号化しているんだろうなぐらいで仕組みが分かっている人も多いと思いますが、SSLの暗号化方法について説明できるほど分かっていない人もいると思います。
SSLの基本的な考え方について、図を使って解説していきます。
SSL通信とは
SSL通信とは、コンピュータとコンピュータとの通信を暗号化する技術の1つです。
コンピュータとコンピュータの通信を盗聴されてしまった場合でも、暗号化することで第三者に解読されないようにしています。
また、盗聴されて通信データの改竄の防止されるため、フィッシング詐欺の対策にも使用されています。
よく使用される場面として、Webサイトの閲覧を行う時に使用されています。
ブラウザの画面で「鍵」のマークが出ていたり、URLの先頭が「https」になっていればSSL通信を行なっていることになります。
Webサイトで買い物を行うときは名前や住所、メールアドレス、クレジットカードの番号を入力します。
住所やクレジットカードなどの情報が暗号化されていなかった場合、悪意のあるユーザに情報を読み取られた時に悪用されてしまいます。
暗号化を行なっていれば、解読されにくくなるため、セキュリティが高くなります。
ショッピングサイトなどで個人情報の入力やクレジットカード情報の入力をするときにSSL化されていないサイトを利用するのは危険と言われるのはそのためです。
今ではほとんどのサイトがSSLを使用していますが、個人で作成したサイトではされていない場合があるので注意してください。
SSL通信の仕組み
SSL通信がどのように通信されているかの仕組みを説明します。
SSL通信は、「公開鍵暗号方式」と「共通鍵暗号方式」という技術の組み合わせてできています。
「公開鍵暗号方式」と「共通鍵暗号方式」のそれぞれの仕組みをうまく使用することで、安全かつ処理に時間をかけることなく暗号化する仕組みを実現しています。
まず、「公開鍵暗号方式」と「共通鍵暗号方式」について説明します。
公開鍵暗号方式
公開鍵暗号化方式は、「公開鍵」と「秘密鍵」のセットになります。
公開鍵で暗号化を行い、秘密鍵で復号化を行います。
一般的な鍵で考えると、公開鍵がロックするための「錠前」、秘密鍵が開けるための「鍵」の関係のイメージです。
秘密鍵は厳重に管理されている鍵で、他のマシンから知られることはありません。
そのため、通信途中で暗号化されても安全に通信することができます。
この暗号方式は、暗号化・復号化に時間がかかってしまうことがデメリットとしてあげられます。
共通鍵暗号方式
共通鍵暗号方式は、公開鍵のみで暗号化・復号化を行います。
実際には証明書を使用して、クライアントごとに公開鍵を生成します。
この暗号化方式は、暗号化・復号化の処理が速いことが特徴です。
ですが、初めて通信を行うときに渡す段階で盗聴されてしまうと、第三者が復号化できてしまうというデメリットがあります。
SSL通信
それでは、本題のSSL通信の仕組みについて説明します。
簡単に説明すると「公開鍵暗号化方式」と「共通鍵暗号化方式」を組み合わせた内容になっています。
例として、クライアントからWebサーバとSSL通信とした場合、下図のようになります。
①:クライアントからWebサーバにhttps通信でのリクエストを送信
②:Webサーバから証明書と「公開鍵」を受信
③:受けとった証明書から「共通鍵」を生成
④:作成した「共通鍵」を受け取った「公開鍵」で暗号化してWebサーバに送信
⑤:Webサーバが「秘密鍵」を使用して、「共通鍵」を取り出す
⑥:「共通鍵」を使用して、暗号化・復号化の相互通信を行う
上記の①〜⑥を行うことで、暗号化通信を実装しています。
「公開鍵暗号化方式」と「共通鍵暗号化方式」の内容が分かっていれば、そんなに難しくない技術です。
まとめ
今回はSSL通信の仕組みについて説明しました。
SSLは暗号化通信で最もよく使用されるもののひとつになります。
セキュリティに関することと聞くと難しそうに聞こえるかもしれませんが、
開鍵暗号方式と共通鍵暗号方式がそれぞれが分かれば、その組み合わせなので理解することができます。
どんな技術も基本の組み合わせなのでひとつずつ整理して理解していきましょう。