#暗号化技術
暗号化とは、中身を見てもわからない形へと変換すること
#公開鍵暗号方式
暗号化に使う鍵と復号に使う鍵が別物
特徴
・秘密鍵と公開鍵はペア
・暗号化は、公開鍵
・復号化は、秘密鍵で行う
公開鍵を配布して「自分に送ってくる時はこの鍵を使って暗号化してください」とする。
暗号化されたデータは、それとペアになる秘密鍵でしか復号化できない。
メリット
・データの安全性の高さ
・公開鍵の管理も容易
デメリット
・暗号化、復号が複雑で処理時間がかかる
#デジタル署名
公開鍵暗号方式技術を応用し、改ざんされていないか、誰が送信したものかを確認できるようにする
ハッシュ化という手法で短いデータを作成しそれを暗号化することをデジタル署名
#ハッシュ化
ハッシュ化は、ルールに基づき別の値に変えること
ある特定の文字列や数字の羅列を一定のルール(ハッシュ関数)に基づいた計算手順によって別の値(ハッシュ値)に置換
ハッシュ化が適するシーン
「その値を元に戻す必要性がないシーン」。代表的な例が『パスワードの保管』
暗号化が適するシーン
暗号化が適するシーンはハッシュ化の逆で、「その値を元に戻す必要がある」場合
#SSL(HTTPS)通信
HTTPSで配信するには、SSLサーバー証明書をサーバーにインストールしておく必要がある
SSlサーバ証明書は3または4階層からできており、その最上位の階層にあるのがルート証明書
ルート証明書はWebブラウザにあらかじめ登録されていて、サーバーから送られてくる証明書と照合する
照合した結果、ルート証明書にある認証局の署名が一致すれば、信頼できる証明書と判断する
SSL通信の仕組み
①SSLサーバー証明書と公開鍵を送る
サーバーがHTTPSでの接続リクエストを受けると、はじめにSSLサーバー証明書をクライアント側に送る
SSL証明書には公開鍵が含まれる
②共通鍵生成
サーバー側のルート証明書とブラウザに登録されているルート証明書照合
照合できたら、クライアントは共通鍵を生成
③共通鍵を公開鍵で暗号化して送る
サーバー側は送られてきた公開鍵をい秘密鍵で復号し、共通鍵を取り出す
これでサーバーとクライアントの両方に共通鍵を持つことができる
④SSL通信開始
共通鍵を使って暗号化通信を開始する