32
- Network Security - - Network Security - PKI PKI sada@ecn sada@ecn

- Network Security - PKI

  • Upload
    zytka

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

- Network Security - PKI. sada@ecn. 15.4 Revocation. 証明書を取り消すシステムが必要 このあたりは、クレジットカードに良く似てる 紛失したら早めに申し出る 店員はブラックリストにクレジット番号がないかチェック 証明書には有効期限がある セキュリティのため 大体のシステムは有効期限のチェックを怠らないため 有効期限をちゃんとチェックしないブラウザも. 15.4.1 Revocation Mechanisms. 証明書取り消しリスト (CRL:Certificate Revocation List) - PowerPoint PPT Presentation

Citation preview

Page 1: - Network Security - PKI

- Network Security -- Network Security -PKIPKI

sada@ecnsada@ecn

Page 2: - Network Security - PKI

15.4 Revocation15.4 Revocation

• 証明書を取り消すシステムが必要証明書を取り消すシステムが必要• このあたりは、クレジットカードに良く似てるこのあたりは、クレジットカードに良く似てる

– 紛失したら早めに申し出る紛失したら早めに申し出る– 店員はブラックリストにクレジット番号がないかチェ店員はブラックリストにクレジット番号がないかチェックック

• 証明書には有効期限がある証明書には有効期限がある– セキュリティのためセキュリティのため– 大体のシステムは有効期限のチェックを怠らないため大体のシステムは有効期限のチェックを怠らないため

• 有効期限をちゃんとチェックしないブラウザも有効期限をちゃんとチェックしないブラウザも

Page 3: - Network Security - PKI

15.4.1 Revocation 15.4.1 Revocation MechanismsMechanisms

•証明書取り消しリスト証明書取り消しリスト (CRL:Certificate (CRL:Certificate Revocation List)Revocation List)– 信頼してはいけない&有効期限が切れていな信頼してはいけない&有効期限が切れていない証明書の通し番号の表い証明書の通し番号の表

– CACAの署名を受けているの署名を受けている– 最新の最新の CRLCRLをうけいれないと証明書を信用しをうけいれないと証明書を信用しない(→アタッカがない(→アタッカが CRLCRLを消しても、古いを消しても、古いCRLCRLで上書きしても無駄)で上書きしても無駄)

Page 4: - Network Security - PKI

15.4.1.1 Delta CRLs15.4.1.1 Delta CRLs

• CRLCRL は無駄が多いは無駄が多い– 毎時間毎時間 CACAがが CRLCRLを発行したら、ユーザーはを発行したら、ユーザーは毎時間受け取る必要がある毎時間受け取る必要がある

– 1000010000人解雇したら、人解雇したら、 1000010000人分ものリス人分ものリストが毎時間送られてくるトが毎時間送られてくる

– 実際に使われるのはわずか実際に使われるのはわずか

Page 5: - Network Security - PKI

15.4.1.1 Delta CRLs15.4.1.1 Delta CRLs (続き)(続き)

• Delta CRLsDelta CRLs は効率がいいは効率がいい– 情報量が格段に減る情報量が格段に減る

• 二種類の二種類の CRLCRL を組み合わせるを組み合わせる– 相対的に長い時間で発行され、破棄された全相対的に長い時間で発行され、破棄された全

ての証明書の情報を含む、基準のての証明書の情報を含む、基準の CRLCRL– 相対的に短い時間で発行され、基準の相対的に短い時間で発行され、基準の CRLCRL 以以

降に破棄された証明書の情報を含む、差分の降に破棄された証明書の情報を含む、差分のCRLCRL

Page 6: - Network Security - PKI

15.4.1.2 First Valid 15.4.1.2 First Valid CertificateCertificate• 著者が提唱しているシステム著者が提唱しているシステム• 証明書の通し番号が証明書の通し番号が First Valid Certificate First Valid Certificate のの値値 ((以降以降 nnと表記)より小さかったら無効と表記)より小さかったら無効

• CRLCRLが大きくなりすぎたらが大きくなりすぎたら nnを引き上げを引き上げて、て、 CRLCRLを小さくするを小さくする– 証明書の通し番号が証明書の通し番号が nnより小さくなってしまったユより小さくなってしまったユーザーは、もちろん証明書を再発行しなければいけーザーは、もちろん証明書を再発行しなければいけないない

– 再発行するまでユーザーはアクセスできなくなる再発行するまでユーザーはアクセスできなくなる• 基本的に通し番号だけだが、有効期限をいれな基本的に通し番号だけだが、有効期限をいれないといけないときもあるいといけないときもある

