© XML Consortium
セキュリティ関連
セキュリティ関連
XML
XML
規格の動向
規格の動向
SAML、XACML
2002年8月23日
富士ゼロックス株式会社
道村 唯夫
本日の報告内容
本日の報告内容
z
セキュリティ関連XML規格の動向
– シングルサインオン:SAML
– アクセス制御:XACML
– まとめ
2002/8/23 2
セキュリティ関連
セキュリティ関連
XML
XML
規格一覧
規格一覧
C
サイト
D
サイト
XML Signature W3C:勧告 2002-02-12電子署名
Decryption Transform W3C:勧告候補 2002-08-02暗号・復号
WS-Security OASIS:草案 2002-04-05SOAPへの
暗号・署名・
認証情報
SAML OASIS: 委員会標準 2002-06-01 XACML OASIS:ドラフト完了予定 2002-07-01情報
XPath Filter 2.0 W3C:勧告候補 2002-07-18 Exclusive XML C14n W3C:勧告 2002-07-18 XKMS 2.0 W3C:作業案 2002-03-18 XML Encryption W3C:勧告候補 2002-08-02 Canonical XML W3C:勧告 2001-05-15情報アクセス
ポリシー
認証と承認
鍵の登録
証明書
認証
機関
B
企業
A
企業
署名後の
暗号・復号
XML文書の
正規化
コンテンツの
詳細指定
SAML
SAML
z
Security Assertion Markup Language
http://www.oasis-open.org/committees/security/
z
セキュリティ上の目標
– 一度のログオン・ログオフ操作で複数のサイト/資
源へのアクセス制御を可能にする
– サービスの意思決定に必要な属性の取得を可能
にする
z
SAMLが決めるもの
– 認証、承認、属性情報のXMLによる表現
– 上記情報をやりとりするためのプロトコル
2002/8/23 4
SAML
SAML
(続)
(続)
z
特徴
– フレームワークの定義
– 協調モデル – 信頼関係
– 広範な既存認証との連携
– 三つのモデル
•
Pull Model
•
Push Model
•
3rd Party Security Model
– SOAP/HTTPの特徴を生かしたプロトコル
SAML
SAML
(続)
(続)
z
SAML 1.0 Specification Set (31 May
2002)
– Committee Specifications (revision 01)
•
Assertions and Protocol
– Assertion Schema
– Protocol Schema
•
Binding and Profiles
•
Security and Privacy Considerations
•
Conformance Program Specification
2002/8/23 6
SAML
SAML
(続)
(続)
z
ドメインモデル
Policy Policy PolicySAML
SAML
Credentials
Collector
Authentication
Authority
Attribute
Authority
Policy
Decision Point
Authentication
Assertion
Attribute
Assertion
Authorization
Decision
Assertion
Policy
Enforcement
Point
Authentication
Assertion
System Entry
SAML
SAML
(続)
(続)
z
Pull Model
ユーザ
ユーザ
サービス
サービス
1
1
信頼関係
信頼関係
サービスが認証情報を
サービスが認証情報を
Pull
Pull
サービス
サービス
0
0
2002/8/23 8
SAML
SAML
(続)
(続)
z
Push Model
サービス
サービス
1
1
信頼関係
信頼関係
ユーザ
ユーザ
サービスが認証情報を
サービスが認証情報を
Push
Push
サービス
サービス
0
0
SAML
SAML
(続)
(続)
z
3rd Party Security Model
サービス
サービス
1
1
信頼関係
信頼関係
サービス
サービス
0
0
識別サービス
識別サービス
ユーザ
ユーザ
2002/8/23 10
SAML
SAML
(続)
(続)
z
複数の識別サービスの協調 (Push)
識別サービス
識別サービス
0
0
識別サービス
識別サービス
1
1
サービス
サービス
信頼関係
信頼関係
ユーザ
ユーザ
SAML
SAML
(続)
(続)
z
複数の識別サービスの協調 (Pull)
識別サービス
識別サービス
0
0
識別サービス
識別サービス
1
1
ユーザ
ユーザ
サービス
サービス
信頼関係
信頼関係
2002/8/23 12
SAML
SAML
(続)
(続)
z
認証の要求メッセージ例
<samlp:Request MajorVersion="1" MinorVersion="0“ RequestID=“8xtyzzKqPMLcFswefRIJAL"> <samlp:RespondWith>AuthenticationStatement</samlp:RespondWith> <samlp:AuthenticationQuery> <saml:Subject> <saml:NameIdentifier Name=“JFB"/> <saml:SubjectConfirmation> <saml:ConfirmationMethod> http://www.oasis-open.org/…./draft-sstc-core-25/password </saml:ConfirmationMethod> <saml:SubjectConfirmationData> uTKaRyQmytsz= </saml:SubjectConfirmationData> </saml:SubjectConfirmation> </saml:Subject> </samlp:AuthenticationQuery> </samlp:Request>
NameIdentifier
名前による識別
ConfirmationMethod
パスワードによる確認
SAML
SAML
(続)
(続)
z
認証の応答メッセージ(認証アサーション)
<samlp:Response InResponseTo=“8xtyzzKqPMLcFswefRIJAL“ MajorVersion="1" MinorVersion="0“ ResponseID=“xmlconsortium2002081002090011"> <samlp:Status> <samlp:StatusCode Value="samlp:Success"/> </samlp:Status> <saml:Assertion AssertionID="qJcZsDTnJBPPe/4tIJKuZ/OLMtE= “ IssueInstant="2002-06-10T11:22:33.456“ Issuer=“JUSTAir“ MajorVersion="1" MinorVersion="0"> <saml:Conditions NotBefore=" 2002-08-10T11:22:33.466“ NotOnOrAfter=" 2002-08-10T15:22:33.466 "/> <saml:AuthenticationStatement AuthenticationInstant=" 2002-08-10T11:22:33.106“ AuthenticationMethod="http://www.oasis-open.org/…/password"> <saml:Subject><saml:NameIdentifier Name=“JFB" SecurityDomain=“just:Reservation"/> <saml:SubjectConfirmation> <saml:ConfirmationMethod> http://www.oasis-open.org/…/password </saml:ConfirmationMethod> </saml:SubjectConfirmation> </saml:Subject> </saml:AuthenticationStatement> </saml:Assertion> </samlp:Response>
Assertion
認証の証明
NameIdentifier
ユーザ識別
2002/8/23 14
SAML
SAML
(続)
(続)
z
Interoperability
– OASISがInterOpでデモンストレーション [7/15]
•
12社が参加 (Portal Site / Contents Site)
z
Availability
– 既に製品が出荷されている
•
標準として確定してはないのに
– 多くの会社が製品化/対応を表明している
– フリーな実装も出てきた (Java / C++)
•
http://www.opensaml.org/ by Internet2(UCAID)
XACML
XACML
z
eXtensible Access Control Markup
Language
http://www.oasis-open.org/committees/xacml/
z
セキュリティ上の目標
– 任意の資源への詳細なアクセス制御のポリシー
を表現する
z
XACMLが決めるもの
– 「何」に対して「誰」が、「どのような」アクセスが可
能か/不可能かの評価ルール表現
– データフローモデル
2002/8/23 16
XACML
XACML
(続)
(続)
z
XACML Working Draft 15 (12 July 2002)
– Policy Schema
– Context Schema
z
特徴
– フレームワークの定義
– 様々なリソースへのアクセス制御ポリシーの表現
– 簡単な関数や演算機能を持つ
XACML
XACML
(続)
(続)
z
XACL – XML Access Control Language
– IBMのXSS4Jに含まれる
– XACMLのもととなった → XACLは柔軟性が課題
<xacl> <object href=“//*[@member=‘premium’]” /> <acl> <subject><role>Requester</role></subject> <action name=“read” permission=“grant” /> <condition operation=“and”> <predicate name=“compareStr”> <parameter value=“eq” /> <parameter> <function name=“getUid” /> </patameter> <parameter> <function name=“getvalue”> <parameter value=“/name” /> </function> </parameter> </predicate> </acl> </xacl>2002/8/23 18
XACML
XACML
(続)
(続)
PEP: Policy enforcement point PDP: Policy decision point PRP: Policy retrieval point PAP: Policy administration point PIP: Policy information pointz
データフローモデル
XML
XML
Repository
Requester
PEP
SAML Request
SAML Response
PIP
PDP
XML
subject, resource, environment
XACML
Repository
XACML Response
store
retrieve
XACML Request
install
PAP
PRP
XACML
XACML
(続)
(続)
z
構造
policySetStatement
policyStatement
rule
obligations
target
condition
effect
2002/8/23 20
XACML
XACML
(続)
(続)
z
ルールの評価
– ルールを評価した結果、ルールが有効であった
場合に、Effect属性に応じて、アクセスが「許可
(Allow)」または「拒否(Deny)」となる
Target
Target
Condition
Condition
Rule
Rule
Match
Match
True
True
Effect
Effect
Match
Match
False
False
Not applicable
Not applicable
Match
Match
Indeterminate
Indeterminate
Indeterminate
Indeterminate
No
No
-
-
match
match
True
True
Not applicable
Not applicable
No
No
-
-
match
match
False
False
Not applicable
Not applicable
No
No
-
-
match
match
Indeterminate
Indeterminate
Not applicable
Not applicable
Allow
Allow
Deny
XACML
XACML
(続)
(続)
z
XACML Context
ポリシーを評価する際に参照するデータを抽象化
domain-specific
inputs
domain-specific
outputs
xacml.xml
PDP
xacmlContext/
request.xml
xacmlContext/
response.xml
2002/8/23 22
XACML
XACML
(続)
(続)
<Rule RuleId=“//cons.com/rule/id/1” Effect=“Allow”> <Description>Sample policy</Description> <Target>
<Subjects MatchId=“function:string-match” DataType=“xs:boolean”> <AttributeDesignator Designator=“//xacmlContext/Subject/Attr…”
DataType=“identifier:rfc822Name” />
<Attribute DataType=“identifier:rfc822Name”>@</Attribute> </Subjects>
<Resources MatchId=“function:string-match” DataType=“xs:boolean” > <AttributeDesignator Designator=“//xacmlContext/Request/Res...”
DataType=“xs:anyURI” />
<Attribute DataType=“xs:anyURI”>//cons.com/record.*</Attribute> </Resouces>
<Actions MatchId=“function:subset” DataType=“xs:boolean”>
<AttributeDesignator Designator=“//xacmlContext/Action[@Name…” DataType=“xs:string” /> <Attribute DataType=“xs:string”>read</Attribute> </Actions> </Target> <Condition FunctionId=“function:dayTimeDuration-greater-than” DataType=“xs:boolean”>
<Function FunctionId=“function:date-subtract” DataType=“xs:dayTimeD...”> <AttributeDesignator Designator=“//xacmlContext/Other/…/Attribute[@DataType=‘…today...” DataType=“xs:date” /> <AttributeDesignator Designator=“//xacmlContext/Request/…/employee/employeeDoB” DataType=“xs:date> </Function> <Attribute DataType=“xs:dayTimeDuration”>20-0-0</Attribute> </Condition> </Rule>
subjects
対象となる要求主体
resources
対象となるオブジェクト
actions
許可される動作
condition
許可される条件
この例の場合、
「要求者(社員)の、
現在の年齢が
20歳以上」
まとめ
まとめ
z
標準としての規格化
– 基盤技術に関しては普及のフェーズへ
– 相互接続/運用性において、別途検討が必要
z
課題
– 作業完了までの期間の長期化・計画とのギャップ
– 拡張仕様への懸念
2002/8/23 24