「[[.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 --文字数 = 1-nでの総数は、 n ∑M^i i=1 ***脆弱性 [#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と時刻同期方式>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#qcf4f81f]] -[[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#j1d0aa2a]] ***脆弱性 [#c1dabc4f] -チャレンジ&レスポンス --サーバー自体の認証が存在しない。 --パスワードは平文で保存されている。 -[[ワンタイム・パスワードの脆弱性>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#hf248dbe]] **ICカードによる認証 [#c35e58fb] ***特徴 [#q2a2ba74] -高い耐タンパ製 -反面、紛失盗難に弱いので、~ [[生体認証>#y9c8b6b5]]と組合わせる方式がある。 ***利用例 [#n5373bf4] -公開鍵暗号化~ --公開鍵で、情報と暗号鍵を暗号化 --ICカード内の秘密鍵で、暗号化された暗号鍵を復号化 --復号化した暗号鍵を使用して暗号化された情報を復号化 -デジタル署名~ --秘密鍵で、情報にデジタル署名を付与 --公開鍵で、送られてきたICカードの情報を検証 ***攻撃 / 対策 / 評価 [#aaa23ba8] -攻撃手段 |#|種類|手法|>|内容|h |1|>|破壊攻撃|>|ICチップに直接アクセス、高コスト| |~|-1|プロービング||ICチップに針を当て信号を読み取る。| |~|-2|リバース・エンジニアリング|~|ICチップの観察(秘密鍵は漏れないがメカニズムが解明される。)| |2|>|非破壊攻撃(サイドチャネル攻撃)|>|外部から観察、低コスト| |~|-1|DPA(Differential Power Analysis)||多数の消費電力波形を統計処理して秘密鍵を推定する。| |~|-2|SPA(Simple Power Analysis)|~|消費電力波形を比較解析して秘密鍵を推定| |~|-3|グリッチ(glitch)|~|flip-flopのサンプリングや誤動作を起こし出力の比較解析して秘密鍵を推定する。| |~|-4|光照射|~|不良動作を発生させる攻撃| |~|-5|タイミング攻撃|~|時間差を測定することで秘密鍵を推定する。| -対策方法 |#|種類|手法|内容|h |1|>|破壊攻撃|ICチップに直接アクセス、高コスト| |~|-1|配線の多層化|上層の剥ぎ取りで下層のICチップが破壊されるようにする| |~|-2|テスト回路の削除|出荷後、テスト回路を使用不可能な状態にする。| |2|>|非破壊攻撃(サイドチャネル攻撃)|外部から観察、低コスト| |~|-1|センサ|センサにより使用範囲外の動作環境で動作しなくする。| |~|-2|動作クロックの内部生成|アタック・タイミングの同期を困難にする| |~|-3|メモリ・チェック機構|グリッチによるflip-flopやメモリ値の破壊を検出する。| |~|-4|暗号化アルゴリズムの工夫|同一演算の時間が異なるようにする| -評価~ JIWG(Joint Interpretation library Working Group)が行っている。 --ICカード評価の公平性、客観性の実現する活動 --Common Criteria(ISO/IEC 15408)の解釈の統一 **[[生体認証(バイオメトリック認証)>https://techinfoofmicrosofttech.osscons.jp/index.php?%E7%94%9F%E4%BD%93%E8%AA%8D%E8%A8%BC]] [#y9c8b6b5] **シングルサインオン(SSO) [#d2820f80] ***[[Cookie認証チケット型の統合認証基盤>https://techinfoofmicrosofttech.osscons.jp/index.php?%E8%AA%8D%E8%A8%BC%E5%9F%BA%E7%9B%A4#la8f4c73]] [#i8c929cf] -認証基盤がクッキー認証チケットを発行する。 -エージェント型とリバース・プロキシ型がある。 -製品としては、SiteMinderやIceWall SSO等が有名。 ***[[クレームベース認証型の認証基盤>https://techinfoofmicrosofttech.osscons.jp/index.php?%E8%AA%8D%E8%A8%BC%E5%9F%BA%E7%9B%A4#gf1f2d37]] [#ib8680f8] -クロスドメインでのSSOを実現する -エージェント型とリバース・プロキシ型、ライブラリ型がある。 -プロトコルとしては、SAML2、OAuth2、OIDC、FAPI等がある。 **リスクベース認証 [#f498e515] -最近のWebサービスなどで採用されている。 -以下の様な情報を元に通常の環境と異なる~ 環境からのアクセスを検出し[[2FA>#ib58225a]]を要求する。 --OS --ブラウザ --IPアドレス --利用時間 **その他さまざまな技術 [#tc7f4cd8] ***[[ディレクトリ サービス>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%20%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9]] [#lcb701cf] -認証自体と言うより、ユーザストア。 -X.500やLDAPなど標準がある。 ***RADIUS [#jdc6f78d] -RADIUS : Remote Authentication Dial In User Service(ラディウス) -IP上で認証とアカウンティングを実現するプロトコルと、それを実装したサーバ --目的 ---ネットワーク資源の利用の可否の判断(認証)と、利用の事実の記録を、 ---ネットワーク上のRAS(Remote Access Server)と分離して一元化する。 --利用 ---元はダイヤルアップ・インターネット接続を目的として開発されたが、 ---昨今は、インターネット接続サービス、無線LANなどで幅広く利用されている。 --アルゴリズム ---MD5ハッシュを使用した、[[チャレンジ&レスポンス>https://techinfoofmicrosofttech.osscons.jp/index.php?%E8%AA%8D%E8%A8%BC%E5%9F%BA%E7%9B%A4#zb3340de]] ---最近は、デジタル署名、[[OTP>#c0bfbc73]]、[[生体認証>#y9c8b6b5]]などを提供する~ 他の認証サーバに認証要求をフォワードする拡張がされている。 --脆弱性~ 何れもプロトコル自体の脆弱性ではなくベンダの実装の問題に起因 ---メッセージダイジェストに対するBOF攻撃 ---Vendor-Lengthを2以下に設定したDoS攻撃 -参考 --RADIUS - Wikipedia~ https://ja.wikipedia.org/wiki/RADIUS ***TACACS/TACACS+ [#wbe82f98] -TACACS : Terminal Access Controller Access Control System(タカクス) -目的~ [[RADIUS>#jdc6f78d]]とほぼ同様だが、以下の3機能(AAA)をサポート。 --認証(AuthN) --認可(AuthZ) --課金(Accounting) -利用~ 現在はTACACS+が主流。 --TACACSは、UDP --TACACS+は、TCP ***[[PPP>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%B7%A8#sa5b6b1b]] / [[EAP>高度午前 - 技術要素 - セキュリティ#z50395f7]] [#d42eee55] -PPP(ISP接続で使用)を強化したのがEAP(Wi-Fiの接続で使用) -IEEE802.1X(有線LANや無線LANにおけるユーザ認証の規格)を構成する。 -プロトコル・スタック |Authentication層|TLS|MD5|S/Key|その他| ||↕|↕|↕|↕| |EAP層|>|>|>|EAP| ||↕|>|>|↕| |~|↕|>|>|EAPOL| ||↕|↕|↕|↕| |Datalink層|PPP|IEEE802.3(イーサネット)|IEEE802.5(トークンリング)|IEEE802.11x(無線)| -EAPの認証方式 |#|名称|概要|サーバ認証|>|クライアント認証|無線LANでの安全性|h |~|~|~|証明書|証明書|その他|~|h |1|EPA-TLS|TLSによる相互認証|〇|〇|×|〇| |2|EPA-TTLS|TLS暗号化通信中でクライアント認証|〇|オプション|選択可|〇| |3|PEPA|EPA-TTLSとほぼ同じ|〇|オプション|選択可(EAP準拠の方式のみ)|〇| |4|EPA-TLS|TLSによる相互認証|〇|〇|×|〇| |5|EPA-MD5|無線LANに不向き(有線LAN向き)|×|×|MD5のチャレンジ&レスポンス|×| |4|EPA-MD5|無線LANに不向き(有線LAN向き)|×|×|MD5のチャレンジ&レスポンス|×| ***[[Kerberos>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%82%B1%E3%83%AB%E3%83%99%E3%83%AD%E3%82%B9%E8%AA%8D%E8%A8%BC]] [#q4ad77f3] *認可(アクセス制御) [#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] 方針や実装を見直す。 *ID管理 [#h58601c8] **ディレクトリ・システム [#ha42b428] 一般的には、[[ディレクトリ サービス>#lcb701cf]]を使用する **プロビジョニング・システム [#i0437e2f] -ID同期。 -自動的に複数システムやサービスでIDが整合性を取るよう管理する機能。 -システムによってユーザ・ストアが異なっているケースがあり、~ これらのストアの情報もマスタとなる[[ディレクトリ・システム>#ha42b428]]から同期する。 -SAML2のHybrid-IdPなどでは、事前に、ID同期を行った上で、~ ID連携をするなどする場合がある(これは、SAMLの使用の外)。 **アクセス制御システム [#p699db3a] **ワークフロー・システム [#t89740c6]