->Webサービスにセキュリティの実装方法を標準化する動きが出てきた。米Microsoftと米IBM,米VeriSignの3社は,「WS-Security」というセキュリティ標準を発表した。●現状では各Webサービスごとに異なるセキュリティ技術を採用していたが,標準化することで,より便利にWebサービス間を連携できる。Webサービスの普及が期待できる。●WS-SecurityはWebサービスを利用するのに使う通信プロトコルのSOAPを拡張したものだ。SOAPメッセージを送信したユーザーを識別し,第三者がデータを改ざんしたり盗聴するのを防御できる。Webサービス(以下,Webサービス)にセキュリティを実装するための基盤が整い始めた。米IBM,米Microsoft,米VeriSignの3社は2002年4月,Webサービスにセキュリティ機能を実装するための仕様「WS-Security」を策定したと発表した。Consortium)などに標準化を働きかける予定だ。Webサービスとは,インターネット上での分散処理に向く新しいタイプのアプリケーション。Protocol)と呼ぶプロトコルを使って,Webサイト同士やクライアント-Webサイト間で通信を行える。現状では,Webサービスごとにセキュリティ対策に使う技術が異なっており,Webサービス間を接続するには,相手先の仕様に合わせて個別に対応する必要がある。そのため,米Microsoftと米IBM,米VeriSignはWebサービスの標準的なセキュリティ仕様を策定し,セキュリティの部分を意識しないでもWebサービスを利用できるようにする。WS-Securityは,Webサービスとの通信に使うSOAPメッセージに拡張タグを追加して,改ざんや盗聴,なりすましを防ぐものである。Webサービスの利点として,(1)利用者側のプラットフォームを問わない,(2)複数のWebサイトをシームレスに利用できる,(3)システム開発が容易になる――などがある半面,これまでどちらかというとセキュリティに関しては不安が残っていた。インターネット上のセキュリティ関連の技術には,データの暗号化,ユーザー認証,デジタル署名など,個々の要素技術は既に存在する。これらをWebサービスに実装する手段が決まっていなかったために,各社が独自にセキュリティを組み込まなければならなかった(図1[拡大表示])。Passportを使ってインターネットにアクセスするユーザーの認証を行っている。Passportに対応したWebサービス間であれば,シームレスな連携が可能になる。他の認証サービスを使用するWebサービスとの相互乗り入れや協調をしていくには,異なる認証システムを連携させる標準的な仕組みが必要となる。WS-Securityにより,セキュリティ技術の実装方法が標準化されれば,企業がWebサービスの開発をより効率化することが期待できる。「企業ユーザーにWebサービスを説明すると,便利さは分かってもらえても,セキュリティをどうするかで二の足を踏むところが多かった。.NETマーケティング部プログラムグループの熊谷恒治マネジャー)と語る。図2●SOAPメッセージにセキュリティ関連の情報を組み込む方法を提示SOAPメッセージを送信するユーザーを示す「セキュリティ・トークン」と,デジタル証明書やメッセージを暗号化した公開鍵の情報などを含む「デジタル署名」をどのように記述するのかを規定している。独自の署名方法や証明書ではなく,標準で使われる技術をSOAPメッセージに組み込む方法を示している。WS-Securityでは,SOAPの基本仕様を拡張して,SOAPメッセージを安全に送受信するためのデータ構造を規定している。データ構造などを詳細に解説したWS-Securityの仕様書は,Microsoft(http://msdn.microsoft.com/ws-security/)やIBM(http://www-106.ibm.com/developerworks/library/ws-secure/),VeriSign(http://www.verisign.com/wss/)のWebサイトからダウンロードできる。具体的に,どのようにセキュリティ技術を実装するのか,中身を紹介しよう。SOAPメッセージはSOAPヘッダとSOAPボディに分かれており,このうちSOAPヘッダの中に,<wsse:Security>と</wsse:Security>というタグで囲まれた部分を定義する。そこには,(1)セキュリティ・トークン,(2)デジタル署名,(3)データの暗号化方法,と主に3つの領域がある(図2[拡大表示])。(1)のセキュリティ・トークンは,SOAPメッセージを送信したユーザーを識別するものだ。基本認証で使うユーザーIDとパスワードの組であれば,<wsse:UsernameToken>というタグで表記する。他にもX.509証明書やKerberosチケットを<wsse:BinarySecurityToken>というタグで表記している。タグの中は,どんな技術を使うかを宣言するとともに,暗号化された証明書そのもののデータなどが含まれている。(2)のデジタル署名は,SOAPメッセージが途中の通信経路で改ざんされるのを防ぐためにある。ここにはSOAPメッセージのどの部分にデジタル署名を付加したのかを示している。デジタル署名は,SOAPメッセージを元にダイジェスト値を作成し,さらに秘密鍵により暗号化したものだ。Signature)の記述方法をそのまま使っている。SOAPメッセージを受信したWebサービスは,署名付きのデータから作成したダイジェスト値とデジタル署名で記述されているダイジェスト値を比較して,一致すれば改ざんされていないことが分かる。(3)の暗号化方法は,SOAPボディの中身を第三者に盗み読みされないように暗号化する方法が記述されている。Encryption)に則ったものだ。暗号化の技術には,秘密鍵暗号方式の3DESや公開鍵暗号方式のRSAなど標準的な技術が使える。このように一つひとつのセキュリティ技術は既に完成しているものである。WS-Securityでは,それをSOAPのタグの中でどのように使うのかを規定し,暗号化された証明書やデジタル署名などをSOAPメッセージのヘッダ部分に収めることでWebサービスのセキュリティを実装している。Frameworkのクラス・ライブラリの1つとして実装される予定アプリケーションからユーザー認証などのセキュリティに関する処理を分離できる。アプリケーション側では,ユーザーの認証方法を指定したり,SOAPメッセージが改ざんされてないかどうか意識する必要はない。Frameworkのクラス・ライブラリとして提供されることになる予定である(図3[拡大表示])。Layer)による暗号化通信とユーザー認証の処理を個別に開発していた。ユーザー認証が必要なWebサービスで,ユーザーの証明書が付加されたSOAPメッセージを受信した場合,Webサービス側で証明書の種類を識別し,証明書の有効性をチェックする必要がある。開発者はそれらを実行するプログラムを開発しなければならず,開発の負荷が大きくなる。ところが,WS-Securityの実行モジュールは,そのような処理を代わりに実行する。WS-Securityに対応したWebサービスが,SOAPメッセージを受信すると,そのままWS-Securityの実行モジュールを経由して,Kerberosなどの個々のユーザー認証システムを呼び出すことになる。開発者にとっては,セキュリティの部分を一から開発する必要はなく,実際に提供するサービスのロジック開発に注力できるようになる。表1●WS-Securityを基にした様々な共通化されたセキュリティの運用法がこれから策定される表で挙げた仕様を組み合わせることで,Webサービス全体をセキュアにできる。WS-Securityによって規定されているのは,Webサービス間で送受信されるSOAPメッセージのデータ形式だけである。Webサイト間でどのように信頼関係を築くのかといった,Webサービス間の運用に関する規定やデータの管理方針などは未定義のままだ。そのため,Microsoft,IBM,VeriSignは,今後,WS-Security以外に新しいセキュリティ仕様を策定していく予定である。全体としてWebサービスにおけるセキュリティのアーキテクチャをなす。今後出てくる仕様には,Webサービスがユーザーのセキュリティ・ポリシーを調査するための「WS-Policy」,Webサービス同士が信頼関係を確立するための「WS-Trust」,プライバシー情報の提示方法を規定する「WS-Privacy」などがある(表1[拡大表示])。これらのセキュリティの通信は,すべてWS-Securityで規定しているデータ形式を使いながら行われる。現場の負担軽減を!医療界でのAWS活用法500万社が導入。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。