SoftPark System Solutions
  SPAgentTM 1998
ご注意:

SPAgent とは?

SPAgentは、1998/3に(株)東芝で完成した電子流通実装基盤です。インタネット上で情報やデータ、プログラムなどのコンテンツを配信する際に必要となる、通信機能やセキュリティ機能をパッケージ化し、一般のブラウザで操作できるようにしたものです。
SPAgentは既存のWWWサーバに追加するSPAservモジュールと、エンドユーザのWindows PCにインストールする常駐クライアントSPAproxyが連携して動作し、ネットワークのセキュリティを守ります。ブラウザとは独立に安全性を確保するため、さまざまなPC環境からサーバにアクセスするお客様への信頼できるサービスを安定的に保証することができます。
SPAgentは外部の実行ライブラリを安全に起動し、またデータの交換を行うことができます。SPAgentの用意する標準ライブラリを利用することにより、特別のプラグイン等を用意することなく、さまざまな機能が簡単にWWWサーバで記述/提供できます(SPAgentの用意する標準ライブラリを含めてSPAgentと呼ぶ場合もあります)。

SPAgentのシステム構成

SPAgentシステム構成図
上図はSPAgentの構成を示しています。既存のWWWサーバ(注1)に追加する"SPAserv"とエンドユーザのWindows PCにインストールする常駐クライアント"SPAproxy"とが連携して動作し、SPAgent独自の暗号化/認証/データ圧縮が行われます。
サーバ側のアプリケーション(従来システムではCGIプログラムに相当するもの)は"SVP"(Service Program)と呼び、パッケージとしての認証の単位となっています。SPAgentはパッケージに対する認証とそれに対するアクセス許可レベルの設定という新しいスキームを導入することによりASPサービスの安全性を飛躍的に高めました。
SPAproxyはクライアント内で外部機能("SPAfilter")を呼び出すこともできますが、外部機能の起動は一般にセキュリティ設計に重大な影響を与える部分であるため、SPAgentの認証およびアクセス制御メカニズムにより厳しく実行が監視されます。
以上説明したSVPやSPAfilterは、それぞれ正当なSPAservおよびSPAproxy以外からは起動できない仕組みになっているため、計算機自体に侵入たウイルスがSPAgentシステム内のモジュールを直接実行する攻撃から完全に守られます(注2)。
SPAgentの持つこれらセキュリティ機能はブラウザの種類やWWWサーバの機能には全く依存しないため、各種のWWWサーバからさまざまなPC環境を持つお客様へのサービスを、一定の安全性を保証して提供できるだけでなく、ブラウザのバージョンにより機能が制限されることもありません(注3)。
このように、SPAgentで構築されたASPシステムでは、セキュリティの設計や各種ブラウザの仕様変更への対応など、従来システム開発費を増大させていた要因を排除し、安全かつ便利なシステム構築を短期間で行うことができます。
(注1)サーバに利用できるOSは現在Linux,Solaris,FreeBSDです。利用できるWWWサーバ(httpd)に制約はありません
(注2)SPAgentはブラウジングに関わるセキュリティを守るシステムであり、全ての種類のコンピュータウイルスによる被害を防ぐものではありません
(注3)SPAfilterの外部機能呼び出しを用いることにより、例えばJava Applet の動作がユーザにより異なるといった問題から開放されます。この特徴は、SPAgentにより提供するサービスに関するものであり、SPAgentの関知しない機能(例えばJavaScriptの機能)がブラウザにより異なるという問題を解決するものではありません。

SPAgentによるシステム構築とそのメリット

