pig's diary

何でも忘れるので万年初心者ね

SSLはどう安全か

何度でも忘れたる。

> SSLの仕組み

https://cspssl.jp/guide/ssl.php

SSLの大きな特徴は「通信対象の真正性の確認」「通信内容の暗号化」「改ざん検知機能」の3点です。

主に暗号化について知っておこうよ。

共通鍵暗号公開鍵暗号

https://cspssl.jp/guide/key.php

共通鍵暗号

  • クライアント側が生成する。
  • 1つの鍵で、暗号化と復号化を両方やる。
  • 速い(=Webサイトの通信全てに、これを使う)。
  • 鍵が漏れたら、暗号化しても他人が復号化できてしまうので、終わる。
    • 絶対に意図する相手に渡すため、サーバに渡すときに細工する。
    • ユーザーごとに生成。とにかく漏れたら意味がない。

公開鍵暗号

暗号通信を行うときに必要な公開鍵は、SSLサーバ証明書に含まれています。

☟これこれ〜☟

f:id:piglovesyou:20180104232943p:plain

  • 公開鍵と秘密鍵はセット。両方Webサーバに置いてある〜
    • 公開鍵は複製してばらまく南京錠。秘密鍵はそれを開ける鍵。
  • 安全だけど遅い。

暗号化の手順

  1. クライアントがHTTPSでサーバにアクセス。
  2. サーバがクライアントに公開鍵を送りつける!
  3. クライアントが、共通鍵を生成。それを公開鍵で暗号化し、サーバに送り返す。
  4. サーバが秘密鍵で復号化。これで両方に共通鍵が持てた。
  5. 以後、やりとりする全てのデータを共通鍵で暗号化、受け取ったら復号化。
    • 共通鍵は速いので助かる〜

どう安全か

  • クライアントが自分で作った鍵で、暗号・復号化する。自分で作るから信じられる。通信の途中で覗き見したり、復号化することも原則できない。
  • 共通鍵の受け渡しが安全。公開鍵の正当性はWebサーバ管理者だけでなく第三者機関のお墨付き。仮に公開鍵が不正だった場合(秘密鍵が漏れまくってるとか)、サービス運営者だけでなく第三者機関もダメージを食うことになる(=それは起こりにくい)。