Page 7: - Network Security - PKI

15.4.2 OLRS Schemes15.4.2 OLRS Schemes

• OLRS (On-Line Revocation Server)OLRS (On-Line Revocation Server) ははネットワーク越しに証明書取り消しを確ネットワーク越しに証明書取り消しを確認できるシステム認できるシステム

• CACA ほどセキュアではないほどセキュアではない

Page 8: - Network Security - PKI

1.5.4.3 Good-lists vs. Bad-1.5.4.3 Good-lists vs. Bad-listslists

• Good-listsGood-lists :有効な証明書を列挙:有効な証明書を列挙– セキュアセキュア

•例:もし例:もし CACAオペレータが賄賂をもらって不正にオペレータが賄賂をもらって不正に証明書を発行しても、証明書を発行しても、 Good-listsGood-listsなら防げるなら防げる

• Bad-listsBad-lists :無効な証明書を列挙:無効な証明書を列挙– パフォーマンスパフォーマンス

•Good-listsGood-listsよりサイズが小さく、変更も少ないよりサイズが小さく、変更も少ない

Page 9: - Network Security - PKI

15.5 Directories and PKI15.5 Directories and PKI

•主なディレクトリサービス主なディレクトリサービス– DNSDNS

•名前で名前で lookuplookupできるが、それだけできるが、それだけ•でも、インターネットでよく使われているでも、インターネットでよく使われている

– X.500X.500•LDAPLDAPなどでクエリを出すなどでクエリを出す•複雑な要求も出せる複雑な要求も出せる•だが、あまり使われないだが、あまり使われない

Page 10: - Network Security - PKI

15.5 Directories and PKI (15.5 Directories and PKI ( 続続きき ))• 今日の今日の PKIPKI でディレクトリでディレクトリ

を使っているのは少ないを使っているのは少ない– Single CASingle CA

• 証明書は自分で保持、必要なと証明書は自分で保持、必要なときに相手に渡すきに相手に渡す

– Single root CASingle root CA• 証明書の連鎖を受け取れる証明書の連鎖を受け取れる

– Several root CAsSeveral root CAs• 右の図、参照右の図、参照

• ディレクトリを使えばもっディレクトリを使えばもっと便利・フレキシブルにと便利・フレキシブルに

CA1

CA2

CA3

Alice

Bob

Aliceにとっての root CA

Bobにとっての root CA

証明書の連鎖を持っている

Page 11: - Network Security - PKI

15.5.1 Store Certificates 15.5.1 Store Certificates with Subject or Issuer?with Subject or Issuer?• PKIXPKIX では所有者が証明書をもつでは所有者が証明書をもつ•所有者に証明書を保存する場合所有者に証明書を保存する場合

– トップダウンモデルの時だけ認証のパスを作トップダウンモデルの時だけ認証のパスを作れるれる

– 鍵を持っている人を自分で把握する必要あり鍵を持っている人を自分で把握する必要あり•発行者に証明書を保存する場合発行者に証明書を保存する場合

– 認証のパスを作るのが容易認証のパスを作るのが容易– 誰が鍵を要求しているか、所有者は気にしな誰が鍵を要求しているか、所有者は気にしなくて良いくて良い

Page 12: - Network Security - PKI

15.5.2 Finding Certificate 15.5.2 Finding Certificate ChainsChains

• PKIXPKIX は正方向の認証パスと逆方向の認証は正方向の認証パスと逆方向の認証パスを構築できるパスを構築できる– 名前制約やポリシーがあると正方向はうまく名前制約やポリシーがあると正方向はうまく

いかないいかない

Page 13: - Network Security - PKI

15.6 PKIX and X.50915.6 PKIX and X.509

• PKIXPKIX (( Public Key Infrastructure Public Key Infrastructure X.509X.509 ))– IETF IETF (( Internet Engineering Task Internet Engineering Task

ForceForce)内のワーキンググループのこと)内のワーキンググループのこと– X.509X.509をベースにしている(著者はこれをよをベースにしている(著者はこれをよく思っていないらしい)く思っていないらしい)

Page 14: - Network Security - PKI

1.5.6.1 Names1.5.6.1 Names

• X.500X.500 での名前での名前– 例:例: C=JP, O=ECN, OU=research, CN=sadC=JP, O=ECN, OU=research, CN=sad

aa– ASN.1ASN.1 記法を用いているが効率悪い記法を用いているが効率悪い

