説明

アプリケーションシステム、アプリケーションプログラム、記憶媒体、及びサーバ装置

【課題】 アプリケーションの不正使用を防ぎつつ、アプリケーションの起動制御を行うこと。
【解決手段】 事業者は、ユーザにアプリケーションを販売する場合に、アプリケーションと共に確認デバイスを提供する。確認デバイスには、第1公開鍵証明書が記憶されている。アプリケーションを起動する場合、確認デバイスをクライアント端末に接続してからアプリケーションに起動を命じる。アプリケーションは、確認デバイスから第1公開鍵証明書を読み出して正当性を確認し、第1公開鍵に記されているシリアル番号を管理センタに送信する。管理センタはシリアル番号に対応する起動情報をクライアント端末に返送し、アプリケーションは、起動情報に従ってユーザが使用できる機能を制限して起動する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションシステム、アプリケーションプログラム、記憶媒体、及びサーバ装置に関し、例えば、アプリケーションの起動を制御するものに関する。
【背景技術】
【0002】
近年のコンピュータの普及とアプリケーションの充実によって、従来は手作業で行っていた作業をコンピュータ上で効率よく行えるようになってきた。
これらアプリケーションには、ワードプロセッサ、表計算ソフトといったような汎用の安価なものから、建築設計用CAD(Computer Aided Design)や機械設計用のCADなど、高度な情報処理機能を持った高価なものまで各種のものが存在している。
【0003】
一般に、アプリケーションは廉価版、デモ版、通常版などの複数の仕様(バージョンなど)が用意されており、仕様によって使用できる機能や期間などの使用条件が規定されている。ユーザは、使用目的や予算に応じて仕様を選択する。
【0004】
アプリケーションは、仕様ごとに用意されているため、事業者(アプリケーションのベンダ)は、ユーザから仕様の変更を依頼されると、変更後の仕様のアプリケーションを新たにユーザに提供していた。
また、使用条件に応じてアプリケーションを起動する技術として次の「端末装置」がある。
【0005】
【特許文献1】特開2004−302963公報
【0006】
この技術は、予めダウンロードしてあるファイルに記載されている制限に従って、アプリケーションを起動するものである。
このファイルには、有効、無効の2つの状態があり、この状態をサーバ装置にて管理できるものである。
【0007】
ところで、アプリケーションは、コンピュータプログラム(アプリケーションプログラム)の形で配布されることから不正コピーなどによって不正使用されやすいという一面がある。
CADなど高価なアプリケーションでは、莫大な開発費などが必要であり、不正使用された場合、その被害は甚大である。
【0008】
そのため、アプリケーションプログラムにコピープロテクションを施したり、あるいは、アプリケーションの使用に際し、キー情報を記憶した所定のハードウェアをコンピュータに装着することを要求するなどの対策が講じられている。
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかし、従来は、ユーザに配布してあるアプリケーションの利用可能な機能を事業者側で動的にきめ細かく設定することはできなかった。
そのため、例えば、ユーザが、簡略な機能を備えたアプリケーションから同一銘柄のより高度な機能を備えたアプリケーションに乗り換える場合、高度な機能要のアプリケーションをユーザに配布する必要があった。
また、本実施の形態で説明するように、アプリケーションの機能制御とアプリケーションの不正使用の防止を同時に行う技術は無かった。
【0010】
そこで、本発明の目的は、アプリケーションの不正使用を防ぎつつ、アプリケーションの起動制御を行うことである。
【課題を解決するための手段】
【0011】
本発明は、前記目的を達成するために、請求項1に記載の発明では、アプリケーションが組み込まれたクライアント端末と、前記クライアント端末に接続する所定のハードウェア装置と、前記アプリケーションに起動情報を送信するサーバシステムと、から構成されたアプリケーションシステムであって、前記アプリケーションは、前記所定のハードウェア装置に記憶されているID情報を取得して前記サーバシステムに送信し、前記サーバシステムは、前記送信されたID情報を受信し、当該受信したID情報に対応する起動情報を前記アプリケーションに送信し、前記アプリケーションは、前記送信された起動情報を受信し、当該受信した起動情報を用いてアプリケーション機能を制限して起動することを特徴とするアプリケーションシステムを提供する。
請求項2に記載の発明では、所定の情報処理を行うアプリケーション機能と、前記アプリケーション機能の起動要求を受け付ける起動要求受付機能と、ID情報を取得するID情報取得機能と、前記起動要求を受け付けた場合に、前記取得したID情報をネットワークにより接続した所定のサーバ装置に送信するID情報送信機能と、前記サーバ装置から、前記送信したID情報に対応する起動情報を受信する起動情報受信機能と、前記受信した起動情報を用いて前記アプリケーション機能の機能を制限して起動する起動機能と、をコンピュータで実現するアプリケーションプログラムを提供する。
請求項3に記載の発明では、前記起動要求を受け付けた場合に、前記アプリケーション機能を実現するコンピュータに接続した所定のハードウェア装置にアクセスするアクセス機能と、前記アクセスした所定のハードウェア装置に記憶されているデジタル証明書を確認する確認機能と、を前記コンピュータで実現し、前記起動機能は、前記確認機能で前記デジタル証明書が確認されなかった場合に前記アプリケーション機能の起動を行わないことを特徴とする請求項2に記載のアプリケーションプログラムを提供する。
請求項4に記載の発明では、前記所定のハードウェア装置は、第1の秘密鍵を記憶する第1の秘密鍵記憶手段と、前記記憶した第1の秘密鍵を用いて暗号情報を復号化する復号手段と、を具備しており、前記起動情報は、前記第1の秘密鍵に対応する第1の公開鍵で暗号化されており、前記起動機能は、前記受信した起動情報を前記所定のハードウェア装置で復号化した後、当該復号化した起動情報を用いて起動することを特徴とする請求項3に記載のアプリケーションプログラムを提供する。
請求項5に記載の発明では、前記起動情報は、更に第2の秘密鍵で暗号化されており、前記アプリケーションプログラムには、前記第2の秘密鍵に対応する第2の公開鍵が組み込まれており、前記起動機能は、前記所定のハードウェア装置で復号化した起動情報を更に前記組み込まれた第2の公開鍵で復号化し、当該復号化した起動情報を用いて起動することを特徴とする請求項4に記載のアプリケーションプログラムを提供する。
請求項6に記載の発明では、前記起動情報には有効期限が含まれており、前記受信した起動情報を記憶する起動情報記憶機能と、前記記憶した起動情報の有効期限の有効性を確認する有効確認機能と、を前記コンピュータで実現し、前記起動機能は、前記ネットワークによる通信を行わない場合には、前記有効確認機能で有効期限の有効性を確認した場合に、当該記憶しておいた起動情報を用いて前記アプリケーション機能を起動することを特徴とする請求項2から請求項5までのうちの何れか1の請求項に記載のアプリケーションプログラムを提供する。
請求項7に記載の発明では、請求項2から請求項6までのうちの何れか1の請求項に記載したアプリケーションプログラムを記憶した記憶媒体を提供する。
請求項8に記載の発明では、起動情報をID情報に対応付けて記憶する起動情報記憶手段と、請求項1から請求項5までのうちの何れか1の請求項に記載のアプリケーションプログラムを実行するコンピュータから、ID情報を受信するID情報受信手段と、前記起動情報記憶機能から、前記受信したID情報に対応する起動情報を取得して前記コンピュータに送信する起動情報送信手段と、を具備したことを特徴とするサーバ装置を提供する。
【発明の効果】
【0012】
本発明によると、アプリケーションの不正使用を防ぎつつ、アプリケーションの起動制御を行うことができる。
【発明を実施するための最良の形態】
【0013】
(1)実施の形態の概要
本実施の形態では、PKI(Public Key Infrastructure)の技術を用いてアプリケーションシステムを構築する。
PKIとは、公開鍵暗号技術とデジタル署名などを用いてネットワーク上でセキュリティを実現する技術であって、データ改竄や成りすましなどを防ぐことができる。
【0014】
事業者(ベンダ)は、ユーザにアプリケーションを販売する場合に、アプリケーションと共に確認デバイスを提供する。
確認デバイスは、演算装置やメモリなどを備えており、メモリには第1秘密鍵と、第1秘密鍵に対応する第1公開鍵のデジタル証明書である第1公開鍵証明書が記憶されている。また、第1公開鍵証明書には、第1公開鍵とユーザのシリアル番号が記載されている。なお、第1秘密鍵は、外部から解析されないように記憶されている。
【0015】
一方、アプリケーションは、確認デバイスの第1公開鍵証明書が正規のものであることを確認するためのルート公開鍵証明書と、第2公開鍵を備えている。
第1公開鍵、及び第2公開鍵に対応する第2秘密鍵は、事業者の運営する管理センタで保管されている。
【0016】
クライアント端末でアプリケーションを起動する場合、ユーザは確認デバイスをクライアント端末に接続してからアプリケーションに起動を命じる。
アプリケーションは、ユーザから起動の要求を受け付けると、確認デバイスから第1公開鍵証明書を読み出す。そして、アプリケーションは、自身に埋め込まれているルート公開鍵証明書を用いて第1公開鍵証明書の正当性を確認し、正当性が確認された場合、第1公開鍵に記されているシリアル番号を管理センタに送信する。第1公開鍵証明書の正当性が確認されなかった場合、アプリケーションは起動しない。
【0017】
管理センタでは、予めシリアル番号ごとにアプリケーションで使用できる機能を制限して起動するための起動情報を記憶しており、これを第1公開鍵で暗号化し、更に第2秘密鍵で二重に暗号化してクライアント端末に送信する。
【0018】
アプリケーションは、管理センタから送られてきた暗号化起動情報を受信し、これを確認デバイスに送出する。
確認デバイスは第1秘密鍵を用いて暗号化起動情報を復号化し、アプリケーションに返送する。アプリケーションは、これを更に第2公開鍵で復号化して起動情報を復元する。
そして、アプリケーションは、起動情報に従って、ユーザが使用できる機能を制限して起動する。
【0019】
(2)実施の形態の詳細
図1は、本実施の形態にかかるアプリケーションシステムのシステム構成を示したブロック図である。
アプリケーションシステム1では、管理センタ2とクライアント端末3がネットワーク100を介して接続可能に配設されている。
【0020】
ネットワーク100は、例えばインターネットで構成されているが、LAN(Local Area Network)、WAN(Wide Area Network)、その他のネットワークで構成してもよい。
なお、図示しないが管理センタ2とネットワーク100の間には、管理センタ2への不正攻撃を防御するファイアウォールが設置されている。
【0021】
管理センタ2は、アプリケーション8を販売管理する事業者などが運営しているシステムであり、認証機関サーバ4、データベースサーバ5、ウェブサーバ6などから構成されている。
管理センタ2は、アプリケーション8の不正使用防止と、アプリケーションの起動に際する機能制限を行う。
【0022】
クライアント端末3は、例えば、パーソナルコンピュータなどのコンピュータで構成されており、アプリケーション8がインストールされている。
アプリケーション8は、例えば建築用のCADソフトなどの所定の情報処理を行うアプリケーションソフトウェアであって、アプリケーションプログラムをクライアント端末3で実行することにより構成される。
【0023】
このようにアプリケーションプログラムは、所定の情報処理を行うアプリケーション機能をコンピュータで実現する。
なお、アプリケーション8は、一般に複数のユーザに販売されて使用されるため、クライアント端末3も一般に複数台存在する。
【0024】
確認デバイス7は、例えば、トークンなどと呼ばれる着脱可能な小型のデバイスであり、アプリケーション8の起動制御を行うための所定のハードウェア装置を構成している。
確認デバイス7は、例えば携帯可能であり、アプリケーション8の使用時にコンピュータの入出力インターフェースに装着する。図2に確認デバイス7の構成を模式的に示す。
【0025】
図2に示したように、確認デバイス7は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23、EEPROM(Electrically Erasable and Programmable ROM)25、I/F(インターフェース)24などがバスラインで接続された小型のコンピュータとなっている。
また、確認デバイス7の先端にはクライアント端末3の入出力インターフェースに接続するための接続端子26が形成されている。
【0026】
CPU21は、プログラムに従って各種の情報処理や確認デバイス7の各部の制御を行う中央処理装置である。CPU21は、本実施の形態においては、第1公開鍵と第1秘密鍵の組の生成処理、第1秘密鍵を用いた暗号化データの復号処理(復号手段)などを行う。
【0027】
ROM22は、読み出し専用のメモリであって、確認デバイス7の運用に必要なパラメータ、データ、及びプログラムなどを記憶している。
RAM23は、読み書き可能なメモリであって、CPU21が鍵の生成処理や復号処理を行う際のワーキングエリアを提供する。確認デバイス7をコンピュータから取り外すと電力の供給が停止するため、RAM23に記憶されているデータは消去される。
【0028】
EEPROM25は、読み書きが可能なメモリであって、確認デバイス7への電力の供給が停止した場合も記憶内容を保持することができる。
EEPROM25には、確認デバイス7を動作させるための基本的なプログラムであるOS(Operating System)や、第1公開鍵と第1秘密鍵の組を生成するための鍵生成プログラム、暗号化されたデータを第1秘密鍵を用いて復号化するための復号プログラムなどが記憶されている。
【0029】
CPU21は、鍵生成プログラムを実行することにより、第1公開鍵と第1秘密鍵を生成する。なお、CPU21は、例えば乱数を用いるなどしてユニークな第1公開鍵と第1秘密鍵を生成することができる。そのため、確認デバイス7が複数あった場合、確認デバイス7ごとに異なる第1公開鍵と第1秘密鍵が生成される。
【0030】
なお、CPU21は、生成した第1秘密鍵を外部からアクセスが著しく困難なようにEEPROM25の所定領域に保存する(第1の秘密鍵記憶手段)。例えば、耐タンパチップなどを用いて確認デバイス7を構成すると、より第1秘密鍵の解析が困難になる。
このように構成することにより、第1秘密鍵は確認デバイス7内部で生成された後、外部に漏れないように確認デバイス7内に保持されるため、確認デバイス7以外には、第1の秘密鍵を知っている者は存在しない。
【0031】
I/F24は、CPU21と接続先のコンピュータのCPUとの情報伝達を中継するインターフェースであり、確認デバイス7から突出して形成された接続端子26と接続している。
接続端子26は、例えば、USB(Universal Serial Bus)などの所定の規格に適合する接続端子であって、クライアント端末3の接続端子に装着することにより確認デバイス7とクライアント端末3を電気的、及び物理的に接続する。
なお、確認デバイス7を駆動する電力は、接続端子26を介して接続先のコンピュータから供給される。
【0032】
図1に戻り、ウェブサーバ6は、管理センタ2においてクライアント端末3からのアクセスを受け付けるウェブサーバ装置である。
ウェブサーバ6は、クライアント端末3とSSL(Secure Sockets Layer)によって暗号化された通信回線を確立すると共にデータベースサーバ5とクライアント端末3との通信を仲介する。
【0033】
データベースサーバ5は、ユーザのシリアル番号に対応付けて起動情報を記憶しており、アプリケーション8に起動情報を提供するサーバ装置である。
認証機関サーバ4は、アプリケーションシステム1で使用するデジタル証明書のルート認証局である。
【0034】
次に、以上のようにして構成されたアプリケーションシステム1の運用について説明する
アプリケーションシステム1の運用は、大きくアプリケーションの販売時とアプリケーションの使用時の2つに分けられる。
【0035】
[アプリケーションの販売時における運用]
まず、図3を用いながらアプリケーション販売時におけるアプリケーションシステム1の運用について説明する。
まず、事業者は、ユーザからアプリケーションの注文を受け付ける。この注文の受け付けは、例えば、アプリケーションの販売店やアプリケーション販売ウェブサイト上、あるいは訪問販売などで行う。
事業者が受け付ける注文内容は、アプリケーションの品名、アプリケーションの仕様、購入数量、ユーザの個人情報(氏名、住所、電話番号)などがある。
【0036】
アプリケーションの仕様は、例えば、一定期間の試用に供する無料のデモ版や、低レベルの機能が利用可能で価格を抑えた廉価版、高レベルの機能が利用可能で廉価版より価格の高い通常版など、ユーザが支払う代金に基づいて複数用意されている。
また、利用できる機能をユーザが選択し、ユーザごとにカスタマイズした仕様も可能である。
【0037】
事業者は、ユーザから注文を受けると、以下のようにしてアプリケーション8と確認デバイス7をアプリケーションシステム1で運用可能なように調製する。
まず、確認デバイス7に関しては、事業者はこれをコンピュータに接続するなどして操作し、確認デバイス7内の鍵生成プログラムを実行させる。
事業者は、確認デバイス7の内部で第1公開鍵と第1秘密鍵を生成した後、確認デバイス7を認証機関サーバ4に接続する。
【0038】
なお、本実施の形態では、確認デバイス7で第1公開鍵と第1秘密鍵を生成した後、これを認証機関サーバ4に接続したが、初めから確認デバイス7を認証機関サーバ4に接続し、認証機関サーバ4から確認デバイス7にアクセスして第1公開鍵と第1秘密鍵を生成してもよい。
【0039】
確認デバイス7が接続されると認証機関サーバ4は確認デバイス7から第1公開鍵を読み込む。そして、認証機関サーバ4は、自身のルート秘密鍵を用いて第1公開鍵のデジタル証明書である第1公開鍵証明書を作成し、これを確認デバイス7に出力する。
確認デバイス7は、認証機関サーバ4から第1公開鍵証明書を受け取り、EEPROM25に記憶する。
【0040】
ここで、第1公開鍵証明書についてより詳細に説明する。
第1公開鍵証明書は、第1公開鍵、ユーザのシリアル番号、その他の必要事項から成る本文と、本文の内容を保証する認証機関サーバ4によるデジタル署名から構成されている。本文は平文で構成されている。
【0041】
本実施の形態では、本文を一方向性関数で演算した値をルート秘密鍵で暗号化したものでデジタル署名を構成する。
一方向性関数は、本文から演算値への変換は行えるが、演算値から本文への逆変換は著しく困難な関数をいう。
本実施の形態では、一方向性関数としてハッシュ関数を用いる。ハッシュ関数による演算値はハッシュ値、あるいはダイジェストなどと呼ばれている。
【0042】
ハッシュ関数は、ハッシュ値から本文が復元困難なほか、本文が例え一部でも変更されるとハッシュ値が大きく変化するという性質を持っている。
そのため、本文のハッシュ値をルート秘密鍵で暗号化して暗号化ハッシュ値とすることにより、次の2点が確認される。
【0043】
まず、デジタル署名をルート公開鍵で復号化できることにより、デジタル署名が認証機関サーバ4によってなされたことを確認することができる。
次に、本文のハッシュ値を演算し、これとデジタル署名から復号化したハッシュ値が同一であることを確認することにより、本文が改竄されていないことを確認することができる。
本文には、第1公開鍵とシリアル番号などが含まれるため、第1公開鍵証明書によりこれらの値が改竄されていないことが保証される。
【0044】
次に、認証機関サーバ4は、確認デバイス7に第1公開鍵証明書を記憶させた後、第2公開鍵と第2秘密鍵の組を生成する。これらの暗号鍵は、後ほど起動情報を暗号化するのに用いるものである。
そして、認証機関サーバ4は、シリアル番号、第1公開鍵、第2公開鍵、及び第2秘密鍵をデータベースサーバ5に送信する。
【0045】
データベースサーバ5は、認証機関サーバ4が有するルート秘密鍵と組を成すルート公開鍵のデジタル証明書であるルート公開鍵証明書を記憶するほか、認証機関サーバ4から送信されてきたシリアル番号、第1公開鍵、第2公開鍵、第2秘密鍵などを記憶したデータベース30を有している。ルート公開鍵証明書の本文にはルート公開鍵が含まれている。
【0046】
図4は、データベース30の論理的な構成の一例を示した図である。なお、簡略化のため、全ての項目を1つのデータベースに構成したが、リレーショナルデータベースにより、論理的な関連付けた複数のデータベースから構成することもできる。
【0047】
データベース30は、項目「シリアル番号」、「起動情報」、「第1公開鍵」、「第2秘密鍵」、「第2公開鍵」、その他の項目から構成されている。
これらの項目はシリアル番号ごとに対応付けられており、シリアル番号を特定すると起動情報、第1公開鍵、第2秘密鍵、第2公開鍵などが特定できるようになっている。
【0048】
項目「シリアル番号」は、ユーザごとに認証機関サーバ4が発行したID情報であり、ユーザごとにユニークな値となっている。
なお、本実施の形態では、シリアル番号はユーザに対応して発行するものとするが、アプリケーション8に対応して発行するようしてもよいし、確認デバイス7ごとに発行するようにしてもよい。
【0049】
ユーザごと、または確認デバイス7ごとにシリアル番号を設定すると、複数のクライアント端末3にアプリケーション8がインストールされている場合、確認デバイス7をセットすることにより、何れのクライアント端末3においても当該ユーザの起動条件でアプリケーション8を起動することができる。
【0050】
項目「起動情報」は、ユーザがアプリケーション8の購入時に使用者と交わした契約などに基づいて設定される仕様を事業者がデータベースサーバ5に入力したものである。
このように、データベース30では、シリアル番号(ID情報)と起動情報を対応付けて記憶する起動情報記憶手段を構成している。
【0051】
仕様には、例えば、「使用期限」、「デモ版」、「廉価版」、「特定機能使用不可」、「全機能使用可」・・・などがある。
「使用期限」は、ユーザがアプリケーション8を使用できる期限を設定する条件である。この期限を超過した場合、ユーザはアプリケーション8の使用を継続するために事業者との契約を更新する必要がある。
【0052】
「デモ版」は、試供品に該当し、ある一定の短期間ユーザにアプリケーション8の使用を無料で許可する条件である。これによってユーザはアプリケーション8を試しに使ってみて納得してから購入を決断することができる。
【0053】
「廉価版」は、アプリケーション8が備える全機能のうち、ユーザが一般的に使用する主な機能に限定して使用可能とし、その分だけ価格を低く設定したものである。
これによってユーザは、不要な機能を購入する必要が無く、アプリケーション8の購入コストを低減することができる。
【0054】
「特定機能使用不可」は、アプリケーション8は、例えば、「シミュレーション機能不可」といったように、アプリケーション8が有する各種の機能のうち、特定の機能を使用不可にしたものである。
ユーザは、アプリケーション8の購入時に使用できる機能を選択することができ、選択されなかった機能が「特定機能使用不可」にて使用不可に設定される。
【0055】
このように使用する機能を選択することにより、ユーザは自己の使用目的に適合するようにアプリケーション8をカスタマイズすることができる。
また、アプリケーション8の販売価格も使用できる機能によって設定されるようになっており、ユーザは不要な機能に対して代金を支払う必要が無くなる。
【0056】
このように、ユーザはアプリケーション8の購入時にアプリケーション8の仕様を事業者との契約により設定することができるが、仕様は途中で変更することが可能である。この場合、事業者は、データベース30において、このユーザの「起動情報」を書き換えることにより対応することができる。
【0057】
例えば、ユーザがデモ版を使用した後に廉価版の購入を希望する場合、事業者は、このユーザのシリアル番号に対応付けられている「起動情報」をデモ版から廉価版に書き換えることにより対応することができる。
このように、事業者は、管理センタ2からアプリケーション8の起動を制御することができる。
【0058】
データベース30の項目「第1公開鍵」、「第2秘密鍵」及び「第2公開鍵」は、認証機関サーバ4が「シリアル番号」に対応して発行した第1公開鍵、第2秘密鍵、及び第2公開鍵である。
【0059】
事業者は、以上のようにして構成されたデータベースサーバ5(図3)を用いて、確認デバイス7に対応するようにアプリケーション8を調製する。
即ち、事業者は、アプリケーション8に、確認デバイス7に埋め込んだシリアル番号に対応付けられている第2公開鍵と、ルート公開鍵証明書を埋め込んでから出荷する。
【0060】
アプリケーション8をコンピュータで実現するアプリケーションプログラムは、例えば、光ディスクなどの記憶媒体にインストールプログラムと共に記録されてユーザに渡されたり、あるいは、インストールプログラムと共にネットワーク100を介してクライアント端末3に送信するなどしてユーザに提供される。
【0061】
次に、図5を用いてアプリケーション8の構成について説明する。これらの構成は、アプリケーションプログラムをコンピュータで実行することにより実現されるものである。
アプリケーション8は、起動部31、本体部32、機能選択部33、通信部34、確認デバイス接続部35、及びユーザインターフェース36などの各機能部から構成されている。
【0062】
通信部34は、ネットワーク100を介してウェブサーバ6と通信するための機能部である。後述するように、通信部34は、ウェブサーバ6とSSLによる通信回線を確立する。
確認デバイス接続部35は、確認デバイス7と通信するための機能部である。
起動部31は、第2公開鍵とルート公開鍵証明書を記憶しており、通信部34や確認デバイス接続部35を用いて管理センタ2や確認デバイス7と通信しながら起動情報に基づいてアプリケーション8を起動させる。
【0063】
本体部32は、例えば、CAD機能など、アプリケーション8のアプリケーション機能を発揮する機能部である。本体部32には、アプリケーション8が実現できる全機能(CADであれば、描画機能、3D(3次元)表示機能、シミュレーション機能など)が含まれている。
【0064】
機能選択部33は、本体部32の機能のうち、ユーザインターフェース36から使用できる機能を起動部31からの指示に基づいて選択する。
例えば、機能選択部33が描画機能を選択し、他の機能を選択しなかった場合、ユーザは本体部32のうちの描画機能だけ使用できる。
このようにして本体部32が有する機能のうち、ユーザが使用できる機能を起動情報に基づいて制限することができる。
【0065】
ユーザインターフェース36は、ユーザがアプリケーション8を操作するための機能部であり、例えば、マウス、キーボードなどの入力デバイスからの入力を受け付けて本体部32に入力し、本体部32が出力したデータをディスプレイ装置に表示する。
このように、ユーザは、ユーザインターフェース36を介して本体部32の提供する機能を利用することができる。
【0066】
次に図6のフローチャートを用いて、事業者が確認デバイス7とアプリケーション8の組を作成する手順について説明する。
まず、事業者は、コンピュータなどを用いて確認デバイス7にアクセスし、鍵生成プログラムを実行して、確認デバイス7内で第1公開鍵と第1秘密鍵の組を生成する(ステップ5)。
そして、事業者は、確認デバイス7を認証機関サーバ4に接続する。
【0067】
次に、認証機関サーバ4が、確認デバイス7に対して第1公開鍵の送信を要求し、これに応じて確認デバイス7は第1公開鍵を認証機関サーバ4に送出する(ステップ10)。
認証機関サーバ4は、確認デバイス7から第1公開鍵を受信してRAMなどの記憶装置に記憶する。
【0068】
次に、認証機関サーバ4は、所定の手順に従ってユーザのシリアル番号を発生する。このシリアル番号は連番であってもよいし、あるいは既に発行済みのシリアル番号と重複しない乱数によって構成してもよい。
【0069】
次に、認証機関サーバ4は、第1公開鍵とシリアル番号、その他の事項から成る本文のハッシュ値を計算し、ルート秘密鍵を用いて暗号化してデジタル署名を生成する。認証機関サーバ4は、デジタル署名を本文に添付して第1公開鍵証明書を生成する(ステップ15)。
認証機関サーバ4は、生成したシリアル番号、第1公開鍵を記憶装置に記憶する。
【0070】
認証機関サーバ4は、第1公開鍵証明書を作成すると、これを確認デバイス7に送出する(ステップ20)。
確認デバイス7は、認証機関サーバ4から第1公開鍵を取得し、EEPROM25に記憶する(ステップ25)。
【0071】
次に、認証機関サーバ4は、第2秘密鍵とこれに対応する第2公開鍵の組を生成し、記憶装置に記憶する(ステップ30)。
次に、認証機関サーバ4は、記憶しておいたシリアル番号、第1公開鍵、第2秘密鍵、第2公開鍵をデータベースサーバ5に送出する(ステップ35)。
【0072】
データベースサーバ5は、認証機関サーバ4から第1公開鍵、第2秘密鍵、第2公開鍵を受信してデータベース30に記憶装置に記憶する(ステップ40)。
更に、データベースサーバ5は、事業者より起動情報の入力を受け付け、入力された起動情報をデータベース30に記憶し、起動情報を確認デバイス7のシリアル番号に対応付ける(ステップ45)。
【0073】
次に、データベースサーバ5は、アプリケーション8の起動部31に第2公開鍵とルート公開鍵証明書を書き込む(ステップ50)。
以上のようにして、事業者は、ユーザに提供するアプリケーション8と確認デバイス7の組を作成することができる。
【0074】
[アプリケーションの使用時における運用]
次に、図7を用いながら、アプリケーション使用時におけるアプリケーションシステム1の運用について説明する。
クライアント端末3には、インストールプログラムを実行してアプリケーションプログラムをインストールすることによりアプリケーション8が組み込まれる。
以下の起動処理は、起動部31が行うものである。
【0075】
ユーザは、アプリケーション8を使用する場合、確認デバイス7をクライアント端末3に接続してからアプリケーション8に起動要求を行う。この起動要求は、例えば、アプリケーション8の起動を示すアイコンをクリックするなどして行われる。
アプリケーション8は、ユーザから起動要求を受け付けて(起動要求受付機能)、確認デバイス7にアクセスし(アクセス機能)、確認デバイス7から第1公開鍵証明書を読み出す。
【0076】
そして、アプリケーション8は、自身に埋め込まれているルート公開鍵証明書を用いて第1公開鍵証明書が改竄されていないか確認する(確認機能)。
この確認は、ルート公開鍵証明書に含まれているルート公開鍵で第1公開鍵証明書のデジタル署名を復号化することにより本文のハッシュ値を復元し、更に本文のハッシュ値を計算して両者を照合することにより行う。
【0077】
次に、アプリケーション8は、ネットワーク100を介してウェブサーバ6に接続し、SSLによる暗号化された通信回線を確立する。
なお、一般に、SSLによる通信回線は、クライアント側がサーバ側のサーバ証明書を確認して行うが、本実施の形態では、クライアント端末3がウェブサーバ6のサーバ証明書を確認するほか、ウェブサーバ6がクライアント端末3側の第1公開鍵証明書を確認する。このように双方向に確認することによりウェブサーバ6は、接続してきた相手が正規のアプリケーション8であることを確認することができる。
【0078】
次に、アプリケーション8は、第1公開鍵証明書に含まれているシリアル番号を取得して(ID情報取得機能)、ウェブサーバ6を介してシリアル番号をデータベースサーバ5に送信する(ID情報送信機能)。
データベースサーバ5は、シリアル番号を受信し(ID情報受信手段)、データベース30でこのシリアル番号を検索する。そして、データベースサーバ5は、このシリアル番号に対応付けられている起動情報、第1公開鍵、第2秘密鍵などを特定する。
【0079】
次に、データベースサーバ5は、特定した起動情報に現在の日付を付加する。後述するように、この日付は、クライアント端末3がオフラインでアプリケーション8を使用する際に用いられる。
【0080】
そして、データベースサーバ5は、この起動情報を第2秘密鍵で暗号化し、更に第1公開鍵で暗号化して暗号化起動情報を作成する。
このように第2秘密鍵を用いて暗号化するのは、第2公開鍵は第三者が入手できるため、第三者によるなりすましを防ぐためである。
そして、データベースサーバ5は、作成した暗号化起動情報をアプリケーション8に送信する(起動情報送信手段)。
【0081】
アプリケーション8は、データベースサーバ5から暗号化起動情報を受信する(起動情報受信機能)とこれを確認デバイス7に入力する。
確認デバイス7は、暗号化起動情報を第1秘密鍵で復号化し、アプリケーション8に返送する。この時点で暗号化起動情報は第2秘密鍵で暗号化されている。
【0082】
アプリケーション8は、確認デバイス7から返送された暗号化起動情報を自身に埋め込まれている第2公開鍵で復号化する。これによって、アプリケーション8は、起動情報を得ることができる。
そして、アプリケーション8は、起動情報に従ってアプリケーション8の機能を制限して起動する(起動機能)。
【0083】
以上に説明したアプリケーション8の起動手順を図8に示したフローチャートを用いて説明する。
確認デバイス7は、クライアント端末3に接続されているものとする。
まず、アプリケーション8が確認デバイス7に対して第1公開鍵証明書を要求し、これに応じて確認デバイス7はアプリケーション8に第1公開鍵証明書を送出する(ステップ100)。
【0084】
アプリケーション8は、ルート公開鍵証明書に含まれるルート公開鍵証明書を用いて第1公開鍵証明書が正当なものであることを確認する(ステップ105)。
アプリケーション8は、第1公開鍵証明書の正当性を確認した後、ネットワーク100を介してウェブサーバ6に接続する(ステップ110)。
そして、アプリケーション8とウェブサーバ6は、SSLによって暗号化された通信経路を確立する(ステップ115)。
【0085】
次に、アプリケーション8は、第1公開鍵証明書の本文に記されているシリアル番号をウェブサーバ6に送信する(ステップ120)。
ウェブサーバ6は、アプリケーション8からシリアル番号を受信すると、これをデータベースサーバ5に送信する(ステップ125)。
【0086】
データベースサーバ5は、ウェブサーバ6からシリアル番号を受信すると、データベース30を検索し、このシリアル番号に対応付けられている起動情報、第2秘密鍵、及び第1公開鍵を検索する。
そして、データベースサーバ5は、起動情報に日付を付加して第2秘密鍵で暗号化した後、第1公開鍵で更に暗号化することにより暗号化起動情報を生成する(ステップ130)。
【0087】
データベースサーバ5は、暗号化起動情報を生成するとこれをウェブサーバ6に送信する(ステップ135)。
ウェブサーバ6は、データベースサーバ5から暗号化起動情報を受信して、これをアプリケーション8に送信する(ステップ140)。
【0088】
アプリケーション8は、ウェブサーバ6から暗号化起動情報を受信し、これを確認デバイス7に送信する(ステップ145)。
確認デバイス7は、アプリケーション8から暗号化起動情報を受信し、第1秘密鍵でこれを復号化する(ステップ150)。そして、確認デバイス7は、復号化した暗号化起動情報(第2秘密鍵で暗号化されている)をアプリケーション8に返送する。
【0089】
アプリケーション8は、確認デバイス7から暗号化起動情報を受信して第2公開鍵で復号化し、起動情報を得る(ステップ155)。
そして、アプリケーション8は、起動情報に規定された条件でアプリケーション8を起動する(ステップ160)。
更に、アプリケーション8は、次に説明するオフラインで使用する場合の起動に備えて起動情報を記憶しておく(起動情報記憶機能)。
【0090】
以上のようにして、アプリケーション8と確認デバイス7を組み合わせることにより、アプリケーション8の不正使用を防止すると共に、アプリケーション8の起動条件を管理センタ2で制御することができる。
【0091】
次に、例えば、クライアント端末3がネットワーク100に接続できないなど、オフラインとなっている場合場合のアプリケーション8の起動について図9のフローチャートを用いて説明する。
【0092】
まず、アプリケーション8は、確認デバイス7に第1公開鍵証明書を要求し、確認デバイス7はこれに応じて第1公開鍵証明書をアプリケーション8に送信する(ステップ200)。
アプリケーション8は、ルート公開鍵証明書を用いて第1公開鍵証明書が正規の証明書であることを確認する(ステップ205)。
【0093】
次に、アプリケーション8は、ウェブサーバ6への接続を試みる(ステップ210)。
アプリケーション8は、ウェブサーバ6への接続ができないことを検出し(ステップ215)、前回使用し、記憶しておいた起動情報を読み出す(ステップ220)。
【0094】
アプリケーション8は、読み出した起動情報からデータベースサーバ5が記しておいた日付を読み取って現在の日付と比較し、この日付が所定の期間内(例えば1週間)のものであることを確認する(有効確認機能)(ステップ225)。所定の期間内のものでなかった場合は、アプリケーション8は起動を中止する。
【0095】
日付が所定の期間内のものであることを確認した後、アプリケーション8は、この起動情報に規定された条件で起動する(ステップ230)。
以上のようにして、クライアント端末3がネットワーク100に接続できない環境にあった場合でも、期限を限定してアプリケーション8を起動できるように構成することができる。
【0096】
図10は、クライアント端末3のハードウェアの構成の一例を示した図である。クライアント端末3は、例えばネットワーク10に配設可能に設置されたパーソナルコンピュータなどで構成されている。
クライアント端末3は、制御部51に、バスライン58を介して入力装置55、出力装置56、通信制御装置57、記憶装置61、記憶媒体駆動装置60、入出力インターフェース(I/F)59などが接続して構成されている。
【0097】
制御部51は、CPU53、ROM52、RAM54などから構成されている。
制御部51は、OS(Operating System)やアプリケーションプログラムなどの各種プログラムに従って動作し、プログラムで規定された所定の演算や画面の表示といったクライアント端末3全体の制御を行う。アプリケーションプログラムとしては、建築図面の設計支援処理を行うCADプログラムなどが利用可能である。
【0098】
CPU53は、制御部51の中心的なデバイスであって、ROM52や記憶装置61、または記憶媒体駆動装置60によって駆動される記憶媒体などからプログラムをロードし、プログラムに従って制御部51を制御する。
また、CPU53は、内部にレジスタなどと呼ばれる内部記憶媒体(記憶領域)を複数内蔵している。CPU53は、外部の記憶媒体などから内部記憶媒体にデータを一時的に記憶し、これを演算処理する。演算結果はレジスタに出力され、更にレジスタから外部の記憶媒体などに出力される。
【0099】
ROM52は、CPU53が各種演算や制御を行うための各種プログラム、データ及びパラメータなどを格納したリードオンリーメモリである。ROM52は、不揮発性のメモリであって、ROM52に供給される電力がゼロの状態でも記憶内容は保持される。また、ROM52は、読み込み専用のメモリであるため、通常はデータの書き込みは行われない。
【0100】
RAM54は、CPU53にワーキングメモリとして使用されるランダムアクセスメモリである。CPU53は、RAM54にプログラムやデータなどを書き込んだり消去したりすることができる。本実施の形態では、RAM54には、平面図から立面図を自動生成したりなど、各種の設計支援処理をするための領域が確保可能となっている。
【0101】
入力装置55は、例えばキーボードやマウス、タブレットなどの入力装置から構成されている。
キーボードは、カナや英文字などを入力するためのキーや数字を入力するためのテンキー、各種機能キー、カーソルキー及びその他のキーによって構成されている。
【0102】
キーボードからは、クライアント端末3に対して文字や数字などの情報を入力することができ、アプリケーションなどを操作することができる。
【0103】
マウス、及びタブレットは、ポインティングデバイスである。GUI(Graphical User Interface)などを用いてクライアント端末3を操作する場合、表示装置上に表示されたボタンやアイコンなどをマウスなどでクリックすることにより、アプリケーションなどに所定の情報の入力を行うことができる。
【0104】
また、アプリケーションが建築CADの場合、入力装置55として、クライアント端末3専用の入力ボタン群から成るデバイスを用いることもできる。これは、例えば、円弧を描くボタン、直線を描くボタン、寸法確認を行うボタンなど、各描画機能を設定するためのボタン群から成るデバイスであって、これを用いると、メニュー画面から描画機能を選択する場合に比べて作業の高速化、省力化をすることができる。
【0105】
出力装置56は、例えば表示装置、印刷装置、プロッタなどから構成されている。
表示装置は、例えばCRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、プラズマディスプレイなどで構成され、アプリケーションを利用するための表示がなされる。
【0106】
印刷装置は、プログラムの実行結果などを紙などの印刷媒体に印刷する装置である。
印刷装置は、例えば、インクジェットプリンタ、レーザプリンタ、熱転写プリンタ、ドットプリンタなどの各種プリンタ装置によって構成されている。印刷装置によって、アプリケーションによる出力を印刷媒体に印刷することができる。
【0107】
通信制御装置57は、通信回線を介してクライアント端末3をネットワーク10に接続するための装置であって、モデム、ターミナルアダプタ、その他の装置によって構成されている。
クライアント端末3は、通信制御装置57を介して管理センタ2と通信することができる。
【0108】
記憶装置61は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータを読み書きするための駆動装置とによって構成されている。当該記憶媒体として主にハードディスクが使用されるが、その他に、例えば、光磁気ディスク、磁気ディスク、半導体メモリなどのほかの読み書き可能な記憶媒体によって構成することも可能である。
【0109】
記憶装置61には、アプリケーションプログラム71、アプリケーションデータベース72、OS(Operating System)73、その他のプログラム74、その他のデータベース75などが所定の記憶領域に格納されている。
【0110】
アプリケーションプログラム71は、アプリケーションを構成するためのプログラムであって、これをCPU53で実行するとアプリケーション8が構成される。
アプリケーションデータベース72は、アプリケーション8で作成したデータ(アプリケーション8が建築CADの場合はCAD図面データなど)を記憶したデータベースである。
【0111】
OS73は、クライアント端末3を機能させるための基本的なプログラムであり、ファイルの入出力やクライアント端末3に接続されている各デバイスの制御などを行う。
【0112】
その他のプログラム74は、日本語変換プログラムや通信制御装置57などを制御して通信を確立する通信制御プログラムなど、各種のプログラムから構成されている。
その他のデータベース75は、例えば、その他のプログラム74で使用するデータなどが記憶されている。
【0113】
記憶媒体駆動装置60は、着脱可能な記憶媒体を駆動してデータの読み書きを行うための駆動装置である。着脱可能な記憶媒体としては、例えば、光磁気ディスク、磁気ディスク、磁気テープ、半導体メモリ、データをパンチした紙テープ、CD−ROMなどがある。
【0114】
なお、CD−ROMや紙テープは、読み込みのみ可能である。記憶媒体駆動装置60を介して記憶媒体からアプリケーションプログラムをインストールしたり、バックアップ用のデータを記憶媒体に書き込んだり、記憶媒体に書き込まれているバックアップデータを読み込んだりすることもできる。
【0115】
入出力インターフェース59は、例えば、シリアルインターフェースやそのほかの規格のインターフェースにより構成されている。入出力インターフェース59には、確認デバイス7を着脱することができ、これによってクライアント端末3に確認デバイス7を接続することができる。
【0116】
以上、アプリケーションを建築CADとして説明したが、これに限定するものではなく、ワードプロセッサ、表計算ソフト、データベースソフト、画像編集ソフト、音楽・動画再生ソフト、各種シミュレーションソフトなど、各種のアプリケーションを用いることができる。
また、アプリケーションのほかにOSなどに関しても確認デバイス7を用いて起動できるように構成することもできる。
【0117】
認証機関サーバ4、データベースサーバ5、ウェブサーバ6のハードウェア的な構成は、基本的にクライアント端末3と同じである。
【0118】
以上に説明した本実施の形態により次のような効果を得ることができる。
(1)確認デバイス7内の第1公開鍵証明書を確認し、第1秘密鍵で暗号化起動情報を復号化することにより、アプリケーション8の不正使用を防ぐことができる。
(2)アプリケーション8が管理センタ2が送信する起動情報を用いて起動することにより、アプリケーション8の起動条件を管理センタ2で管理することができる。
【0119】
(3)ユーザとの契約などによりアプリケーション8の仕様が変更となった場合、管理センタ2は、データベース30の起動情報を書き換えることにより対応することができる。
(4)ウェブサーバ6との暗号化した回線を確立する際に、ウェブサーバ6で第1公開鍵証明書を確認することにより、ウェブサーバ6は、通信相手が正規のアプリケーション8であることを確認することができる。
【図面の簡単な説明】
【0120】
【図1】本実施の形態にかかるアプリケーションシステムのシステム構成を示したブロック図である。
【図2】確認デバイスの構成を模式的に示した図である。
【図3】アプリケーション販売時におけるアプリケーションシステムの運用について説明するための図である。
【図4】データベースの論理的な構成の一例を示した図である。
【図5】アプリケーションの構成を説明するための図である。
【図6】事業者が確認デバイスとアプリケーションの組を作成する手順について説明するためのフローチャートである。
【図7】アプリケーション使用時におけるアプリケーションシステムの運用について説明するための図である。
【図8】アプリケーションの起動手順を説明するためのフローチャートである。
【図9】オフラインでアプリケーションを起動する場合の手順を説明するためのフローチャートである。
【図10】クライアント端末のハードウェア的な構成を説明するためのブロック図である。
【符号の説明】
【0121】
1 アプリケーションシステム
2 管理センタ
3 クライアント端末
4 認証機関サーバ
5 データベースサーバ
6 ウェブサーバ
7 確認デバイス
8 アプリケーション
100 ネットワーク