概要
SPAgentでASPシステムを構築する場合、主としてSVPの記述によりサーバ/クライアントの全ての動作の記述を行います。ブラウザへの表示はもちろんのこと、SPAfilterのサーバ側からの起動や、ユーザがブラウザを操作してのSPAfilterの起動、またそれらの組合せによるさまざまなサービスをSVPで安全にコントロールすることができます。
API詳細
SVPはCGIプログラムと大変似ており、CGI変数の場合と同様、SVPが起動される時にクライアント(ユーザ)の認証情報などSPAgentが判定したセキュリティ情報を受け取り、各アプリの必要に応じてそれを利用します。また、CGIが主にHTMLを出力するのに対し、SVPはHTMLの拡張であるSPA-HTMLを出力するという違いがあります。例えば、下表がその例です。
一般のHTMLSPA-HTML
<html><body background="/foo/image.jpg"> <a href="/foo/bar.html"> </body></htmL> <html><body spabackground="/foo/image.jpg"> <a spahref="/foo/bar.html"> </body></html>
この例にある spabackground および spahref が SPA-HTML独自の拡張属性部分です。本来のhtmlのリンク関係の属性である background や href の部分を書き換えることにより、その部分のリンク先に安全にアクセスすることができます。具体的には、当該リンクをSPAservが変換し、暗号化された状態でSPAproxyに渡し、必要に応じて復号してブラウザに渡します(ブラウザからソースを読むとリンク部分が意味不明な乱数として見えます)。
また、SVPが外部機能のSPAfilterを起動する例が下表です。spahidden という hidden の拡張属性に SPAfilter の呼び出し命令を引数と共に書いています(この例場合レジストリの読み書きを行う SPAfilter "registory" に、キーの書き込みを指示しています)。一見繁雑ですが、このAPIに従うだけで一般プログラマでもセキュリティシステムが容易に記述できます。
SPAfilterを呼び出す例(ユーザのPOSTにより起動させる場合)
<form spahidden= "SPpFn=1& SPpF1=registory +-action +w +-writetype +REG_BINARY +-writedata +00 +HKEY_LOCAL_MACHINE +Enum\\ESDI\\TOSHIBA+MK4310">
(注4)SPA-HTMLおよびSPAfilter群の文法仕様書は現時点では一般公開されておりません
システム構築メリット
このサーバ/クライアント通信は、第三者から盗聴されないことのはもちろんですが、他のサーバにSPAgentを動かすリンクを書いたり、ユーザがSPAgentを動かすリンクを書き換えたりして、サーバの想定しない動作をさせることは一切できません。この点がSPAgentが従来のSSLなどを使った認証システムより飛躍的に安全性を高めたポイントです。
従来はこれら偽造に対する対策をアプリケーションに記述したり全てのセッション管理をするなどの多大な開発コストを掛けない限り常にセキュリティ・ホールの存在を恐れている必要がありました。すなわち、システムの安全性がプログラマのスキルに大きく依存していました。これに対し、SPAgentを使った開発では、SPA-HTMLの文法に従ってシステムを記述することにより、常に一定レベルの安全性が保証されます(注5)。
(注5)SPAgentが保証するのは、SPA-HTMLの拡張文法を使った通常の用法による通信の安全性であり、SPAgentを使ったシステムが全てのプログラミング・ミスをカバーするものではありません。
システム保守メリット
SPA-HTMLはHTMLの上位互換ですから、安全性を必要としないリンクについては、普通のHTMLの記述で良く、従来のCGIプログラムをSPAgentに対応した安全なSVPに書き換えることが容易にできます。
また、SPAgentは独自拡張部分以外には全く手を触れませんから、SPAgentで構築したシステムは将来HTML文法の拡張/変更があった場合にもそのまま使い続けることができますし、ブラウザの仕様変更にも容易に対応できます。

SPAgentのセキュリティ機能