• インターネットとインターネットと X.500X.500 は調和性には調和性に欠ける欠ける– DNSDNS を基本とした、を基本とした、 ht.sfc.keio.ac.jpht.sfc.keio.ac.jp みたみた

いな表記をするからいな表記をするから– SSLSSL でも同じ問題が発生(でも同じ問題が発生( URLURL を使うかを使うか

ら)ら)– DNSDNS が単なる”が単なる” lookup service”lookup service” で”で” true dirtrue dir

ectory”ectory” じゃないと批判するが、結局じゃないと批判するが、結局 X.50X.5000 を提供するサーバーは少ないを提供するサーバーは少ない

CC countrycountry

OO organizationorganization

OUOU organization organization unitunit

CNCN common common namename

Page 15: - Network Security - PKI

15.6.2 OIDs15.6.2 OIDs

• OID (object identifier)OID (object identifier)– ASN.1ASN.1 に則った、数字に則った、数字を”を” .”.” で区切った表記で区切った表記• 例:例: 1.2.840.113549.1.11.2.840.113549.1.1

– 11番目、番目、 22番目の数字の意番目の数字の意味は右のとおり味は右のとおり

– 33番目以降は番目以降は RFCRFC で定義で定義• 例:例: 840840ならなら USUSの団体の団体

• プロトコルやユーザーなプロトコルやユーザーなどをすべて一意の数字でどをすべて一意の数字で表現表現

• http://www.alvestrand.http://www.alvestrand.no/objectid/top.htmlno/objectid/top.html

11番目の数字番目の数字00 ITU-TITU-Tが規定が規定11 ISOISOが規定が規定22 ITU-T&ISOITU-T&ISOが規定が規定

22番目の数字番目の数字00 標準標準11 登録機関登録機関22 加盟団体加盟団体33 身元が明らかな組織身元が明らかな組織

Page 16: - Network Security - PKI

15.6.3 Specification of Time15.6.3 Specification of Time

• UNIX timeUNIX timeではでは 20382038年までしか表示でき年までしか表示できないない

• ASN.1ASN.1で定義しているのは次の二つで定義しているのは次の二つ– UTC Time:15 octets, UTC Time:15 octets, 年を二桁で表示年を二桁で表示– Generalized Time: 17 octets, Generalized Time: 17 octets, 年を四桁で表示年を四桁で表示

• PKIXPKIXでは・・・では・・・– 20492049年まで:年まで: UTC TimeUTC Time– 20502050年以降:年以降: Generalized TimeGeneralized Time

Page 17: - Network Security - PKI

15.7 X.509 and PKIX 15.7 X.509 and PKIX CertificatesCertificates

• 基本的な項目基本的な項目

VersionVersion バージョンバージョンserialNumberserialNumber シリアル番号シリアル番号SignatureSignature 署名方式署名方式IssuerIssuer 証明書発行者の証明書発行者の x.500x.500識別名識別名ValidityValidity 公開鍵の有効期限公開鍵の有効期限SubjectSubject 秘密鍵所有者の秘密鍵所有者の x.500x.500識別名識別名subjectPublicKeyInfosubjectPublicKeyInfo 公開鍵公開鍵issuerUniqueIdentifierissuerUniqueIdentifier 認証局の固有識別子認証局の固有識別子subjectUniqueIdentifiersubjectUniqueIdentifier 所有者の固有識別子所有者の固有識別子ExtensionsExtensions 拡張拡張

Page 18: - Network Security - PKI

15.7 X.509 and PKIX 15.7 X.509 and PKIX CertificatesCertificates• 拡張(拡張( v3v3のみ) たくさんあるので抜粋のみ) たくさんあるので抜粋

subject key identifiersubject key identifier 公開鍵のハッシュ公開鍵のハッシュkey usagekey usage 使用目的使用目的certificate policiescertificate policies 証明書のポリシー証明書のポリシーsubject alt namesubject alt name 所有者の別名所有者の別名issuer alt nameissuer alt name 認証者の別名認証者の別名CRL Distribution CRL Distribution PointsPoints

CRLCRL を配布している発行者の識別子を配布している発行者の識別子

Basic ConstraintsBasic Constraints この証明書の被認証者がこの証明書の被認証者が CACAかどうかかどうかSignature ValueSignature Value 上記の領域全体に対する上記の領域全体に対する CACAの署名の署名

Page 19: - Network Security - PKI

15.7.1 X.509 and PKIX CRLs15.7.1 X.509 and PKIX CRLs

VersionVersion バージョンバージョン SignatureSignature 署名方式署名方式IssuerIssuer 発行者の発行者の x.500x.500識別名識別名thisUpdatethisUpdate 発行日時発行日時nextUpdatenextUpdate 次回の次回の CRLCRL発行予定日発行予定日

