自分のやりたいことがサーバーエンジニアなのですごい基本的なことは今のうちに
覚えていこうかなと思ったのでただのチラ裏記事です。
自分で調べて自分なりにまとめてるの間違いがあったら指摘してくださると
ものすごく嬉しいです。
TOC
HTTPSとは何か
HTTPSとはセキュリティー機能を追加したWebサーバーとの通信手段のひとつでSSLを用いて暗号/復号化し、TCP443ポートを使用する。
個人情報や、クレジットカードなどを送信するときに主に使われる。
SSL(Secure Socket Layer)とは何か
SSLによる暗号化通信は公開鍵(Public Key)、秘密鍵(Private Key)、共通鍵の3つから成り立つ。
暗号化したものはもちろん復号化しないともちろん読み込めない。
そこで暗号化されたものを復号化するのに必要になってくるのが上記3つ。
公開鍵(Public Key)とは何か
クライアントがサーバー側に暗号化データを送信する際に、サーバーから送られてくる鍵のことです。
例えば通販サイトなどでAさんが住所などを記載するページは、サーバー側から公開鍵を添付して送信しています。
そして通販側は色んな人に買ってもらう必要があり、色んな人に鍵を送信するため公開鍵と呼ばれています。
秘密鍵とは何か
そして公開鍵を含んで暗号化されたデータをサーバー側で復号化するために用いられるのが秘密鍵です。
この秘密鍵はサーバー側が第三者に知られること無く厳重に保持しておく必要があるものです。
公開鍵と秘密鍵の弱点
・公開鍵は誰にでも作成することが出来てしまうので通信の途中で悪意のある第三者が割り込んで
公開鍵で暗号化されたデータをサーバー側に送信してしまう恐れがあること。
・公開鍵と秘密鍵を用いた暗号化は思いのほかコンピュータに負荷がかかり、アクセスが多いサイトなどでは対処しきれず
SSLアクセラレータと呼ばれる専用ハードウェアが出るほど。
以上、2つの理由から共通鍵を用いたハイブリッド暗号というものがある。
ハイブリッド暗号方式とは何か
上記の公開鍵と秘密鍵を用いた公開鍵暗号方式は安全ではあるが処理に時間がかかるという短所があるため
それを改善するために開発されたのがハイブリッド暗号方式。
①クライアント側は秘密鍵を作成する。
②上記の秘密鍵をクライアント側の公開鍵で暗号化して送信する。(クライアント側の秘密鍵で復号化するため)
③サーバー側の秘密鍵で、クライアント側の秘密鍵を復号化。(理由は上記同様)
④サーバーはデータを共通鍵で暗号化し、共通鍵をクライアント側の秘密鍵で復号化出来るように暗号化する。
⑤サーバー側から送られきたクライアント側の秘密鍵で復号化出来る共通鍵を復号化。
⑥復号化した共通鍵を用いてサーバーから共通鍵で暗号化されたデータを復号化する。
恐らく間違いがありそう。