(参考までに、従来のブラウザにも同等機能がある項目には△、一部がある機能には▽を付けています)
★サーバ認証、暗号化 △
SPACA(SPAgent Certification Authority)の発行した正当なデジタル署名を持ったサーバへのアクセスであることを証明します。これに基きサーバ公開鍵を用いた暗号通信を行います。
★サービス認証
正当なサーバであっても、そこで運営されているサービスはまちまちです。SPAgentではどんなサービス(SVP)に対するアクセスであるかを保証する独自のセキュリティ機能を持ちます。
ユーザは、どのサーバのどんなサービスに対してどんな機能を動かすことを許可するかを指定することができ、正当なサーバが特権を過剰に活かしてプライバシーを侵害したりする危険を防ぐことができます
★クライアント認証 ▽
SPAgentはどのユーザからのアクセスであるかを判定します。
あるユーザがあるSPAservに初めてアクセスした時に秘密鍵が生成され、以後この秘密鍵に関連付いた番号(SPAuserID -- ユーザは通常知らない)が発行されます。
この認証の単位はクライアントのOSが持つユーザの概念とは独立であるため、ユーザ管理が曖昧なPCでも確実にユーザ認証が行われます。また、ユーザは自身の証明書を取得する必要は無く、認証を受けるためにプライバシーを公開する必要もありません。
★遠隔操作検出機能
SPAgentを使ったサービスでは、クライアントPC内のプログラムの起動は、必ずSPAfilterを経由して行われるようになっています。SPAfilterの機能はシンプルで、ファイルの読み出し、書き込み、レジストリの読みだし、ライセンスファイルの保存、等が用意されており、ユーザは今どんな機能(プログラム)をサーバが動かそうとしているのか下図の通り一目瞭然です。 レジストリ読み出しの警告ダイアログ
従来のブラウザでは、一旦ヘルパーアプリを登録したり、プラグインを認めたりすると、サービス提供者が自由にPCにアクセスすることができてしまうので、サービス運営者の態度を盲目的に信頼しなければサービスを利用することができませんでした。
★ページ偽造排除機能
SPAgentは第三者が偽造したページのリンクをたどってのアクセスを禁止する機能を持ちます。従来のSSL機能ではユーザに警告を出すことしかできず、多くの場合はユーザが無条件に「はい」を選択することが問題となっていました。
SPAgentは正当なユーザ自身も、ページを偽造することができない機能を持ちます。従来のSSLを使ったデータのPOSTでは、POST用のFORMデータ自体をユーザが書き換えCGIプログラムの想定しないPOSTをすることが可能であり、思わぬセキュリティ・ホールが発生することが問題となっていました。
★ASP共通化機能 ▽
PassPhrase入力によりSPAproxyを活性化ユーザは認証に使われる秘密鍵を最初に利用する時に出るダイアログ(右図)にSPAgent用のパスワードを1回入力すれば良く、サイトごとに異なるパスワードを記憶する必要はありません。もちろん、SPAuserIDはサーバごとに異なる番号であり、cookieを用いた情報結合のようなプライバシー侵害の危険にさらされることはありません。

SPAgentの周辺機能