時時revokedCertificatesrevokedCertificates 廃棄する証明書のシリア廃棄する証明書のシリア

ル番号と廃棄日時ル番号と廃棄日時crlExtensioncrlExtension 拡張拡張

Page 20: - Network Security - PKI

15.8 Authorization Futures15.8 Authorization Futures

• AuthorizationAuthorization (認可)(認可)– 何をしていいの?といった権限を決定する何をしていいの?といった権限を決定する– 例:↓例:↓

この鶏は橋を渡る権限がある

ほかの鶏は橋を渡る権限がない

Page 21: - Network Security - PKI

15.8.1 ACL (Access Control 15.8.1 ACL (Access Control List)List)

• 任意のユーザーに任意のアクセス権を設任意のユーザーに任意のアクセス権を設定するアクセス制御機能定するアクセス制御機能

•どのユーザーに、どのファイルを、どのどのユーザーに、どのファイルを、どのようにアクセスできるか、などを細かくようにアクセスできるか、などを細かく設定できる設定できる

Page 22: - Network Security - PKI

15.8.2 Central 15.8.2 Central Administration/CapabilitiesAdministration/Capabilities

• 各リソースに対し、認可を受けたユーザ各リソースに対し、認可を受けたユーザーとその権限のリストを作るーとその権限のリストを作る

• 短所:資源量が多くなると大変短所:資源量が多くなると大変– アクセス制限が大雑把になってしまうアクセス制限が大雑把になってしまう– リストが膨大になるリストが膨大になる

Page 23: - Network Security - PKI

15.8.2 Central 15.8.2 Central Administration/CapabilitiesAdministration/Capabilities(続き)(続き)

• GroupGroup の概念で対処するの概念で対処する

社員管理システム

社員 A 社員 B 社員 C

データベース

ACLの設定

ACLの設定

ACLの設定

大変

社員管理システム

社員 A 社員 B 社員 C

データベース

簡単

権限の設定

Page 24: - Network Security - PKI

15.8.3 Groups15.8.3 Groups

•グループ単位でのアクセス管理グループ単位でのアクセス管理– 複数のグループ(その上、どのサーバーも全複数のグループ(その上、どのサーバーも全員を把握できない)、もしくは匿名のグルー員を把握できない)、もしくは匿名のグループなども扱える機構があると便利プなども扱える機構があると便利

•グループは中央で管理、全体の把握が容グループは中央で管理、全体の把握が容易易– 自由にグループを作れると便利自由にグループを作れると便利

Page 25: - Network Security - PKI

15.8.3.1 Cross-15.8.3.1 Cross-Organizational and Nested Organizational and Nested GroupsGroups• ACLACLやグループは組み合やグループは組み合わせることが必要わせることが必要

• AliceAliceは提携先のリソーは提携先のリソースにアクセスできるかスにアクセスできるか– AliceAlice がどのグループに所がどのグループに所

属しているのか、どうい属しているのか、どういう権限があるのかう権限があるのか

• 解決策を次のスライドか解決策を次のスライドから提示するら提示する

提携先

会社 A

会社 B

Alice

管理者

管理者

管理者?

Page 26: - Network Security - PKI

15.8.3.1 Cross-15.8.3.1 Cross-Organizational and Nested Organizational and Nested GroupsGroups (続き・1)(続き・1)• 個人がどのグループに所属するのかを一人一人判断し、一人一人ア個人がどのグループに所属するのかを一人一人判断し、一人一人アクセス権を決定するクセス権を決定する– パフォーマンス、スケールの問題パフォーマンス、スケールの問題– グループ帰属関係が難しくなるグループ帰属関係が難しくなる

• AliceAlice から要求があったら、オンラインのグループのサーバーに、から要求があったら、オンラインのグループのサーバーに、AliceAlice がグループの一員かたずねるがグループの一員かたずねる– パフォーマンスが問題パフォーマンスが問題– ↑↑ をキャッシュで解決しようとしても、キャッシュの有効期限をキャッシュで解決しようとしても、キャッシュの有効期限という問題が発生という問題が発生

• AliceAlice が所属するグループの全員にが所属するグループの全員に KerberosKerberos チケットを交付チケットを交付– Cross-organizational groupCross-organizational group で問題になるで問題になる– 複数のグループに所属しているときに問題複数のグループに所属しているときに問題

Page 27: - Network Security - PKI

