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

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

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