★ネットワークインストール機能
インタネットブラウザの操作(マウスのクリック)だけで以下の機能が実現する仕組みが組み込まれています。パソコンの知識が無くとも簡単にインタネットでソフトの購入やインストールをすることが可能です。
★自動インストール機能
必要なソフトウエア一式をユーザの持つパソコン環境に合わせて配布し、インストールまで自動で完了します。
★自動バージョンアップ機能
ソフトのバージョンアップ時にも、ダウンロードボタンをクリックするだけで必要なファイルを配布し、バージョンに合わせたセットアップを自動で行います。
★ネットワークの混雑に耐える数々の機能
下記のさまざまな機能により、ネットワークの細さや混雑に起因するトラブルを防止し、また通信コストを低減します。
★自動セットアップ機能
ダウンロード時に、Windowsのアンインストーラなどの設定を自動で行います。インストーラを作成しなくともインストールやレビジョンアップなどの手順をネットワーク越しに自動的に実行します。また、既に一般のインストーラが組み込まれたアプリに対しても、ネットワークインストールやアンインストールができるようになっています。
★ソフトウエアライセンス管理機能
アプリケーションソフトウエアの実行ライセンスを配布する機能を持ちます(注6)。アプリケーションをソフト本体とライセンスファイルとに分割し、ユーザはライセンスの購入によってアプリケーションを購入または期間限定で利用することができます。また、本システムは以下のような優れた特徴を持ちます。
(注6)現在、Windows95/98のソフトウエアにのみ対応しています。
★不正コピー防止機能
購入したソフトやライセンスを他のPCにコピーしても動作しません。
★ライセンスファイル配布機能
ソフトウエアを実行するための鍵に相当するライセンスを配布する機能を持ちます。ライセンスはアプリケーションごと、またインストールするPCごとに必要になり、不正コピー防止機能と合わせ、サーバからのライセンス発行管理を容易にします。
また、ソフト本体とライセンスを分離したことにより、サイズの大きなソフトはCD-ROMで配布し購入はネットワークでという応用も可能です。
★期間限定ライセンス機能
例えば1か月利用可能といった期間限定でのライセンスを発行することができ、アプリケーションの利用期間に応じた柔軟な課金を行うことができます。
★アプリケーションのASP化ツール (ソフトベンダー様メリット)
一般にアプリケーションをライセンス販売したり利用時課金したりするためには、起動を制御するための改造(ASP化)の作業が必要になってきますが、SPAgentシステムを利用した場合、既存のアプリケーション(exe)をライセンス管理するための専用ツールが用意されており、導入が容易にできます。
★アプリケーションのオフライン実行 (アプリユーザ様メリット)
ライセンスはファイルとしてPCにインストールされますので、アプリケーションの実行時にPCがネットワーク接続されている必要はありません。ライセンスの購入時のみブラウザでライセンスの入手をすれば、あとはライセンスのある限り何度でも安心してアプリケーションを実行することができます。
★アプリケーションのお試し/機能限定
ライセンスファイルには、そのアプリケーションをどのように実行させるかを記述することができるので、例えば機能を限定して実行するライセンスを発行したり、試用版である旨を表示させたりすることが、ライセンスの発行で管理できます(注7)。
都度アプリケーションをダウンロード/インストールし直す必要も無く、何種類もの製品バージョンを同時に管理する手間からも開放され、1つのアプリケーションをさまざまな形で販売することが可能です。
(注7)本機能を利用する場合に限り、自動方法(オプション)を指定するためのライブラリをアプリケーションに組み込む(コンパイル)作業が必要です。
以上の特徴を生かしますと、利用台数に応じて課金する包括契約販売や、特定のPC1台だけに利用を限定した安価なライセンス販売など、販売戦略に応じた価格設定を行うことに柔軟に対応できます。また、ネットワークインストール機能とも組み合わせることにより、ブラウザによりASPサービス利用するのと同様の使い勝手で、初心者ユーザの方でもアプリケーションソフトウエアを簡単かつ柔軟に利用することができます。

システム適用例

PCの自動設定および修復をインタネット上で行うことのできるヘルプデスクが(株)東芝より発表されています(注8)。SPAgentの遠隔操作検出機能を使うことにより、Windows PCのレジストリ内容等の参照や書き換え等を安全に実行し、そのルール(事例)が容易に記述できるものです。1998年9月に情報処理学会全国大会で発表されました。
(注8)技術発表のみ。一般向けサービスは行われておりません
また、アプリケーションソフトを期限付きでレンタル可能なものに容易に変更し、課金してサービスできる「ソフトウエア有期貸出ASPサービス」が(株)東芝より実施されています。2001年4月に新聞発表されました。企業内で利用するアプリケーションの導入/管理を容易にする新しいシステムとして注目されています。

SPAgentの利用方法

現在、SPAgentはサーバ、クライアント共、販売されておりません。(株)東芝のソフトウエア有期貸出ASPサービスご利用の方にはクライアントパッケージおよび説明書を無料でご提供させて頂いております。
クライアントパッケージをダウンロードしてインストーラを実行/設定すると、SPAgentに対応したサーバ(WWWサイト)にブラウザでアクセスした場合のみSPAproxyおよびSPAfilter群の機能が有効になります。

本資料を印刷するには、本資料のカタログ版を表示してブラウザの印刷機能を使います。
ご注意:
本文書は技術紹介であり、SPAgent関連製品の性能を保証する目的のものではありません(情報提供:(株)東芝 研究開発センター)

SoftPark Home Page SoftPark トップページへジャンプ
Presented by SoftPark