15.8.3.1 Cross-15.8.3.1 Cross-Organizational and Nested Organizational and Nested GroupsGroups (続き・2)(続き・2)• AliceAliceの証明書に、自分の所属するの証明書に、自分の所属する groupgroupをリストアップをリストアップ

– 沢山のグループに入っているときにスケールの問題沢山のグループに入っているときにスケールの問題– サーバーはサーバーは AliceAliceが所属する全てのが所属する全ての groupgroupを知っている必要があを知っている必要があるる

– AliceAliceがグループに入ったり、やめたりしたら更新作業が必要がグループに入ったり、やめたりしたら更新作業が必要• グループの証明書を作り、グループのメンバーはそれを持グループの証明書を作り、グループのメンバーはそれを持つつ– 良いシステム良いシステム– サーバーの負担が少ない、サーバーが攻撃されていてもクライアンサーバーの負担が少ない、サーバーが攻撃されていてもクライアントが主体で動いてくれるトが主体で動いてくれる

– 古い証明書は拒否、といったポリシー決めも可能古い証明書は拒否、といったポリシー決めも可能

Page 28: - Network Security - PKI

15.8.4 Roles15.8.4 Roles (役?)(役?)• 乱暴に言うと、乱暴に言うと、 sudosudo の高機能版の高機能版• 各ユーザーが特殊な役になる各ユーザーが特殊な役になる• ACLACL を使わず、特定の機能を使うときだけ管理者権を使わず、特定の機能を使うときだけ管理者権

限をユーザーが持つようになる限をユーザーが持つようになる– 例:パスワードの変更例:パスワードの変更– 管理者として動作させているときは、インターフェース管理者として動作させているときは、インターフェース

を変えるを変える– 特殊なことを行うのはまれなので、こういうモデルでも特殊なことを行うのはまれなので、こういうモデルでも

OKOK– 管理者権限を与えられるプログラムは信頼のあるものだ管理者権限を与えられるプログラムは信頼のあるものだ

け、そうでないものはすべてユーザー権限で。け、そうでないものはすべてユーザー権限で。– 複雑なポリシー(例:複雑なポリシー(例: AA もしくはもしくは BB のどちらかだけファのどちらかだけファ

イルにアクセスできる)はイルにアクセスできる)は Chinese WallChinese Wall モデルで解決でモデルで解決できるきる

Page 29: - Network Security - PKI

15.8.4 Roles15.8.4 Roles (続き)(続き)

• 分散環境では?分散環境では?– 個人、グループ、役がある個人、グループ、役がある

• 役とグループの違い役とグループの違い– 役は能動的に権限を求める、グループは受動的に権限が決まる役は能動的に権限を求める、グループは受動的に権限が決まる

• 個人と役の違い個人と役の違い– 特殊な行動をしたくて権限をもらった時のユーザーが役特殊な行動をしたくて権限をもらった時のユーザーが役

– 権限を与えられるプログラムは中央で集中管理する。権限を与えられるプログラムは中央で集中管理する。いつ誰が役になったなどをログにとれる。いつ誰が役になったなどをログにとれる。

• このモデルはインターネットでは適さなこのモデルはインターネットでは適さない。い。 LANLANのようなネットワークで使うべき。のようなネットワークで使うべき。

Page 30: - Network Security - PKI

15.8.5 Anonymous Groups15.8.5 Anonymous Groups

• 一度リソースにアクセスできる、と分かったらそ一度リソースにアクセスできる、と分かったらその後の認証は省略したいの後の認証は省略したい– 監査のために、省略しないことも多い監査のために、省略しないことも多い

• 一時的な公開鍵で、グループのサーバーに認可し一時的な公開鍵で、グループのサーバーに認可してもらうことで解決てもらうことで解決

• Blind signatureBlind signature– アルゴリズムはアルゴリズムは RSARSAに似たものに似たもの– サーバーは誰を認証したか知らない(知るべきではなサーバーは誰を認証したか知らない(知るべきではない)い)

– 成りすましを防ぐために、複数の鍵を持つことができる成りすましを防ぐために、複数の鍵を持つことができる

Page 31: - Network Security - PKI

15.8.5 Anonymous Groups15.8.5 Anonymous Groups• Blind signatureBlind signature

Bob Alice公開鍵<e, n> R をランダムに選

c(Re mod n)d を選ぶ

cd(Re mod n)d

= cd(Red) mod n

Red=R

署名された cを欲しい!

cdR/R

= cd

Xed≡X mod n となるように

Page 32: - Network Security - PKI

15.9 Homework15.9 Homework

• 省略省略