セキュリティ部会 (株)JIEC 工藤 奈緒美

Slides:



Advertisements
Similar presentations
1 プリミティブ Web サービスの 入出力データに関する一考察 2005 年 3 月 21 日 松江工業高等専門学校 情報工学科 奈良先端科学技術大学院大学 情報科学研究科 越田高志 電子情報通信学会 2005年総合 大会.
Advertisements

XML ゼミ 独習 XML ~ 第 6 章 XHTML~ 6.1 XHTML の概要 6.2 XHTML の構造 谷津 哲平.
電子社会設計論 第12回 Electronic social design theory 中 貴俊.
1 会社名: 氏名: 日付: 会社名: 氏名: 日付:. 2 内容 企業のセキュリティ対策状況 ユーザー管理の重要性 ユーザー管理製品 市場状況 Active Directory とは Active Directory 利用に最低限必要な準備 ユーザー管理のご提案内容 最初の取り組み:ユーザー情報の統合管理.
2006年9月27日 植田龍男 Webサービス II (第1回) 年9月27日 植田龍男.
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
情報基礎A 情報科学研究科 徳山 豪.
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
最新XMLセキュリティ技術概要 ドラフト版 2005年12月15日 XMLコンソーシアム セキュリティ部会 横溝 良和 (キヤノン株式会社)
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
~ 第6回 XMLコンソーシアムWeek ~ セキュリティ部会活動報告 セキュリティ部会 活動のご紹介
~ 第8回 XMLコンソーシアムDay ~ セキュリティ部会活動中間報告 セキュリティ部会のご紹介
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Web-EDI方式 シナリオ1 [実験番号] : 実験タイトル 1 :標準類の評価
~ XMLコンソーシアム 部会紹介セミナー ~ セキュリティ部会 活動のご紹介
WebDAVでOpenOffice.org の文章を共有する
Androidアプリを公開する方法.
NC-2 情報通信基礎実験 WEBデザイン基礎実験 (2日目) 担当:清水,田代 副手:浦辺,石井.
WebサービスII (第10回) 2007年11月28日 植田龍男.
JavaによるCAI学習ソフトウェアの開発
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
Myoungkyu Song and Eli Tilevich 発表者: 石尾 隆(大阪大学)
Webサービスポリシー概要 (WS-Policy, WS-PolicyAttachment, WS-SecurityPolicy)
XMLについて 蔡柏東.
2005年11月17日 Webサービス II (第6回) 年11月17日.
Outlook で送信したメールの 添付ファイルが消える
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
ID連携を実現するSAML 2.0 と ID管理の最新動向
MSBuild 色々出来るよ 2011/04/02 お だ.
HTTPプロトコルとJSP (1) データベース論 第3回.
HTTPプロトコル J2EE I 第7回 /
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
2005年10月6日 植田龍男 Webサービス II (第2回) 年10月6日 植田龍男.
XMLゼミ 5.1 XML文書と表示 5.2 CSS 5.3 XMLとXSL 高橋 辰裕.
ID連携を実現するSAML 2.0 と ID管理の最新動向
UMLとは           032234 田邊祐司.
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
第8章 Web技術とセキュリティ   岡本 好未.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
Ibaraki Univ. Dept of Electrical & Electronic Eng.
SOAP/UDDI/WSDLによるB2Bシステムの開発
SOAP/UDDI/WSDLによるB2Bシステム構築の一事例
SAML 2.0解説 その2 sstc-saml-tech-overview-2.0-draft-09を元に
その他の図 Chapter 7.
.NET Framework 3.0 概要 (旧称 : WinFX)
仕事: SystemVerilogを使いたい
Javaによる Webアプリケーション入門 第2回
PKI 情報工学専攻 1年 赤木里騎 P91~102.
JXTAの概要 P2P特論 (ソフトウェア特論) 第3回 /
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
第1章 実世界のモデル化と形式化 3.地物インスタンスの表現
第13回 2007年7月20日 応用Java (Java/XML).
コンピュータ プレゼンテーション.
XML Schema (1) ソフトウェア特論 第3回 /
XMLゼミ 3.5 DTD M2 正木 裕一.
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
基礎技術ー3 : Webページの標準規格について
独習XML ~第1章 XMLの基礎~ 1.1 XML文書の基礎 1.2 XMLとHTML
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
JSPの基本 J2EE I (データベース論) 第8回 /
BCP対応システムについて 横浜ゴム㈱ グローバル調達本部.
Googleマップを活用した 生物調査データベースの構築
統合開発環境のための プログラミング言語拡張 フレームワーク
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
Presentation transcript:

セキュリティ部会 (株)JIEC 工藤 奈緒美 WS-Policy 仕様 皆さんお疲れ様です。JIEC工藤と申します。 本日は、セキュリティ部会の皆さんに教えて いただきながら、 WS-Policy 仕様について 調査した結果を発表したいと思います。 セキュリティ部会 (株)JIEC 工藤 奈緒美

目次 WS-Policy WSDL との関係 WS-Policy モデル WS-Policy フレームワーク ドメイン固有表明 WS-SecurityPolicy WSIT での実装 まとめ 本日お話する内容ですが、 まず WS-Policy について、WSDLとの関係を簡単に説明します。 それから WS-Policy モデルを紹介して、その表記仕様である WS-Policy フレームワークと、ドメイン固有表明のひとつである WS-SecurityPolicy について説明します。 次に、WS-Policy と WS-SecurityPolicy を利用した実装である WSIT について説明します。

WS-Policy WS-Policy 仕様とは、Web サービスの定義言語である WSDL で表現できない規則を表現する XML を使用した記述ルール。 Webサービスの能力、要件(制約)を表現するもの。 WS-Policy WS-Policy 仕様とは、Web サービスの定義言語である WSDL で 表現できない規則を表現する XML を使用した記述ルールで、 Webサービスの能力、要件(制約)を表現するものです。 WSDLで記述されたWebサービスに対して、メッセージ最適化、信頼性、 セキュリティという各領域で、サービスの能力や要件(制約)を表現するための 仕様が、WS-Policy です。 具体的には、ブートストラップは、クライアントがサービス・レジストリから URL を 取得し、ポリシーや WSDL などのメタデータを取得するための仕様、 メッセージ最適化は MTOM (SOAP Message Transmission Optimization Mechanism) という Webサービスでバイナリ・データを扱うための仕様、信頼性 ならばコネクション確立手順の仕様、セキュリティならば署名、暗号化などの 仕様です。 ここにはこの3つを挙げましたが、この他にも、例えばトランザクション処理に 関する記述など、様々な領域のルールがあり得ます。 メッセージ最適化 信頼性 セキュリティ WSDL1.1

