以下、情報処理システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報処理システム1のブロック図である。
情報処理システム1は、送信サーバ装置10、端末装置20、および一以上の受信サーバ装置30を備えている。
送信サーバ装置10は、ソフトウェア格納部101、ユーザ識別情報受信部102、認証処理部103、ユーザ情報格納部104、送信先指定情報付与部105、鍵取得部106、鍵付与部107、送信サーバ送信部108、復号化用鍵送信部109を備えている。
端末装置20は、端末受信部201、入力受付部202、実行部203、端末出力部204、期限出力部205、および端末送信部206を備えている。
受信サーバ装置30は、受信サーバ受信部301、受信サーバ格納部302、受信サーバ指示受付部303、復号化部304、ハッシュ処理部305、および受信サーバ出力部306を備えている。
送信サーバ装置10、端末装置20、および受信サーバ装置30は、通信回線やネットワーク等を介して、情報の送受信が可能となるよう接続されている。ネットワークは、例えば、インターネットや、無線や有線のLAN等のネットワークである。ただし、各装置間の接続方法は問わない。また、情報の送受信の手段は、通信手段でも、放送手段等でも良い。また、通信に用いられるプロトコル等は問わない。
送信サーバ装置10は、例えば、ネットワーク等を介して端末装置20にソフトウェアを送信可能なサーバ装置である。送信サーバ装置10は、例えば、データサーバや、WEBサーバである。送信サーバ装置10は、通常、端末装置20から送信されるソフトウェア等を要求する情報に応じて、格納されているソフトウェア等を読み出して、送信元の端末装置20に送信する。
端末装置20は、例えば、ネットワーク接続が可能であって、送信サーバ装置10から送信される情報を受信したり、受信サーバ装置30に対して情報を送信したりすることが可能な装置である。端末装置20は、例えば、コンピュータや、携帯電話や、PDA等である。なお、図1においては、説明の便宜上、端末装置20が一つの場合について説明しているが、端末装置20は複数であっても良い。
受信サーバ装置30は、端末装置20から送信されるデータを受信するサーバである。ここで述べる受信サーバ装置30は、例えば、一以上のユーザからそれぞれ送信されるデータをそれぞれ受信し、個別に管理可能なサーバである。具体的には、各ユーザに対応した送信先を指定する情報である送信先指定情報を用いて送信される情報を、送信先指定情報別に受信可能な装置である。送信先指定情報別に受信可能ということは、受信するハードウェア等は一つであるが、受信したデータの蓄積先が異なる場合も含む概念である。送信先指定情報については後述する。受信サーバ装置30は、例えば、データサーバや、メールサーバ等である。ただし、受信サーバ装置30は、各ユーザがそれぞれ個別に利用するコンピュータや、ネットワーク端末と考えても良い。なお、図1においては、説明のため、受信サーバ装置30が一つの場合について説明しているが、受信サーバ装置30は複数であっても良い。例えば、受信サーバ装置30が、送信先指定情報別に複数用意されていても良い。
ソフトウェア格納部101には、端末装置20で実行可能なデータ入力編集ソフトウェアが格納され得る。データ入力編集ソフトウェアとは、データの入力および編集が可能なソフトウェアである。ソフトウェアとは、例えば、コンピュータの行う処理(演算・動作・通信など)の手順を指示したもの、即ちプログラムの集合体のことである。入力されるデータは、通常はテキストデータであるが、写真データのような画像データ等であっても良い。データ入力編集ソフトウェアは、例えば、入力された文字コード等のデータやビットマップデータやベクタデータ等をメモリ等の記憶媒体上等に入力して保持することでデータを作成し、作成したデータを、必要に応じて記憶媒体等に格納したり外部や他の処理部等に送信したりすることが可能な装置である。データ入力編集ソフトウェアは、例えば、いわゆるワードプロセッサや、テキストエディタ等のソフトウェアである。ソフトウェア格納部101に格納されているデータ入力編集ソフトウェアとは、具体的には、実行ファイル等である。ソフトウェア格納部101に格納されているデータ入力編集ソフトウェアは、端末装置20にダウンロードして、端末装置20において実行可能なソフトウェアである。ソフトウェア格納部101にデータ入力ソフトウェアが記憶される過程は問わない。例えば、記録媒体や通信回線等を介して取得したデータ入力ソフトウェアの実行ファイル等がソフトウェア格納部101で記憶される。ソフトウェア格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
ユーザ識別情報受信部102は、ユーザを識別する情報であるユーザ識別情報を受信する。ユーザ識別情報は、ユーザを識別可能な情報であればどのような情報であっても良く、例えば、ユーザ名やユーザID、社員番号、メールアドレス、メールアカウント等どのような情報であっても良い。また、ユーザ識別情報は、ユーザが利用する端末装置20の識別情報と考えても良い。端末装置20の識別情報とは、例えば、装置名や、装置IDや、MACアドレスや、IPアドレス等である。また、ユーザ識別情報受信部102は、ユーザ識別情報に加えて、当該ユーザ識別情報と対になるパスワードの情報を受信しても良い。ユーザ識別情報受信部102が受信するユーザ識別情報やパスワード等の認証に用いられる情報を、認証用の情報と考えても良い。また、通常、ユーザ識別情報受信部102は、ユーザ識別情報の送信元となる端末装置20に関する情報、例えばIPアドレス等のアドレス情報を受信する。ユーザ識別情報受信部102は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
認証処理部103は、ユーザ識別情報受信部102が受信したユーザ識別情報を用いて、ユーザの認証処理を行う。あるいは、認証処理部103は、ユーザ識別情報に加えて、ユーザ識別情報受信部102がユーザ識別情報に対応して受信したパスワード等の情報を用いて認証処理をおこなっても良い。認証処理は、例えば、送信サーバ装置10が提供するデータ入力編集ソフトウェアを利用する資格を、ユーザ識別情報に対応したユーザが有するか否かを判断する処理と考えても良い。また、送信サーバ装置10内の情報を利用可能なユーザ、あるいは送信サーバ装置10にアクセス可能なユーザの全てが、送信サーバ装置10が提供するデータ入力編集ソフトウェアを利用する場合、ユーザが送信サーバ装置10内の情報等を利用する資格を有するか否か、あるいは送信サーバ装置10にアクセスする資格等を有するか否か等を判断する処理、例えば送信サーバ装置10へのログイン処理等を認証処理と考えても良い。具体的には、認証処理部103は、ユーザ識別情報に対応したユーザが、予め登録されたユーザであるか否かを判断する。例えば、認証処理部103は、ユーザ識別情報受信部102が受信したユーザ識別情報、あるいはユーザ識別情報とパスワードとの組合せが、予め格納されている認証用の一以上のユーザ識別情報、あるいは認証用のユーザ識別情報とパスワードとの一以上の組合せの、いずれか一つと一致するか否かを判断する。そして、一致するものがある場合、認証が許可されたと判断される。一致するものがない場合、認証が失敗したと判断される。認証が許可されたということは、例えば、ユーザが正当な権限等を有したユーザであると認められたことである。認証用のユーザ識別情報、あるいはユーザ識別情報とパスワードとの組合せは、具体的には、データ入力編集ソフトウェアを利用する資格を有するユーザのユーザ識別情報、あるいはユーザ識別情報とパスワードとの組合せである。ここではこれらの認証に用いられる情報は、例として、ユーザ情報格納部104に予め記憶されているものとする。ただし、格納場所等は問わない。なお、認証処理は、サーバ等へログインする際の認証処理と同様であるので、ここでは詳細な説明は省略する。認証処理部103は、通常、MPUやメモリ等から実現され得る。認証処理部103の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ユーザ情報格納部104には、データ入力編集ソフトウェアを利用可能な一以上のユーザのユーザ識別情報、あるいは当該ユーザ識別情報とパスワードとの組合せが格納されている。送信サーバ装置10にログインしたユーザの全てが、データ入力編集ソフトウェアを利用可能なユーザである場合には、ユーザ情報格納部104には、データ入力編集ソフトウェアを利用可能なユーザのユーザ識別情報、あるいは当該ユーザ識別情報とパスワードとの組合せが格納されているようにしてもよい。また、ユーザ情報格納部104には、ユーザがデータ入力編集ソフトウェアで作成したデータの送信先を指定する情報である1以上の送信先指定情報が、各ユーザ識別情報と対応付けられて格納されている。送信先指定情報については、後述する。ユーザ情報格納部104にユーザ識別情報等の情報が記憶される過程は問わない。例えば、記録媒体や通信回線等を介して取得したユーザ識別情報等の情報がユーザ情報格納部104で記憶される。ユーザ情報格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
送信先指定情報付与部105は、認証処理部103により認証が許可されたユーザに送信されるデータ入力編集ソフトウェアに、当該データ入力編集ソフトウェアを用いて作成されたデータ(以下、作成データと称す)の送信先を指定する情報である送信先指定情報を付与する。送信先指定情報とは、送信先を指定可能な情報であり、例えば、メールアドレスや、IPアドレスやURL等の、データの送信先となる装置やディレクトリ等のアドレスの情報である。送信先指定情報は、例えば、上述したように、ユーザ情報格納部104等に、ユーザ識別情報と対応付けて格納され得る。送信先指定情報には、例えば、データ入力編集ソフトウェアを送信サーバ装置10から受信して操作するユーザを特定する送信先を指定する送信先指定情報(以下、自送信先指定情報と称す)と、データ入力編集ソフトウェアを操作するユーザとは異なるユーザを特定する送信先を指定する送信先指定情報(以下、他送信先指定情報と称す)とがある。データ入力編集ソフトウェアを送信サーバ装置10から受信して操作するユーザは、ここでは、データ入力編集ソフトウェアを取得するために端末装置20から送信されたユーザ識別情報に対応するユーザと考えても良い。ユーザを特定する送信先とは、具体的には、管理者等を除いてユーザだけがアクセス可能な受信サーバ装置30、あるいは当該受信サーバ装置30内のデータが記憶される領域等である。なお、自送信先指定情報と他送信先指定情報とが識別可能となるようにしておくことが好ましく、例えば、予め識別情報等を与えておくようにする。送信先指定情報付与部105は、ユーザ識別情報に対応した自送信先指定情報または他送信先指定情報の少なくとも一方を、データ入力編集ソフトウェアに付与する。なお、一のデータ入力編集ソフトウェアには、1以上の送信先指定情報を付与するようにして良い。送信先指定情報の付与について具体的に説明すると、例えば、上述したように、ユーザ情報格納部104等に、予め、少なくとも1以上の送信先指定情報を、ユーザ識別情報と対応付けて蓄積しておく。この送信先指定情報は、自送信先指定情報および他送信先指定情報のいずれであっても良く、両者を含んでいても良い。また、この場合の自送信先指定情報は、ユーザ識別情報が示すユーザを特定する送信先を指定する送信先指定情報であるとする。また、他送信先指定情報は、ユーザ識別情報が示すユーザ以外のユーザを特定する送信先を指定する送信先指定情報であるとする。そして、送信先指定情報付与部105は、認証処理部103がユーザの認証を許可した場合に、ユーザ識別情報受信部102が受信した認証が許可されたユーザのユーザ識別情報に対応した送信先指定情報を、ユーザ情報格納部104等から取得し、ソフトウェア格納部101に格納されているデータ入力編集ソフトウェアに付与する。送信先指定情報付与部105は、具体的には、ユーザ識別情報受信部102が受信したユーザ識別情報を検索キー等として用いて、ユーザ情報格納部104に、当該検索キーと一致するユーザ識別情報と対応付けられて格納されている送信先指定情報を読み出す。さらに、送信の対象となるデータ入力編集ソフトウェアを、ソフトウェア格納部101から読み出し、読み出したデータ入力編集ソフトウェアに、読み出した送信先指定情報を付与する。データ入力編集ソフトウェアに送信先指定情報を付与するとは、データ入力編集ソフトウェアに送信先指定情報を埋め込む、あるいはデータ入力編集ソフトウェアの設定情報等に送信先指定情報を設定することと考えても良いし、データ入力編集ソフトウェアと送信先指定情報とを同時に送信できるように、それぞれのデータファイルを一つのデータファイルにまとめたり添付することと考えても良いし、データ入力編集ソフトウェアに送信先指定情報を対応付けることと考えても良い。送信先指定情報付与部105は、通常、MPUやメモリ等から実現され得る。送信先指定情報付与部105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
鍵取得部106は、作成データを暗号化するための暗号化用鍵と、当該暗号化用鍵で暗号化された作成データを復号する復号化用鍵とを取得する。ここで述べる取得とは、鍵を作成することであるが、図示しない格納部等に格納されている鍵を読み出すことを取得と考えても良い。鍵取得部106が取得する暗号化用鍵および復号化用鍵は、具体例を挙げると、いわゆる公開鍵および秘密鍵である。また、鍵取得部106が取得する暗号化用鍵および復号化用鍵は、秘密鍵および公開鍵であってもよい。また、暗号化用鍵と復号化用鍵は、パスワードや共通鍵等の一の鍵であっても良い。秘密鍵や公開鍵の代表的な例としては、RSA暗号やElGamal暗号等が知られている。なお、秘密鍵や公開鍵、共通鍵等については、公知技術であるので詳細な説明は省略する。鍵取得部106が取得する暗号化用鍵および復号化用鍵は、ユーザ識別情報受信部102が受信したユーザ識別情報に対応した暗号化用鍵および復号化用鍵であることが好ましい。また、鍵取得部106が取得する暗号化用鍵や復号化用鍵は、セキュリティの観点から有効期限を有するものであることが好ましく、例えば、鍵取得部106が暗号化用鍵や復号化用鍵を取得する際に、有効期限を設定するようにしても良い。鍵取得部106は、例えば、認証処理の際に利用されたユーザ識別情報と、認証が許可された際、あるいは鍵を作成する際の日時の情報との組合せによる文字列を基にして、秘密鍵と公開鍵とをセットで作成する。例として、ユーザIDが「suzuki」である鈴木さんが、2008年10月11日午後8時53分に認証が許可された場合、「suzuki−0810112053」という文字列を作成し、当該文字列を用いて秘密鍵および公開鍵を作成する。鍵取得部106は、通常、MPUやメモリ等から実現され得る。鍵取得部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
鍵付与部107は、鍵取得部106が取得した暗号化用鍵をデータ入力編集ソフトウェアに付与する。例えば、送信先指定情報付与部105は、認証処理部103がユーザの認証を許可した場合に、ソフトウェア格納部101に格納されている送信対象となるデータ入力編集ソフトウェアを読み出し、鍵取得部106が取得した暗号化用鍵を読み出したデータ入力編集ソフトウェアに付与する。また、鍵付与部107は、上述した送信先指定情報が付与されたデータ入力編集ソフトウェアに、暗号化用鍵を付与しても良い。あるいは、鍵付与部107が暗号化用鍵を付与したデータ入力編集ソフトウェアに、上述した送信先指定情報付与部105が送信先指定情報を付与しても良い。暗号化用鍵をデータ入力編集ソフトウェアに付与するとは、データ入力編集ソフトウェアに暗号化用鍵を埋め込む、あるいはデータ入力編集ソフトウェアの設定情報等に暗号化用鍵を設定することと考えても良いし、データ入力編集ソフトウェアと暗号化用鍵とを同時に送信できるように、それぞれのデータファイルを一つのデータファイルにまとめたり、添付することと考えても良いし、データ入力編集ソフトウェアに暗号化用鍵を対応付けることと考えても良い。鍵付与部107は、通常、MPUやメモリ等から実現され得る。鍵付与部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
送信サーバ送信部108は、データ入力編集ソフトウェアを端末装置20に送信する。例えば、送信サーバ送信部108は、ユーザ識別情報受信部102が受信したユーザ識別情報の送信元となる端末装置20のアドレス情報等を、ユーザ識別情報受信部102が受信した情報のヘッダ情報等から取得し、当該アドレス情報が示すアドレスを宛先として、ソフトウェア格納部101に格納されているデータ入力編集ソフトウェアを送信する。また、ユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用する端末装置20のアドレス情報とを対応付けた情報を予め用意しておき、当該情報から検索等によりユーザ識別情報受信部102が受信したユーザ識別情報に対応する端末装置20のアドレス情報を取得し、当該アドレス情報が示すアドレスを宛先として、ソフトウェア格納部101に格納されているデータ入力編集ソフトウェアを送信してもよい。送信サーバ送信部108は、認証処理部103が認証が許可されたユーザの端末装置20にデータ入力編集ソフトウェアを送信し、認証が失敗したユーザの端末装置20にはデータ入力編集ソフトウェアを送信しないようにすることがセキュリティを保つうえで好ましい。また、送信サーバ送信部108は、上述した送信先指定情報付与部105により送信先指定情報が付与されたデータ入力編集ソフトウェアを端末装置20に送信するようにしてもよい。また、送信サーバ送信部108は、鍵付与部107により暗号化用鍵が付与されたデータ入力編集ソフトウェアを端末装置20に送信するようにしても良い。また、送信サーバ送信部108は、暗号化用鍵と送信先指定情報とが付与されたデータ入力編集ソフトウェアを端末装置20に送信するようにしても良い。また、送信サーバ送信部108は、認証処理部103が認証を許可した場合に、ユーザ識別情報等を送信した送信元となる端末装置20に、認証が許可されたことを示す情報を送信するようにしても良い。送信サーバ送信部108がデータ入力編集ソフトウェアを送信するプロトコル等はHTTPやFTP等、問わない。また、送信サーバ送信部108は、データ入力編集ソフトウェアを電子メール等で送信するようにしても良い。送信サーバ送信部108は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
なお、送信サーバ送信部108から送信されるデータ入力編集ソフトウェアには、当該ソフトウェアの実行可能な期間を示す情報である期間指定情報が付与されているようにしても良い。このような期間指定情報は、ソフトウェア格納部101に格納されているデータ入力編集ソフトウェアに予め付与されていても良い。また、送信サーバ送信部108や図示しない処理部等が、図示しない格納部等に予め格納されている期間指定情報を読み出して、送信するデータ入力編集ソフトウェアに付与しても良い。あるいは現在の日時等の情報から期間指定情報を生成して、送信するデータ入力編集ソフトウェアに付与しても良い。例えば、期間指定情報は、データ入力編集ソフトウェアの最初の起動時からの経過時間や起動可能な合計時間等を指定する情報であっても良い。また、期間指定情報は、現在の日時の情報に、予め指定した時間を加算した日時を期限として指定する情報であってもよい。ここでの付与は、データ入力編集ソフトウェアへの期間指定情報の埋め込みと考えても良いし、データ入力編集ソフトウェアと期間指定情報とを対応付けておくことと考えても良い。
なお、ここでは説明を省略したが、データ入力編集ソフトウェアを要求する情報(以下、要求情報と称す)をユーザ識別情報受信部102等が受信するようにし、当該ユーザ識別情報受信部102が要求情報を受信した場合に、当該要求情報の送信元となる端末装置20にデータ入力編集ソフトウェアを送信しても良い。また、上述したように、認証処理部103により認証が行われる場合、認証処理部103が認証を許可した場合において、当該認証が許可された端末装置20から送信される要求情報を受信部が受け付けた場合に、当該要求情報の送信元となる端末装置20にデータ入力編集ソフトウェアを送信しても良い。また、要求情報を受信する受信部等を別途も受けるようにしても良い。
復号化用鍵送信部109は、鍵取得部106が取得した復号化用鍵を、当該復号化用鍵と対になる暗号化用鍵が付与されたデータ入力編集ソフトウェアを用いて作成される作成データの送信先に送信する。送信は、セキュリティのため、直接送信されることが好ましい。作成データの送信先とは、具体的には、当該復号化用鍵と対になる暗号化用鍵が付与されたデータ入力編集ソフトウェアに付与された送信先指定情報(例えばアドレス情報)が示す送信先である。例えば、復号化用鍵送信部109は、送信先指定情報付与部105が取得した送信先指定情報と同じ送信先指定情報を取得し、当該送信先指定情報が示す送信先、例えば受信サーバ装置30等に復号化用鍵を送信する。なお、送信サーバ装置10と受信サーバ装置30とが一の装置で実現されている場合においては、作成データの送信先は自装置となるため、このような場合には、作成した復号化用鍵を、図示しない自装置の受信サーバ受信部301等に送信し、自装置の受信サーバ格納部302に蓄積しておくようにしても良い。復号化用鍵送信部109は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
端末受信部201は、送信サーバ装置10から送信されるデータ入力編集ソフトウェアを受信する。受信したデータ入力編集ソフトウェアは、図示しない記憶媒体等に格納される。端末受信部201は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
なお、ここでは詳細な説明を省略したが、端末受信部201は、送信サーバ装置10に対して行った認証が許可されたか否かを示す情報を受信するようにしても良い。また、この場合、認証が許可されたことを示す情報を受信した場合にのみ、後述する入力受付部202が、データ入力編集ソフトウェアの送信を要求する指示の入力を受け付けられるようにしたり、端末送信部206がデータ入力編集ソフトウェアの送信を要求する指示を、送信サーバ装置10に送信できるようにしても良い。
入力受付部202は、端末受信部201が受信したデータ入力編集ソフトウェアに対するユーザからの入力を受け付ける。入力受付部202が受け付ける入力は、例えば、データ入力編集ソフトウェアを操作する指示や、テキスト等のデータの入力である。また、入力受付部202は、データ入力編集ソフトウェアに対する入力以外の、端末装置20に対する入力を受け付けるようにしても良い。ここで述べる受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。入力受付部202は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
実行部203は、端末受信部201が受信したデータ入力編集ソフトウェアを実行して、データを作成する。具体的には、受信したデータ入力編集ソフトウェアを、ユーザ等の指示に応じて起動し、入力受付部202が受け付けた入力に応じたデータを作成する。例えば、入力受付部202が受け付けたテキストを配置したテキストデータ等を作成する。データを作成するということは、例えば、メモリ等の記憶媒体上に文字コード等のデータを入力し保持すること等と考えても良い。実行部203が作成した作成データは、メモリ等の揮発性の記憶媒体に一時的に記憶され、不揮発性の記憶媒体等に保存されないことがセキュリティ確保の観点から好ましい。あるいは、実行部203が作成した作成データは、データ入力編集ソフトウェアの起動中は、ハードディスク等の不揮発性の記憶媒体に記憶されても良いが、データ入力編集ソフトウェアの終了時やデータ入力編集ソフトウェアの再起動時には削除することがセキュリティ確保の観点から好ましい。また、不揮発性の記憶媒体に作成中のデータを記憶する際には、暗号化等を行うことが好ましい。また、データ入力編集ソフトウェアに当該ソフトウェアの実行可能な期間を示す情報である期間指定情報が付与されている場合、実行部203は、当該期間指定情報が示す、データ入力編集ソフトウェアを実行可能な期間だけデータ入力編集ソフトウェアを実行させるようにしてもよい。例えば、期間指定情報が示す期間を超えた期間にデータ入力編集ソフトウェアを実行させようとしても、実行部203は、当該データ入力編集ソフトウェアを実行不可とするようにする。あるいは、実行部203は、期間指定情報が示す期間を超えた場合に、不正なデータ作成が行われないよう、データ入力編集ソフトウェア自身をメモリやハードディスク等の記憶媒体上から削除するようにしてもよい。実行部203がデータ入力編集ソフトウェアを実行している時刻の情報等をどのように取得するか等は問わない。時刻の情報が正確であり、時刻の情報の改ざん等が難しいことから、実行部203は、端末受信部201や端末装置20の時刻情報を取得するための取得部(図示せず)等が、定期的に正確な時刻情報をNTP(Network Time Protocol)サーバ(図示せず)等から取得した時刻の情報を取得することが好ましいが、端末装置20内の内部に設けられた時計等から情報を取得しても良い。また、実行部203は、期間指定情報に応じて、データ入力編集ソフトウェアを最初に起動してから、現在に至るまでの実行している期間等を、時刻の情報等を用いて算出して蓄積していき、蓄積された時間が、上述した期間指定情報が示す期間よりも長くなった場合に、当該データ入力編集ソフトウェアを実行不可とするようにするようにしても良い。実行部203が、ソフトウェアを実行している期間等を蓄積する方法等は公知技術であるので、ここでは説明を省略する。また、実行部203は、実行中のデータ入力編集ソフトウェアを用いて作成中、あるいは作成したデータの一部あるいは全体の内容を複製したり出力したりする処理を行えないようにすることがセキュリティを保つうえで好ましい。データの内容を複製したり出力したりする処理は、データをコピーしたり、モニタ等に表示中のビットマップデータのコピー、いわゆるスクリーンショットをとったり、データをプリンタで印刷したりする処理である。実行部203は、例えば、入力受付部202等に対して、これらの処理を行う指示を受け付けないようにする制御を行っても良いし、入力受付部202がこれらの処理を受け付けた場合においても、これらの処理を実行しないようにしてもよい。具体例としては、実行部203は、これらの処理を実行するためのイベントを取得して破棄してもよい。なお、実行部203がデータを作成している際の処理状況を示す情報や、作成中、あるいは作成後のデータ等は、例えば後述する端末出力部204等から表示することが可能であるものとしてもよい。
また、実行部203は、上述したように端末受信部201が受信したデータ入力編集ソフトウェアに当該ソフトウェアの実行可能な期間を示す情報である期間指定情報が付与されている場合、データ入力編集ソフトウェアを利用している現在の日時やデータ入力編集ソフトウェアの起動時刻等が、期間指定情報が示す期間の期限に対して所定の条件を満たすか否かを判断するようにしてもよい。そして、判断結果が所定の条件を満たすことを示すものであった場合、後述する期限出力部205が、予め指定された期限に関する出力を行うようにしても良い。所定の条件とは、例えば、期間指定情報が示すデータ入力編集ソフトウェアを実行可能な有効期限に対する残り時間の条件であり、例えば、残り時間が30分という条件である。この場合、例えば、データ入力編集ソフトウェアを実行している現在の時刻と、期間指定情報が示す期間の最終時刻との差が、所定の条件である30分未満となった時点の最初に、実行部203は、残り時間が30分未満であることを示す条件を満たすと判断する。あるいは、所定の条件は、結果的に期限に対する条件を示すことが可能な条件であれば、データ入力編集ソフトウェアを実行可能な有効期限に対する開始時刻からの経過時間の条件等であっても良い。なお、この所定の条件を示す情報は、データ入力編集ソフトウェアに付与されているようにしても良いし、端末装置20の図示しない格納部等に予め格納されていても良い。
また、実行部203は、データ入力編集ソフトウェアの終了時に、実行部203が作成した作成データのハッシュ値を算出してもよい。例えば、実行部203は、予め図示しない格納部等に用意されたハッシュ値を算出するハッシュ関数等と、実行部203が作成した作成データを用いて、ハッシュ値を算出する。ハッシュ関数とは、与えられた元データから固定長の疑似乱数値を生成する演算に用いられる関数であり、生成した値がハッシュ値である。ハッシュ関数としては、例えば、MD5やSHA−1等が一般的に知られている。ハッシュ値は、通常、英数半角大文字小文字が組み合わされた文字列として表現され、利用されるハッシュ関数によって、文字列の長さ(ビット長)が決まる。例えばMD5を利用した場合128ビット、SHA−1を利用した場合160ビットとなる。なお、ハッシュ値やハッシュ関数等については、公知技術であるので詳細な説明は省略する。
また、実行部203は、データ入力編集ソフトウェアの終了時に、作成したデータを、メモリやハードディスク等の記憶媒体上から、削除することが好ましい。このように削除を行うことで、端末装置20上で作成したデータが、データ入力編集ソフトウェアの終了後も、端末装置20に残されることを回避して、作成データの機密性を保つことができる。この削除は、削除された作成データの復元が不可能となるような完全な削除であることが好ましい。ここでの削除は、作成データを不可とすることと考えても良く、例えば、作成データ上に、他のデータ等を上書きすること等であっても良い。なお、終了時とは終了の直前から終了の直後までの期間内のいずれのタイミングであっても良い。また、この削除は、後述する端末送信部206による作成データの送信終了後に行うものとする。あるいは最初から作成データが、揮発性の記憶媒体上で作成され、不揮発性のメモリに記録されないようにし、作成データが、端末装置20の電源オフ時等に消滅するようにしても良い。また、実行部203は、データ入力編集ソフトウェアの終了時に、上記作成データと同様に、データ入力編集ソフトウェアをメモリやハードディスク等の記憶媒体上から削除するようにしてもよい。実行部203は、通常、MPUやメモリ等から実現され得る。実行部203の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
端末送信部206は、データ入力編集ソフトウェアの終了時に、実行部203が作成したデータである作成データを、予め指定された送信先に送信する。ここで述べる終了時とは、データ入力編集ソフトウェアの終了直前から終了直後までの期間内のタイミングであればよい。端末送信部206が、作成データを送信するタイミングをどのように判断するか等については問わない。端末送信部206は、例えば、入力受付部202等が受け付けた終了指示の受付をトリガーとしてデータ入力編集ソフトウェアを用いて作成した作成データを送信しても良いし、実行部203が実行する終了処理に、端末送信部206に作成データの送信を指示するコマンド等が含まれているようにして、終了処理時に、端末送信部206に作成データの送信を指示するようにしても良い。ただし、ユーザからの送信指示を受け付けた場合等、終了時以外にも作成データを送信できるようにしても良い。
予め指定された作成データの送信先は、具体的には、データ入力編集ソフトウェアを操作するユーザと同じユーザを特定する送信先である。データ入力編集ソフトウェアを操作するユーザを、端末装置20を利用しているユーザと考えても良い。ユーザを特定する送信先とは、ユーザが利用するメールサーバのメールアドレスや、ユーザのみがアクセス可能なオンライン上の格納部等のアドレス等である。
また、予め指定された作成データの送信先は、前記データ入力編集ソフトウェアを操作するユーザとは異なるユーザを特定する送信先であってもよい。ユーザとは異なるユーザとは、例えば、作成データを作成したユーザ以外のユーザであって、作成データに対するアクセス等が許可されているユーザ等である。なお、この場合、データ入力編集ソフトウェアを操作するユーザを特定する送信先も含むようにしても良いし、含まないようにしても良い。また、予め、作成データを作成したユーザ以外のユーザを送信先に含むようにする場合においては、複数のユーザから送信先となるユーザを選択するようにしても良い。例えば、予め作成データを作成したユーザ以外の、送信先となり得る一以上のユーザを識別可能な識別情報等と当該ユーザの送信先情報とを対応付けて予め図示しない格納部等に用意しておくようにする。そして、当該送信先となり得るユーザの識別情報等を用いて端末出力部204等が構成した選択メニュー画面等を介して、入力受付部202が、データ入力編集ソフトウェアを操作するユーザとは異なる予め指定されたユーザの中から、作成データの送信先となるユーザの選択を受け付けるようにしても良い。そして、端末送信部206が、入力受付部202が受け付けた選択によって指定されたユーザを特定する送信先の情報を取得して、当該送信先に、実行部203が作成した作成データを送信する。
端末送信部206は、具体的には、データ入力編集ソフトウェアの終了時に、実行部203が作成したデータである作成データを、端末受信部201が受信したデータ入力編集ソフトウェアに付与された送信先指定情報が指定する送信先に送信する。例えば、端末送信部206は、データ編集入力編集ソフトウェアの終了前に、当該データ入力編集ソフトウェアに付与されている送信先指定情報を読み出し、当該送信先指定情報が示す送信先に作成データを送信する。ただし、送信先は端末装置20を操作するユーザ等が指定した送信先であっても良い。例えば、読み出した送信先指定情報が、自送信先指定情報である場合、結果として、データ入力編集ソフトウェアを操作するユーザの同じユーザを特定する送信先に作成データを送信することとなる。また、読み出した送信先指定情報が、他送信先指定情報である場合、結果として、データ入力編集ソフトウェアを操作するユーザとは異なる予め指定されたユーザを特定する送信先に作成データを送信することとなる。
また、データ入力編集ソフトウェアに複数の他送信先指定情報が含まれる場合、ユーザが、複数の他送信先指定情報から1以上の他送信先指定情報を選択できるようにして、端末送信部206は、選択された他送信先指定情報が示す送信先に作成データを送信するようにしても良い。例えば、後述する端末出力部204等が、データ入力編集ソフトウェアに付与されている複数の他送信先指定情報を読み出して、当該他送信先指定情報の1以上を選択可能な選択メニュー画面等を出力するようにし、当該選択メニュー画面等を介して、入力受付部202が、1以上の他送信先指定情報の選択を受け付けるようにしても良い。そして、端末送信部206が、入力受付部202が指定を受け付けた他送信先指定情報が示す送信先に、実行部203が作成した作成データを送信するようにしてもよい。ここで述べる複数の他送信先指定情報からの一以上の他送信先指定情報の選択は、結果的に、作成先となるユーザの選択と考えて良い。
また、端末送信部206は、データ入力編集ソフトウェアの終了時に、実行部203が作成したデータである作成データを、データ入力編集ソフトウェアに付与された公開鍵や秘密鍵等の暗号化用鍵を用いて暗号化して予め指定された送信先に送信することが好ましい。暗号化した場合、暗号化前の作成データは削除することが好ましい。また、暗号化する際には、暗号化に利用した暗号化用鍵に対応する復号化用鍵を識別するための情報を暗号化した作成データに付与するようにしても良い。例えば、予め、暗号化用鍵に対応した復号化用鍵を識別するための情報を、データ入力編集ソフトウェアに付与しておくようにし、暗号化した作成データのファイル名やヘッダ情報等に、この復号化用鍵を識別するための情報を付与するようにしても良い。
また、端末送信部206は、実行部203が算出したハッシュ値と作成データとを対応付けて、予め指定された送信先に送信するようにしても良い。例えば、ハッシュ値を作成データに添付して送信しても良いし、ハッシュ値と作成データとを一のファイル等に結合して送信しても良い。具体例としては、ハッシュ値を、作成データの最下位の行に挿入するようにしてもよい。
なお、端末送信部206は、生成データの送信後に、実行部203に生成データやハッシュ値や、データ入力編集ソフトウェアを消去させる指示等を与えるようにしても良い。
端末送信部206からの作成データの送信は、送信先等の設定の容易さの点等から、電子メール等で行われることが好ましいが、どのような方法やどのようなプロトコル等を利用して行われても良い。端末送信部206は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
なお、ここでは詳細な説明を省略したが、本実施の形態においては、データ入力編集ソフトウェアを取得する際等に入力受付部202等から入力されたユーザ識別情報やパスワード等の認証に利用される情報や、データ入力編集ソフトウェア等を要求する情報等を、端末送信部206が送信サーバ装置10に送信するようにしてもよい。
端末出力部204は、実行部203がデータ入力編集ソフトウェア等を実行したことにより得られた処理結果等を出力する。例えば、データ入力編集ソフトウェアを用いて作成中のデータ等をフォント等の情報を用いて、端末装置20の図示しないモニタ等に表示する。また、データ入力編集ソフトウェア等の操作画面や、送信データの送信先となるユーザを選択するためのメニュー画面等を、表示するようにしても良い。ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。端末出力部204は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。出力部は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
期限出力部205は、実行部203が、データ入力編集ソフトウェアに付与されている期間指定情報が示す期間の期限に対して、予め指定された所定の関係を満たすと判断した場合に、予め指定された期限に関する出力を行う。予め指定された期限に関する出力とは、期限に関する警告を行うための出力である。具体的には、期限までの残り時間を示す情報や、データ入力編集ソフトウェアの利用可能な期限が近いことを喚起するための情報である。期限に関する出力は、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。期限出力部205は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。期限出力部205は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
受信サーバ受信部301は、自装置30を送信先として指定して端末装置20から送信される作成データを受信する。受信サーバ受信部301は、送信される作成データが暗号化用鍵で暗号化された作成データである場合、当該暗号化された作成データを受信する。また、作成データにハッシュ値が付与されている場合、当該ハッシュ値も受信する。また、受信サーバ受信部301は、送信サーバ装置10から送信される、当該受信した作成データの暗号化に用いられた暗号化用鍵に対応した復号化用鍵を受信する。受信した作成データや復号化用鍵等は、例えば、後述する受信サーバ格納部302等の記憶媒体等に記憶される。なお、例えば、受信サーバ装置30がメールサーバ等のように、複数の送信先を指定して送信されるデータをそれぞれ受信して送信先別に振り分けて記憶可能なものである場合、各ユーザや送信サーバ装置10から、各ユーザに対応した送信先を指定して送信された作成データや復号化用鍵等を、受信サーバ格納部302等の各送信先に対応した領域に蓄積するようにしてもよい。例えば、「AAA@aaa.com」と「BBB@aaa.com」というメールアドレスの送信先が、受信サーバ装置30であるとした場合、受信サーバ装置30は、「AAA@aaa.com」というアドレスを宛先として送信されたデータは、受信サーバ格納部302の「AAA@aaa.com」に対応した領域に蓄積し、「BBB@aaa.com」というアドレスを宛先として送信されたデータは、「BBB@aaa.com」に対応した領域に蓄積するようにしてもよい。受信サーバ受信部301は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
受信サーバ格納部302には、受信サーバ受信部301が受信した作成データや復号化用鍵等のデータが格納される。例えば、受信サーバ装置30がメールサーバ等のように、複数の送信先を指定して送信されるデータをそれぞれ受信して送信先別に振り分けて記憶可能なものである場合、各ユーザや送信サーバ装置10から、各ユーザに対応した送信先を指定して送信された作成データや復号化用鍵等は、受信サーバ格納部302の各送信先に対応した領域に蓄積される。受信サーバ格納部302は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
受信サーバ指示受付部303は、受信サーバ受信部301が受信した作成データを出力する指示を受け付ける。受信サーバ受信部301が受信した作成データとは、受信サーバ格納部302に格納された作成データと考えても良い。ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。ここで述べる受付とは、例えば、入力手段からの受付や、ネットワーク等を介して他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。出力する指示の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受信サーバ指示受付部303は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
復号化部304は、受信サーバ指示受付部303が、上述した出力する指示を受け付けた場合に、出力対象である作成データの暗号化に用いられた暗号化用鍵に対応した復号化用鍵を取得して、当該暗号化用鍵で暗号化された作成データを復号する。例えば、予め端末装置20で暗号化された情報に、暗号化に利用した暗号化用鍵に対応した復号化用鍵を指定可能な情報を付与するようにし、復号化部304は、出力対象となる作成データに付与されたこの情報を参照して、作成データに対応した復号化用鍵を、受信サーバ格納部302から読み出し、当該復号化用鍵を用いて作成データを復号する。あるいは、出力対象となる作成データが対応付けられているユーザと、同じユーザに対応付けられて格納されている全ての復号化用鍵を、受信サーバ格納部302から取得し、取得した復号化用鍵を用いて、出力対象となる作成データを順次復号を試みることで、作成データの復号を行っても良い。復号化部304は、通常、MPUやメモリ等から実現され得る。復号化部304の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、作成データが暗号化されていない場合、復号化部304やその処理等は省略しても良い。
ハッシュ処理部305は、復号化部304が復号した作成データに対して、上述した実行部203がハッシュ値の算出に利用したハッシュ関数と同じハッシュ関数を用いて、ハッシュ値を算出する。そして、取得したハッシュ値と、作成データに付与されて送信されたハッシュ値とが一致するか否かの判断を行う。そして、判断結果を、受信サーバ出力部306に出力する。ハッシュ値の比較を行い、ハッシュ値が一致している場合、作成データは改ざんされてる可能性が低いと判断されたこととなる。またハッシュ値が一致していない場合、作成データが改ざんされた、あるいは改ざんされた可能性が高いと判断される。ハッシュ処理部305がハッシュ値を算出する処理は、上述した実行部203の処理と同様であるので説明は省略する。ハッシュ処理部305は、通常、MPUやメモリ等から実現され得る。ハッシュ処理部305の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、作成データにハッシュ値が付与されていない場合、ハッシュ処理部305やその処理等は省略しても良い。
受信サーバ出力部306は、受信サーバ指示受付部303が受け付けた指示により指定された作成データを出力する。また、出力対象の作成データが、暗号化されたものである場合、復号化部304において復号された作成データを出力する。また、出力対象の作成データにハッシュ値が付与されている場合、ハッシュ処理部305が、ハッシュ値が一致していると判断した場合には作成データを出力し、一致していないと判断した場合、作成データに異常が生じたことを示す情報を出力する。あるいは出力を中止しても良い。出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。受信サーバ出力部306は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。受信サーバ出力部306は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
なお、ここでは説明を省略したが、暗号化用鍵や復号化用鍵にも有効期限を設定する情報を付加するようにし、データ入力編集ソフトウェアの期限と同様に、暗号化用鍵や復号化用鍵を利用する際に、現在の時間がそれぞれの鍵が示す有効期限内であるか否かを判断し、有効期限内である場合にのみ、それぞれの鍵を利用できるようにしても良い。
次に送信サーバ装置10の動作について図2のフローチャートを用いて説明する。
(ステップS201)ユーザ識別情報受信部102は、ユーザ識別情報を含む認証に用いられる情報を端末装置20から受信したか否かを判断する。具体的には、ユーザ識別情報とパスワードとの対を受信したか否かを判断する。受信した場合、ステップS202に進み、受信していない場合、ステップS201に戻る。
(ステップS202)認証処理部103は、ステップS201において受け付けたユーザ識別情報を含む認証に用いられる情報を用いて、認証処理を行う。認証処理には、ユーザ情報格納部104に格納されているユーザ識別情報やパスワード等の情報を利用する。
(ステップS203)認証処理部103は、認証が許可されたか否かを判断する。認証が許可された場合、認証が許可されたことを示す情報を、ユーザ識別情報の送信元の端末装置20に送信し、ステップS204に進み、認証が許可されずに失敗した場合、ステップS201に戻る。
(ステップS204)ユーザ識別情報受信部102は、認証が許可されたユーザの端末装置20からデータ入力編集ソフトウェアを要求する情報を受け付けたか否かを判断する。受け付けた場合、ステップS205に進み、受け付けていない場合、ステップS204に戻る。
(ステップS205)送信先指定情報付与部105は、ステップS204において要求されたデータ入力編集ソフトウェアを、ソフトウェア格納部101から読み出す。
(ステップS206)送信先指定情報付与部105は、ステップS205において読み出したデータ入力編集ソフトウェアに、ステップS203において認証が許可されたユーザ識別情報に対応した一以上の送信先指定情報をユーザ情報格納部104から取得し、ステップS205において読み出したデータ入力編集ソフトウェアに付与する。例えば、送信先指定情報を埋め込む。この送信先指定情報は、自送信先指定情報および他送信先指定情報の少なくともいずれか一方を含む。
(ステップS207)鍵取得部106は、暗号化用鍵と復号化用鍵の対を取得する。例えば、ステップS203において認証が許可されたユーザのユーザ識別情報と、現在の日時等の情報を用いて暗号化用鍵と復号化用鍵を作成する。
(ステップS208)鍵付与部107は、ステップS206において送信先指定情報が付与されたデータ入力編集ソフトウェアに、ステップS207において取得した暗号化用鍵を付与する。例えば、暗号化用鍵をデータ入力編集ソフトウェアに埋め込む。
(ステップS209)送信サーバ送信部108は、ステップS208において暗号化用鍵を付与したデータ入力編集ソフトウェアを、ステップS203において認証が許可されたユーザの端末装置20に送信する。
(ステップS210)送信サーバ送信部108は、ステップS206において取得した送信先指定情報が示す送信先に、ステップS207において作成した復号化用鍵を送信する。そして、ステップS201に戻る。なお、復号化用鍵の送信後は、暗号化用鍵や復号化用鍵は削除することが、機密保持上、好ましい。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に端末装置20の動作について図3のフローチャートを用いて説明する。
(ステップS301)入力受付部202は、ユーザ識別情報等の認証に利用される情報を送信する指示を受け付けたか否かを判断する。この指示は、例えば、送信対象となるユーザ識別情報やパスワード等の情報を含む情報である。受け付けた場合、ステップS302に進み、受け付けていない場合、ステップS301に戻る。
(ステップS302)端末送信部206は、ステップS301において受け付けた送信指示の対象となるユーザ識別情報等の認証に用いられる情報を、送信サーバ装置10に送信する。
(ステップS303)端末受信部201は、認証が許可されたことを示す情報を受信したか否かを判断する。受信した場合、ステップS304に進み、受信していない場合、ステップS301に戻る。なお、ステップS303においては、予め指定された時間に至るまで、ステップS303の処理を繰り返し、その時間内に認証が許可されたことを示すが受信されなかった場合にステップS301に戻るようにしても良い。また、認証が失敗したことを示す情報を受信した場合に、認証が許可されたことを示す情報を受信しなかったと判断してステップS301に戻るようにしても良い。
(ステップS304)入力受付部202は、データ入力編集ソフトウェアの送信を要求する指示を受け付けたか否かを判断する。なお、データ入力編集ソフトウェアが複数存在する場合、この指示は、データ入力編集ソフトウェアを指定する情報を含んでいても良い。受け付けた場合、ステップS305に進み、受け付けていない場合、ステップS304に戻る。
(ステップS305)端末送信部206は、データ入力編集ソフトウェアの送信、いわゆるダウンロードを要求する指示を、送信サーバ装置10に送信する。
(ステップS306)端末受信部201は、データ入力編集ソフトウェアを受信したか否かを判断する。受信した場合、データ入力編集ソフトウェアを図示しないメモリ等の記録媒体等に蓄積し、ステップS307に進み、受信していない場合、ステップS306に戻る。なお、ステップS305の処理を行ってからの経過時間が、予め指定された時間を超える場合に、データ入力編集ソフトウェアの受信を失敗したと判断して、ステップS304等に戻るようにしても良い。
(ステップS307)入力受付部202は、データ入力編集ソフトウェアを起動する指示を受け付けたか否かを判断する。受け付けた場合、ステップS308に進み、受け付けていない場合、ステップS307に戻る。
(ステップS308)実行部203は、データ入力編集ソフトウェアを起動する。起動後は、例えば、図示しない端末出力部204等に、データ入力編集ソフトウェアのインターフェース等の画面を出力させるようにする。
(ステップS309)実行部203は、端末受信部201等が図示しないNTPサーバ等から取得した現在の日時の情報等が、データ入力編集ソフトウェアに付与されている期間指定情報が示す期間であるか否かを判断する。例えば、期間指定情報がデータ入力編集ソフトウェアが起動可能な最終日の日時を示す情報である場合、現在の日時が、期間指定情報が示す日時を超えているか否かを判断し、超えている場合、期間指定情報が示す期間内ではないと判断する。また、期間指定情報等が、データ入力編集ソフトウェアの最初の起動からの累積された起動時間等を示す情報である場合、実行部203は、データ入力編集ソフトウェアの起動中の時間を、例えば予め指定された間隔等で取得し、図示しない記憶媒体等に蓄積する。そして、当該蓄積した時間が、期間指定情報が示す累積された起動時間以上であるか否かを判断するようにする。現在の日時が期間指定情報が示す期間内である場合、ステップS309に進み、期間内でない場合、ステップS323に進む。なお、ステップS309と同様の処理を、ステップS308の直前にも行うようにして、起動時が、期間指定情報が示す期間内でない場合、データ入力編集ソフトウェアが起動しないようにしても良い。
(ステップS310)実行部203は、端末受信部201等が図示しないNTPサーバ等から取得した現在の日時の情報等が、データ入力編集ソフトウェアに付与されている期限指定情報が示す期限に対して、所定の条件を満たすか否かを判断する。例えば、現在の日時の情報を用いて、期間指定情報が示す期間の期限に対する残り時間を算出し、その残り時間の値が、予め指定された所定の時間以下となった時点で、所定の条件を満たすと判断すする。所定の条件を満たす場合、ステップS311に進み、満たさない場合、ステップS312に進む。なお、一の起動期間中において、所定の条件を満たすと一回判断された場合、再度起動処理が行われるまでは、その後は、ステップS310の処理は省略するようにしても良い。なお、所定の条件は、複数設けられていても良い。
(ステップS311)期限出力部205は、予め指定された期限に関する所定の出力を行う。例えば、利用可能時間が短くなった旨を示すダイアログ等を、図示しないモニタ等に表示する。
(ステップS312)入力受付部202は、データ入力編集ソフトウェアに対する入力を受け付けたか否かを判断する。受け付けた場合、ステップS313に進み、受け付けていない場合、ステップS309に戻る。
(ステップS313)実行部203は、受け付けた入力が、データ入力編集ソフトウェアの終了指示であるか否を判断する。終了指示である場合、ステップS316に進み、終了指示でない場合、ステップS314に進む。
(ステップS314)実行部203は、ステップS312において受け付けた入力に応じてデータの入力等を行うことで、作成データの作成や編集等を行う。
(ステップS315)端末出力部204は、ステップS314において作成や編集が行われたデータを出力する。例えば、図示しないモニタ等に作成中や編集中の作成データ等を表示する。そして、ステップS309に戻る。
(ステップS316)実行部203は、ステップS314において作成した作成データのハッシュ値を算出する。
(ステップS317)端末送信部206は、ステップS314において作成した作成データにステップS316において算出したハッシュ値を付与し、データ入力編集ソフトウェアに付与されている暗号化用鍵を用いて暗号化する。暗号化前の作成データやハッシュ値は削除することが好ましい。
(ステップS318)端末出力部204は、データ入力編集ソフトウェアに付与されている送信先指定情報のうちの、他送信先指定情報を一以上を選択可能な項目として有する送信先の選択画面(選択メニュー)を構成し、図示しないモニタ等に出力する。なお、他送信先指定情報の一部を選択しない場合や、他送信先指定情報がない場合等においては、ステップS318およびステップS319の処理は省略しても良い。また、ユーザの識別情報等を選択画面の項目に表示する代わりに、ユーザに対応した送信先指定情報を選択画面の項目として表示するようにしてもよい。
(ステップS319)入力受付部202は、ステップS318において選択画面の項目として表示した1以上の他送信先指定情報についての選択を受け付けたか否かを判断する。受け付けた場合、ステップS320に進み、受け付けていない場合、ステップS319に戻る。なお、項目を一つも選択しない、という選択を受け付けても良い。
(ステップS320)端末送信部206は、データ入力編集ソフトウェアを操作するユーザの送信先指定情報である自送信先指定情報と、ステップS319により選択された他送信先指定情報とを、データ入力編集ソフトウェアに付与されている送信先指定情報の中から取得する。そして、取得した各送信先指定情報が示す送信先に、ステップS317で暗号化した作成データを送信する。即ち、端末装置2のユーザと、ステップS319において選択された他送信先指定情報に対応するユーザとに、作成データを送信する。
(ステップS321)実行部203は、作成データを記憶媒体上等から削除する。
(ステップS322)実行部203は、データ入力編集ソフトウェアを終了する。
(ステップS323)実行部203はデータ入力編集ソフトウェアを終了して、データ入力編集ソフトウェアを削除する。なお、データ入力編集ソフトウェアを終了する直前に、ステップS316からステップS322までに示した処理と同様の処理を実行するようにしても良い。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に受信サーバ装置30の動作について図4のフローチャートを用いて説明する。
(ステップS401)受信サーバ指示受付部303は、受信サーバ受信部301が受信した作成データを出力する指示を受け付けたか否かを判断する。受け付けた場合、ステップS402に進み、受け付けていない場合、ステップS408に進む。
(ステップS402)復号化部304は、受信サーバ格納部302に格納されている復号化用鍵を用いて、ステップS401において受け付けた指示が指定する作成データを復号する。例えば、復号対象となる作成データに含まれている暗号化に用いられた暗号化用鍵の識別情報と対応した復号化用鍵を、受信サーバ格納部302から読み出して復号に用いる。なお、作成データを復号可能な復号化用鍵がない場合には、処理を中断し、ステップS401やステップS408等に戻るようにしても良い。
(ステップS403)ハッシュ処理部305は、ステップS402において復号した作成データについて、図3のステップ316においてハッシュ値の算出に用いたハッシュ関数と同じハッシュ関数を用いて、ハッシュ値を算出する。
(ステップS404)ハッシュ処理部305は、ステップS403において算出したハッシュ値と、受信サーバ受信部301が受信した作成データに付与されていたハッシュ値とを比較する。
(ステップS405)ハッシュ処理部305は、ステップS404において比較したハッシュ値が一致しているか否かを判断する。一致している場合、ステップS406に進み、一致していない場合、ステップS407に進む。
(ステップS406)受信サーバ出力部306は、ステップS402において復号した作成データを出力する。例えば、図示しないモニタ等に表示したり、外部の装置等に送信する。そして、ステップS401に戻る。
(ステップS407)受信サーバ出力部306は、作成データに異常がある旨の出力を行う。例えば、異常が生じたことを示すダイアログ等を出力する。そして、ステップS401に戻る。
(ステップS408)受信サーバ受信部301は、送信サーバ装置10から送信される復号化用鍵を受信したか否かを判断する。受信した場合、ステップS409に進み、受信していない場合、ステップS410に進む。
(ステップS409)受信サーバ受信部301は、ステップS408において受信した復号化用鍵を受信サーバ格納部302に蓄積する。そして、ステップS401に戻る。
(ステップS410)受信サーバ受信部301は、端末装置20から送信される作成データを受信したか否かを判断する。受信した場合、ステップ411に進み、受信していない場合、ステップS401に戻る。なお、作成データにハッシュ値が付与されている場合、受信サーバ受信部301は、当該ハッシュ値も受信する。
(ステップS411)受信サーバ受信部301は、受信した作成データを受信サーバ格納部302に蓄積する。受信した作成データにハッシュ値等が付与されている場合、受信サーバ受信部301は、当該ハッシュ値も作成データと対応付けて蓄積してもよい。そして、ステップS401に戻る。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理システム1の具体的な動作について説明する。情報処理システム1の概念図は図5である。ここでは、説明を簡単にするために、例として、情報処理システム1が、ユーザ別に用意された複数の受信サーバ装置30a〜30n(但し、nは任意の値)を備えている場合を例に挙げて説明する。なお、ここでは例として、各受信サーバ装置30a〜30nは、それぞれが各ユーザの電子メールアドレスに対応付けられており、各ユーザの電子メールアドレスに送信された電子メールを個別に受信可能なものであるとする。各受信サーバ装置30a〜30nが各ユーザに送信された電子メールを受信可能であるということは、各ユーザに送信された電子メールを直接受信可能なメールサーバであると考えても良いし、図示しない一のメールサーバに送信された各ユーザ宛の電子メールを、当該メールサーバからダウンロード可能なユーザの端末装置等と考えても良い。ここでは、例として、受信サーバ装置30aは、メールアドレス「ueda@abcxyz.com」を宛先とした電子メールを受信可能な受信サーバ装置30、受信サーバ装置30bは、メールアドレス「yamamoto@abcxyz.com」を宛先とした電子メールを受信可能な受信サーバ装置30であるとする。なお、複数の受信サーバ装置30a〜30nを用いる代わりに、1の受信サーバ装置30が複数のユーザから送信される作成データや復号化用鍵等をユーザ別に受信したり、ユーザ別の復号処理を行えるようにしても良い。また、複数の受信サーバ装置30a〜30nが、一のサーバ装置等の、一のハードウェアにより実現されていても良い。なお、例えば、送信サーバ装置10や、受信サーバ装置30等は、ユーザが属する企業等の組織が利用する同じ建物内や敷地内等に設置されているか、もしくはセキュリティが確保されている専用回線等で接続されていることが好ましい。
まず、ユーザ識別情報が「UEDA」であるユーザAが端末装置20を操作して、送信サーバ装置10にアクセスしたとすると、送信サーバ装置10は、図示しない送信部等から端末装置20に対して認証用のインターフェースを表示するための情報を送信する。送信サーバ装置10は、送信された情報を受信して、認証用のインターフェース画面を表示する。
図6は、端末装置20のモニタ等に表示される認証用インターフェース画面の一例である。ユーザAが認証用インターフェース画面の、ユーザ識別情報を入力するフィールド61にユーザ識別情報である「UEDA」を、また、パスワードを入力するフィールド62に「kmr13tb7q」を入力し、マウス等を操作して送信ボタン63を押したとする。入力受付部202は、「UEDA」というユーザ識別情報と「kmr13tb7q」というパスワードの対を送信する指示を受け付ける。端末送信部206は、送信サーバ装置10に、「UEDA」というユーザ識別情報と「kmr13tb7q」というパスワードの対に、端末装置20のIPアドレス「210.150.53.XXX」(Xは任意の一桁の正の整数)を付与して送信する。なお、この送信は、いわゆるSSL接続等により機密性が保たれるよう送信されることが好ましい。
図7は、ユーザ情報格納部104に格納されているユーザの情報を管理するユーザ情報管理表である。ユーザ情報管理表は、「ユーザ識別情報」、「パスワード」、「自送信先指定情報」、「他送信先指定情報」という項目を有している。「ユーザ識別情報」は、データ入力編集ソフトウェアが利用可能な登録ユーザのユーザ識別情報である。「パスワード」は、ユーザ識別情報に対応したパスワードである。「自送信先指定情報」は、「ユーザ識別情報」に対応するユーザを特定する送信先を指定するための自送信先指定情報である。「他送信先指定情報」は、「ユーザ識別情報」に対応したユーザ以外のユーザを特定する送信先を指定するための他送信先指定情報である。ここでは、例として送信先指定情報は、メールアドレスであるとする。
ユーザ識別情報受信部102が、IPアドレス「210.150.53.XXX」が付与されて送信された「UEDA」というユーザ識別情報と「kmr13tb7q」というパスワードの対を受信すると、認証処理部103は、受信したユーザ識別情報とパスワードの対とを用いて認証処理を行う。具体的には、認証処理部103は、図6に示したユーザ情報管理表から、「ユーザ識別情報」の項目の値が「UEDA」であるレコードを検索する。そして、検索されたレコードの「パスワード」の値が、ユーザ識別情報受信部102が受信したパスワードの値と一致するか否かを判断する。一致しない場合、認証処理部103は、認証が失敗したと判断して、認証が失敗したことを示す情報をユーザ識別情報の送信元であるIPアドレスが「210.150.53.XXX」である端末装置20に送信する。ここでは、図6に示したユーザ情報管理表の「ユーザ識別情報」の項目の値が「UEDA」であるレコードの「パスワード」の値が「kmr13tb7q」であり、ユーザ識別情報受信部102が受信したパスワードの値と一致するため、認証処理部103は、認証が許可されたことを判断する。そして、認証が許可されたことを示す情報をユーザ識別情報の送信元であるIPアドレスが「210.150.53.XXX」である端末装置20に送信する。ここでは、認証が許可されたことを示す情報として、データ入力編集ソフトウェアのダウンロード画面の情報を、送信サーバ送信部108等が、図示しない格納部等から読み出して、端末装置20に送信したとする。
端末装置20において、ユーザが、入力受付部202に対して、送信サーバ装置10から送信されたダウンロード画面等を操作してデータ入力編集ソフトウェアをダウンロードする指示を入力すると、端末送信部206は、データ入力編集ソフトウェアの送信を要求する指示を、IPアドレス「210.150.53.XXX」を付与して、送信サーバ装置10に送信する。
送信サーバ装置10のユーザ識別情報受信部102が認証が許可されたユーザから送信されたデータ入力編集ソフトウェアの送信を要求する指示を受け付けると、送信先指定情報付与部105は、ソフトウェア格納部101から、データ入力編集ソフトウェアを読み出す。さらに、送信先指定情報付与部105は、認証が許可されたユーザのユーザ識別情報に対応した送信先指定情報をユーザ情報格納部104から取得する。具体的には、図6に示したユーザ識別情報における「ユーザ識別情報」が「UEDA」であるレコードの「自送信先指定情報」および「他送信先指定情報」の値を読み出し、データ入力編集ソフトウェアに埋め込む。例えばデータ入力編集ソフトウェアの設定ファイル等に送信先指定情報の値を書き込む。
なお、このデータ入力編集ソフトウェアには、予め期間指定情報が埋め込まれているものとする。ここでの期間指定情報は、データ入力編集ソフトウェアの最初の起動日時から、三日間の期間を、データ入力編集ソフトウェアが起動及び動作可能な期間に指定する情報であるとする。
鍵取得部106は、認証が許可されたユーザのユーザ識別情報である「UEDA」という文字列と、ユーザ識別情報受信部102が図示しないNTPサーバ等から受信した現在の日時の情報、例えば「2010年1月20日13時35分」とを用いて、予め用意されたアルゴリズム等に従って、秘密鍵と公開鍵との対を作成する。ここでは、作成した公開鍵を暗号化用鍵、作成した秘密鍵を復号化用鍵として利用する場合について説明する。鍵付与部107は、鍵取得部106が取得した公開鍵を、ユーザ識別情報を付与したデータ入力編集ソフトウェアに付与する。例えば、公開鍵を構成する文字列等を、データ入力編集ソフトウェアに埋め込む。また、鍵取得部106は、取得した秘密鍵である復号化用鍵に任意の識別情報、例えば「PK1001」を対応付け、この復号化用鍵の識別情報「PK1001」をデータ入力編集ソフトウェアに埋め込む。また、復号化用鍵の識別情報「PK1001」を、復号化用鍵のファイル名に設定する。復号化用鍵の識別情報を、以下、復号化用鍵識別情報と呼ぶ。
そして、送信サーバ送信部108は、送信先指定情報および鍵取得部106が取得した公開鍵を埋め込んだデータ入力編集ソフトウェアを、IPアドレスが「210.150.53.XXX」である認証が許可されたユーザの端末装置20に送信する。
つまり、ここで送信されるデータ入力編集ソフトウェアは、「ueda@abcxyz.com」という自送信先指定情報と、「yamamoto@abcxyz.com」、「inoue@abcxyz.com」、および「kikuchi@abcxyz.com」という他送信先指定情報と、暗号化用鍵と、当該暗号化用鍵と対になる復号化用鍵の識別情報「PK1001」とが付与されたものである。
また、復号化用鍵送信部109は、自送信先指定情報および他送信先指定情報が示すメールアドレス「ueda@abcxyz.com」、「yamamoto@abcxyz.com」、「inoue@abcxyz.com」、および「kikuchi@abcxyz.com」を、宛先として、データ入力編集ソフトウェアに埋め込んだ暗号化用鍵と対になる復号化用鍵を電子メールを用いて送信する。
復号化用鍵を含む電子メールの送信先となる受信サーバ装置30a〜30n(具体的には受信サーバ装置30aや受信サーバ装置30b等)は、送信サーバ装置10から電子メールによって送信される復号化用鍵を受信する。そして、受信サーバ格納部302に復号化用鍵を蓄積する。
端末装置20の端末送信部206は、送信サーバ装置10から送信されるデータ入力編集ソフトウェアを受信し、受信したデータ入力編集ソフトウェアを図示しない記憶媒体等に記憶する。
ユーザが、キーボードやマウス等を操作して端末装置20にデータ入力編集ソフトウェアを起動する指示を与えると、実行部203は、データ入力編集ソフトウェアを起動する。実行部203は、データ入力編集ソフトウェアの最初の起動時の時刻の情報を、図示しないNTPサーバ等から取得し、記憶媒体等に記憶する。ここでは最初の起動時刻は、「2010年1月20日14時30分」であったとする。具体的には、データ入力編集ソフトウェアが実行可能となるように、プログラムをメモリ等に読み出す。
実行部203は、図示しないNTPサーバ等から端末受信部201等が受信した現在の時刻の情報「2010年1月20日14時30分」を取得し、現在の時刻が、データ入力編集ソフトウェアに埋め込まれている期間指定情報が指定する期間内であるか否かを判断する。ここでは、データ入力編集ソフトウェアがダウンロード後初めて起動したため、起動してからの経過時間は、「0分」であり、上述した期間指定情報が示す三日間を超えていないため、期間指定情報が指定する期間内であると判断する。
さらに、実行部203は、期間指定情報が指定する期間の期限の日時の情報を取得し、取得した日時と、現在の時刻との関係が、所定の関係であるか否かを判断する。ここでは、所定の関係は、期間指定情報が指定する期間の期限に至るまでの時間が1時間以内である、という関係であるとすると、実行部203は、期間指定情報である「三日間」をデータ入力編集ソフトウェアの最初の起動日時の情報「2010年1月20日14時30分」に加算して、「2010年1月23日14時30分」というデータ入力編集ソフトウェアが動作可能な期限の情報を得る。そして、算出した期限の情報と、現在の日時と、の差が1時間以下であるか否かを判断する。ここでは、差が1時間以内でないため、所定の関係にないと判断される。
図8は、データ入力編集ソフトウェアの出力画面等を示す図である。
例えば、ユーザAが端末装置20のキーボード等を操作して文字列「販売戦略」を入力したとすると、入力受付部202は文字列「販売戦略」の入力を受け付け、実行部203は、受け付けた文字列をデータ入力編集ソフトウェアが確保しているメモリ等の記憶領域に蓄積していく。そして蓄積された文字列を用いて、端末出力部204は、データ入力編集ソフトウェアの出力画面を更新する。
このようにしてユーザAから順次入力された文字列によって更新された出力画面の例を、図9に示す。
次に、ユーザAが、メニュー画面等を操作して起動中のデータ入力編集ソフトウェアを終了する指示を入力受付部202に与えたとする。入力受付部202が終了する指示を受け付けたことをトリガーとして、実行部203は、データ入力編集ソフトウェアで作成されたデータのハッシュ値を、予め用意されたハッシュ関数を用いて算出する。このハッシュ関数は、データ入力編集ソフトウェアに埋め込まれていても良いし、端末装置20の図示しない格納部等に予め格納されていても良い。ハッシュ値を取得する処理の詳細については公知技術であるので説明は省略する。実行部203が取得したハッシュ値のファイルを、ここでは「hash.txt」とする。また、データ入力編集ソフトウェアが作成した作成データにファイル名を付与して、記憶媒体等に一時記憶する。ここでは、例えば、「hash.txt」ファイル内の文字列の、一部、例えば左から8文字を取得し、作成データのファイル名として用いるものとする。例えばファイル名は、ここでは、「E14DR18F」であるとする。
次に、端末送信部206は、「hash.txt」ファイルに格納されているハッシュ値を読み出し、一時記憶された作成データ「E14DR18F」の最下位の行に、読み出したハッシュ値を挿入する。
また、端末送信部206は、データ入力編集ソフトウェアに付与されている暗号化用鍵を用いて、ハッシュ値が挿入された作成データ「E14DR18F」を暗号化する。暗号化された作成データには、例えば、予めデータ入力編集ソフトウェアに付与されている暗号化用鍵と対になる復号化用鍵の復号化用鍵識別情報「PK1001」がヘッダ情報として付与される。また、暗号化された作成データのファイル名は、「E14DR18F」に、暗号化のアルゴリズム等を示す拡張子が付与されたものであるとする。
次に、端末出力部204は、データ入力編集ソフトウェアに付与されている送信先指定情報のうちの、端末装置20を利用しているユーザAに対応した送信先指定情報以外の送信先指定情報である他送信先指定情報を読み出す。ここでは、「yamamoto@abcxyz.com」、「inoue@abcxyz.com」、「kikuchi@abcxyz.com」を読み出す。そして、端末出力部204は、読み出した他送信先指定情報の1以上を選択可能な選択メニューを構成してモニタに表示する。図10に選択メニューの表示例を示す。この選択メニューは、ユーザA自身に対応した受信サーバ装置30以外の、作成データを送信することを許可する送信先の受信サーバ装置30を選択するためのメニューである。このような選択メニューを用いることで、作成データの送信先を、データ入力編集ソフトウェアに付与されている送信先指定情報の中から、選択することができる。
ここで、例えばユーザAが、マウス等を操作して、「yamamoto@abcxyz.com」という送信先指定情報に対応したチェックボックス1001のみにチェックを入れ、選択ボタン1002を押したとする。端末送信部206は、データ入力編集ソフトウェアに付与されているユーザA自身に対応した送信先指定情報である「自送信先指定情報」、ここでは、「ueda@abcxyz.com」と、チェックボックス1001に対応した他送信先指定情報である「yamamoto@abcxyz.com」を、データ入力編集ソフトウェアから取得し、これらのメールアドレスを宛先として、暗号化した作成データを電子メールで送信する。
ここで、例えば、データ入力編集ソフトウェアを起動してデータ入力等を行ってデータの編集等を行っている際や、データ入力編集ソフトウェアの起動直後等に、現在の日時が、「2010年1月23日14時30分」を超過したとすると、実行部203は、データ入力編集ソフトウェアに埋め込まれている期間指定情報が指定する期間外になったと判断して、データ入力編集ソフトウェアを終了させる。終了時の作成データ等を送信する処理は、上記と同様である。そして、データ入力編集ソフトウェアを記憶媒体上から削除する。
また、例えば、データ入力編集ソフトウェアを実行してデータの編集等を行っている際や、データ入力編集ソフトウェアの起動直後等において、データ入力編集ソフトウェアが動作可能な期限の日時である「2010年1月23日14時30分」と、データ入力編集ソフトウェアを起動している際の、現在の日時との差が、1時間以下となったことを実行部203が検出した場合、端末出力部204は、データ入力編集ソフトウェアの有効な期限の終わりが近づいていることを知らせるための、予め指定された出力等を行う。この出力は、例えば、図11に示すような、「データ入力編集ソフトウェアの有効期限が近づいてきました。」等のアラート画面であっても良いし、警告を示す音等であっても良い。これらの出力は、所定のタイミング、例えば5分間隔等で繰り返し行われるようにしてもよい。
作成データの宛先となる受信サーバ装置30は、端末装置20から電子メールで送信された作成データを受信する。具体的には、メールアドレス「ueda@abcxyz.com」に対応した受信サーバ装置30aおよびメールアドレス「yamamoto@abcxyz.com」に対応した受信サーバ装置30bが、作成データを含む電子メールを受信する。そして、受信した作成データを、受信サーバ格納部302に蓄積する。
図12は、受信サーバ格納部302に格納されている作成データを管理する作成データ管理表である。作成データ管理表は、「ファイル名」、「データ」、および「復号化用鍵識別情報」という項目を有している。「ファイル名」は、受信した作成データのファイル名である。「データ」は、受信した作成データである。「復号化用鍵識別情報」は、作成データのヘッダ情報等に埋め込まれていた、作成データの暗号化に用いられた暗号化用鍵と対になる復号化用鍵の復号化用鍵識別情報である。
また、図13は、受信サーバ格納部302に格納されている復号化用鍵を管理する復号化用鍵管理表である。復号化用鍵管理表は、「ファイル名」および「復号化用鍵」という項目を有している。「ファイル名」は、復号化用鍵のファイル名であり、復号化用鍵の復号化用鍵識別情報である。「復号化用鍵」は復号化用鍵のデータである。
次に、受信サーバ装置30aの受信サーバ指示受付部303が、キーボードや、ネットワークを介した他の端末装置からの、「E14DR18F」というファイル名の作成データを出力する指示を受け付けると、復号化部304は受信サーバ格納部302に蓄積されている出力する指示の対象となる作成データ「E14DR18F」を読み出す。なおここでの出力の指示とは、作成データを表示したりする指示や、他の装置等に送信する指示等である。
復号化部304は、読み出した作成データ「E14DR18F」を、上述した送信サーバ装置10から受信した復号化用鍵のうちの、当該作成データを暗号化する際に用いられた暗号化用鍵に対応した復号化用鍵を用いて復号する。具体的には、図12に示した作成データ管理表から、作成データ「E14DR18F」のヘッダ情報等に埋め込まれていた、当該作成データの暗号化に用いられた暗号化用鍵に対応する復号化用鍵識別情報「PK1001」を読み出し、当該復号化用鍵識別情報「PK1001」と同じ「ファイル名」を有する復号化用鍵を、図13に示した復号化用鍵管理表から取得する。そして、取得した復号化用鍵を用いて、作成データを復号する。
次に、ハッシュ処理部305は、復号化部304が復号した作成データ「E14DR18F」の最後部に付与されているハッシュ値を切り出し、残った作成データから、上述した実行部203と同様の、予め指定されたハッシュ関数を用いてハッシュ値を算出する。そして、算出したハッシュ値と、最後部から切り出したハッシュ値とを比較し、一致しているか否かを判断する。
ここでは、一致したと判断されたとする。一致した場合、端末装置20が送信した作成データと、受信サーバ装置30a等が受信した作成データとが同一であり、改ざん等がなされていないと判断される。このため、ハッシュ値を切り出した後の作成データを受信サーバ出力部306が出力する。例えば、受信サーバ出力部306は図示しないモニタ等に作成データを表示したり、受信サーバ指示受付部303が受け付けた指示に含まれる送信先等に作成データを送信する。
なお、一致しないと判断された場合、端末装置20が送信した作成データと、受信サーバ装置30a等が受信した作成データとが異なるものと考えられ、作成データに何らかの改ざんが行われた可能性があるため、作成データの出力を中止する。そして、受信サーバ出力部306は、例えば、作成データに異常が生じたこと等を示すアラート画面や警告音等を出力する。
この具体例においては、端末装置20においては暗号化用鍵として公開鍵を利用し、受信サーバ装置30においては復号化用鍵として公開鍵を利用する場合について説明した。このようにすることで、端末装置20において作成した作成データは、秘密鍵である復号化用鍵を受信した受信サーバ装置30、即ち秘密鍵である復号化用鍵を受信したユーザしか復号できないようにすることができる。これにより、端末装置20で作成したデータのセキュリティを保つことが可能である。
しかしながら、本発明においては、暗号化用鍵として秘密鍵を利用し、復号化用鍵とし公開鍵を利用するようにしても良い。例えば、このようにすることで、データ入力編集ソフトウェアを利用して作成され、当該データ入力編集ソフトウェアに付与された秘密鍵で暗号化された作成データであれば、受信サーバ装置30において出力することができるが、他の秘密鍵で暗号化された作成データは出力できないようにすることができる。これにより、作成データの作成元において正規のデータ入力編集ソフトウェアを用いて作成されたデータだけを復号して出力することが可能となる。この結果、部外者等が作成した、不適切な秘密鍵等を用いて暗号化されたデータを、出力対象から除外することが可能となる。
なお、データ入力編集ソフトウェアは、終了時以外においても、作成データをデータ入力編集ソフトウェアに付与されている送信先指定情報が示す送信先に送信できるようにしても良いことは言うまでもない。
以上、本実施の形態によれば、データ入力編集ソフトウェアの終了時に、作成データを予め指定された送信先に送信できるようにしたことにより、端末装置20において作成されたデータが、端末装置20内の記憶媒体等に残されないようにすることができる。これにより、例えば、端末装置20を紛失した場合や、端末装置20が盗難に遭ったりした場合においても、端末装置20で作成されたデータが部外者に漏洩したりする可能性を減らすことができ、端末装置20で作成したデータのセキュリティを保持できる。
また、データ入力編集ソフトウェア自身も送信サーバ装置からダウンロードしなければ、利用できないため、部外者等が、勝手に端末装置20等を利用して、不必要なデータや、誤った内容のデータ等を作成したりできないようにすることができる。
また、送信サーバ装置10が、データ入力編集ソフトウェアを要求したユーザに対して、当該ユーザに対応した送信先指定情報を付与したデータ入力編集ソフトウェアを送信することができ、セキュリティに関連した情報をユーザに合わせてカスタマイズしたデータ入力編集ソフトウェアを提供することができる。これにより、ユーザが作成データの送信先を設定したりする手間等が削減できる。また、送信先を指定する情報を端末装置20で管理したりする必要がないため、セキュリティを保つことができる。
また、暗号化用鍵を付与したデータ入力編集ソフトウェアを、端末装置20に送信するため、ユーザが、暗号化用鍵を取得してデータ入力編集ソフトウェアに設定したりする手間等を削減することができる。
なお、上記実施の形態において、送信サーバ装置と受信サーバ装置とを一の装置により実現するようにしても良い。
なお、上記実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記実施の形態において、一の装置に存在する2以上の通信手段(送信サーバ送信部や復号化用鍵送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記実施の形態では、情報処理システムがスタンドアロンである場合について説明したが、情報処理システムは、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
なお、上記実施の形態における送信サーバ装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、データ入力編集ソフトウェアを受信する端末受信部と、前記端末受信部が受信したデータ入力編集ソフトウェアに対するユーザからの入力を受け付ける入力受付部と、前記端末受信部が受信したデータ入力編集ソフトウェアを実行して、データを作成する実行部と、前記データ入力編集ソフトウェアの終了時に、前記実行部が作成したデータである作成データを、予め指定された送信先に送信する端末送信部として機能させるためのプログラムである。
なお、上記実施の形態における端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、ユーザを識別する情報であるユーザ識別情報を受信するユーザ識別情報受信部と、前記ユーザ識別情報を用いて認証処理を行う認証処理部と、ソフトウェア格納部に格納されている端末装置で実行可能なデータ入力編集ソフトウェアであって、前記認証処理部により認証が許可されたユーザに送信されるデータ入力編集ソフトウェアに、当該ユーザが作成したデータである作成データの送信先を指定する情報である送信先指定情報を付与する送信先指定情報付与部と、前記送信先指定情報が付与されたデータ入力編集ソフトウェアを前記認証処理部が認証を許可したユーザの端末装置に送信する送信サーバ送信部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図14は、上記プログラムを実行して、上記実施の形態による送信サーバ装置10や端末装置20や受信サーバ装置30等を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図14において、コンピュータシステム900は、CD−RW(Compact Disk Rewritable)ドライブ等の光ディスクドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図15は、コンピュータシステム900の内部構成を示す図である。図15において、コンピュータ901は、光ディスクドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による送信サーバ装置10や端末装置20や受信サーバ装置30等の機能を実行させるプログラムは、CD−ROMや、CD−RW、DVD−ROM、DVD−RW等の光ディスク921、またはFD922に記憶されて、光ディスクドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、光ディスク921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による送信サーバ装置10や端末装置20や受信サーバ装置30等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。