Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

AWSを学ぶ上で必要となる前提知識(SSL)

1.118 visualizaciones

Publicado el

HTTPS、クライアント認証を簡単に説明

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

AWSを学ぶ上で必要となる前提知識(SSL)

  1. 1. AWSを学ぶ上で必要となる 前提知識 - インフラ基礎知識(SSL) -
  2. 2. SSL概要  TCP/IPでデータを暗号化して送受信するプロトコルの 一つ。  データを送受信する一対の機器間で通信を暗号化し、 他の機器による成りすましやデータの盗み見、改竄な どを防ぐことができる。  公開鍵証明書による通信相手の認証と、共通鍵暗号に よる通信の暗号化、ハッシュ関数による改竄検知など の機能を提供する。
  3. 3. 公開鍵暗号方式  秘密鍵と公開鍵をペアで作成  公開鍵の方は相手に渡し、秘密鍵は自分で保管  一方の鍵で暗号化したものは、もう一方の鍵でし か復号できない こんにち は こんにち は (2$GFgkxd 暗号化復号化 sdf&fd45% 元気? 元気? 復号化暗号化
  4. 4. SSLの利用例  HTTP通信を安全に行いたい! →HTTPS  接続するクライアントを限定したい! →クライアント証明書
  5. 5. HTTPS
  6. 6. HTTPSとは  HTTPS(Hypertext Transfer Protocol Secure) は、メッ セージを平文のままで送受信する標準のHTTPと異 なり、SSLプロトコルの上でHTTP通信を行う。  サーバの認証・通信内容の暗号化・改竄検出など によりなりすましや盗聴などの攻撃を防ぐことが できる。  HTTPSでは、標準のポート番号として443が使われ る。
  7. 7. 鍵と証明書の作成 ①opensslでサーバー秘密鍵を作成 ┌───────┐ │サーバー秘密鍵│ └───────┘ ↓②opensslで公開鍵を作成 ┌───────┐ │サーバー公開鍵│ └───────┘ ↓③公開鍵をCA(認証局)に渡す ┌─┬───────┐ │証│サーバー公開鍵│──┐④認証局で、認証局のCA秘密鍵で暗号化 │明├───────┤ │ された署名を追加。これが証明書 │書│ 署名│←─┘ └─┴───────┘ ↓ ⑤証明書がCA(認証局)から返される。 ⑥サーバに証明書を設定
  8. 8. 証明書とは 証明書作成時②CA秘密鍵で暗号化 ┌─┬───────┐ │証│サーバー公開鍵│──→①ハッシュ値算出1001 → %3fg44g# │明├───────┤ │ │書│ 署名│←────────────────┘③署名として埋め込み └─┴───────┘ 証明書検証時 ┌─┬───────┐ │証│サーバー公開鍵│──→①ハッシュ値算出1001 ──────┐ │明├───────┤ │ │書│ 署名│──→②署名%3fg44g# ─→ 1001 ────┴→④比較 └─┴───────┘ ③CA公開鍵で復号化
  9. 9. 通信の流れ サーバー秘密鍵発行済み証明書の一覧 サーバー証明書CA公開鍵、CA秘密鍵 ┌───────┐ ┌───────┐ ┌───────┐ │クライアント│ │ サーバー│ │ CA(認証局) │ └───┬───┘ └───┬───┘ └───┬───┘ │ ①https request │ │ ├──────────→│ │ │←──────────│ │ │ ②証明書送信│ │ │ │ ③CA公開鍵要求│ │───────────┼──────────→│ │←──────────┼───────────┤ │ │ ④認証局のCA公開鍵│ ⑤証明書の署名を│ │ 認証局のCA公開鍵で│ │ 復号し署名の妥当性│ │ を確認│ │ │ │ │ ⑥乱数を生成│ │ 乱数より共通鍵生成│ │ │ │ │ ⑦乱数をサーバーの│ │ 公開鍵で暗号化│ │ │ │ │ │⑧暗号化された共通鍵│ │ │ を送信│ │ ├──────────→│ │ │ │ │ │ ⑨乱数を│ │ │ サーバの秘密鍵で復号│ │ │ │ │ ⑩乱数より共通鍵作成│ │ │ │ │ ⑪共通鍵を使って│ │ │ 暗号化通信│ │ │←─────────→│ │
  10. 10. クライアント認証
  11. 11. クライアント認証とは  サーバにアクセスする際にクライアント証明書を提 示することで身元を証明・確認することができる。  身元を確認したクライアントのみに、通信を許可す ることで特定の端末のみからのアクセス制御を行う ことができる。
  12. 12. 鍵と証明書の作成 ①opensslでCL(クライアント)秘密鍵を作成 ┌────┐ │CL秘密鍵│ └────┘ ↓②opensslで公開鍵を作成 ┌────┐ │CL公開鍵│ └────┘ ↓③公開鍵をCA(認証局)に渡す ┌─┬────┐ │証│CL公開鍵│──┐④認証局で、認証局のCA秘密鍵で暗号化された │明├────┤ │ 署名を追加。これが証明書 │書│署名│←─┘ └─┴────┘ ↓ ⑤証明書がCA(認証局)から返される。 ⑥クライアントに証明書と、CL秘密鍵を設定
  13. 13. 通信の流れ CL秘密鍵発行済み証明書の一覧 クライアント証明書CA公開鍵、CA秘密鍵 ┌───────┐ ┌───────┐ ┌───────┐ │クライアント│ │ サーバー│ │ CA(認証局) │ └───┬───┘ └───┬───┘ └───┬───┘ │ ①request │ │ ├──────────→│ │ │←──────────┤ │ │ ②証明書要求│ │ ├──────────→│ ④CA公開鍵要求│ │ ③証明書送信├──────────→│ │ │←──────────┤ │ │ ⑤認証局のCA公開鍵│ │ │ │ │ ⑥証明書の署名を│ │ 認証局のCA公開鍵で│ │ 復号し署名の妥当性│ │ を確認│ │ │ │ │ ⑦乱数を生成│ │ 乱数より共通鍵生成│ │ │ │ │ ⑧乱数をクライアントの│ │ CL公開鍵で暗号化│ │ │ │ │⑨暗号化された乱数│ │ │ を送信│ │ │←──────────┤ │ │ │ │ ⑩乱数をクライアントの│ │ CL秘密鍵で復号│ │ │ │ │ ⑪乱数より共通鍵作成│ │ │ ⑫共通鍵を使って│ │ │ 暗号化通信│ │ │←─────────→│ │

×