wsdl1.1 で表現できること wsdl (http://schemas.xmlsoap.org/wsdl/) で表現できること 操作 電文形式 通信プロトコル テレフォンバンキング サービスインタフェース 口座情報 残高照会 支払先検索 支払先登録 テレフォンバンキング 通信プロトコルはSOAP WSDL で表現できない部分を記述するのが WS-Policy ですが、 では WSDL で表現できることは何か、ということを簡単に説明 します。こちらは、Eclipse の WTP プラグインの機能である WSDL Editor で、サンプルの WSDL を開いたところです。テレフォン バンキングというサービスインタフェースの中に、残高照会、 支払先検索、支払先登録、支払い、という4つの操作と、それぞれの 操作の入力/出力電文の定義があります。矢印の先が、電文形式の 定義です。例えば、残高照会操作の入力電文である口座情報は、 氏名と口座番号で構成されています。通信プロトコルは SOAP を 使用しています。 要するに、WSDLで表現できるのは、操作、電文形式、 通信プロトコルだけです。 支払 Eclipse SDK 3.2.1 WTP(Web Tools Platform)プラグイン WSDL Editor

WS-Policy 関連仕様 : ポリシー記述の枠組み WS-Policy Framework [W3Cで標準化中] WS-PolicyAttachment [W3Cで標準化中] ドメイン固有表明(Assertions) WS-SecurityPolicy(セキュリティ関連) [OASIS で標準化中] WS-RM Policy(高信頼メッセージング関連) [OASIS で標準化中] WS-BA Policy(WS-BusinessActivity)(トランザクション関連) [OASIS で標準化中] AT Policy (WS-AtomicTransaction) (トランザクション関連) [OASIS で標準化中] WS-MTOMPolicy(メッセージ送信の最適化関連)[標準化団体未提出] ポリシー取得プロトコル WS-MetadataExchange(メタデータ取得関連)[標準化団体未提出]     : WSDL を拡張するための WS-Policy 関連仕様には、 W3C という国際標準化団体で標準化中の、 WS-Policy フレームワーク、WS-Policy アタッチメント があります。 WS-Policy フレームワークは、特定の業務分野固有の 表明の組み合わせルールを記述するための仕様です。 WS-Policy アタッチメントは、Webサービス本体の仕様 である WSDL と、ポリシーを紐付けるための仕様です。 特定業務分野固有のルールを記述する仕様としては、 セキュリティ関連の WS-SecurityPolicy 、信頼性関連の WS-RM Policy、トランザクション関連のWS-BA Policy、 AT Policy などがあり、いずれも標準化の途中です。 この他にも、WS-MTOMPolicy というメッセージ送信の最適化に 関する仕様や、WS-MetadataExchange という WSDL、ポリシー などのメタデータを取得するプロトコルの仕様がありますが、こちら は現在標準化団体に提出されていないという問題点があります。

WS-Policy モデル ポリシーは複数ポリシーを含むことができる。 複数ポリシーを AND または OR 条件で組み合わせることができる。 PolicyA 全体ポリシーとしては、条件1、2、3のうちのいずれか一つを満たせば良い(PolicyA)が、特定業務に限り、条件1、2、3の全てを満たさねばならない(PolicyB) ExactlyOne PolicyB 条件1 All では、WS-Policy モデルについて簡単に説明します。 基本的なルールは、 ・ポリシーは複数ポリシーを含むことができる。 ・複数ポリシーを AND または OR 条件で組み合わせることができる。 ということです。 図のポリシーAが全体ポリシーで、ExactlyOne で囲まれているので 条件1,2,3のうちのいずれか一つを満たせば良いのですが、 部分的にポリシーBを適用するところは、 All で囲まれているので 条件1,2,3の全てを満たさなければならないということになります。 条件2 条件1 条件3 条件2 条件3

DigestAlgorithm(SHA) WS-Policy Framework http://schemas.xmlsoap.org/ws/2004/09/policy/ws-policy.xsd 列挙された条件の全て(AND) Policy Policy choice All 列挙された条件のうちのどれかひとつ(OR) ExactlyOne name(URI) PolicyReference Id こちらが、WS-Policy フレームワークのスキーマ構造です。 ポリシーには URI や Id という属性があり、その中に All または ExactlyOne で囲まれた個別の条件を含めることもできますし、 ネストしたポリシー や、 URI などで表される別のポリシーへの 参照を含めることもできます。 URI Digest(base64Binary) DigestAlgorithm(SHA) any

WS-Policy のスキーマ (抜粋) ポリシー要素の型 繰り返し:0~∞ポリシー自体あってもなくても良い 何でも可能 こちらが、実際のスキーマファイルの一部です。 ポリシー要素の型は OperatorContentType 型の拡張型であり、 その子要素としては Policy, All, ExactlyOne, PolicyReference などから 選択することができますが、最後に any というタグがあるので、その他 にオリジナル・タグも使用して、拡張することが可能です。 スキーマを拡張する際の注意点としては、 ①ポリシーを作る側と使う側が合意した場合に限る ②WS-Policy の名前空間に要素を追加するのではなく、名前空間を変更して 追加する、などがあります。 何でも可能

WS-PolicyAttachment http://schemas.xmlsoap.org/ws/2004/09/policy/ws-policy.xsd PolicyAttachment PolicyURIs WSDL へのポインタ AppliesTo Policy 次に、こちらが WS-PolicyAttachment の仕様です。 PolicyAttachment には、PolicyURIs という属性があり、 子要素として、 WSDL へのポインタである AppliesTo タグと ポリシーへのポインタである Policy タグまたは PolicyReference タグ のいずれかを持ちます。 ポリシーへのポインタ choice PolicyReference any

WS-PolicyAttachment のスキーマ(抜粋) Webサービス本体(wsdl)への紐付け ① ② ポリシーへの紐付け ③ こちらが、実際の WS-PolicyAttachment のスキーマです。 PolicyAttachment 要素の子要素として WSDL への紐付け をする AppliesTo タグと、ポリシーへの紐付けをする Policy または PolicyReference タグがあります。 また、最後に any タグがあるので、他に必要なものを何でも 追加することができます。 ここまでが ポリシーの枠組み部分の仕様となります。 何でも追加可能

WS-SecurityPolicy Webサービスのセキュリティに関する仕様 メッセージ保護方法(署名、暗号化)の表明方法 http://schemas.xmlsoap.org/ws/2005/07/securitypolicy Webサービスのセキュリティに関する仕様 メッセージ保護方法(署名、暗号化)の表明方法 セキュリティ・トークン(構成要素)の表明方法 ユーザ名/パスワード X.509証明書 Kerberosチケット SAMLアサーション RELライセンス WS-SecureConversationのセキュリティ・コンテキスト・トークン 署名、暗号化のアルゴリズムの表明方法 Basic256、3DES、SHA、RSAなどを利用 鍵交換方式などの指定 次に、ドメイン固有表明のうちのひとつである WS-SecurityPolicy について 説明します。こちらは、Webサービスのセキュリティに関する仕様で、 署名、暗号化などのメッセージ保護方法の表明方法や、 ユーザー名、パスワード、X509証明書、ケルベロス・チケット、 SAMLアサーション, RELライセンス 、WS-SecureConversation のセキュリティ・コンテキスト・トークンといったセキュリティ・トークンの 表明方法や、Basic256、3DES、SHA、RSAといった署名・暗号化 アルゴリズムや鍵交換方式の表明方法について決めた仕様です。 WS-Policy の ExactlyOne や All で囲まれた、個別の条件に当たる部分です。 セキュリティ・ポリシーのスキーマを使用したポリシーの1例が、WSITの チュートリアルとして SunMicroSystems から公開されています。

WSIT とは WSIT = Web Services Interoperability Technology Java プラットフォームと .NET プラットフォームの相互運用性促進を目的に、SunMicrosystems が各種Webサービス技術をまとめた実装 オープンソース WSIT のチュートリアル(http://java.sun.com/webservices/interop/reference/tutorial/doc/index.html) で使用している設定ファイル WSDL と WS-Policy を WS-PolicyAttachment を使用して統合 WSITとは、Web Services Interoperability Technology の略で、 Java プラットフォームと .NET プラットフォームの相互運用性促進を目的に、 Sun Microsystems が各種Webサービス技術をまとめた実装で、 すでにオープンソースで開発が進んでいるそうです。 このチュートリアルで使用している設定ファイルでは、WSDL と WS-Policy を WS-PolicyAttachment を使用して統合した形式になっています。

WSIT 設定ファイル① WSDL WS-Policy Eclipse SDK 3.2.1 WTP(Web Tools Platform)プラグイン XML Editor こちらが、WSITの設定ファイルを Eclipse SDK の XML Editor で開いたところです。 WSDL の外枠である definitions タグの直下に、message, portType, binding, service という WSDL のタグに続いて、WS-SecurityPolicy 仕様を含む WS-Policy フレームワークのPolicy タグが3つあることがわかります。 WSDL WS-Policy

WSIT 設定ファイル② 1.計算機全体のポリシー Sun/WSIT 独自のもの 1.1.共有鍵のポリシー 1.2.Trust10のポリシー このAll直下のポリシーを全て満たす必要がある アドレッシングを使用 プライベートキーを保存したファイルにアクセスする仕組み Java keystore を使用 Sun/WSIT 独自のもの 信頼性のある証明書を保存したファイルにアクセスする仕組み まず一つ目のポリシーを見てみると、Id が CalculatorWSPortBindingPolicy という 名前の、計算機全体のポリシーであることがわかります。そのポリシーの要素は、 All タグで囲まれているので、含まれる個別の表明またはポリシーは、全て満たす 必要があることがわかります。個別の表明としては、アドレッシングを使用することや、 また Sun/WSIT 独自のタグとなりますが、プライベートキーを保存したファイルに アクセスする仕組みや、信頼性のある証明書を保存したファイルにアクセスする 仕組みがあり、いずれも Java keystore を使用しています。 証明書にアクセスする仕組みは、さらにネストしたポリシーを含むといった構造に なっています。 1.1.共有鍵のポリシー ネストしたポリシー 1.2.Trust10のポリシー 1.3.署名に使用する要素のポリシー 1.4.Wss11のポリシー

WSIT 設定ファイル③ 1.1.共有鍵のポリシー こちらは、そのネストしたポリシーの中のひとつで、共有鍵のポリシーですが、 メッセージ保護のために、 X509証明書のトークンを使用し、導出鍵が 必須で、X509証明書のハッシュ値であるサムプリントが必須であることなど がわかります。 X509証明書のトークンを使用 導出鍵必須       指紋認証必須

WSIT 設定ファイル④ 1.2.Trust10のポリシー 1.3.署名に使用する要素のポリシー 1.4.Wss11のポリシー こちらが、ネストしたポリシーの2つ目以降です。 2つめの、Trust10 のポリシーとしては、発行済の要素はサポート必須、 クライアントエントロピーとサーバーエントロピーも必須であることがわかります。 3つめのポリシーからは、署名には X509証明書を使用し、 4つめのポリシーからは、発行者通番による参照のサポートが必須であり、 サムプリント参照のサポートが必須であり、暗号化された鍵の参照のサポートが 必須であり、鍵識別子による参照のサポートが必須であることがわかります。 1.4.Wss11のポリシー 発行者通番による参照のサポート必須 サムプリント参照のサポート必須 暗号化された鍵の参照のサポート必須 鍵識別子による参照のサポート必須

WSIT 設定ファイル④ 2.計算機入力のポリシー このAll直下のポリシーを全て満たす必要がある 暗号化対象は SOAP の Body 部分 暗号化要素は特に指定なし 署名対象はSOAP の Body 部分と Header の一部 こちらが、トップレベルの2つ目のポリシーで、CalculatorWSPortBinding_addinput_Policy という名前の計算機入力のポリシーです。 暗号化と署名に関する表明が All で囲まれているので、これらを全て満たす必要があります。 暗号化対象は SOAP の BODY 部分で、暗号化要素を表す EncryptedElements というタグ がありますが、この例では設定されていません。 署名対象部分は SOAP の BODY 全体と、ヘッダー内の 宛先、送信者、 送信に失敗したときのメッセージ送付先、返信先、メッセージID、関連メッセージ、 アクションといった属性であることがわかります。署名要素を表す SignedElements というタグがありますが、この例では設定されていません。 トップレベル3つ目のポリシーは、計算機出力のポリシーで、計算機入力の ポリシーとほぼ同じなので、説明は省略します。 署名要素は特に指定なし

まとめ WS-Policy は、WSDL で表現される Web サービスを拡張するもの。 以上で、まとめに入ります。 WS-Policy は、WSDL で表現される Web サービスの能力、要件(制約)を 表現するもので、その他のドメイン固有ルールを組み合わせるルールです。 ドメイン固有ルールには、今のところメッセージ最適化、信頼性、セキュリティ などの領域があり、今後もその領域は拡張する見込みです。 そして、これらのポリシーを表す XML のタグは、自由に拡張することが 可能で、そのタグをどんな意味に解釈するかは、特に規定がない限り 実装する人に任されています。 ということで、WS-Policy を使ってみたい場合は、既存の製品に組み 込まれた機能を使うこともできますし、また製品の機能に飽き足らない というハイレベルな人は、自分で1から作ってみることも可能です。 さらに、このパッケージがオープンソース化された場合は既存のソース を読んで勉強することもできますし、機能の追加や修正も可能です。 それぞれの目的や用途に合った使い方を自分で選択することが 可能です。 メッセージ最適化 信頼性 セキュリティ WSDL1.1

(参考) XMLスキーマのデザインパターン ロシアン・ドール WS-Policy とは直接関係ないのですが、 ご参考までに、XMLのパターンをご紹介します。 こちらは、ロシアン・ドールというパターンです。 入れ子人形で知られるマトリョーシカのように、全てのエレメントと複合型が 一つのエレメントの中に入れ子になった形で定義されているようなスキーマ です。エレメント、複合型がまとめて入れ子に定義されています。ぜんぶ 一まとめでわかりやすいのですが、再利用をしようとするときには全て使うか、 すべて使わないかのどちらかしか選べません。

(参考) XMLスキーマのデザインパターン ベネチアン・ブラインド 次に ベネチアン・ブラインドというパターンです。 このパターンはマトリョーシカ・パターンの特徴を受け継いでいます。違いは 中に含まれているエレメントの型をグローバルに定義しているところです。

(参考) XMLスキーマのデザインパターン サラミ・スライス 次にサラミ・スライスというパターンです。 すべてのエレメントがグローバルに定義されているようなスキーマです。すべての エレメントが再利用しやすい形ですが、どこがルートなのかが分かりにくいという 欠点があります。

(参考) XMLスキーマのデザインパターン エデンの庭 最後に、エデンの庭というパターンです。 ベネチアン・ブラインドとサラミスライスの混合型です。 すべてのエレメントと型は別々に定義されます。 細かく再利用できそうですが、細かすぎてわかりにくいかもしれません。 以上、ロシアン・ドール、ベネチアン・ブラインド、サラミ・スライス、エデンの庭 という4つの典型的なパターンをご紹介しました。

お疲れ様でした 私からは以上です。お疲れ様でした。