- Network Security PKI sada@ecn 15.4 Revocation • 証明書を取り消すシステムが必要 • このあたりは、クレジットカードに良く似てる – 紛失したら早めに申し出る – 店員はブラックリストにクレジット番号がないかチェック • 証明書には有効期限がある – セキュリティのため – 大体のシステムは有効期限のチェックを怠らないため • 有効期限をちゃんとチェックしないブラウザも 15.4.1 Revocation Mechanisms • 証明書取り消しリスト(CRL:Certificate Revocation List) – 信頼してはいけない&有効期限が切れていない 証明書の通し番号の表 – CAの署名を受けている – 最新のCRLをうけいれないと証明書を信用しない (→アタッカがCRLを消しても、古いCRLで上書き しても無駄) 15.4.1.1 Delta CRLs • CRLは無駄が多い – 毎時間CAがCRLを発行したら、ユーザーは毎時 間受け取る必要がある – 10000人解雇したら、10000人分ものリストが毎 時間送られてくる – 実際に使われるのはわずか 15.4.1.1 Delta CRLs(続き) • Delta CRLsは効率がいい – 情報量が格段に減る • 二種類のCRLを組み合わせる – 相対的に長い時間で発行され、破棄された全て の証明書の情報を含む、基準のCRL – 相対的に短い時間で発行され、基準のCRL以降 に破棄された証明書の情報を含む、差分のCRL 15.4.1.2 First Valid Certificate • 著者が提唱しているシステム • 証明書の通し番号がFirst Valid Certificate の値(以 • 降nと表記)より小さかったら無効 CRLが大きくなりすぎたらnを引き上げて、CRLを小さ くする – 証明書の通し番号がnより小さくなってしまったユーザー は、もちろん証明書を再発行しなければいけない – 再発行するまでユーザーはアクセスできなくなる • 基本的に通し番号だけだが、有効期限をいれないと いけないときもある 15.4.2 OLRS Schemes • OLRS (On-Line Revocation Server)はネット ワーク越しに証明書取り消しを確認できるシ ステム • CAほどセキュアではない 1.5.4.3 Good-lists vs. Bad-lists • Good-lists:有効な証明書を列挙 – セキュア • 例:もしCAオペレータが賄賂をもらって不正に証明書 を発行しても、Good-listsなら防げる • Bad-lists:無効な証明書を列挙 – パフォーマンス • Good-listsよりサイズが小さく、変更も少ない 15.5 Directories and PKI • 主なディレクトリサービス – DNS • 名前でlookupできるが、それだけ • でも、インターネットでよく使われている – X.500 • LDAPなどでクエリを出す • 複雑な要求も出せる • だが、あまり使われない 15.5 Directories and PKI (続き) Aliceにとっての root CA • 今日のPKIでディレクトリ を使っているのは少ない CA1 – Single CA • 証明書は自分で保持、必要 なときに相手に渡す – Single root CA • 証明書の連鎖を受け取れる – Several root CAs • 右の図、参照 • ディレクトリを使えばもっ と便利・フレキシブルに Alice CA2 証明書の連鎖 を持っている Bob CA3 Bobにとっての root CA 15.5.1 Store Certificates with Subject or Issuer? • PKIXでは所有者が証明書をもつ • 所有者に証明書を保存する場合 – トップダウンモデルの時だけ認証のパスを作れる – 鍵を持っている人を自分で把握する必要あり • 発行者に証明書を保存する場合 – 認証のパスを作るのが容易 – 誰が鍵を要求しているか、所有者は気にしなくて 良い 15.5.2 Finding Certificate Chains • PKIXは正方向の認証パスと逆方向の認証パ スを構築できる – 名前制約やポリシーがあると正方向はうまくいか ない 15.6 PKIX and X.509 • PKIX(Public Key Infrastructure X.509) – IETF (Internet Engineering Task Force)内の ワーキンググループのこと – X.509をベースにしている(著者はこれをよく思っ ていないらしい) 1.5.6.1 Names • X.500での名前 – 例:C=JP, O=ECN, OU=research, CN=sada – ASN.1記法を用いているが効率悪い • インターネットとX.500は調和性に欠ける – DNSを基本とした、ht.sfc.keio.ac.jpみたいな 表記をするから – SSLでも同じ問題が発生(URLを使うから) – DNSが単なる”lookup service”で”true directory”じゃないと批判するが、結局X.500 を提供するサーバーは少ない C country O organization OU organization unit CN common name 15.6.2 OIDs • OID (object identifier) – ASN.1に則った、数字を”.”で 区切った表記 • 例:1.2.840.113549.1.1 – 1番目、2番目の数字の意味 は右のとおり – 3番目以降はRFCで定義 • 例:840ならUSの団体 1番目の数字 0 ITU-Tが規定 1 ISOが規定 2 ITU-T&ISOが規定 • プロトコルやユーザーなどを 0 すべて一意の数字で表現 1 • http://www.alvestrand.no/ 2 objectid/top.html 3 2番目の数字 標準 登録機関 加盟団体 身元が明らかな組織 15.6.3 Specification of Time • UNIX timeでは2038年までしか表示できない • ASN.1で定義しているのは次の二つ – UTC Time:15 octets, 年を二桁で表示 – Generalized Time: 17 octets, 年を四桁で表示 • PKIXでは・・・ – 2049年まで: UTC Time – 2050年以降:Generalized Time 15.7 X.509 and PKIX Certificates • 基本的な項目 Version バージョン serialNumber シリアル番号 Signature 署名方式 Issuer 証明書発行者のx.500識別名 Validity 公開鍵の有効期限 Subject 秘密鍵所有者のx.500識別名 subjectPublicKeyInfo 公開鍵 issuerUniqueIdentifier 認証局の固有識別子 subjectUniqueIdentifier 所有者の固有識別子 Extensions 拡張 15.7 X.509 and PKIX Certificates • 拡張(v3のみ) たくさんあるので抜粋 subject key identifier 公開鍵のハッシュ key usage 使用目的 certificate policies 証明書のポリシー subject alt name 所有者の別名 issuer alt name 認証者の別名 CRL Distribution Points CRLを配布している発行者の識別子 Basic Constraints この証明書の被認証者がCAかどうか Signature Value 上記の領域全体に対するCAの署名 15.7.1 X.509 and PKIX CRLs Version バージョン Signature 署名方式 Issuer 発行者のx.500識別名 thisUpdate 発行日時 nextUpdate 次回のCRL発行予定日時 revokedCertificates 廃棄する証明書のシリア ル番号と廃棄日時 crlExtension 拡張 15.8 Authorization Futures • Authorization(認可) – 何をしていいの?といった権限を決定する – 例:↓ この鶏は橋を 渡る権限がある ほかの鶏は橋を 渡る権限がない 15.8.1 ACL (Access Control List) • 任意のユーザーに任意のアクセス権を設定 するアクセス制御機能 • どのユーザーに、どのファイルを、どのように アクセスできるか、などを細かく設定できる 15.8.2 Central Administration/Capabilities • 各リソースに対し、認可を受けたユーザーと その権限のリストを作る • 短所:資源量が多くなると大変 – アクセス制限が大雑把になってしまう – リストが膨大になる 15.8.2 Central Administration/Capabilities(続 き) 大変 簡単 データベース データベース 社員管理システム 社員A ACLの設定 社員B ACLの設定 権限の 設定 社員C ACLの設定 • Groupの概念で対処する 社員管理システム 社員A 社員B 社員C 15.8.3 Groups • グループ単位でのアクセス管理 – 複数のグループ(その上、どのサーバーも全員を 把握できない)、もしくは匿名のグループなども扱 える機構があると便利 • グループは中央で管理、全体の把握が容易 – 自由にグループを作れると便利 15.8.3.1 Cross-Organizational and Nested Groups • ACLやグループは組み合 • わせることが必要 Aliceは提携先のリソース にアクセスできるか ? – Aliceがどのグループに所属 しているのか、どういう権限 があるのか • 解決策を次のスライドから 提示する 提携先 管理者 会社B 管理者 会社A 管理者 Alice 15.8.3.1 Cross-Organizational and Nested Groups(続き・1) • 個人がどのグループに所属するのかを一人一人判断し、一人一人アク セス権を決定する – パフォーマンス、スケールの問題 – グループ帰属関係が難しくなる • Aliceから要求があったら、オンラインのグループのサーバーに、Aliceが グループの一員かたずねる – パフォーマンスが問題 – ↑をキャッシュで解決しようとしても、キャッシュの有効期限という問題 が発生 • Aliceが所属するグループの全員にKerberosチケットを交付 – Cross-organizational groupで問題になる – 複数のグループに所属しているときに問題 15.8.3.1 Cross-Organizational and Nested Groups(続き・2) • Aliceの証明書に、自分の所属するgroupをリストアップ – 沢山のグループに入っているときにスケールの問題 – サーバーはAliceが所属する全てのgroupを知っている必要がある – Aliceがグループに入ったり、やめたりしたら更新作業が必要 • グループの証明書を作り、グループのメンバーはそれを持つ – 良いシステム – サーバーの負担が少ない、サーバーが攻撃されていてもクライアント が主体で動いてくれる – 古い証明書は拒否、といったポリシー決めも可能 15.8.4 Roles(役?) • 乱暴に言うと、sudoの高機能版 • 各ユーザーが特殊な役になる • ACLを使わず、特定の機能を使うときだけ管理者権 限をユーザーが持つようになる – 例:パスワードの変更 – 管理者として動作させているときは、インターフェースを変 える – 特殊なことを行うのはまれなので、こういうモデルでもOK – 管理者権限を与えられるプログラムは信頼のあるものだ け、そうでないものはすべてユーザー権限で。 – 複雑なポリシー(例:AもしくはBのどちらかだけファイルに アクセスできる)はChinese Wallモデルで解決できる 15.8.4 Roles(続き) • 分散環境では? – 個人、グループ、役がある • 役とグループの違い – 役は能動的に権限を求める、グループは受動的に権限が決まる • 個人と役の違い – 特殊な行動をしたくて権限をもらった時のユーザーが役 – 権限を与えられるプログラムは中央で集中管理する。い つ誰が役になったなどをログにとれる。 • このモデルはインターネットでは適さない。LANのよ うなネットワークで使うべき。 15.8.5 Anonymous Groups • 一度リソースにアクセスできる、と分かったらその後 の認証は省略したい – 監査のために、省略しないことも多い • 一時的な公開鍵で、グループのサーバーに認可し • てもらうことで解決 Blind signature – アルゴリズムはRSAに似たもの – サーバーは誰を認証したか知らない(知るべきではない) – 成りすましを防ぐために、複数の鍵を持つことができる 15.8.5 Anonymous Groups • Blind signature 署名されたcを欲しい! Bob Alice 公開鍵<e, n> Xed≡X mod nと なるように dを選ぶ Rをランダムに選ぶ c(Re mod n) cd(Re mod n)d = Red=R cd(Red) mod n cdR/R = cd 15.9 Homework • 省略
© Copyright 2024 ExpyDoc