「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>SC:対策技術]] *目次 [#f5bda59d] #contents *概要 [#o6a65d31] -認証・アクセス制御 ≒ 認証・認可。 -これらの要素は認可(≒ アクセス制御)~ を行う一連のプロセスに含まれる。 --[[(識別と)認証>#udae9e07]] --[[認可(≒ アクセス制御)>#r52d5291]] ※ [[基礎>SC:基礎#ta2bca33]]が参考になる。 *認証 [#udae9e07] **基礎 [#vc2de08e] ***用語 [#i4ebfdf5] -真正性(Authenticity)~ [[ある主体(subject)又は資源が、主張(claim)どおりであることを確実にする特性。>SC:基礎#ta2bca33]] -認証(Authentication) --真正性(Authenticity)を明らかにする行為が認証(Authentication) --認証(Authentication)のプロセスは、識別(Identification)と検証(Verification)で構成される。 --識別(Identification)と検証(Verification)をざっくり説明すると、以下の様な感じ。 ---識別(Identification) ≒ ユーザID ---検証(Verification) ≒ パスワード -認可(Authorization)と許可(Permission) --認可(Authorization)~ 認証(Authentication)の結果を用いて、アクセス制御を行う。~ コレには、下記のリソースに付与された許可(Permission)の情報も使用している。 --許可(Permission)~ 原則禁止のトコロ、許可する事を言うらしいが、~ コンピューター界隈では、リソースに付与されている属性を指す。 -言語上の混乱 --日本では、二つの「認証」で混乱 ---Authentication~ 前述の認証で、2者間認証とも言う。 ---Certification~ 監査やデジタル署名で、3者間認証とも言う。 --英語では、以下が紛らわしい(らしい。 ---Authentication~ 前述の認証(Authentication) ---Identification~ 前述の識別(Identification) -参考 --Identification・Authenticity・Authentication・真正性 – IT Research Art~ http://www.itresearchart.biz/?p=1431 --「認証」の意味を考える - Manaboo 電子政府・電子申請コラム ---(1):日本語としての「認証」~ https://blog.goo.ne.jp/egovblog/e/cc73dc169f970e7498c2630668360c36 ---(2):コンピュータ用語としての「認証」~ https://blog.goo.ne.jp/egovblog/e/b9c836164e5a45dd1513b29cd11419c1 ---(3):英語としての「認証」~ https://blog.goo.ne.jp/egovblog/e/62b8e4194a4ee23c94d827e0a9a3400b ---(4):認証のステップを整理する~ https://blog.goo.ne.jp/egovblog/e/112f204652a98e9325a47adc976ac18d ***分類 [#s5b879f2] -対象 --人の認証:各種本人認証手段による --モノの認証:MACアドレスなど --情報の認証:デジタル署名など -各種本人認証手段~ 詳しくは[[コチラ>https://techinfoofmicrosofttech.osscons.jp/index.php?%E8%AA%8D%E8%A8%BC%E5%9F%BA%E7%9B%A4#o540099e]] --ユーザが知っていること(知識情報) --ユーザが持っているもの(所持情報) --ユーザ自身の特徴(生体情報) **固定式パスワード [#a0ad6a7a] ***特徴 [#f3415d4b] -方式 --基本的な --簡単な --容易な --最古の -ちなみに、以下の条件で~ 作成可能なパスワードの総数 = M^n らしい。 --使用可能な文字種 = M --使用可能な文字数 = n ***脆弱性 [#t3b0e38f] -運用面~ [[ソーシャルエンジニアリングなどに対する非技術的な脆弱性>SC:脅威#f79a6470]] -実装面~ [[パスワード・クラックなどに対する技術的な脆弱性>SC:脅威#dc765db9]] **ワンタイム・パスワード(OTP) [#c0bfbc73] ***特徴 [#x0350c61] -ランダムな文字列を生成 -覚える必要が無い ***方式 [#m0d74a6a] -[[チャレンジ&レスポンス>https://techinfoofmicrosofttech.osscons.jp/index.php?%E8%AA%8D%E8%A8%BC%E5%9F%BA%E7%9B%A4#zb3340de]] -S/Key --≒チャレンジ&レスポンス --シーケンス ---ユーザIDを送信 ---Seed+「初期値(最大値) or 保存しているSequence番号-1」を返信 ---S=Seed+PasswordをSequence回ハッシュ関数にかけOTPとして送信 ---ハッシュ値の比較(妥当性検証)~ 初回は自力で計算して比較~ 初回以降は前回OTPをハッシュにかけて比較(サーバ負荷軽減) -[[トークン・カード(HOTP、TOTP)>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%83%AF%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%BB%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89]] ***脆弱性 [#c1dabc4f] -チャレンジ&レスポンス --パスワードは平文 -S/Key --サーバー自体の認証 --パスフレーズの漏洩 **バイオメトリクス認証 [#y9c8b6b5] **ICカードによる認証 [#c35e58fb] **その他さまざまな技術 [#tc7f4cd8] **シングルサインオン(SSO) [#d2820f80] *認可(アクセス制御) [#r52d5291] **基礎 [#w006a94e] 以下から構成される。 -利用者、若しくは利用者属性 -リソースに与えられた、~ 利用者、若しくは利用者属性に対応する認可情報(パーミッション) --読み、書き、実行などの権限がある。 --これは、アクセス制御リスト(ACL)と呼ばれる。 **実施 [#ye0da577] 以下、アクセス制御が実施される場所 ***物理環境 [#e1862d80] コンピューター・システム的なものではなく、~ [[環境的・物理的>SC:マネジメント#fc669131]]な、セキュリティ。 ***ネットワーク環境 [#h2a99f98] ネットワーク機器やF/Wなどで制御できる範囲でのアクセス制御 ***ホストやアプリケーション [#ed4fc095] ホストやアプリケーションに対するログインとアクセス制御 ***システム・リソース [#g7cca6a0] 主に、OSの機能で実現されている。 **種類 [#ac19d03d] -アクセス制御 - Wikipedia~ https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1 ***任意(DAC) [#z0617296] -DAC : Discretionary Access Controls -Windowsなどの一般的なアクセス制御 -[[所有者の裁量でアクセス権が決定されるため任意>#w006a94e]] ***強制(MAC) [#x99edac4] -MAC : Mandatory Access Control -[[セキュアOS>SC:対策技術 - 防御・侵入検知#e33b98ed]]などに実装がある。 -所有者ではなくシステムが決定するアクセス方針~ (サブジェクトやオブジェクトを複数のレベルにクラス分けする) ***ロールベース(RBAC) [#q11d1789] -RBAC : Role-Based Access Control -Windowsなどの一般的なアクセス制御 -[[任意(DAC)にロール(利用者属性の一つ)を追加した方式>#z0617296]] ***情報フロー制御 [#e588245d] -情報の流れを分析して情報が、~ 上位から下位に移動しないように制御する方式 -MLSやBLPモデルで制御される。 --MLS : Multi Level Security --前述の[[強制(MAC)>#x99edac4]]で利用される。 --MLSを数学的に定式化した状態遷移モデルがBLP(Bell–LaPadula Model) -MLSによるアクセス制御ルール例 |ユーザの機密レベル|情報の機密レベル|関係|>|>|>|アクセス制御ルール|h |~|~|~|読取|追記|修正|実行|h |極秘|極秘|ユーザ=情報|〇|〇|〇|〇| |~|秘|ユーザ>情報|〇|×|×|〇| |~|一般|~|~|~|~|~| |秘|極秘|ユーザ<情報|×|〇|×|×| |~|秘|ユーザ=情報|〇|〇|〇|〇| |~|一般|ユーザ>情報|〇|×|×|〇| |一般|極秘|ユーザ<情報|×|〇|×|×| |~|秘|~|~|~|~|~| |~|一般|ユーザ>情報|〇|〇|〇|〇| -説明~ ユーザと情報の関係ですべて決まる。 --ユーザ>情報:読取・実行のみ許可(参照) --ユーザ=情報:更新含め全て許可(当事者) --ユーザ<情報:追記のみ許可(報告) **実施 [#z8ccb42a] ある意味、PDCA的ではある。 ***(P) : 方針の明確化 [#f0a5b752] 方針=アクセス制御のルール -例えば、前述の[[アクセス制御の種類>#ac19d03d]]のような。 -具体的には、[[情報フロー制御>#e588245d]]のような。 ***(D1) : 実装の明確化 [#x4f97442] 上記の方針をどのような技術で実装するか? ***(D2) : 実装 [#tc3297d1] [[実装の明確化>#x4f97442]]≒仕様で、これを実装。 ***(C) : 適切性評価 [#dbf69ed2] 方針や実装を評価し、 ***(A) : 見直し [#s1918599] 方針や実装を見直す。