暗号化

公開鍵暗号方式
SSH
 +--------+    +--------+
 | Client |    | Server |
 +---+----+    +---+----+
     |             |
     +-------------> ・公開鍵を渡す
     |             |
     +-------------> ・ログイン
     |             |
     |             +--+ 
     |             |  | ・乱数を生成
     |             |  | ・乱数を公開鍵で暗号化
     |             <--+
     |             |
     <-------------+ ・暗号を渡す
     |             |
     +--+          |
     |  |          | ・暗号を秘密鍵で復号
     <--+          |
     |             |
     +-------------> ・乱数を渡す
     |             | ・乱数が一致すれば認証OK
     |             |
     v             v
TLS
  • Transport Layer Security。
  • SSL(Secured Sockets Layer:Netscape社が最初に考案したやつ)を標準化した際の名称。
  • HTTP通信の暗号化の際に使用される(HTTPS)。
    • 共通鍵暗号方式で暗号化処理が行われる(高速化のため)。
    • この共通鍵を送信するときには公開鍵暗号方式が利用される。
      • 公開鍵が正しいかどうかの確認には、認証局から発行された証明書を使う。
      • 主な認証局の情報はあらかじめWebブラウザに組み込まれている。
      • 組み込まれていない認証局の証明の場合には画面に警告が表示される(利用者が判断する)。
  • SSL/TSLの通信が、第三者に傍受されていても耐えられる根拠:
    • セッション "Client Key Exchange" において、クライアント側がプリマスターシークレット(秘密の情報)をサーバ側に送信する際、サーバ側の公開鍵で暗号化しているから。
      • クライアント …… プリマスターシークレットを生成した本人。
      • サーバ …… プリマスターシークレットを復号できる。
      • 三者 …… 暗号化されたプリマスターシークレットを持っているが、復号できない。