【特許請求の範囲】
【請求項1】
アプリケーションが組み込まれたクライアント端末と、前記クライアント端末に接続する所定のハードウェア装置と、前記アプリケーションに起動情報を送信するサーバシステムと、から構成されたアプリケーションシステムであって、
前記アプリケーションは、前記所定のハードウェア装置に記憶されているID情報を取得して前記サーバシステムに送信し、
前記サーバシステムは、前記送信されたID情報を受信し、当該受信したID情報に対応する起動情報を前記アプリケーションに送信し、
前記アプリケーションは、前記送信された起動情報を受信し、当該受信した起動情報を用いてアプリケーション機能を制限して起動することを特徴とするアプリケーションシステム。
【請求項2】
所定の情報処理を行うアプリケーション機能と、
前記アプリケーション機能の起動要求を受け付ける起動要求受付機能と、
ID情報を取得するID情報取得機能と、
前記起動要求を受け付けた場合に、前記取得したID情報をネットワークにより接続した所定のサーバ装置に送信するID情報送信機能と、
前記サーバ装置から、前記送信したID情報に対応する起動情報を受信する起動情報受信機能と、
前記受信した起動情報を用いて前記アプリケーション機能の機能を制限して起動する起動機能と、
をコンピュータで実現するアプリケーションプログラム。
【請求項3】
前記起動要求を受け付けた場合に、前記アプリケーション機能を実現するコンピュータに接続した所定のハードウェア装置にアクセスするアクセス機能と、
前記アクセスした所定のハードウェア装置に記憶されているデジタル証明書を確認する確認機能と、
を前記コンピュータで実現し、
前記起動機能は、前記確認機能で前記デジタル証明書が確認されなかった場合に前記アプリケーション機能の起動を行わないことを特徴とする請求項2に記載のアプリケーションプログラム。
【請求項4】
前記所定のハードウェア装置は、第1の秘密鍵を記憶する第1の秘密鍵記憶手段と、前記記憶した第1の秘密鍵を用いて暗号情報を復号化する復号手段と、を具備しており、
前記起動情報は、前記第1の秘密鍵に対応する第1の公開鍵で暗号化されており、
前記起動機能は、前記受信した起動情報を前記所定のハードウェア装置で復号化した後、当該復号化した起動情報を用いて起動することを特徴とする請求項3に記載のアプリケーションプログラム。
【請求項5】
前記起動情報は、更に第2の秘密鍵で暗号化されており、
前記アプリケーションプログラムには、前記第2の秘密鍵に対応する第2の公開鍵が組み込まれており、
前記起動機能は、前記所定のハードウェア装置で復号化した起動情報を更に前記組み込まれた第2の公開鍵で復号化し、当該復号化した起動情報を用いて起動することを特徴とする請求項4に記載のアプリケーションプログラム。
【請求項6】
前記起動情報には有効期限が含まれており、
前記受信した起動情報を記憶する起動情報記憶機能と、
前記記憶した起動情報の有効期限の有効性を確認する有効確認機能と、
を前記コンピュータで実現し、
前記起動機能は、前記ネットワークによる通信を行わない場合には、前記有効確認機能で有効期限の有効性を確認した場合に、当該記憶しておいた起動情報を用いて前記アプリケーション機能を起動することを特徴とする請求項2から請求項5までのうちの何れか1の請求項に記載のアプリケーションプログラム。
【請求項7】
請求項2から請求項6までのうちの何れか1の請求項に記載したアプリケーションプログラムを記憶した記憶媒体。
【請求項8】
起動情報をID情報に対応付けて記憶する起動情報記憶手段と、
請求項1から請求項5までのうちの何れか1の請求項に記載のアプリケーションプログラムを実行するコンピュータから、ID情報を受信するID情報受信手段と、
前記起動情報記憶機能から、前記受信したID情報に対応する起動情報を取得して前記コンピュータに送信する起動情報送信手段と、
を具備したことを特徴とするサーバ装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−330789(P2006−330789A)
【公開日】平成18年12月7日(2006.12.7)
【国際特許分類】
【出願番号】特願2005−149089(P2005−149089)
【出願日】平成17年5月23日(2005.5.23)
【出願人】(394024477)福井コンピュータ株式会社 (18)
【Fターム(参考)】