Download presentation
Presentation is loading. Please wait.
1
クラウド、公開鍵暗号方式 情報ネットワーク特論 南里 豪志
2
内容 クラウド 公開鍵暗号方式と Public Key Infrastructure (PKI) 公開鍵暗号方式を使った実習
クラウドの VM上に友人のユーザ登録
3
クラウドの背景 従来=所有型の計算機利用: ハード、ソフトを所有 所有型計算機利用の問題: 計算機、ソフトウェアの選定、購入 初期設定
運用、修理 (必要に応じて)増強 廃棄 所有型計算機利用の問題: ピーク時の計算負荷に合わせて購入、増強 ⇒ ピーク時以外は無駄 初期設定、運用、修理 ⇒ 計算機管理者の負荷 廃棄 ⇒ 廃棄に要するコスト その他: 電力、設置場所、 etc
4
クラウド型 物(ハード、ソフト)ではなく、「サービス」を購入して利用 必要な期間、必要な量だけ、必要な種類のサービスを購入
初期設定、障害対応、電力、設置場所等のコストも含む 利用事例: 「エコポイント申請窓口サイトを1ヶ月で構築 Microsoft Office Word, PowerPoint, Excel, OneNote, ... Google Mail, Calender, ...
5
主なクラウドの種類 Software as a Service (SaaS) Platform as a Service (PaaS)
特定用途のソフトウェアを利用 例) Google関連 (Gmail, Calendar, etc.)、Office365 Platform as a Service (PaaS) ハードウェア + OS + 最小限の基盤ソフトウェア 例) Windows Azure Infrastructure as a Service (IaaS) ハードウェア (+ OS) 例) Amazon EC2、Gooble Compute Engine 実際のサービスは、明確な区分が困難。 それぞれ、どこまでクラウド業者が責任を持つか、が重要。
6
Amazon Elastic Compute Cloude (EC2) http://aws.amazon.com/jp/ec2/
計算機の構成や規模、ソフトウェアの種類を選択可能なク ラウドコンピューティングサービス 計算機の構成 汎用 低速 CPU、共有ストレージ コンピューティング 高速 CPU、専用ストレージ(SSD) メモリ 大容量メモリ、専用ストレージ GPU GPU搭載 ストレージ 大容量専用ストレージ 規模 1~32CPU、RAM 1GB~244GB、 SSD 0~ 2TB ソフトウェア Linux, Windows, SAP, LAMP, Drupal
7
Amazon EC2のアカウント申請 メールアドレス、 パスワードの登録 住所等の 個人情報入力 本人確認
8
本人確認 電話番号を入力 電話がかかってくるので、 画面に表示される数字を入力
9
Amazon EC2の計算機利用 Webサイトにログイン 使う計算機の種類、 量を指定 "Key Pair" の作成 Key Pair?
10
Key Pair (鍵の対) 公開鍵暗号方式(Public Key Cryptosystem)で 使用する二つの鍵 公開鍵 (Public Key) 秘密鍵 (Secret Key) の対 インターネット上で「安全」、「安心」を維持した通信 を実現する社会基盤 Public Key Infrastructure (PKI) に利用する基盤技術
11
インターネット上の 「安全」、「安心」な通信に向けて
求められる性質 機密性 盗聴されないこと 認証 本人やサーバのなりすましがされていないこと 完全性 不正に書き換えられていないこと 否認防止 本人が書いた内容を後から否定できないこと 用いられる技術や基盤 共通鍵暗号方式 公開鍵暗号方式 ハッシュ関数 電子署名 Public Key Infrastructure (PKI)
12
共通鍵暗号方式 (Symmetric Key Cryptosystem)
暗号化(encrypt)と復号化(decrypt)に同じ鍵を利用 例) シーザー暗号 (Caesar cipher) 鍵 = 2。26通りの鍵を試せば、盗聴可能。 実際は、もっと複雑で実用的なものを利用 DES、AES、 問題点: 共通鍵を相手に「安全に」渡す方法 通信相手ごとに別の共通鍵が必要 My name is James Bond. encrypt decrypt Oa pcog ku Lcogu Dqpf.
13
公開鍵暗号方式 (Public Key Cryptosystem)
2個の鍵(公開鍵、秘密鍵)を使用 公開鍵(public key): 誰でも入手可能 秘密鍵(secret key): 誰にも見られないように保管 公開鍵暗号方式を使った暗号化と復号化 例) Bさんが Aさんに暗号化した文書を送付 事前に Bさんは Aさんの公開鍵を取得 Bさんが Aさんの公開鍵で文書を暗号化して送付 Aさんは自分の秘密鍵で文書を復号化して読む Aの公開鍵 Aの公開鍵 Aの秘密鍵 Bさん Aさん 暗号化 復号化 暗号化された文書
14
公開鍵暗号方式の特徴 公開鍵で暗号化したものは、 秘密鍵でなければ復号化できない 共通鍵暗号方式との違い
公開鍵で暗号化したものは、 秘密鍵でなければ復号化できない Aさん以外の人は、文書を読むことが出来ない 共通鍵暗号方式との違い 復号化に必要な鍵を事前に渡す必要が無い 暗号化に必要な鍵だけ公開すればよい 一つの鍵の対で複数の通信相手と安全な通信可能 暗号化、復号化の計算に、共通鍵暗号方式の数百倍 の時間が必要 長文の暗号化には適さない
15
パスフレーズ 秘密鍵の暗号化に使用 秘密鍵は公開しないものの、常に他人に見られる危険 性がある key pair作成時にパスフレーズ設定
パソコンが盗まれる サーバの管理者が悪意で秘密鍵を見る key pair作成時にパスフレーズ設定 共通鍵暗号方式により暗号 秘密鍵を利用するたびにパスフレーズの入力が必要 Aの公開鍵 Aの秘密鍵 Aさん パスフレーズ 復号化 暗号化された文書
16
公開鍵暗号方式と 共通鍵暗号方式の組み合わせ
一時的な共通鍵(セッション鍵)を作成し、 それを利用して文書を暗号化して送付 共通鍵は、相手の公開鍵で暗号化して送付 Aの公開鍵 Aの公開鍵 Aの秘密鍵 Bさん Aさん 共通鍵 共通鍵 パスフレーズ 暗号化された 共通鍵 暗号化 復号化 暗号化 復号化 暗号化された 文書
17
ハッシュ関数 入力データから、一定の大きさのデータを出力 ハッシュ関数に求められる性質 利用例 一方向性 第2現像計算困難性 衝突困難性
出力データから入力データを推測できない 第2現像計算困難性 ある入力データと同じ出力データとなる別の入力データを見つけ るのが困難 衝突困難性 同じ出力データを生成する 2つの入力データを見つけるのが困難 利用例 パスワード管理 電子署名 abcdefghi #7fa! ハッシュ 関数 abcdefghij %q25A
18
ハッシュ関数の利用例: パスワード管理 パスワード保管方法の選択肢 認証の手順 平文(=暗号化しない状態)で保管 暗号化して保管
ハッシュ関数の利用例: パスワード管理 パスワード保管方法の選択肢 平文(=暗号化しない状態)で保管 当然、非常に危険 暗号化して保管 これも、常に復号化される可能性があり、危険 ハッシュ関数でパスワードを変換して保管 絶対に復号化できないため、安全 認証の手順 認証時に入力されたパスワードをハッシュ関数で変換 出力データが保管されている値と一致すれば、 同じパスワードが入力されたとみなして認証 一方向性、第2現像計算困難性、衝突困難性により保証
19
電子署名 電子的な文書の正当性を検証する技術 公開鍵暗号方式による電子署名 本人認証: 作成したのが本人であること
完全性: 文書が不正に書き換えられていないこと 公開鍵暗号方式による電子署名 送信者: 秘密鍵とハッシュ関数を利用して、文書の署名を作成 文書と署名を一緒に送付 受信者: 公開鍵とハッシュ関数を利用して、文書の署名と文書の内容 を検証
20
RSAを使用した電子署名 RSA: 公開鍵暗号方式の一つ RSAによる電子署名の流れ 特徴: 公開鍵と秘密鍵が対称
秘密鍵を使って「暗号化」した文書は、 対応する公開鍵でなければ「復号化」できない RSAによる電子署名の流れ Aの公開鍵 Aの公開鍵 Aの秘密鍵 Bさん Aさん ハッシュ 関数 ハッシュ 関数 復号化 電子署名 暗号化 検証
21
Public Key Infrastructure (PKI)
公開鍵暗号方式技術を利用した電子証明書によ るインターネット上の社会基盤 構成要素 認証局 (Certification Authority (CA)) 鍵の対(公開鍵、秘密鍵)と所有者を結び付ける公開鍵証明 書を発行 登録局 (Registration Authority (RA)) 公開鍵証明の窓口 申請の受付、本人確認、証明書発行要求、証明書失効要求 リポジトリ (Repository) 証明書リスト、証明書失効リストの公開
22
認証局 Certification Authority(CA)
電子証明書の発行機関 秘密鍵の所有者と公開鍵の関係を保証する電子署名を発行。 CA自身の公開鍵で内容を保証 CAに求められる性質 本人以外に電子署名を発行しない CAの秘密鍵が漏えいしない Trusted Third Party (TTP) CAを行うための、信頼性を持った機関 どの CA を信用するかは、計算機毎に設定可能 server A 発行機関: CA1 CA1, CA2 を信用 server B CA2 を信用
23
登録局 Registration Authority(RA)
PKIにおいて、本人確認を行う機関. 証明書申請の受付 本人確認 身分証明書(運転免許,パスポート等) + 対面 遠い場合は電子メール等 確認できたら、 CAに証明書発行依頼 小さな組織では CAが RA を兼務
24
証明書発行の流れ user RA CA key pair 作成 証明書発行申請 本人確認 証明書発行依頼 重複確認 電子署名作成 証明書発行
private key public key 証明書発行申請 本人確認 public key OK distinguished name 証明書発行依頼 public key 重複確認 JP, Kyushu Univ., Takeshi Nanri distinguished name OK 電子署名作成 証明書発行 CA, validity public key 証明書取得 distinguished name digital signature
25
X.509 証明書 PKI で定められたフォーマットによる電子証明書
「秘密鍵の所有者」と 「その秘密鍵に対応する公開鍵」 の関係を保証する。 インターネット上で利用できるようファイルで発行
26
X.509 証明書の例 CA 有効期間 public key CAの電子署名 Distinguished Name (識別名)
Certificate: Data: Version: 3 (0x2) Serial Number: c1:73:39:44:df Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, O=Amazon.com, OU=AWS, CN=AWS Limited-Assurance CA Validity Not Before: Oct 28 02:14: GMT Not After : Oct 28 02:14: GMT Subject: C=US, O=Amazon.com, OU=AWS-Developers, CN=1mpq368escdn Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:97:98:59:69:08:56:5c:48:4f:e6:fd:9f:ff:c7: ... 90:f8:78:c9:1e:0b:a7:40:96:54:62:4f:37:b7:2e:7c:fb:2c: CA 有効期間 Distinguished Name (識別名) public key CAの電子署名
27
証明書の失効 失効の理由 失効の方法 失効から認証拒否までの時間 有効期限を過ぎた 秘密鍵の紛失、もしくは漏えい
証明書を所有する資格を失った 証明書の内容に変更があった 失効の方法 失効リスト(Certificate Revocation List (CRL)) への追加 PKIの利用者は定期的に CRLを取得し、認証時に参照 Online Certificate Status Protocol (OCSP)の確認 認証時に失効しているか否かを CAに確認(オンライン) 失効から認証拒否までの時間 CRL、OCSPのいずれでも、失効してから認証拒否が始まるま でには一定の時間を要する。
28
実習 実習1: 実験に使うサーバを、キャンパスクラウド上に用意 する 実習2: サーバの管理者となって、友人のアカウントを、 安全に作成する
実習1: 実験に使うサーバを、キャンパスクラウド上に用意 する 実習2: サーバの管理者となって、友人のアカウントを、 安全に作成する パスワードを使わず、公開鍵を使う
29
実習1: 九州大学キャンパスクラウドの利用 九州大学の教職員、学生が無料で利用可能なクラウドシステム
仮想的な計算機(Virtual Machine (VM))を、管理者権限で利用。 以下のサイトにアクセス (学内のみ) 「Cloud Platform利用法」を選択
30
VM(Virtual Machine)インスタンスの作成
手順1で、 を別ウィンドウで開く 手順2で i) と ii) を実行 iii) の時に「Standard CentOS 6.6(64-bit)」を選択 iv) の時に「cpu1_mem2」を選択 v) の時に「設定しない」を選択 vi) を実行 vii) の時に「ネットワークの追加」の「新規」にチェックし、名前を適当に入力 viii) の時に「名前(オプション)」に適当な名前を入力、 練習の場合、「有効期限」には今日の日付を入力 ix) で数分間待つ x) の時に表示されるパスワードをメモしておく 手順3を実行 ... login: に対して root を入力 Password: に対して、上記のパスワードを入力(入力しても文字は表示されない) ログイン出来ることを確認したら exit と入力し、Enterキーを押して、ログアウトする 手順4を実行 取得した新規IPアドレスをメモしておく 手順5は実行しない
31
VMインスタンスへのPCからの接続方法 1.キャンパスクラウド Webページから接続 (利用法の手順 3)
利点: 特別なソフトウェアの準備は不要 欠点: 学内からのアクセス限定 自分の PCとの間でファイルをコピー出来ない 2.接続用のソフトやコマンドを利用 学外からアクセス可能 自分のPCとの間でファイルコピー可能 Windowsは、接続用のソフトウェアが必要
32
Windowsの場合のみ 準備: 接続用ソフトのインストール
端末ソフト PuTTY 以下のファイルをダウンロード installer.exe ダウンロードしたファイルを実行してインストール ファイル転送ソフト WinSCP 以下のサイトからダウンロードページへ Installation Package をダウンロード インタフェーススタイルは「エクスプローラスタイル」がおすすめ
33
VMインスタンスへの接続 Windowsの場合
インストールした Puttyを起動 手順4で取得した IPアドレスを入力し、「開く」をクリック 確認ウィンドウには OKをクリック login as: に rootを入力 password: に、メモしていたパスワードを入力 パスワードは、入力しても画面が変化しない 以下が表示されたらログイン成功 ~]$ 作業 ログアウト: exit と入力して Enter
34
各ホストへの接続確認 MacOS X の場合 ターミナルから、以下のコマンドを実行 ssh root@VMインスタンスの IPアドレス
password: に、メモしておいたパスワード入力 以下が表示されたらログイン成功 ~]$ 作業 ログアウト exit と入力して Enter
35
ファイルの転送方法 Windowsの場合 インストールしたWinSCPを起動 「New」をクリック
「Host name:」に VMインスタンスの IPアドレスを入 力 「User name:」に rootを入力 「Password:」に、メモしておいたパスワードを入力 log in ホストのファイルが見えるので、通常のファイル操 作と同様に相互にファイルをコピー
36
ファイルの転送方法 MacOS Xの場合 ホストへのアップロード scp ファイル名 root@IPアドレス:アップロード先ディレクトリ
例) PCのファイル test.c を、ホストのホームディレクトリ(~)にアップロー ド ホストのIPアドレス の場合: ホストからのダウンロード scp ダウンロード先フォルダ 例) ホストのホームディレクトリのファイル test.c (~/test.c)を、 PCの現在のディレクトリ(.)にダウンロード scp test.c scp . ピリオド
37
インスタンスの内部 IPアドレス確認 内部IPアドレス: キャンパスクラウドのインスタンス同士で 通信する場合に使用するアドレス
各インスタンスの IPアドレスは、CloudPlatformにログイン後、 「インスタンス」からインスタンスを選択し、「NIC」をクリック すると表示される。 ~
38
インスタンスの停止 使用しない期間は、インスタンスを停止する。
CloudPlatformにログイン後、「インスタンス」からインス タンスを選択し、 をクリック。 不要になったインスタンスは破棄する。( をクリック) ただし、インスタンスを破棄するとファイルも削除されるので注意。
39
インスタンスの再開 CloudPlatformにログイン後、「インスタンス」からイ ンスタンスを選択し、 をクリック。
40
インスタンスのパスワードを忘れた場合 インスタンスを停止 パスワードのリセット ⇒ 表示されるパスワードをメモする インスタンスを再開 停止
パスワードのリセット ⇒ 表示されるパスワードをメモする インスタンスを再開 停止 再開 パスワードのリセット
41
実習2: 公開鍵の交換 実験に使うサーバを、キャンパスクラウド上に用意 する サーバの管理者となって、友人のアカウントを、 安全に作成する
サーバの管理者となって、友人のアカウントを、 安全に作成する パスワードを使わず、公開鍵を使う
42
実習の手順 1.VMの一つにグローバルアドレスを設定 2.鍵のペア(公開鍵と秘密鍵)を作成 3.2人組(もしくは3人組)になり、互いに公開鍵を交換 4.相手の公開鍵を VMにアップロード 5.公開鍵を使って新しいユーザを VM上に用意 6.相手の VMにログインできるようになったことを確認 7. グローバルアドレスを解放
43
1.VMにグローバルアドレスを 設定 キャンパスクラウドシステムの Webサイト の、 「ネットワークの設定」 の手順 i) ~ xi) に従って、 VMへのグローバルアド レスの設定と、ファイアウォールの設定を行う。
44
2.鍵のペア(秘密鍵と公開鍵)を作成 Windowsの場合
MacOS Xの場合は次ページ インストールした PuTTYgenを実行 「すべてのプログラム」→「PuTTY」→「PuTTYgen」 Generateをクリック 鍵が作成されるまでマウスを適当に動かし続ける Public key for pasting into OpenSSH authorized_keys file の中の文字列(=公開鍵)を全て選択して右クリック→「コピー」 文字列は最後まで表示されていないので、マウスを下に移動させて、 最後まで選択する 「メモ帳」を開き、選択した文字列を「paste」。その後、名前を付けて保存。 デスクトップフォルダにkeysフォルダを作りその中に保存すると便利 ファイル名は適当でよい。例えば、 test.pub 等。これが、公開鍵。 Save Private Key で秘密鍵を保存 (上記の keysフォルダの中に、保存すると便利) パスフレーズは、適当に入力。記憶しておく。
45
3.鍵ペア(秘密鍵と公開鍵)を作成 MacOS Xの場合
Windowsの場合は前ページを実行後、4.へ ターミナルを起動 以下のコマンドを実行し、id_rsa.pubもしくは id_dsa.pub が あったら、次のスライドへ .ssh/id_rsa.pub もしくは .ssh/id_dsa.pub が公開鍵 無ければ以下のコマンドを実行 ssh-keygen -t rsa Passphraseは、適当に入力。記憶する。 .ssh/id_rsa.pub が公開鍵となる。 ls .ssh
46
3.公開鍵の交換 2人組もしくは 3人組となり、 メールもしくは USBメモリを利用して、 2.で作成した公開鍵を友人に送付。
友人から受け取った公開鍵を PCに保存 友人に、希望のユーザ名を聞いておく 注意!! 秘密鍵を送らない
47
4.公開鍵のアップロード Windowsの場合
MacOS Xの場合、次ページへ。 WinSCPを起動 「New」をクリック 「Host name:」に自分の VMのグローバルアドレスを入力 「User name:」に root と入力 「Save」をクリック リック 鍵を登録するかどうか聞かれた場合、OKをクリック rootのパスワード入力 VMのファイルが表示される。 通常のファイルと同様にマウスでファイルのコピーが可能。 友人の公開鍵を VMにコピーする
48
4.公開鍵のアップロード MacOS Xの場合
Windowsの場合は、前ページを実行後、5.へ。 VMへのアップロード scp ファイル名 例) PCのファイル key.pub を、ホストのホームディレクトリ(~)にアップロー ド VMのグローバルアドレスが の場合: 参考) VMからのダウンロード scp ダウンロード先フォルダ 例) VMのホームディレクトリのファイル test.c (~/test.c)を、 PCの現在のディレクトリ(.)にダウンロード scp key.pub scp . ピリオド
49
5. 友人のユーザ登録 VMにログイン 新規ユーザ作成 友人の公開鍵を登録
ユーザが登録され、ホームディレクトリ 「/home/友人のユー ザ名」が作成される ホームディレクトリ = そのユーザ専用のフォルダ 友人の公開鍵を登録 公開鍵ファイル authorized_keysや格納ディレクトリ .ssh の所有者とアクセス権を適切に設定 /usr/sbin/useradd -m 友人の希望するユーザ名 注意: 勝手に authorized?_keys となる場合があるので、 authorized_keys に修正して実行 cd /home/友人のユーザ名 mkdir .ssh chmod ssh cp /root/友人の公開鍵ファイル名 .ssh/authorized_keys chmod ssh/authorized_keys chown -R 友人のユーザ名 .ssh
50
6. 接続確認 友人側のサーバに自分のユーザを登録してもらったら、 そのサーバのグローバルアドレスを教えてもらい、 ログインできるかどうか確認 自分が希望したユーザ名を使用 Windowsの場合: puttyを使用(次ページ参照) MacOS X の場合: 以下のコマンドでログイン ssh パスフレーズには、秘密鍵のパスフレーズを入力 公開可能な情報だけを使って、 安全に新しいアカウントを用意できた。
51
Puttyを使ったログイン putty を起動 ホスト名に、友人の VMのグローバルアドレス入力
画面左の「Connection」 - 「SSH」 - 「Auth」を選択 Private Key file として、puttygenで作成して保存した秘 密鍵を選択し、「open」 パスフレーズには、鍵作成時に入力したパスフレーズ を入力
52
7.友人による接続確認後、サーバのグローバルアドレスを開放
CloudPlatformの「ネットワーク」を選択し、 自分のネットワーク名を選択 「表示 - IPアドレス」 新しく取得した方の IPアドレスを選択 (「送信元 NAT」では無い方) X をクリックして、解放
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.