データ提供方法、データ提供装置およびデータ提供プログラム
【課題】データの安全性の向上を容易に実現すること。
【解決手段】データ提供装置1は、端末装置2からデータ取得要求を受信すると、記憶部1aを参照して、データ取得要求に含まれる識別情報に対応する登録データを取得する。また、データ提供装置1は、記憶部1bを参照して、データ取得要求に含まれる識別情報に対応する所在情報を取得する。更に、データ提供装置1は、取得した登録データと、取得した所在情報で示される情報処理装置3に記憶された鍵を端末装置2に取得させるとともに、取得させた鍵を用いて取得した登録データを復号させるプログラムと、を端末装置2に送信する。
【解決手段】データ提供装置1は、端末装置2からデータ取得要求を受信すると、記憶部1aを参照して、データ取得要求に含まれる識別情報に対応する登録データを取得する。また、データ提供装置1は、記憶部1bを参照して、データ取得要求に含まれる識別情報に対応する所在情報を取得する。更に、データ提供装置1は、取得した登録データと、取得した所在情報で示される情報処理装置3に記憶された鍵を端末装置2に取得させるとともに、取得させた鍵を用いて取得した登録データを復号させるプログラムと、を端末装置2に送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介してデータを提供するデータ提供方法、データ提供装置およびデータ提供プログラムに関する。
【背景技術】
【0002】
近年、ユーザが行う種々の業務をコンピュータシステムによって支援する技術が利用されている。この点、サービス事業者が運用するコンピュータシステムが提供するアプリケーションによって、ユーザの業務支援を行うサービス形態がある。そのようなサービス形態として、例えばSaaS(Software as a Service)が知られている。ユーザは、SaaSを利用することで、自社内に新たなコンピュータを導入することなく業務システムを利用できる。
【0003】
ここで、上記サービス形態によって業務を行う場合、ユーザデータはサービス事業者のコンピュータで管理される。このため、ユーザデータが機密情報の場合、セキュリティ上の問題が生ずる。対策として、例えば機密情報を暗号化し、暗号処理のための鍵と共にサービス事業者のコンピュータで管理することが考えられる(例えば、特許文献1参照)。しかし、この方法でもサービス事業者によりデータを不正に閲覧されるリスクが残る。
【0004】
そこで、サービス事業者に管理させるユーザデータのうち、秘匿化の必要な情報を他の文字や記号の列に変換する中継装置を、ユーザ端末とサービス事業者のコンピュータシステムとの間に設ける方法が考えられている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2007−537509号公報
【特許文献2】特開2008−177821号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、従来の方法では上記コンピュータシステムを利用するに当たって、ユーザ側で新たに中継装置を導入する必要がある。このため、中継装置の導入時の作業負担や運用管理の負担が問題となる。特に、上記サービス形態においてはユーザ側でのシステム改変を伴わずにサービス提供することが望まれる。
【0007】
本発明はこのような点に鑑みてなされたものであり、データの安全性の向上を容易に実現できるようにしたデータ提供方法、データ提供装置およびデータ提供プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、データ提供方法が提供される。このデータ提供方法では、データ提供装置が、端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、データ取得要求に含まれる識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、データ取得要求に含まれる識別情報に対応する所在情報を取得し、取得した登録データと、取得した所在情報で示される情報処理装置に記憶された鍵を端末装置に取得させるとともに、取得させた鍵を用いて取得した登録データを復号させるプログラムと、を端末装置に送信する。
【0009】
また、上記課題を解決するために上記データ提供方法と同様の処理を行う機能を有するデータ提供装置が提供される。
また、上記課題を解決するために上記データ提供方法と同様の処理をコンピュータに実行させるデータ提供プログラムが提供される。
【発明の効果】
【0010】
上記データ提供方法、データ提供装置およびデータ提供プログラムによれば、データの安全性の向上を容易に実現できる。
【図面の簡単な説明】
【0011】
【図1】第1の実施の形態に係るデータ提供装置を示す図である。
【図2】第2の実施の形態に係る情報処理システムを示す図である。
【図3】第2の実施の形態のデータ提供サーバのハードウェア構成を示す図である。
【図4】第2の実施の形態のデータ提供サーバの機能構成を示す図である。
【図5】第2の実施の形態の端末装置の機能構成を示す図である。
【図6】第2の実施の形態の鍵管理サーバの機能構成を示す図である。
【図7】第2の実施の形態のユーザ管理テーブルのデータ構造例を示す図である。
【図8】第2の実施の形態のグループ管理テーブルのデータ構造例を示す図である。
【図9】第2の実施の形態のデータ管理テーブルのデータ構造例を示す図である。
【図10】第2の実施の形態のスケジュールデータの内容を例示する図である。
【図11】システムの利用開始の際の画面を例示する図である。
【図12】暗号処理の設定画面を例示する図である。
【図13】予定登録画面を例示する図である。
【図14】予定登録画面のHTML文書を例示する図である。
【図15】暗号処理を実行するための関数を例示する図である。
【図16】予定閲覧画面を例示する図である。
【図17】予定閲覧画面のHTML文書の第1の例を示す図である。
【図18】予定閲覧画面のHTML文書の第2の例を示す図である。
【図19】メニュー画面の表示処理を示すフローチャートである。
【図20】予定登録処理を示すフローチャートである。
【図21】予定登録画面応答処理を示すフローチャートである。
【図22】鍵取得処理を示すフローチャートである。
【図23】暗号化処理を示すフローチャートである。
【図24】予定閲覧処理を示すフローチャートである。
【図25】予定閲覧画面応答処理を示すフローチャートである。
【図26】復号処理を示すフローチャートである。
【図27】第2の実施の形態のデータ閲覧方法の具体例を示す図である。
【図28】第3の実施の形態に係る情報処理システムを示す図である。
【図29】第3の実施の形態の端末装置の機能構成を示す図である。
【図30】第3の実施の形態のスケジュールデータの内容を例示する図である。
【図31】第3の実施の形態のデータ閲覧方法の具体例を示す図である。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係るデータ提供装置を示す図である。データ提供装置1は、端末装置2で利用されるユーザデータを管理する。データ提供装置1は、端末装置2のリクエストに応じて、自装置で管理するユーザデータを端末装置2に提供する。データ提供装置1は、記憶部1a,1b、受信部1c、処理部1dおよび送信部1eを有する。
【0013】
記憶部1aは、登録データを所定の識別情報に対応付けて記憶する。登録データは、例えば、端末装置2を利用するユーザが扱うユーザデータである。
記憶部1bは、端末装置2が暗号処理するための鍵の所在情報を、所定の識別情報に対応付けて定義した管理情報を記憶する。端末装置2は、当該鍵によりデータ提供装置1に渡すデータの少なくとも一部を暗号処理する。端末装置2が暗号処理の対象とするデータは、例えば、端末装置2を利用するユーザが作成した文書や図表などのデータである。あるいは、当該データは、例えば文書や図表などのデータの所在を示すものでもよい。
【0014】
また、所在情報は、情報処理装置3および情報処理装置3における鍵の格納場所を示す情報である。また、識別情報は、例えば端末装置2を利用するユーザを識別するための情報である。
【0015】
受信部1cは、端末装置2から所定の識別情報を含むリクエストを受信する。リクエストの種類は、少なくとも次の2種類の何れかを含む。すなわち、リクエストはデータ提供装置1にデータを登録するためのデータ登録要求、またはデータ提供装置1から登録データを取得するためのデータ取得要求の何れかである。受信部1cは、受信したリクエストを処理部1dに出力する。
【0016】
処理部1dおよび送信部1eは、リクエストの内容に応じて以下に示す処理を実行する。
(データ取得時)
(A1)リクエストがデータ取得要求である場合、処理部1dは、記憶部1a,1bを参照して、データ取得要求に含まれる識別情報に対応する所在情報および登録データを取得する。そして、処理部1dは、端末装置2に所在情報で示される情報処理装置3から鍵を取得させる鍵取得プログラムを生成する。更に、処理部1dは、登録データと鍵取得プログラムとを送信部1eに出力する。
【0017】
(A2)送信部1eは、処理部1dから登録データと鍵取得プログラムとを取得すると、これらの情報を端末装置2に送信する。これらの情報を受信した端末装置2は、鍵取得プログラムを実行して、情報処理装置3から鍵を取得する。端末装置2は、取得した鍵により登録データを復号し、その内容をユーザに提供する。
【0018】
(データ登録時)
(B1)リクエストがデータ登録要求である場合、処理部1dは、記憶部1bに記憶された管理情報を参照し、データ登録要求に含まれる識別情報に対応する所在情報を取得する。そして、処理部1dは、端末装置2に所在情報で示される情報処理装置3から鍵を取得させる鍵取得プログラムを生成する。更に、処理部1dはデータ登録用の情報(例えば、データを入力する入力画面の情報)と共に鍵取得プログラムを送信部1eに出力する。
【0019】
(B2)送信部1eは、処理部1dからデータ登録用の情報と鍵取得プログラムとを取得すると、これらの情報を端末装置2に送信する。これらの情報を受信した端末装置2は、鍵取得プログラムを実行して、情報処理装置3から鍵を取得する。そして、端末装置2は、取得した鍵により、送信すべきデータの少なくとも一部を暗号化して生成した登録データをデータ提供装置1に送信する。処理部1dは、受信部1cを介して端末装置2から登録データを取得すると、登録データを識別情報に対応付けて記憶部1aに格納する。
【0020】
このようなデータ提供装置1によれば、端末装置2からデータ取得用が受信されると、記憶部1aが参照されて、データ取得要求に含まれる識別情報に対応する登録データが取得される。また、記憶部1bが参照されて、データ取得要求に含まれる識別情報に対応する所在情報が取得される。更に、取得した登録データと、所在情報で示される情報処理装置3に記憶された鍵を端末装置2に取得させるとともに取得させた鍵を用いて取得した登録データを復号させるプログラムと、が端末装置2に送信される。
【0021】
これにより、データの安全性の向上を容易に実現できる。具体的には、端末装置2は、データ提供装置1から受信した鍵取得プログラムを実行することで、情報処理装置3から暗号処理用の鍵を取得する。このため、当該機能を予め端末装置2に導入しておく必要がない。また、当該機能を有する装置を予めデータ提供装置1と端末装置2との間に導入しておく必要もない。よって、導入作業や運用管理の負担が軽減される。
【0022】
また、鍵を記憶する情報処理装置3は、データ提供装置1とは別個に設けられる。すなわち、データ提供装置1は、鍵の所在を管理するのみなので、データ提供装置1単体では、登録データを復号することはできない。このため、データ提供装置1に渡すデータの安全性を向上できる。
【0023】
なお、鍵を記憶する情報処理装置3を、データ提供装置1からは参照不可能であるが、端末装置2からは参照可能なネットワークに設けてもよい。これにより、データの安全性を一層向上できる。
【0024】
以下の実施の形態では、Webシステムによってデータの登録や提供などの管理を行うことが可能な情報処理システムにデータ提供装置1を適用する場合を例に採り、更に詳細に説明する。
【0025】
[第2の実施の形態]
図2は、第2の実施の形態に係る情報処理システムを示す図である。この情報処理システムは、ユーザ会社に業務サービスを提供するWebシステムである。業務のためのデータは、サービス事業者が管理するデータ提供サーバ100に格納される。ユーザ会社は、当該サービスを利用することで、社内に当該業務用のサーバを設けることなく、業務を行うことができる。以下では、業務サービスの一例として、スケジュール管理サービスの提供を示して具体的に説明する。
【0026】
この情報処理システムでは、データ提供サーバ100、端末装置200,200aおよび鍵管理サーバ300がネットワーク10,20および通信装置10aを介して接続されている。
【0027】
ネットワーク10は、データ提供サーバ100が接続するネットワークである。ネットワーク10は、例えばインターネットである。
通信装置10aは、ネットワーク10に接続される無線通信装置である。通信装置10aは、端末装置200aと無線通信する。
【0028】
ネットワーク20は、端末装置200および鍵管理サーバ300が接続するネットワークである。ネットワーク20は、例えばイントラネットであり、ユーザ会社の社内ネットワークである。
【0029】
ネットワーク10とネットワーク20とは接続されている。ただし、ネットワーク20にはネットワーク10との接点に、ネットワーク間での通信を中継するゲートウェイやファイアウォールなど(図2では図示を省略)が設けられている。このゲートウェイやファイアウォールにより、ネットワーク20の外側にある装置(データ提供サーバ100や端末装置200a)からネットワーク20の内部に対してするアクセスは制限される。
【0030】
データ提供サーバ100は、サービス事業者のサーバ装置である。データ提供サーバ100は、端末装置200,200aのユーザが利用するユーザデータを記憶・管理する。データ提供サーバ100は、端末装置200,200aの要求に応じて、当該ユーザデータを端末装置200,200aに送信する。
【0031】
データ提供サーバ100は、Webサーバ機能を有する。データ提供サーバ100は、端末装置200,200aからHTTP(Hypertext Transfer Protocol)リクエスト(以下、単にリクエストという)を受信する。データ提供サーバ100は、当該リクエストに応じたHTTPレスポンス(以下、単にレスポンスという)を端末装置200,200aに送信する。このようにして、データ提供サーバ100はWebサービスを提供する。
【0032】
端末装置200,200aは、ユーザが利用するコンピュータである。ユーザは、端末装置200を操作して、データ提供サーバ100にスケジュールを登録できる。ユーザは、端末装置200,200aを操作して、データ提供サーバ100に格納されたデータを取得し、登録したスケジュールを閲覧できる。例えば、ユーザは、端末装置200から登録したスケジュールを社外の端末装置200aにより閲覧できる。端末装置200,200aは、ユーザが当該システムを利用するためのGUI(Graphical User Interface)を提供するWebブラウザを実行する。
【0033】
鍵管理サーバ300は、スケジュールの機密部分を暗号処理するための鍵を記憶する。鍵管理サーバ300は、端末装置200の要求に応じて、端末装置200に鍵を送信する。なお、鍵管理サーバ300を複数台設け、それぞれで複数の鍵を管理してもよい。
【0034】
ユーザは、鍵管理サーバ300の鍵を用いてスケジュールの機密部分を暗号化できる。これにより、データ提供サーバ100側での機密事項の不正な閲覧を防止できる。
図3は、第2の実施の形態のデータ提供サーバのハードウェア構成を示す図である。データ提供サーバ100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
【0035】
CPU101は、データ提供サーバ100全体を制御する。
ROM102は、データ提供サーバ100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
【0036】
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
【0037】
HDD104は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD104はCPU101による処理に必要な各種データを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
【0038】
グラフィック処理装置105は、モニタ11と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ11の画面に表示させる。
入力インタフェース106は、キーボード12とマウス13と接続される。入力インタフェース106は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。
【0039】
記録媒体読取装置107は、記録媒体14に記憶されたデータを読み取る読取装置である。例えば、データ提供サーバ100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体14に記録して配布することができる。また、ネットワーク10に接続されたプログラム配信サーバ(図示せず)にそのプログラムを格納してもよい。この場合、データ提供サーバ100は、ネットワーク10を介してプログラム配信サーバからプログラムをダウンロードすることができる。
【0040】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0041】
通信インタフェース108は、ネットワーク10と接続される。通信インタフェース108は、ネットワーク10,20や通信装置10aを介して他の情報処理装置とデータ通信する。
【0042】
なお、端末装置200,200aおよび鍵管理サーバ300もデータ提供サーバ100と同様のハードウェア構成により実現できる。
図4は、第2の実施の形態のデータ提供サーバの機能構成を示す図である。データ提供サーバ100は、データ記憶部110、受信部120、ユーザ情報管理部130、クライアントプログラム構成部140および送信部150を有する。これらの機能は、所定のプログラムをCPU101が実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0043】
データ記憶部110は、ユーザを管理するためのユーザ管理情報や、データを管理するためのデータ管理情報などを記憶する。ユーザ管理情報は、ユーザごとの暗号処理のポリシー(鍵の所在情報や暗号化対象)を管理する情報である。データ管理情報は、ユーザごとのデータ本体を管理する情報である。また、データ記憶部110は、端末装置200に対して応答すべきWebページの構成情報やそのプログラムのひな型などを記憶する。
【0044】
受信部120は、端末装置200が送信したリクエストを受信する。リクエストには、スケジュールの登録画面を要求するものや、スケジュールの閲覧画面を要求するものが含まれる。受信部120は、受信したリクエストをユーザ情報管理部130に出力する。
【0045】
ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理情報やデータ管理情報を管理する。ユーザ情報管理部130は、受信部120から取得したリクエストを解析し、その内容に応じた処理を実行する。リクエストには、予定登録画面のリクエストおよび予定閲覧画面のリクエストなどがある。
【0046】
また、ユーザ情報管理部130は、ユーザ管理情報やデータ管理情報の更新の依頼を受け付けるとデータ記憶部110に記憶された各情報の更新を実行する。
例えば、ユーザ情報管理部130は、端末装置200から新たなスケジュールデータや更新後スケジュールデータを受信すると受信したデータに基づいて、データ記憶部110に記憶されたデータ管理情報を更新する。
【0047】
クライアントプログラム構成部140は、ユーザ情報管理部130が解析したリクエストの内容に応じて以下の処理を実行する。
(1)クライアントプログラム構成部140は、予定登録画面のリクエストを取得すると、予定登録画面を端末装置200のWebブラウザに表示させるためのHTML(Hypertext Markup Language)文書を生成して、送信部150に出力する。このHTML文書のひな型はデータ記憶部110に記憶される。
【0048】
このHTML文書には、端末装置200に暗号処理に利用すべき鍵を、所在情報で示される装置から取得させるためのプログラム(鍵取得プログラム)が含まれる。当該プログラムは、例えばJavaScript(登録商標)で記述される。鍵の所在情報は、鍵管理サーバ300を示す情報、鍵管理サーバ300上のディレクトリおよびファイルを示す情報であり、例えば、URI(Uniform Resource Identifier)である。クライアントプログラム構成部140は、データ記憶部110に記憶されたユーザ管理情報を参照することで、当該ユーザに対応する所在情報を取得できる。
【0049】
(2)クライアントプログラム構成部140は、予定閲覧画面のリクエストに対して、データ記憶部110に記憶されたスケジュールデータを読み出す。クライアントプログラム構成部140は、予定閲覧画面を端末装置200のWebブラウザに表示させるためのHTML文書を生成して、送信部150に出力する。このHTML文書のひな型はデータ記憶部110に記憶される。このHTML文書には、端末装置200に暗号処理に利用すべき鍵を、所在情報で示される装置から取得させるためのプログラム(鍵取得プログラム)が含まれる。当該プログラムは、例えばJavaScript(登録商標)で記述される。
【0050】
送信部150は、クライアントプログラム構成部140から取得したHTML文書をリクエストに対するレスポンスに含めて、端末装置200に送信する。
図5は、第2の実施の形態の端末装置の機能構成を示す図である。端末装置200は、Webブラウザ210、鍵取得部220および暗号処理部230を有する。これらの機能は、所定のプログラムを端末装置200のCPUが実行することで実現される。特に、鍵取得部220および暗号処理部230の機能はデータ提供サーバ100からのレスポンスに含まれるプログラムを実行することで実現される。
【0051】
Webブラウザ210は、ユーザがキーボード12やマウス13を操作して入力したデータを受け付け、データ提供サーバ100へ送信する。Webブラウザ210は、スケジュールデータをデータ提供サーバ100に送信する場合、必要に応じてスケジュールデータの一部あるいは全部を暗号処理部230に暗号化させる。そして、Webブラウザ210は暗号化後のデータをデータ提供サーバ100に送信する。
【0052】
また、Webブラウザ210は、データ提供サーバ100から受信したHTML文書の内容をモニタ11に表示させる。その際、Webブラウザ210は、暗号処理部230にHTML文書中の暗号化部分を復号させる。そして、復号後の内容をモニタ11に表示させる。
【0053】
鍵取得部220および暗号処理部230は、Webブラウザ210によって呼び出される機能である。鍵取得部220および暗号処理部230の機能は、Webブラウザ210が受信したHTML文書に含まれるプログラムを端末装置200のCPUが実行することで実現される。
【0054】
鍵取得部220は、プログラムに含まれる所在情報に基づいて暗号処理用の鍵を取得する。所在情報は、鍵管理サーバ300上の鍵の格納場所を示す。鍵取得部220は、当該所在情報に基づき鍵管理サーバ300に鍵の送信を依頼する鍵要求を送信する。鍵取得部220は、鍵管理サーバ300から鍵を受信する。鍵取得部220は、受信した鍵を暗号処理部230に出力する。
【0055】
暗号処理部230は、Webブラウザ210から取得したデータを鍵取得部220から取得した鍵を用いて暗号処理する。暗号処理部230は、暗号化部231および復号部232を有する。
【0056】
暗号化部231は、Webブラウザ210から取得したデータを鍵取得部220から取得した鍵を用いて暗号化する。暗号化部231は、暗号化したデータをWebブラウザ210に出力する。
【0057】
復号部232は、Webブラウザ210から取得したデータの暗号化部分を鍵取得部220から取得した鍵を用いて復号する。復号部232は、復号したデータをWebブラウザ210に出力する。
【0058】
なお、端末装置200aでは、Webブラウザ210が実現されていればよい。
図6は、第2の実施の形態の鍵管理サーバの機能構成を示す図である。鍵管理サーバ300は、鍵記憶部310、受信部320、鍵抽出部330および送信部340を有する。これらの機能は、所定のプログラムを鍵管理サーバ300のCPUが実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0059】
鍵記憶部310は、端末装置200が暗号処理に用いる鍵を記憶する。鍵は、例えば、ユーザごと、あるいは、複数のユーザの所属するグループごとにそれぞれ異なるディレクトリに格納される。
【0060】
受信部320は、端末装置200から鍵要求を受信する。受信部320は、受信した鍵要求を鍵抽出部330に出力する。
鍵抽出部330は、受信部320から取得した鍵要求に基づいて、鍵記憶部310に記憶された鍵を取得する。鍵抽出部330は取得した鍵を送信部340に出力する。
【0061】
送信部340は、鍵抽出部330から取得した鍵を端末装置200に送信する。
図7は、第2の実施の形態のユーザ管理テーブルのデータ構造例を示す図である。ユーザ管理テーブル111は、データ記憶部110に格納される。ユーザ管理テーブル111には、項番、ユーザID、パスワード、ユーザ名、鍵配置場所URI、社内判定ドメイン、暗号化対象および所属グループの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1ユーザの情報を示す。
【0062】
項番には、レコードを識別するための番号が設定される。ユーザIDには、ユーザの識別子が設定される。パスワードには、ユーザを認証するためのパスワードが設定される。ユーザ名には、ユーザの名称が設定される。鍵配置場所URIには、鍵を格納したコンピュータやファイルを示すURIが設定される。社内判定ドメインには、アクセス元が社内であるか社外であるかを判定するためのドメインが設定される。暗号化対象には、暗号化対象とするデータ項目を指定する情報が設定される。例えば、スケジュールとして入力されるデータ項目のうち、暗号化の対象とすべきデータ項目として、スケジュールの概要や場所などが設定される。所属グループには、ユーザの所属するグループが存在する場合、そのグループを示す識別情報が設定される。
【0063】
ユーザ管理テーブル111には、例えば、項番が“1”、ユーザIDが“tarou”、パスワードが”12345abcde”、ユーザ名が“富士太郎”、鍵配置場所URIが“http://sales.shanai.example.com/key.jsonp”、社内判定ドメインが“*.shanai.example.com”という情報が設定される。また、暗号化対象のうち、概要が“○”、場所が“○”、所属グループが“−(設定なし)”という情報が設定されている。
【0064】
この項番1の各情報は、“tarou”のユーザIDで示されるユーザに対応付けられている。特に、項番1の鍵配置場所URIの情報により“tarou”で示されるユーザが登録するスケジュールデータの暗号処理に用いる鍵が、当該URIで示される鍵管理サーバ300上のファイルとして取得できることが示されている。また、項番1の社内判定ドメインの情報により、アクセス元が“*.shanai.example.com”のドメインに適合する場合に、当該アクセスをユーザ会社の社内からのアクセスであると検知することが示されている。ここで“*”はワイルドカードであり、任意の文字列に対応する。また、項番1の暗号化対象の情報により、新たに登録するスケジュールのデータ項目のうち、概要および場所のデータ項目を何れも暗号化することを示している。また、項番1の所属グループの情報により、所属グループの設定がないことを示している。
【0065】
ここで、暗号化対象のデータ項目に“×”が設定されている場合、当該データ項目は暗号化しないことを示している。
また、ユーザ管理テーブル111には、例えば、項番が“2”、ユーザIDが“jirou”、パスワードが“qwertyuiop”、ユーザ名が“富士二郎”、鍵配置場所URIが“−(設定なし)”、社内判定ドメインが“−(設定なし)”、暗号化対象(概要および場所の何れも)が“−(設定なし)”、所属グループが“Group1”という情報が設定されている。
【0066】
この項番2の各情報により、“jirou”で示されるユーザが“Group1”で示されるグループに所属しており、鍵配置場所URI、暗号化対象などの設定が当該グループのポリシーに準ずることが示されている。
【0067】
図8は、第2の実施の形態のグループ管理テーブルのデータ構造例を示す図である。グループ管理テーブル112は、データ記憶部110に格納される。グループ管理テーブル112には、項番、グループID、グループ名、鍵配置場所URI、社内判定ドメインおよび暗号化対象の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1グループの情報を示す。
【0068】
項番には、レコードを識別するための番号が設定される。グループIDには、グループの識別子が設定される。グループ名には、グループの名称が設定される。鍵配置場所URIには、鍵を格納したコンピュータやファイルを示すURIが設定される。社内判定ドメインには、アクセス元が社内であるか社外であるかを判定するためのドメインが設定される。暗号化対象には、暗号化対象とするデータ項目を指定する情報が設定される。例えば、スケジュールとして入力されたデータ項目のうち、暗号化の対象とすべきデータ項目として、スケジュールの概要や場所などが設定される。
【0069】
グループ管理テーブル112には、例えば、項番が“1”、グループIDが“Group1”、グループ名が“設計チーム”、鍵配置場所URIが“http://sk.shanai.example.com/a1/key3.jsonp”、社内判定ドメインが“*.shanai.example.com”という情報が設定される。また、暗号化対象のうち、概要が“○”、場所が“○”という情報が設定されている。
【0070】
この項番1の情報は、“Group1”のユーザIDで示されるグループに対応付けられている。特に、項番1の鍵配置場所URIの情報により“Group1”で示されるグループに属するユーザが登録するスケジュールデータの暗号処理に用いる鍵が、当該URIで示されるサーバ上のファイルとして取得できることが示されている。また、項番1の社内判定ドメインの情報により、アクセス元が“*.shanai.example.com”のドメインに適合する場合に、当該アクセスをユーザ会社の社内からのアクセスであると検知することが示されている。また、項番1の暗号化対象の情報により、このグループに属するユーザが新たに登録するスケジュールのデータ項目のうち、概要および場所のデータ項目を何れも暗号化することを示している。
【0071】
例えば、ユーザ管理テーブル111で示した“jirou”で示されるユーザは、“Group1”に属している。したがって、上記項番“1”のレコードの設定が、“jirou”で示されるユーザに適用される。ただし、ユーザ管理テーブル111に当該ユーザにつき個別の設定がなされている場合には、個別の設定を優先して適用してもよい。
【0072】
このようにグループ単位での管理を可能とすることで、例えばプロジェクトの全担当者につき統一されたポリシーを一括して容易に設定できる。
図9は、第2の実施の形態のデータ管理テーブルのデータ構造例を示す図である。データ管理テーブル113は、データ記憶部110に格納される。データ管理テーブル113には、項番、ユーザID、文書IDおよびデータの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのデータに関する情報を示す。
【0073】
項番には、レコードを識別するための番号が設定される。ユーザIDには、ユーザの識別子が設定される。文書IDには、文書を識別するための識別子が設定される。データ本体には、データの本体が設定される。データ本体には、例えば、各人のスケジュールを示すvCalendar形式のデータが格納される。
【0074】
データ管理テーブル113には、例えば、項番が“1”、ユーザIDが“tarou”、文書IDが“0000001”、データ本体が“スケジュールデータ(tarou).vcs”という情報が設定されている。なお、データ本体をファイル名で示している。
【0075】
この項番1の各情報により、当該レコードに格納された“スケジュールデータ(tarou).vcs”がユーザ“tarou”のスケジュールであり、その文書IDが“0000001”であることが示されている。
【0076】
なお、図7〜9に示した各テーブルは、データ記憶部110に格納されるものとしたが、それぞれのテーブルあるいはそれぞれのテーブルの一部を別個の記憶部に格納してもよい。例えば、ユーザ管理テーブル111およびグループ管理テーブル112をデータ記憶部110に格納し、データ管理テーブル113をRAM103やHDD104に設けられた他の記憶部に格納してもよい。
【0077】
図10は、第2の実施の形態のスケジュールデータの内容を例示する図である。(A)に示すスケジュールデータ400は、暗号化前を示している。(B)に示すスケジュールデータ410は、暗号化後を示している。
【0078】
スケジュールデータ400は、スケジュールの内容を示す複数のデータ項目を有している。データ項目には、場所(LOCATION)401および概要(SUMMARY)402が含まれる。
【0079】
場所401には、例えば“C101会議室”という情報が設定されている。また、概要402には、例えば“クラウド戦略会議”という情報が設定されている。
スケジュールデータ410は、スケジュールデータ400と同一のデータ項目を有している。データ項目には、場所411および概要412が含まれる。場所411は、場所401の暗号化後に対応する。概要412は、概要402の暗号化後に対応する。
【0080】
ユーザの暗号化対象として、場所と概要とが選択されている場合、スケジュールデータ410のように場所411および概要412に暗号化された内容が設定される。そして、端末装置200はスケジュールデータ410をデータ提供サーバ100に送信する。データ提供サーバ100はデータ記憶部110に記憶されたデータ管理テーブル113にスケジュールデータ410の内容を登録する。具体的には、例えば、データ管理テーブル113に既に格納されているスケジュールデータの所定のタグ部分にスケジュールデータ410で新たに追加された内容を挿入する。あるいは、例えばスケジュールデータ410に含まれる日時が既に挿入されている場合には、その日時につきスケジュールの内容をスケジュールデータ410の内容で置換する。
【0081】
次に、Webブラウザ210が表示する画面について説明する。以下に示す画面は、データ提供サーバ100が端末装置200に送信するHTML文書に基づいて、Webブラウザ210が端末装置200のモニタに表示するものである。
【0082】
図11は、システムの利用開始の際の画面を例示する図である。(A)はログイン画面510を示す。(B)は利用メニュー画面520を示す。
ログイン画面510は、データ提供サーバ100が提供するWebページを示す所定のURIがWebブラウザ210で指定されると当該ブラウザに表示される画面である。
【0083】
ログイン画面510には、テキストボックス511,512およびログインボタン513が表示されている。
テキストボックス511は、ユーザIDを入力するためのフォームである。テキストボックス512は、パスワードを入力するためのフォームである。ユーザは、端末装置200に接続された入力デバイス(キーボードやマウスなど)を操作して、テキストボックス511,512に文字列を入力できる。
【0084】
ログインボタン513は、テキストボックス511,512に入力されたユーザIDおよびパスワードをデータ提供サーバ100に送信するためのボタンである。ユーザは、入力デバイスを用いてログインボタン513を押下操作することで、入力した文字列によるユーザ認証をデータ提供サーバ100に促すことができる。
【0085】
データ提供サーバ100は、データ記憶部110に記憶されたユーザ管理テーブル111およびグループ管理テーブル112を参照して、ユーザIDとパスワードとを照合し認証を行う。データ提供サーバ100は、認証に成功すると利用メニュー画面520を示すHTML文書を端末装置200に送信する。
【0086】
利用メニュー画面520は、認証が成功した結果、Webブラウザ210に表示される画面である。利用メニュー画面520には、設定ボタン521、予定登録ボタン522および予定閲覧ボタン523が表示されている。ユーザは、入力デバイスを操作して、各ボタンを押下操作し、各ボタンに対応する画面をWebブラウザ210に表示させることができる。
【0087】
設定ボタン521は、設定画面へ遷移するためのボタンである。利用メニュー画面520では、ユーザ“富士太郎”がログインした状態を示している。設定ボタン521が押下されると、当該ログイン中のユーザの暗号処理の設定を行う画面に遷移する。
【0088】
予定登録ボタン522は、予定登録画面へ遷移するためのボタンである。予定登録ボタン522が押下されると、当該ユーザの予定登録画面に遷移する。
予定閲覧ボタン523は、予約閲覧画面へ遷移するためのボタンである。予定閲覧ボタン523が押下されると、当該ユーザの予定閲覧画面に遷移する。
【0089】
なお、利用メニュー画面520では、ユーザ個人でログインした場合を例示したが、グループでログインした場合にも同様に設定メニュー画面が表示される。ただし、その場合、設定メニュー画面には、グループに所属しているユーザごとの予定登録ボタンや予定閲覧ボタンが表示されてもよい。
【0090】
また、例えば、ネットワーク20以外からのアクセス(社外からのアクセス)に対しては、データ提供サーバ100は、利用メニュー画面520に予定登録ボタン522を表示させないこととしてもよい。
【0091】
図12は、暗号処理の設定画面を例示する図である。設定画面530は、利用メニュー画面520で設定ボタン521を押下すると、Webブラウザ210に表示される画面である。設定画面530には、テキストボックス531,532、チェックボックス533,534および確定ボタン535が表示されている。
【0092】
テキストボックス531は、暗号鍵の配置場所を示すURIを入力するためのフォームである。テキストボックス532は、アクセス元ドメインが社内のドメインであるか否かを判定するための判定基準となるドメインを入力するためのフォームである。ユーザは、入力デバイスを用いてテキストボックス531,532に文字列を入力できる。
【0093】
チェックボックス533,534は、スケジュールデータのうち暗号化するデータ項目を指定するためのフォームである。チェックボックス533は、概要のデータ項目を暗号化するか否かを受け付ける。チェックボックス534は、場所のデータ項目を暗号化するか否かを受け付ける。ユーザは、該当のデータ項目を暗号化対象としたい場合には、入力デバイスを操作して、チェックボックス533,534にチェックを入力することができる。
【0094】
確定ボタン535は、設定画面530に入力したデータを確定し、データ提供サーバ100に送信するためのボタンである。ユーザは、入力デバイスを操作して、確定ボタン535を押下操作することで、設定画面530に入力された内容で自身のユーザ管理レコードを更新するようデータ提供サーバ100に指示できる。
【0095】
データ提供サーバ100は、当該入力内容を受信すると、データ記憶部110に記憶されたユーザ管理テーブル111の該当ユーザのレコードを更新する。具体的には、テキストボックス531に入力されたURIがユーザ管理テーブル111の鍵配置場所URIに設定される。また、テキストボックス532に入力されたドメインがユーザ管理テーブル111の社内判定ドメインに設定される。また、チェックボックス533にチェックが入力されている場合に、ユーザ管理テーブル111の暗号化対象のうち概要の項目に“○”が設定される。同様に、チェックボックス534にチェックが入力されている場合に、ユーザ管理テーブル111の暗号化対象のうち場所の項目に“○”が設定される。チェックが未入力の場合には、ユーザ管理テーブル111の当該項目に“×”が設定される。
【0096】
なお、設定画面530には、ユーザ単位でのログインの場合に、当該ユーザが属するグループを設定変更するためのフォームを設けてもよい。また、グループでログインしている場合には、設定画面530によりグループ管理テーブル112に設定されたグループの暗号処理の設定・変更を行うことができる。
【0097】
図13は、予定登録画面を例示する図である。予定登録画面540は、利用メニュー画面520で予定登録ボタン522を押下すると、Webブラウザ210に表示される画面である。予定登録画面540には、アンカー541、テキストボックス542,543,544,545、チェックボックス546および登録ボタン547が表示されている。
【0098】
アンカー541は、予定閲覧画面に遷移するためのハイパーリンクである。
テキストボックス542は、スケジュールの日付を入力するためのフォームである。テキストボックス543は、スケジュールの開始時刻を入力するためのフォームである。テキストボックス544は、スケジュールの概要を入力するためのフォームである。テキストボックス545は、スケジュールの場所を入力するためのフォームである。ユーザは、入力デバイスを用いてテキストボックス542,543,544,545に各データ項目を入力できる。
【0099】
チェックボックス546は、設定画面530で指定した暗号化対象のデータ項目に対して暗号化を行うか否かを選択するためのフォームである。ユーザは、入力デバイスを操作して、チェックボックス546にチェックを入力することができる。
【0100】
登録ボタン547は、テキストボックス542,543,544,545およびチェックボックス546に入力した内容を確定するためのボタンである。ユーザは、入力デバイスを操作して、登録ボタン547を押下操作することで、予定登録画面540に入力されたスケジュールの内容を自身のスケジュールデータに登録するようデータ提供サーバ100に指示できる。
【0101】
このときチェックボックス546にチェックが入力されている場合、端末装置200は、所定のデータ項目について暗号化した後に、データ提供サーバ100へ当該入力内容を送信する。
【0102】
また、例えば、ネットワーク20以外からのアクセス(社外からのアクセス)に対して、データ提供サーバ100は、予定登録画面540にチェックボックス546を表示させないこととしてもよい。
【0103】
図14は、予定登録画面のHTML文書を例示する図である。HTML文書540aは、利用メニュー画面520の予定登録ボタン522が押下された際に、データ提供サーバ100が生成して端末装置200に送信される。Webブラウザ210は、HTML文書540aに基づいて、予定登録画面540をモニタに表示する。
【0104】
HTML文書540aは、コード541a,542a,543aを含む。
コード541aは、暗号処理を実行するための関数を記載したファイル群(“internal.js”など)を端末装置200のメモリ上に読み込むためのコードである。
【0105】
コード542aは、鍵取得部220を実現するためのスクリプトを記述したコードである。コード542aは、鍵管理サーバ300に記憶された鍵を指定するURIを含む。具体的には、“http://sales.example.com/key.jsonp”が、鍵管理サーバ300に記憶された鍵を指定するURIである。端末装置200は、例えばネットワーク20に接続されたネームサーバ(図2では図示せず)に“sales.example.com”を問い合わせることで、当該ドメイン名に対応する鍵管理サーバ300のIP(Internet Protocol)アドレスを取得できる。あるいは、端末装置200がドメイン名とIPアドレスとの対応付けを定義したファイルを予め有していてもよい。これにより、端末装置200上で鍵取得部220が実現される。
【0106】
そして、鍵取得部220は、JSONP(JavaScript Object Notation with Padding)により鍵管理サーバ300から鍵を取得する。鍵管理サーバ300には、所定のディレクトリにファイル“key.jsonp”が格納される。“key.jsonp”には、例えばJSONPデータ「jsonp(“mysecretkey”);」が記述される。鍵取得部220は、鍵管理サーバ300からjsonp(“mysecretkey”);の応答を得て、コード542aで定義される関数“jsonp”により鍵“mysecretkey”を取得できる。
【0107】
コード543aは、暗号化部231を実現するためのスクリプトを記述したコードである。暗号化部231は、登録ボタン547が押下操作された際に、チェックボックス546にチェックが入力されている場合、入力されたスケジュールデータのうち、暗号化対象のデータ項目(場所や概要)を暗号化する。そして、端末装置200は暗号化後のスケジュールデータをデータ提供サーバ100に送信する。
【0108】
なお、コード542a,543aは、データ記憶部110に記憶されたユーザ管理テーブル111およびグループ管理テーブル112に設定された内容に応じて生成される。例えば、コード542aに含まれるURIには鍵管理サーバ300以外のサーバが指定される場合もある。また、例えば、コード543aにおいて、場所や概要以外のデータ項目を暗号化対象としてもよい。なお、その場合には、ユーザ管理テーブル111やグループ管理テーブル112において、暗号化対象として場所や概要以外のデータ項目(例えば、開始時刻など)が設定される。HTML文書540aを生成するためのひな型は、データ記憶部110に予め格納される。
【0109】
図15は、暗号処理を実行するための関数を例示する図である。ファイル540bは、“internal.js”の内容を示している。ファイル540bは、予定登録画面540の構成ファイルとしてデータ記憶部110に予め格納される。ファイル540bは、コード541b、542bを含む。
【0110】
コード541bは、暗号化部231による暗号化処理を示すコードである。コード541bでは、鍵取得部220が取得した鍵(“pcdms.key”)を使用して所定の関数(“blowfish.encrypt”)により暗号化を行った後に、base64によるエンコードを行う場合を例示している。暗号化部231は、当該エンコード後のデータの先頭に“{enc:”を、最後尾に“}”を付加する。復号部232による暗号化部分の特定を容易とするためである。
【0111】
コード542bは、復号部232による復号処理を示すコードである。コード542bでは、コード541bで暗号化されたデータを復号する場合を例示している。復号部232は、復号対象データのうち、“{enc:”を先頭に含まないものはそのまま出力する。“{enc:”を含むものについて、先頭の“{enc:”と最後尾の“}”を除いた文字列につきbase64によるデコードを行う。更に、鍵取得部220が取得した鍵を使用してデコード後のデータを所定の関数(“blowfish.decrypt”)により復号する。そして、復号後のデータをWebブラウザ210に出力する。
【0112】
なお、復号対象データが暗号化されていないにも関わらず、先頭に“{enc:”を含む場合も考えられる。そのような場合を考慮して、非暗号化データが復号されないように、コード542bに適宜他のエスケープ処理を追加してもよい。
【0113】
図16は、予定閲覧画面を例示する図である。(A)はデータ提供サーバ100に社内からアクセスした場合(社内アクセス時)の予定閲覧画面550を示す。予定閲覧画面550は端末装置200のWebブラウザ210に表示される画面である。(B)はデータ提供サーバ100に社外からアクセスした場合(社外アクセス時)の予定閲覧画面560を示す。予定閲覧画面560は端末装置200aのWebブラウザに表示される画面である。
【0114】
予定閲覧画面550には、アンカー551および予定一覧表示部552が表示されている。アンカー551は、予定登録画面540に遷移するためのハイパーリンクである。予定一覧表示部552は、現在ログイン中のユーザのスケジュールの一覧を表示する領域である。
【0115】
予定一覧表示部552には、データ記憶部110に記憶されたデータ管理テーブル113に設定されるデータ本体の内容が表示される。例えば、ユーザ“富士太郎”がログインしている場合、ログイン時のユーザID“tarou”に対応するデータ本体“スケジュールデータ(tarou).vcs”が読み出され、その内容が予定一覧表示部552に表示される。端末装置200は、データ本体に記述されたデータのうち、暗号化部分に関しては、鍵管理サーバ300から取得した鍵により復号して予定一覧表示部552に表示する。
【0116】
予定閲覧画面560には、アンカー561および予定一覧表示部562が表示されている。アンカー561は、アンカー551に対応する。予定一覧表示部562は、予定一覧表示部552に対応する。
【0117】
予定一覧表示部562には、予定一覧表示部552と同様にしてログイン中のユーザのスケジュールの一覧が表示される。ただし、社外アクセス時には、ネットワーク20内にアクセスして鍵を取得することができないため、暗号化部分は所定の文字列で置換する。
【0118】
図17は、予定閲覧画面のHTML文書の第1の例を示す図である。HTML文書550aは、社内アクセス時に利用メニュー画面520の予定閲覧ボタン523が押下されると、データ提供サーバ100が生成して端末装置200に送信される。Webブラウザ210は、HTML文書550aに基づいて、予定閲覧画面550をモニタに表示する。
【0119】
HTML文書550aは、コード551a,552a,553a,554aを含む。
コード551aは、暗号処理を実行するための関数を記載したファイル群を端末装置200のメモリ上に読み込むためのコードである。
【0120】
コード552aは、鍵取得部220を実現するためのスクリプトを記述したコードである。コード552aは、鍵管理サーバ300に記憶された鍵を指定したURIを含む。具体的には、“http://sales.example.com/key.jsonp”が、鍵管理サーバ300に記憶された鍵を指定するURIである。当該URIによる鍵の取得方法は、図14のコード542aで説明した方法と同様である。
【0121】
コード553aは、復号部232を実現するためのスクリプトを記述したコードである。復号部232は、鍵取得部220が鍵を取得すると、当該HTML文書550a内のタグ“td”の要素につき復号を試みる。
【0122】
コード554aは、タグ“td”の要素に暗号化部分を含むコードである。
暗号化部分の復号方法は、図15のコード542bの説明の通りである。
図18は、予定閲覧画面のHTML文書の第2の例を示す図である。HTML文書560aは、社外アクセス時に利用メニュー画面520の予定閲覧ボタン523が押下されると、データ提供サーバ100が生成して、端末装置200aに送信される。Webブラウザは、HTML文書560aに基づいて、予定閲覧画面560をモニタに表示する。
【0123】
HTML文書560aは、コード561aを含む。コード561aは、図17で示したコード554aに対応している。このように、データ提供サーバ100は社外アクセス時には暗号化部分を所定の文字列(例えば“社外秘”)に置換したHTML文書560aを生成する。これにより、暗号化部分に含まれる無意味な文字列がユーザに提示されるのを防止する。
【0124】
このため、例えば、端末装置200aのWebブラウザに予定閲覧画面560を表示させたとしても、暗号化された無意味な文字列が表示されない。よって、社外アクセス時にも暗号化部分の安全性を確保するとともに、内容の見易さを向上できる。
【0125】
次に、以上のような構成の情報処理システムにおける処理手順を説明する。なお、以下では特に明記しない限り、端末装置200からユーザ“富士太郎”がデータ提供サーバ100へアクセスする場合を想定する。
【0126】
図19は、メニュー画面の表示処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS11]端末装置200は、ログイン画面510のURIを受け付ける。当該URIは、例えば、ユーザが所定のWebページ上から当該URIを示すハイパーリンクを選択したり、Webブラウザ210に直接入力したりすることで、端末装置200に入力される。
【0127】
[ステップS12]端末装置200は、データ提供サーバ100にログイン画面510のリクエストを送信する。
[ステップS13]データ提供サーバ100は、端末装置200からリクエストを受信する。データ提供サーバ100は、リクエストに応じて、ログイン画面510のHTML文書を含むレスポンスを端末装置200に送信する。
【0128】
[ステップS14]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、レスポンスに含まれるHTML文書に基づいて、ログイン画面510をモニタに表示させる。
【0129】
[ステップS15]端末装置200は、ログイン画面510のログインボタン513の押下操作を受け付けると、テキストボックス511,512に入力されたユーザIDおよびパスワードをデータ提供サーバ100に送信する。
【0130】
[ステップS16]データ提供サーバ100は、受信したIDおよびパスワードをデータ記憶部110に記憶されたユーザ管理テーブル111のユーザIDおよびパスワードと照合する。照合により、IDおよびパスワードが一致するものがあれば、認証OKとして処理をステップS17に進める。この場合、データ提供サーバ100は、例えば端末装置200との間のセッションに対応付けたセッション変数に認証したIDを保持する。IDおよびパスワードが一致するものがなければ、認証NGとして処理をステップS18に進める。
【0131】
[ステップS17]データ提供サーバ100は、利用メニュー画面520のHTML文書を端末装置200に応答する。
[ステップS18]データ提供サーバ100は、認証失敗を端末装置200に応答する。そして、端末装置200上で認証失敗がユーザに示されて、処理が完了する。
【0132】
[ステップS19]端末装置200は、受信したHTML文書に基づいて利用メニュー画面520をモニタに表示させる。そして、処理が完了する。
このようにして、データ提供サーバ100は、端末装置200を利用するユーザにつき認証に成功した場合に当該情報処理システムの利用を許可する。
【0133】
ユーザは、端末装置200に接続されたモニタに表示された利用メニュー画面520から所望のボタンを押下操作することで、データ提供サーバ100が提供する各機能を利用することができる。次に、各機能の処理手順を説明する。ここで、設定ボタン521を押下操作した場合の設定処理については、図12で説明した内容と同一であるため説明を省略する。
【0134】
まず、利用メニュー画面520で予定登録ボタン522が押下操作された際に、その後各装置が実行する処理について説明する。
図20は、予定登録処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0135】
[ステップS21]端末装置200は、利用メニュー画面520の予定登録ボタン522の押下操作を受け付ける。
[ステップS22]端末装置200は、予定登録画面540のリクエストを送信する。
【0136】
[ステップS23]データ提供サーバ100は、端末装置200からリクエストを受信する。データ提供サーバ100は、リクエストに応じて、予定登録画面540のHTML文書540aやその他の必要なファイル群を含むレスポンスを端末装置200に送信する。
【0137】
[ステップS24]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、レスポンスに含まれるHTML文書540aを解析し、HTML文書540aに含まれるスクリプトを実行する。これにより、端末装置200上に鍵取得部220の機能が実現される。
【0138】
[ステップS25]端末装置200は、鍵管理サーバ300から鍵を取得する。
[ステップS26]端末装置200は、HTML文書540aに基づいて、予定登録画面540をモニタに表示させる。端末装置200は、予定登録画面540の登録ボタン547の押下操作を受け付ける。
【0139】
[ステップS27]端末装置200は、予定登録画面540に入力されたデータ項目につき暗号化処理を行う。
[ステップS28]端末装置200は、データ提供サーバ100に各データ項目を含むスケジュールデータを送信する。
【0140】
[ステップS29]データ提供サーバ100は、端末装置200からスケジュールデータを受信する。データ提供サーバ100は、データ記憶部110に記憶されたデータ管理テーブル113に登録されたスケジュールデータの内容を更新する。例えば、スケジュールが追加された場合には、当該ユーザの既存のスケジュールデータに追加された内容を追記する。また、既存のスケジュールが変更された場合には、当該ユーザの既存のスケジュールデータに含まれる対象スケジュールを更新する。
【0141】
[ステップS30]データ提供サーバ100は、スケジュールデータの登録が完了した旨を通知するレスポンスを端末装置200に送信する。
[ステップS31]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、スケジュールデータの登録が完了した旨をモニタに表示させる。そして、処理が完了する。
【0142】
このようにして、データ提供サーバ100は、端末装置200からの予定登録画面540のリクエストに応じて、予定登録画面540用のHTML文書540aを生成して端末装置200に送信する。端末装置200は、データ提供サーバ100から受信したHTML文書540aに基づいて、鍵管理サーバ300から鍵を取得し、データ提供サーバ100に送信するデータを暗号化することができる。
【0143】
次に、上記ステップS23で示したデータ提供サーバ100の予定登録画面応答処理の手順について説明する。
図21は、予定登録画面応答処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0144】
[ステップS41]受信部120は、予定登録画面540のリクエストを受信する。受信部120は、受信したリクエストをユーザ情報管理部130に出力する。ユーザ情報管理部130は、当該アクセスのユーザIDを取得する。例えば、端末装置200との間で定義されるセッション変数からユーザIDを取得できる。
【0145】
[ステップS42]ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理テーブル111を参照して、ユーザIDに対応する鍵配置場所URIを取得する。
[ステップS43]ユーザ情報管理部130は、ユーザ管理テーブル111を参照して、ユーザIDに対応する暗号化対象のデータ項目を取得する。そして、取得した鍵配置場所URIと暗号化対象とをクライアントプログラム構成部140に出力する。
【0146】
[ステップS44]クライアントプログラム構成部140は、データ記憶部110に記憶されたひな型に基づいて、HTML文書540aを生成する。具体的には、取得した鍵配置場所URIに応じたコードを生成し、ひな型に挿入する。例えば、HTML文書540aのコード541aに含まれる“http://sales.shanai.example.com/key.jsonp”の箇所が対応する。また、取得した暗号化対象のデータ項目に応じたコードを生成し、ひな型に挿入する。例えば、コード542aに含まれる“form.location.value=pcdms.enc(form.location.value);”および“form.summary.value=pcdms.enc(form.summary.value);”の箇所が対応する。そして、生成したHTML文書540aとその他の必要なファイル群を送信部150に出力する。
【0147】
[ステップS45]送信部150は、クライアントプログラム構成部140から取得したHTML文書540aなどをレスポンスに含めて端末装置200に送信する。
このようにして、データ提供サーバ100は、HTML文書540aを生成し、端末装置200に送信する。
【0148】
端末装置200は、HTML文書540aに記述されたスクリプトに基づいて、鍵取得部220の機能を実現する。次に、図20のステップS25で示した端末装置200の鍵取得処理の手順について説明する。
【0149】
図22は、鍵取得処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS51]Webブラウザ210は、HTML文書540aに記述されたコード542aに基づいて、鍵配置場所URIを含むJSONPデータ取得用のスクリプトタグを生成する。
【0150】
[ステップS52]Webブラウザ210は、生成したスクリプトタグをHTML文書540aのbody部に挿入する。そして、Webブラウザ210は、生成したスクリプトタグを評価し、実行する。これにより、鍵取得部220が実現する。
【0151】
[ステップS53]鍵取得部220は、鍵配置場所URIにアクセスする。具体的には、コード542aに記載された鍵管理サーバ300上の鍵を示す外部ファイル“http://sales.shanai.example.com/key.jsonp”を読み込む。鍵取得部220は、例えば、鍵管理サーバ300から「jsonp(“mysecretkey”);」の応答を得て、コールバック関数“jsonp”を実行する。
【0152】
[ステップS54]鍵取得部220は、当該関数により取得した鍵を鍵格納用の変数(pcdms.key)に代入する。
このようにして、鍵取得部220が実現される。そして、鍵取得部220は、鍵管理サーバ300から鍵を取得する。なお、上記の例では、JSONPにより鍵を取得する場合を示したが、これに限らない。例えば、JavaScript(登録商標)以外のプログラム言語により記述されたアプリケーションをデータ提供サーバ100から端末装置200に送信して実行させることで鍵取得部220の機能を実現することも考えられる。
【0153】
端末装置200は、HTML文書540aに基づいて予定登録画面540をモニタに表示させる。そして、予定登録画面540の登録ボタン547が押下操作されると、暗号化処理を行う。次に、図20のステップS27で示した端末装置200の暗号化処理の手順について説明する。
【0154】
図23は、暗号化処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS61]Webブラウザ210は、予定登録画面540のチェックボックス546がON/OFFの何れであるか、すなわち、暗号化を行うか否かを判定する。暗号化を行う場合、HTML文書540aのコード543aの記述に基づいて暗号化部231を実現し、処理をステップS62に進める。暗号化を行わない場合、処理を完了する。
【0155】
[ステップS62]暗号化部231は、暗号化対象のデータ項目に関して以下のステップS63〜S65を繰り返し実行する。ここで、HTML文書540aでは、コード543aには、データ項目のうち、場所(“location”)および概要(“summary”)を対象として暗号化を行う旨が記述されている。
【0156】
[ステップS63]暗号化部231は、暗号化対象のデータ項目のデータを抽出する。
[ステップS64]暗号化部231は、鍵取得部220が取得した鍵を用いて抽出したデータを暗号化する。暗号化部231は、鍵取得部220が出力した所定の変数の値を参照することで鍵を取得できる。暗号化処理の具体的な内容は、図15のコード541bに基づく処理の通りである。暗号化部231は、暗号化後のデータの先頭と最後尾に所定の文字または文字列を付加する。
【0157】
[ステップS65]暗号化部231は、暗号化後のデータで、入力されたデータを置換する。
[ステップS66]暗号化部231は、コード543aに記述された全てのデータ項目についての暗号化処理を実行したか否かを判定する。全て実行した場合、処理を完了させる。全て実行していない場合、処理をステップS63に進める。
【0158】
このようにして、暗号化部231は暗号化処理を行う。なお、データ項目ごとの処理順序は、例えば、コード543aに記述された順序(上から下へ向かう順)である。
次に、利用メニュー画面520で予定閲覧ボタン523が押下操作された際に、その後各装置が実行する処理について説明する。
【0159】
図24は、予定閲覧処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS71]端末装置200は、利用メニュー画面520の予定閲覧ボタン523の押下操作を受け付ける。
【0160】
[ステップS72]端末装置200は、予定閲覧画面550のリクエストを送信する。
[ステップS73]データ提供サーバ100は、端末装置200からリクエストを受信する。データ提供サーバ100は、リクエストに応じて、予定閲覧画面550のHTML文書550aやその他の必要なファイル群を含むレスポンスを端末装置200に送信する。
【0161】
[ステップS74]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、レスポンスに含まれるHTML文書550aを解析し、HTML文書550aに含まれる鍵取得用のスクリプト(コード552aに対応する)の有無を判定する。スクリプトがある場合、処理をステップS75に進める。スクリプトがない場合、処理をステップS78に進める。
【0162】
[ステップS75]端末装置200は、HTML文書550aに含まれるスクリプトを実行する。これにより、端末装置200上に鍵取得部220の機能が実現される。
[ステップS76]端末装置200は、鍵管理サーバ300から鍵を取得する。
【0163】
[ステップS77]端末装置200は、HTML文書550aに含まれるデータ項目につき復号処理を行う。
[ステップS78]端末装置200は、HTML文書550aの内容をモニタに表示させる。なお、ステップS77で復号処理が行われている場合、当該部分には復号後の内容が表示される。
【0164】
このようにして、データ提供サーバ100は、端末装置200からの予定閲覧画面550のリクエストに応じて、予定閲覧画面550用のHTML文書550aを生成して端末装置200に送信する。端末装置200は、データ提供サーバ100から受信したHTML文書550aに基づいて、鍵管理サーバ300から鍵を取得し、暗号化部分を復号してモニタに表示させることができる。
【0165】
なお、上記の例では、端末装置200からデータ提供サーバ100にアクセスする場合を示した。これに対し、端末装置200aがデータ提供サーバ100にアクセスする場合も同様である。ただし、端末装置200aの場合は、社外からのアクセスとなる。このため、データ提供サーバ100が端末装置200aに提供するのは暗号化部分を予め所定の文字列に置換したHTML文書560aとなる。端末装置200aは、HTML文書560aに基づいて、モニタに予定一覧を表示する。その処理手順を以下に示す。
【0166】
次に、上記ステップS73で示したデータ提供サーバ100の予定閲覧画面応答処理の手順について説明する。
図25は、予定閲覧画面応答処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0167】
[ステップS81]受信部120は、予定登録画面540のリクエストを受信する。受信部120は、受信したリクエストをユーザ情報管理部130に出力する。ユーザ情報管理部130は、当該アクセスのユーザIDを取得する。例えば、受信部120は端末装置200との間で定義されるセッション変数からユーザIDを取得できる。
【0168】
[ステップS82]ユーザ情報管理部130は、データ記憶部110に記憶されたデータ管理テーブル113を参照して、ユーザIDに対応するスケジュールデータを取得する。
【0169】
[ステップS83]ユーザ情報管理部130は、当該アクセスが社内アクセスであるか否かを判定する。社内アクセスである場合、処理をステップS84に進める。社外アクセスである場合、処理をステップS86に進める。社内アクセスであるか否かは、例えば、ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理テーブル111を参照して当該ユーザIDに対応する社内判定ドメインを取得し、これが現在のアクセス元のドメイン名と一致するか否かによって判定できる。
【0170】
[ステップS84]ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理テーブル111を参照して、ユーザIDに対応する鍵配置場所URIを取得する。そして、ユーザ情報管理部130は取得した鍵配置場所URIとスケジュールデータとをクライアントプログラム構成部140に出力する。
【0171】
[ステップS85]クライアントプログラム構成部140は、データ記憶部110に記憶されたひな型に基づいて、HTML文書550aを生成する。具体的には、クライアントプログラム構成部140は、取得した鍵配置場所URIに応じたコードを生成し、ひな型に挿入する。例えば、HTML文書550aのコード552aに含まれる“http://sales.shanai.example.com/key.jsonp”の箇所が鍵配置場所URIに応じたコードに相当する。また、クライアントプログラム構成部140は、スケジュールデータの内容により、予定閲覧画面550の予定一覧表示部552に対応するコードを生成する。具体的には、HTML文書550aの“table”タブで括られた箇所が予定一覧表示部552に対応するコードに相当する。クライアントプログラム構成部140は、生成したHTML文書550aとその他の必要なファイル群を送信部150に出力する。
【0172】
[ステップS86]クライアントプログラム構成部140は、データ記憶部110に記憶されたひな型と、スケジュールデータの内容と、に基づいて、HTML文書を生成する。このとき、クライアントプログラム構成部140はスケジュールデータに暗号化部分が含まれる場合、当該部分は暗号化された状態でHTML文書に挿入する。そして、クライアントプログラム構成部140は、その暗号化部分を特定する。
【0173】
[ステップS87]クライアントプログラム構成部140は、特定した暗号化部分を所定の文字列に置換してHTML文書560aを生成する。置換用の文字列は、データ記憶部110に予め格納される。HTML文書560aの例では、“社外秘”の文字列が対応する。クライアントプログラム構成部140は、生成したHTML文書550aとその他の必要なファイル群を送信部150に出力する。
【0174】
[ステップS88]送信部150は、クライアントプログラム構成部140から取得したHTML文書550a(あるいはHTML文書560a)などをレスポンスに含めて端末装置200(あるいは端末装置200a)に送信する。
【0175】
このようにして、データ提供サーバ100は、HTML文書550a,560aを生成し、端末装置200,200aに送信する。
端末装置200は、HTML文書550aに記述されたスクリプトに基づいて、鍵取得部220の機能を実現する。ここで、図24のステップS76に示した鍵取得処理は図22で説明した手順と同一である。
【0176】
端末装置200は、鍵を取得するとHTML文書550aに基づいて予定閲覧画面550をモニタに表示させる。このとき、取得した鍵を用いて、HTML文書550aの暗号化部分を復号する。次に、図24のステップS77で示した端末装置200の復号処理の手順について説明する。
【0177】
図26は、復号処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS91]Webブラウザ210は、HTML文書550aのコード553aの記述に基づいて復号部232を実現する。復号部232は、HTML文書550aに含まれる各データ項目に関して以下のステップS92〜S95を繰り返し実行する。
【0178】
[ステップS92]復号部232は、タグ“td”の要素(データ)を抽出する。
[ステップS93]復号部232は、抽出したデータが暗号化されているか否かを判定する。暗号化されている場合、処理をステップS94に進める。暗号化されていない場合、処理をステップS96に進める。復号部232は、抽出したデータの先頭に所定の文字列(“{enc:”)が含まれているか否かによって、当該データが暗号化されているか否かを判定することができる。
【0179】
[ステップS94]復号部232は、鍵取得部220が取得した鍵を用いて抽出したデータを復号する。復号部232は、鍵取得部220が出力した所定の変数の値を参照することで鍵を取得できる。復号処理の具体的な内容は、図15のコード542bに基づく処理の通りである。復号部232は、当該データに付加された所定の文字列を除去した後のデータについて復号を行う。
【0180】
[ステップS95]復号部232は、HTML文書550aの当該タグの要素を復号後のデータに置換する。
[ステップS96]復号部232は、タグ“td”の要素全てについて処理済みであるか否かを判定する。全て処理済みである場合、処理を完了する。未処理のものがある場合、処理をステップS91に進める。
【0181】
このようにして、復号部232は復号処理を行う。Webブラウザ210は、復号部232による復号後のHTML文書に基づいて、予定閲覧画面550をモニタに表示させる。
【0182】
図27は、第2の実施の形態のデータ閲覧方法の具体例を示す図である。データ提供サーバ100は、例えばサービス事業者の構内に設置される。データ記憶部110には、少なくとも一部が暗号化されたユーザデータが格納されている。なお、データ記憶部110は、データ提供サーバ100に設けられてもよいし、別個の記憶装置として設けられてもよい。
【0183】
端末装置200および鍵管理サーバ300は、ユーザ会社の社内に設置される。端末装置200は、データ提供サーバ100にアクセスしてユーザ認証された後、予定閲覧画面のリクエストを送信する。すると、端末装置200は、データ提供サーバ100から、データ記憶部110に記憶されたデータおよび当該データの暗号化部分を復号するための鍵のURIを取得できる(ST11)。
【0184】
そして、端末装置200は、取得したURIに基づき鍵管理サーバ300から鍵を取得し、データの暗号化部分を復号する(ST12)。
これにより、端末装置200はデータ提供サーバ100で管理されるデータを適正に復号し、ユーザにその内容を提供できる。その際、鍵はサービス事業者ではなく、自社内で管理できるので、サービス事業者に鍵を不正に取得されるおそれがない。よって、データの安全性を向上できる。また、ユーザ会社とサービス事業者との間のネットワークに暗号処理するための特別の装置を設ける必要がない。すなわち、端末装置200は、データ提供サーバ100が提供するアプリケーションの機能により、当該暗号処理を行えるので、サービスの利用開始に伴うコストを一層削減できる。
【0185】
更に、端末装置200aは、ユーザ会社の社員が、ユーザ会社の社外で利用するコンピュータである。端末装置200aは、データ提供サーバ100にアクセスしてユーザ認証されると、データ記憶部110に記憶されたデータを取得できる。このとき、データ提供サーバ100は、提供するデータのうち暗号化部分を所定の文字列(例えば社外秘)に置換する。これにより、社外からのアクセスに対するデータの安全性を向上できる。また、社外からのアクセスに対して、暗号化部分につき無意味な情報の提示を防止できる。
【0186】
また、端末装置500は、第三者が利用するコンピュータである。端末装置500は、ネットワーク20にアクセスすることはできず、鍵を取得することはできない(ST31)。このため、サービス事業者からデータ記憶部110に記憶されたデータを不正に取得したとしても、暗号化部分を閲覧することはできない。すなわち、第三者に対してもデータの安全性を向上できる。
【0187】
[第3の実施の形態]
以下、第3の実施の形態を図面を参照して詳細に説明する。前述の第2の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【0188】
第2の実施の形態では、データ提供サーバ100に暗号化部分を含むユーザデータを格納することとした。これに対し、第3の実施の形態では、ユーザデータをユーザ会社内のネットワーク20に接続されたデータ管理サーバ300aに格納する。より具体的には、スケジュールに含まれる日時の情報など、サービス事業者に開示してもよい部分に関しては、データ提供サーバ100に格納するが、スケジュールの場所や内容などの部分はデータ管理サーバ300aに格納する。これにより、機密部分の安全性を一層向上できる。以下では、このような情報処理システムに関して具体的に説明する。
【0189】
図28は、第3の実施の形態に係る情報処理システムを示す図である。この情報処理システムは、ユーザ会社に業務サービスを提供するWebシステムである。業務のためのデータは、サービス事業者が管理するデータ提供サーバ100に格納される。この情報処理システムでは、データ提供サーバ100、端末装置200,200aおよび鍵管理サーバ300およびデータ管理サーバ300aがネットワーク10,20および通信装置10aを介して接続されている。
【0190】
ここで、データ提供サーバ100、端末装置200,200a、鍵管理サーバ300、ネットワーク10,20および通信装置10aは、図2において同一の符号を付して説明した第2の実施の形態の各構成と同一である。
【0191】
ただし、データ提供サーバ100が記憶するスケジュールデータは、スケジュールの場所や内容などの機密部分につき暗号化されたURIが設定されたものである。このURIは、データ管理サーバ300aに記憶された当該機密部分の内容の所在を示すものである。データ提供サーバ100は、当該スケジュールデータとともに暗号化されたURIを復号するための鍵を記憶する。
【0192】
データ管理サーバ300aは、ネットワーク20に接続されている。データ管理サーバ300aは、スケジュールに含まれる機密部分(場所や概要など)の情報を記憶・管理する。データ管理サーバ300aは、端末装置200からリクエストを受信すると、それに応じた機密部分の情報を端末装置200に応答する。
【0193】
なお、データ管理サーバ300aも図3で示したデータ提供サーバ100と同様のハードウェア構成により実現することができる。
また、第3の実施の形態のデータ提供サーバ100、端末装置200および鍵管理サーバ300の機能構成は、第2の実施の形態で示した機能構成と同様である。ただし、端末装置200のWebブラウザ210で実現される機能につき以下の点が異なる。
【0194】
図29は、第3の実施の形態の端末装置の機能構成を示す図である。端末装置200は、Webブラウザ210、鍵取得部220および暗号処理部230を有する。これらの機能は、所定のプログラムを端末装置200のCPUが実行することで実現される。
【0195】
Webブラウザ210は、データ提供サーバ100に予定閲覧画面のリクエストを送信する。すると、Webブラウザ210は、データ提供サーバ100からデータ内容の所在を示す暗号化されたURIと、それを復号するための鍵のURIと、を記述したHTML文書を含むレスポンスを受信する。
【0196】
鍵取得部220は、鍵のURIに基づいて、鍵管理サーバ300より鍵を取得する。復号部232は、当該鍵によりデータ内容の所在を示す暗号化されたURIを復号する。
Webブラウザ210は、復号部232が復号したURIに基づいて、データ管理サーバ300aからスケジュールの内容を取得し、取得した内容を端末装置200に接続されたモニタに表示させる。
【0197】
図30は、第3の実施の形態のスケジュールデータの内容を例示する図である。(A)に示すスケジュールデータ400aは、暗号化前を示している。(B)に示すスケジュールデータ410aは、暗号化後を示している。
【0198】
スケジュールデータ400aは、スケジュールの内容を示す複数のデータ項目を有している。データ項目には、場所(LOCATION)401aおよび概要(SUMMARY)402aが含まれる。ここで、場所401aおよび概要402aの各データ項目は、図10で示したスケジュールデータ400のデータ項目である場所401および概要402に対応する。
【0199】
場所401aには、例えば“<http://shanai.example.com/schedule/tarou1.jsonp>”という情報が設定されている。また、概要402aには、例えば“<http://shanai.example.com/schedule/tarou2.jsonp>”という情報が設定されている。
【0200】
Webブラウザ210は、図13に示した予定登録画面540の登録ボタン547が押下されると、対応するデータ項目の内容をデータ管理サーバ300aに格納する。そして、該当するデータ項目を、その格納場所を示すURIに置換する。これは、場所401aおよび概要402aの部分が対応する。これにより、スケジュールデータ400aが生成される。
【0201】
更に、暗号化部231は、鍵管理サーバ300から取得した鍵によって当該URIを暗号化し、スケジュールデータ410aを生成する。
スケジュールデータ410aは、スケジュールデータ400と同一のデータ項目を有している。データ項目には、場所411aおよび概要412aが含まれる。場所411aは、場所401aの暗号化後に対応する。概要412aは、概要402aの暗号化後に対応する。
【0202】
例えば、当該ユーザの暗号化対象として、場所と概要とが選択されている場合、スケジュールデータ410aのように場所411aおよび概要412aに暗号化されたURIが設定される。そして、端末装置200はスケジュールデータ410aをデータ提供サーバ100に送信する。データ提供サーバ100はデータ記憶部110に記憶されたデータ管理テーブル113にスケジュールデータ410aの内容を登録する。
【0203】
図31は、第3の実施の形態のデータ閲覧方法の具体例を示す図である。データ提供サーバ100は、例えばサービス事業者の構内に設置される。データ記憶部110には、少なくとも一部が暗号化されたユーザデータが格納されている。なお、データ記憶部110は、データ提供サーバ100に設けられてもよいし、別個の記憶装置として設けられてもよい。
【0204】
端末装置200、鍵管理サーバ300およびデータ管理サーバ300aは、ユーザ会社の社内に設置される。端末装置200は、データ提供サーバ100にアクセスしてユーザ認証後、予定閲覧画面のリクエストを送信する。すると、端末装置200は、データ提供サーバ100から、データ記憶部110に記憶されたデータおよび当該データの暗号化されたURI部分を復号するための鍵のURIを含むレスポンスを受信する(ST41)。暗号化されたURI部分とは、図30で示した場所411aおよび概要412a(ただし、データ項目を示す文字列“LOCATION”などを除く)に対応する。
【0205】
そして、端末装置200は、取得したURIに基づき鍵管理サーバ300から鍵を取得する(ST42)。端末装置200は、取得した鍵により、データの暗号化されたURI部分を復号する(ST43)。復号後のURI部分は、図30で示した場所401aおよび概要402a(ただし、データ項目を示す文字列を除く)に対応する。更に、端末装置200は、復号したURIに基づいて、URIに対応する項目内容をデータ管理サーバ300aから取得する(ST44)。なお、データ提供サーバ100は、端末装置200にST44の処理を実行させるためのスクリプトを含むHTML文書を生成し、ST41のレスポンスに含める。端末装置200は、当該HTML文書のスクリプトを実行することで、ST44の処理を実現できる。
【0206】
このように、第3の実施の形態の情報処理システムによっても、第2の実施の形態と同様の効果を奏することができる。特に、機密内容を社内のデータ管理サーバ300aに格納することで、当該内容の安全性を一層向上できる。
【0207】
また、端末装置200aが社外からアクセスした場合には、データ提供サーバ100は、暗号化されたURI部分を所定の文字列(例えば、社外秘)に置換して、端末装置200aにレスポンスを送信する。これにより、第2の実施の形態と同様、社外からのアクセスに対するデータの安全性を向上できる。また、社外からのアクセスに対して、暗号化部分につき無意味な情報の提示を防止できる。
【0208】
また、データ提供サーバ100は、HTML文書に含まれるスクリプトとして、端末装置200に鍵を取得させるプログラムを送信するものとしたが、端末装置200で実行可能なHTML文書以外のデータ形式によって、当該プログラムを送信してもよい。
【0209】
更に、暗号化時に使用する鍵と、復号時に使用する鍵とを、同一にしてもよいし別個の鍵にしてもよい。その場合、暗号化時用の鍵のURIと、復号時用の鍵のURIと、がユーザ管理テーブル111に登録される。そして、データ提供サーバ100は、暗号化時および復号時に応じた鍵をユーザ管理テーブル111から取得して、端末装置200に送信する。
【0210】
なお、上記情報処理システムでは、ユーザ会社の社員のスケジュールを管理する業務サービスを例示したが、これに限らない。例えば、掲示板、電子メールなどのその他のグループウェア機能、勤怠管理や給与管理などの機能を提供する業務サービスに適用してもよい。これにより、これらの業務サービスが提供する文書の機密部分の安全性を容易に向上することができる。
【0211】
以上、本発明のデータ提供方法、データ提供装置およびデータ提供プログラムを図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0212】
1 データ提供装置
1a,1b 記憶部
1c 受信部
1d 処理部
1e 送信部
2 端末装置
3 情報処理装置
【技術分野】
【0001】
本発明は、ネットワークを介してデータを提供するデータ提供方法、データ提供装置およびデータ提供プログラムに関する。
【背景技術】
【0002】
近年、ユーザが行う種々の業務をコンピュータシステムによって支援する技術が利用されている。この点、サービス事業者が運用するコンピュータシステムが提供するアプリケーションによって、ユーザの業務支援を行うサービス形態がある。そのようなサービス形態として、例えばSaaS(Software as a Service)が知られている。ユーザは、SaaSを利用することで、自社内に新たなコンピュータを導入することなく業務システムを利用できる。
【0003】
ここで、上記サービス形態によって業務を行う場合、ユーザデータはサービス事業者のコンピュータで管理される。このため、ユーザデータが機密情報の場合、セキュリティ上の問題が生ずる。対策として、例えば機密情報を暗号化し、暗号処理のための鍵と共にサービス事業者のコンピュータで管理することが考えられる(例えば、特許文献1参照)。しかし、この方法でもサービス事業者によりデータを不正に閲覧されるリスクが残る。
【0004】
そこで、サービス事業者に管理させるユーザデータのうち、秘匿化の必要な情報を他の文字や記号の列に変換する中継装置を、ユーザ端末とサービス事業者のコンピュータシステムとの間に設ける方法が考えられている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2007−537509号公報
【特許文献2】特開2008−177821号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、従来の方法では上記コンピュータシステムを利用するに当たって、ユーザ側で新たに中継装置を導入する必要がある。このため、中継装置の導入時の作業負担や運用管理の負担が問題となる。特に、上記サービス形態においてはユーザ側でのシステム改変を伴わずにサービス提供することが望まれる。
【0007】
本発明はこのような点に鑑みてなされたものであり、データの安全性の向上を容易に実現できるようにしたデータ提供方法、データ提供装置およびデータ提供プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、データ提供方法が提供される。このデータ提供方法では、データ提供装置が、端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、データ取得要求に含まれる識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、データ取得要求に含まれる識別情報に対応する所在情報を取得し、取得した登録データと、取得した所在情報で示される情報処理装置に記憶された鍵を端末装置に取得させるとともに、取得させた鍵を用いて取得した登録データを復号させるプログラムと、を端末装置に送信する。
【0009】
また、上記課題を解決するために上記データ提供方法と同様の処理を行う機能を有するデータ提供装置が提供される。
また、上記課題を解決するために上記データ提供方法と同様の処理をコンピュータに実行させるデータ提供プログラムが提供される。
【発明の効果】
【0010】
上記データ提供方法、データ提供装置およびデータ提供プログラムによれば、データの安全性の向上を容易に実現できる。
【図面の簡単な説明】
【0011】
【図1】第1の実施の形態に係るデータ提供装置を示す図である。
【図2】第2の実施の形態に係る情報処理システムを示す図である。
【図3】第2の実施の形態のデータ提供サーバのハードウェア構成を示す図である。
【図4】第2の実施の形態のデータ提供サーバの機能構成を示す図である。
【図5】第2の実施の形態の端末装置の機能構成を示す図である。
【図6】第2の実施の形態の鍵管理サーバの機能構成を示す図である。
【図7】第2の実施の形態のユーザ管理テーブルのデータ構造例を示す図である。
【図8】第2の実施の形態のグループ管理テーブルのデータ構造例を示す図である。
【図9】第2の実施の形態のデータ管理テーブルのデータ構造例を示す図である。
【図10】第2の実施の形態のスケジュールデータの内容を例示する図である。
【図11】システムの利用開始の際の画面を例示する図である。
【図12】暗号処理の設定画面を例示する図である。
【図13】予定登録画面を例示する図である。
【図14】予定登録画面のHTML文書を例示する図である。
【図15】暗号処理を実行するための関数を例示する図である。
【図16】予定閲覧画面を例示する図である。
【図17】予定閲覧画面のHTML文書の第1の例を示す図である。
【図18】予定閲覧画面のHTML文書の第2の例を示す図である。
【図19】メニュー画面の表示処理を示すフローチャートである。
【図20】予定登録処理を示すフローチャートである。
【図21】予定登録画面応答処理を示すフローチャートである。
【図22】鍵取得処理を示すフローチャートである。
【図23】暗号化処理を示すフローチャートである。
【図24】予定閲覧処理を示すフローチャートである。
【図25】予定閲覧画面応答処理を示すフローチャートである。
【図26】復号処理を示すフローチャートである。
【図27】第2の実施の形態のデータ閲覧方法の具体例を示す図である。
【図28】第3の実施の形態に係る情報処理システムを示す図である。
【図29】第3の実施の形態の端末装置の機能構成を示す図である。
【図30】第3の実施の形態のスケジュールデータの内容を例示する図である。
【図31】第3の実施の形態のデータ閲覧方法の具体例を示す図である。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係るデータ提供装置を示す図である。データ提供装置1は、端末装置2で利用されるユーザデータを管理する。データ提供装置1は、端末装置2のリクエストに応じて、自装置で管理するユーザデータを端末装置2に提供する。データ提供装置1は、記憶部1a,1b、受信部1c、処理部1dおよび送信部1eを有する。
【0013】
記憶部1aは、登録データを所定の識別情報に対応付けて記憶する。登録データは、例えば、端末装置2を利用するユーザが扱うユーザデータである。
記憶部1bは、端末装置2が暗号処理するための鍵の所在情報を、所定の識別情報に対応付けて定義した管理情報を記憶する。端末装置2は、当該鍵によりデータ提供装置1に渡すデータの少なくとも一部を暗号処理する。端末装置2が暗号処理の対象とするデータは、例えば、端末装置2を利用するユーザが作成した文書や図表などのデータである。あるいは、当該データは、例えば文書や図表などのデータの所在を示すものでもよい。
【0014】
また、所在情報は、情報処理装置3および情報処理装置3における鍵の格納場所を示す情報である。また、識別情報は、例えば端末装置2を利用するユーザを識別するための情報である。
【0015】
受信部1cは、端末装置2から所定の識別情報を含むリクエストを受信する。リクエストの種類は、少なくとも次の2種類の何れかを含む。すなわち、リクエストはデータ提供装置1にデータを登録するためのデータ登録要求、またはデータ提供装置1から登録データを取得するためのデータ取得要求の何れかである。受信部1cは、受信したリクエストを処理部1dに出力する。
【0016】
処理部1dおよび送信部1eは、リクエストの内容に応じて以下に示す処理を実行する。
(データ取得時)
(A1)リクエストがデータ取得要求である場合、処理部1dは、記憶部1a,1bを参照して、データ取得要求に含まれる識別情報に対応する所在情報および登録データを取得する。そして、処理部1dは、端末装置2に所在情報で示される情報処理装置3から鍵を取得させる鍵取得プログラムを生成する。更に、処理部1dは、登録データと鍵取得プログラムとを送信部1eに出力する。
【0017】
(A2)送信部1eは、処理部1dから登録データと鍵取得プログラムとを取得すると、これらの情報を端末装置2に送信する。これらの情報を受信した端末装置2は、鍵取得プログラムを実行して、情報処理装置3から鍵を取得する。端末装置2は、取得した鍵により登録データを復号し、その内容をユーザに提供する。
【0018】
(データ登録時)
(B1)リクエストがデータ登録要求である場合、処理部1dは、記憶部1bに記憶された管理情報を参照し、データ登録要求に含まれる識別情報に対応する所在情報を取得する。そして、処理部1dは、端末装置2に所在情報で示される情報処理装置3から鍵を取得させる鍵取得プログラムを生成する。更に、処理部1dはデータ登録用の情報(例えば、データを入力する入力画面の情報)と共に鍵取得プログラムを送信部1eに出力する。
【0019】
(B2)送信部1eは、処理部1dからデータ登録用の情報と鍵取得プログラムとを取得すると、これらの情報を端末装置2に送信する。これらの情報を受信した端末装置2は、鍵取得プログラムを実行して、情報処理装置3から鍵を取得する。そして、端末装置2は、取得した鍵により、送信すべきデータの少なくとも一部を暗号化して生成した登録データをデータ提供装置1に送信する。処理部1dは、受信部1cを介して端末装置2から登録データを取得すると、登録データを識別情報に対応付けて記憶部1aに格納する。
【0020】
このようなデータ提供装置1によれば、端末装置2からデータ取得用が受信されると、記憶部1aが参照されて、データ取得要求に含まれる識別情報に対応する登録データが取得される。また、記憶部1bが参照されて、データ取得要求に含まれる識別情報に対応する所在情報が取得される。更に、取得した登録データと、所在情報で示される情報処理装置3に記憶された鍵を端末装置2に取得させるとともに取得させた鍵を用いて取得した登録データを復号させるプログラムと、が端末装置2に送信される。
【0021】
これにより、データの安全性の向上を容易に実現できる。具体的には、端末装置2は、データ提供装置1から受信した鍵取得プログラムを実行することで、情報処理装置3から暗号処理用の鍵を取得する。このため、当該機能を予め端末装置2に導入しておく必要がない。また、当該機能を有する装置を予めデータ提供装置1と端末装置2との間に導入しておく必要もない。よって、導入作業や運用管理の負担が軽減される。
【0022】
また、鍵を記憶する情報処理装置3は、データ提供装置1とは別個に設けられる。すなわち、データ提供装置1は、鍵の所在を管理するのみなので、データ提供装置1単体では、登録データを復号することはできない。このため、データ提供装置1に渡すデータの安全性を向上できる。
【0023】
なお、鍵を記憶する情報処理装置3を、データ提供装置1からは参照不可能であるが、端末装置2からは参照可能なネットワークに設けてもよい。これにより、データの安全性を一層向上できる。
【0024】
以下の実施の形態では、Webシステムによってデータの登録や提供などの管理を行うことが可能な情報処理システムにデータ提供装置1を適用する場合を例に採り、更に詳細に説明する。
【0025】
[第2の実施の形態]
図2は、第2の実施の形態に係る情報処理システムを示す図である。この情報処理システムは、ユーザ会社に業務サービスを提供するWebシステムである。業務のためのデータは、サービス事業者が管理するデータ提供サーバ100に格納される。ユーザ会社は、当該サービスを利用することで、社内に当該業務用のサーバを設けることなく、業務を行うことができる。以下では、業務サービスの一例として、スケジュール管理サービスの提供を示して具体的に説明する。
【0026】
この情報処理システムでは、データ提供サーバ100、端末装置200,200aおよび鍵管理サーバ300がネットワーク10,20および通信装置10aを介して接続されている。
【0027】
ネットワーク10は、データ提供サーバ100が接続するネットワークである。ネットワーク10は、例えばインターネットである。
通信装置10aは、ネットワーク10に接続される無線通信装置である。通信装置10aは、端末装置200aと無線通信する。
【0028】
ネットワーク20は、端末装置200および鍵管理サーバ300が接続するネットワークである。ネットワーク20は、例えばイントラネットであり、ユーザ会社の社内ネットワークである。
【0029】
ネットワーク10とネットワーク20とは接続されている。ただし、ネットワーク20にはネットワーク10との接点に、ネットワーク間での通信を中継するゲートウェイやファイアウォールなど(図2では図示を省略)が設けられている。このゲートウェイやファイアウォールにより、ネットワーク20の外側にある装置(データ提供サーバ100や端末装置200a)からネットワーク20の内部に対してするアクセスは制限される。
【0030】
データ提供サーバ100は、サービス事業者のサーバ装置である。データ提供サーバ100は、端末装置200,200aのユーザが利用するユーザデータを記憶・管理する。データ提供サーバ100は、端末装置200,200aの要求に応じて、当該ユーザデータを端末装置200,200aに送信する。
【0031】
データ提供サーバ100は、Webサーバ機能を有する。データ提供サーバ100は、端末装置200,200aからHTTP(Hypertext Transfer Protocol)リクエスト(以下、単にリクエストという)を受信する。データ提供サーバ100は、当該リクエストに応じたHTTPレスポンス(以下、単にレスポンスという)を端末装置200,200aに送信する。このようにして、データ提供サーバ100はWebサービスを提供する。
【0032】
端末装置200,200aは、ユーザが利用するコンピュータである。ユーザは、端末装置200を操作して、データ提供サーバ100にスケジュールを登録できる。ユーザは、端末装置200,200aを操作して、データ提供サーバ100に格納されたデータを取得し、登録したスケジュールを閲覧できる。例えば、ユーザは、端末装置200から登録したスケジュールを社外の端末装置200aにより閲覧できる。端末装置200,200aは、ユーザが当該システムを利用するためのGUI(Graphical User Interface)を提供するWebブラウザを実行する。
【0033】
鍵管理サーバ300は、スケジュールの機密部分を暗号処理するための鍵を記憶する。鍵管理サーバ300は、端末装置200の要求に応じて、端末装置200に鍵を送信する。なお、鍵管理サーバ300を複数台設け、それぞれで複数の鍵を管理してもよい。
【0034】
ユーザは、鍵管理サーバ300の鍵を用いてスケジュールの機密部分を暗号化できる。これにより、データ提供サーバ100側での機密事項の不正な閲覧を防止できる。
図3は、第2の実施の形態のデータ提供サーバのハードウェア構成を示す図である。データ提供サーバ100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
【0035】
CPU101は、データ提供サーバ100全体を制御する。
ROM102は、データ提供サーバ100上のBIOS(Basic Input / Output System)のプログラムなどを記憶する。
【0036】
RAM103は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101による処理に必要な各種データを記憶する。
【0037】
HDD104は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD104はCPU101による処理に必要な各種データを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
【0038】
グラフィック処理装置105は、モニタ11と接続される。グラフィック処理装置105は、CPU101からの命令に従って画像をモニタ11の画面に表示させる。
入力インタフェース106は、キーボード12とマウス13と接続される。入力インタフェース106は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。
【0039】
記録媒体読取装置107は、記録媒体14に記憶されたデータを読み取る読取装置である。例えば、データ提供サーバ100が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体14に記録して配布することができる。また、ネットワーク10に接続されたプログラム配信サーバ(図示せず)にそのプログラムを格納してもよい。この場合、データ提供サーバ100は、ネットワーク10を介してプログラム配信サーバからプログラムをダウンロードすることができる。
【0040】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD:Flexible Disk)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0041】
通信インタフェース108は、ネットワーク10と接続される。通信インタフェース108は、ネットワーク10,20や通信装置10aを介して他の情報処理装置とデータ通信する。
【0042】
なお、端末装置200,200aおよび鍵管理サーバ300もデータ提供サーバ100と同様のハードウェア構成により実現できる。
図4は、第2の実施の形態のデータ提供サーバの機能構成を示す図である。データ提供サーバ100は、データ記憶部110、受信部120、ユーザ情報管理部130、クライアントプログラム構成部140および送信部150を有する。これらの機能は、所定のプログラムをCPU101が実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0043】
データ記憶部110は、ユーザを管理するためのユーザ管理情報や、データを管理するためのデータ管理情報などを記憶する。ユーザ管理情報は、ユーザごとの暗号処理のポリシー(鍵の所在情報や暗号化対象)を管理する情報である。データ管理情報は、ユーザごとのデータ本体を管理する情報である。また、データ記憶部110は、端末装置200に対して応答すべきWebページの構成情報やそのプログラムのひな型などを記憶する。
【0044】
受信部120は、端末装置200が送信したリクエストを受信する。リクエストには、スケジュールの登録画面を要求するものや、スケジュールの閲覧画面を要求するものが含まれる。受信部120は、受信したリクエストをユーザ情報管理部130に出力する。
【0045】
ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理情報やデータ管理情報を管理する。ユーザ情報管理部130は、受信部120から取得したリクエストを解析し、その内容に応じた処理を実行する。リクエストには、予定登録画面のリクエストおよび予定閲覧画面のリクエストなどがある。
【0046】
また、ユーザ情報管理部130は、ユーザ管理情報やデータ管理情報の更新の依頼を受け付けるとデータ記憶部110に記憶された各情報の更新を実行する。
例えば、ユーザ情報管理部130は、端末装置200から新たなスケジュールデータや更新後スケジュールデータを受信すると受信したデータに基づいて、データ記憶部110に記憶されたデータ管理情報を更新する。
【0047】
クライアントプログラム構成部140は、ユーザ情報管理部130が解析したリクエストの内容に応じて以下の処理を実行する。
(1)クライアントプログラム構成部140は、予定登録画面のリクエストを取得すると、予定登録画面を端末装置200のWebブラウザに表示させるためのHTML(Hypertext Markup Language)文書を生成して、送信部150に出力する。このHTML文書のひな型はデータ記憶部110に記憶される。
【0048】
このHTML文書には、端末装置200に暗号処理に利用すべき鍵を、所在情報で示される装置から取得させるためのプログラム(鍵取得プログラム)が含まれる。当該プログラムは、例えばJavaScript(登録商標)で記述される。鍵の所在情報は、鍵管理サーバ300を示す情報、鍵管理サーバ300上のディレクトリおよびファイルを示す情報であり、例えば、URI(Uniform Resource Identifier)である。クライアントプログラム構成部140は、データ記憶部110に記憶されたユーザ管理情報を参照することで、当該ユーザに対応する所在情報を取得できる。
【0049】
(2)クライアントプログラム構成部140は、予定閲覧画面のリクエストに対して、データ記憶部110に記憶されたスケジュールデータを読み出す。クライアントプログラム構成部140は、予定閲覧画面を端末装置200のWebブラウザに表示させるためのHTML文書を生成して、送信部150に出力する。このHTML文書のひな型はデータ記憶部110に記憶される。このHTML文書には、端末装置200に暗号処理に利用すべき鍵を、所在情報で示される装置から取得させるためのプログラム(鍵取得プログラム)が含まれる。当該プログラムは、例えばJavaScript(登録商標)で記述される。
【0050】
送信部150は、クライアントプログラム構成部140から取得したHTML文書をリクエストに対するレスポンスに含めて、端末装置200に送信する。
図5は、第2の実施の形態の端末装置の機能構成を示す図である。端末装置200は、Webブラウザ210、鍵取得部220および暗号処理部230を有する。これらの機能は、所定のプログラムを端末装置200のCPUが実行することで実現される。特に、鍵取得部220および暗号処理部230の機能はデータ提供サーバ100からのレスポンスに含まれるプログラムを実行することで実現される。
【0051】
Webブラウザ210は、ユーザがキーボード12やマウス13を操作して入力したデータを受け付け、データ提供サーバ100へ送信する。Webブラウザ210は、スケジュールデータをデータ提供サーバ100に送信する場合、必要に応じてスケジュールデータの一部あるいは全部を暗号処理部230に暗号化させる。そして、Webブラウザ210は暗号化後のデータをデータ提供サーバ100に送信する。
【0052】
また、Webブラウザ210は、データ提供サーバ100から受信したHTML文書の内容をモニタ11に表示させる。その際、Webブラウザ210は、暗号処理部230にHTML文書中の暗号化部分を復号させる。そして、復号後の内容をモニタ11に表示させる。
【0053】
鍵取得部220および暗号処理部230は、Webブラウザ210によって呼び出される機能である。鍵取得部220および暗号処理部230の機能は、Webブラウザ210が受信したHTML文書に含まれるプログラムを端末装置200のCPUが実行することで実現される。
【0054】
鍵取得部220は、プログラムに含まれる所在情報に基づいて暗号処理用の鍵を取得する。所在情報は、鍵管理サーバ300上の鍵の格納場所を示す。鍵取得部220は、当該所在情報に基づき鍵管理サーバ300に鍵の送信を依頼する鍵要求を送信する。鍵取得部220は、鍵管理サーバ300から鍵を受信する。鍵取得部220は、受信した鍵を暗号処理部230に出力する。
【0055】
暗号処理部230は、Webブラウザ210から取得したデータを鍵取得部220から取得した鍵を用いて暗号処理する。暗号処理部230は、暗号化部231および復号部232を有する。
【0056】
暗号化部231は、Webブラウザ210から取得したデータを鍵取得部220から取得した鍵を用いて暗号化する。暗号化部231は、暗号化したデータをWebブラウザ210に出力する。
【0057】
復号部232は、Webブラウザ210から取得したデータの暗号化部分を鍵取得部220から取得した鍵を用いて復号する。復号部232は、復号したデータをWebブラウザ210に出力する。
【0058】
なお、端末装置200aでは、Webブラウザ210が実現されていればよい。
図6は、第2の実施の形態の鍵管理サーバの機能構成を示す図である。鍵管理サーバ300は、鍵記憶部310、受信部320、鍵抽出部330および送信部340を有する。これらの機能は、所定のプログラムを鍵管理サーバ300のCPUが実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【0059】
鍵記憶部310は、端末装置200が暗号処理に用いる鍵を記憶する。鍵は、例えば、ユーザごと、あるいは、複数のユーザの所属するグループごとにそれぞれ異なるディレクトリに格納される。
【0060】
受信部320は、端末装置200から鍵要求を受信する。受信部320は、受信した鍵要求を鍵抽出部330に出力する。
鍵抽出部330は、受信部320から取得した鍵要求に基づいて、鍵記憶部310に記憶された鍵を取得する。鍵抽出部330は取得した鍵を送信部340に出力する。
【0061】
送信部340は、鍵抽出部330から取得した鍵を端末装置200に送信する。
図7は、第2の実施の形態のユーザ管理テーブルのデータ構造例を示す図である。ユーザ管理テーブル111は、データ記憶部110に格納される。ユーザ管理テーブル111には、項番、ユーザID、パスワード、ユーザ名、鍵配置場所URI、社内判定ドメイン、暗号化対象および所属グループの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1ユーザの情報を示す。
【0062】
項番には、レコードを識別するための番号が設定される。ユーザIDには、ユーザの識別子が設定される。パスワードには、ユーザを認証するためのパスワードが設定される。ユーザ名には、ユーザの名称が設定される。鍵配置場所URIには、鍵を格納したコンピュータやファイルを示すURIが設定される。社内判定ドメインには、アクセス元が社内であるか社外であるかを判定するためのドメインが設定される。暗号化対象には、暗号化対象とするデータ項目を指定する情報が設定される。例えば、スケジュールとして入力されるデータ項目のうち、暗号化の対象とすべきデータ項目として、スケジュールの概要や場所などが設定される。所属グループには、ユーザの所属するグループが存在する場合、そのグループを示す識別情報が設定される。
【0063】
ユーザ管理テーブル111には、例えば、項番が“1”、ユーザIDが“tarou”、パスワードが”12345abcde”、ユーザ名が“富士太郎”、鍵配置場所URIが“http://sales.shanai.example.com/key.jsonp”、社内判定ドメインが“*.shanai.example.com”という情報が設定される。また、暗号化対象のうち、概要が“○”、場所が“○”、所属グループが“−(設定なし)”という情報が設定されている。
【0064】
この項番1の各情報は、“tarou”のユーザIDで示されるユーザに対応付けられている。特に、項番1の鍵配置場所URIの情報により“tarou”で示されるユーザが登録するスケジュールデータの暗号処理に用いる鍵が、当該URIで示される鍵管理サーバ300上のファイルとして取得できることが示されている。また、項番1の社内判定ドメインの情報により、アクセス元が“*.shanai.example.com”のドメインに適合する場合に、当該アクセスをユーザ会社の社内からのアクセスであると検知することが示されている。ここで“*”はワイルドカードであり、任意の文字列に対応する。また、項番1の暗号化対象の情報により、新たに登録するスケジュールのデータ項目のうち、概要および場所のデータ項目を何れも暗号化することを示している。また、項番1の所属グループの情報により、所属グループの設定がないことを示している。
【0065】
ここで、暗号化対象のデータ項目に“×”が設定されている場合、当該データ項目は暗号化しないことを示している。
また、ユーザ管理テーブル111には、例えば、項番が“2”、ユーザIDが“jirou”、パスワードが“qwertyuiop”、ユーザ名が“富士二郎”、鍵配置場所URIが“−(設定なし)”、社内判定ドメインが“−(設定なし)”、暗号化対象(概要および場所の何れも)が“−(設定なし)”、所属グループが“Group1”という情報が設定されている。
【0066】
この項番2の各情報により、“jirou”で示されるユーザが“Group1”で示されるグループに所属しており、鍵配置場所URI、暗号化対象などの設定が当該グループのポリシーに準ずることが示されている。
【0067】
図8は、第2の実施の形態のグループ管理テーブルのデータ構造例を示す図である。グループ管理テーブル112は、データ記憶部110に格納される。グループ管理テーブル112には、項番、グループID、グループ名、鍵配置場所URI、社内判定ドメインおよび暗号化対象の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1グループの情報を示す。
【0068】
項番には、レコードを識別するための番号が設定される。グループIDには、グループの識別子が設定される。グループ名には、グループの名称が設定される。鍵配置場所URIには、鍵を格納したコンピュータやファイルを示すURIが設定される。社内判定ドメインには、アクセス元が社内であるか社外であるかを判定するためのドメインが設定される。暗号化対象には、暗号化対象とするデータ項目を指定する情報が設定される。例えば、スケジュールとして入力されたデータ項目のうち、暗号化の対象とすべきデータ項目として、スケジュールの概要や場所などが設定される。
【0069】
グループ管理テーブル112には、例えば、項番が“1”、グループIDが“Group1”、グループ名が“設計チーム”、鍵配置場所URIが“http://sk.shanai.example.com/a1/key3.jsonp”、社内判定ドメインが“*.shanai.example.com”という情報が設定される。また、暗号化対象のうち、概要が“○”、場所が“○”という情報が設定されている。
【0070】
この項番1の情報は、“Group1”のユーザIDで示されるグループに対応付けられている。特に、項番1の鍵配置場所URIの情報により“Group1”で示されるグループに属するユーザが登録するスケジュールデータの暗号処理に用いる鍵が、当該URIで示されるサーバ上のファイルとして取得できることが示されている。また、項番1の社内判定ドメインの情報により、アクセス元が“*.shanai.example.com”のドメインに適合する場合に、当該アクセスをユーザ会社の社内からのアクセスであると検知することが示されている。また、項番1の暗号化対象の情報により、このグループに属するユーザが新たに登録するスケジュールのデータ項目のうち、概要および場所のデータ項目を何れも暗号化することを示している。
【0071】
例えば、ユーザ管理テーブル111で示した“jirou”で示されるユーザは、“Group1”に属している。したがって、上記項番“1”のレコードの設定が、“jirou”で示されるユーザに適用される。ただし、ユーザ管理テーブル111に当該ユーザにつき個別の設定がなされている場合には、個別の設定を優先して適用してもよい。
【0072】
このようにグループ単位での管理を可能とすることで、例えばプロジェクトの全担当者につき統一されたポリシーを一括して容易に設定できる。
図9は、第2の実施の形態のデータ管理テーブルのデータ構造例を示す図である。データ管理テーブル113は、データ記憶部110に格納される。データ管理テーブル113には、項番、ユーザID、文書IDおよびデータの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのデータに関する情報を示す。
【0073】
項番には、レコードを識別するための番号が設定される。ユーザIDには、ユーザの識別子が設定される。文書IDには、文書を識別するための識別子が設定される。データ本体には、データの本体が設定される。データ本体には、例えば、各人のスケジュールを示すvCalendar形式のデータが格納される。
【0074】
データ管理テーブル113には、例えば、項番が“1”、ユーザIDが“tarou”、文書IDが“0000001”、データ本体が“スケジュールデータ(tarou).vcs”という情報が設定されている。なお、データ本体をファイル名で示している。
【0075】
この項番1の各情報により、当該レコードに格納された“スケジュールデータ(tarou).vcs”がユーザ“tarou”のスケジュールであり、その文書IDが“0000001”であることが示されている。
【0076】
なお、図7〜9に示した各テーブルは、データ記憶部110に格納されるものとしたが、それぞれのテーブルあるいはそれぞれのテーブルの一部を別個の記憶部に格納してもよい。例えば、ユーザ管理テーブル111およびグループ管理テーブル112をデータ記憶部110に格納し、データ管理テーブル113をRAM103やHDD104に設けられた他の記憶部に格納してもよい。
【0077】
図10は、第2の実施の形態のスケジュールデータの内容を例示する図である。(A)に示すスケジュールデータ400は、暗号化前を示している。(B)に示すスケジュールデータ410は、暗号化後を示している。
【0078】
スケジュールデータ400は、スケジュールの内容を示す複数のデータ項目を有している。データ項目には、場所(LOCATION)401および概要(SUMMARY)402が含まれる。
【0079】
場所401には、例えば“C101会議室”という情報が設定されている。また、概要402には、例えば“クラウド戦略会議”という情報が設定されている。
スケジュールデータ410は、スケジュールデータ400と同一のデータ項目を有している。データ項目には、場所411および概要412が含まれる。場所411は、場所401の暗号化後に対応する。概要412は、概要402の暗号化後に対応する。
【0080】
ユーザの暗号化対象として、場所と概要とが選択されている場合、スケジュールデータ410のように場所411および概要412に暗号化された内容が設定される。そして、端末装置200はスケジュールデータ410をデータ提供サーバ100に送信する。データ提供サーバ100はデータ記憶部110に記憶されたデータ管理テーブル113にスケジュールデータ410の内容を登録する。具体的には、例えば、データ管理テーブル113に既に格納されているスケジュールデータの所定のタグ部分にスケジュールデータ410で新たに追加された内容を挿入する。あるいは、例えばスケジュールデータ410に含まれる日時が既に挿入されている場合には、その日時につきスケジュールの内容をスケジュールデータ410の内容で置換する。
【0081】
次に、Webブラウザ210が表示する画面について説明する。以下に示す画面は、データ提供サーバ100が端末装置200に送信するHTML文書に基づいて、Webブラウザ210が端末装置200のモニタに表示するものである。
【0082】
図11は、システムの利用開始の際の画面を例示する図である。(A)はログイン画面510を示す。(B)は利用メニュー画面520を示す。
ログイン画面510は、データ提供サーバ100が提供するWebページを示す所定のURIがWebブラウザ210で指定されると当該ブラウザに表示される画面である。
【0083】
ログイン画面510には、テキストボックス511,512およびログインボタン513が表示されている。
テキストボックス511は、ユーザIDを入力するためのフォームである。テキストボックス512は、パスワードを入力するためのフォームである。ユーザは、端末装置200に接続された入力デバイス(キーボードやマウスなど)を操作して、テキストボックス511,512に文字列を入力できる。
【0084】
ログインボタン513は、テキストボックス511,512に入力されたユーザIDおよびパスワードをデータ提供サーバ100に送信するためのボタンである。ユーザは、入力デバイスを用いてログインボタン513を押下操作することで、入力した文字列によるユーザ認証をデータ提供サーバ100に促すことができる。
【0085】
データ提供サーバ100は、データ記憶部110に記憶されたユーザ管理テーブル111およびグループ管理テーブル112を参照して、ユーザIDとパスワードとを照合し認証を行う。データ提供サーバ100は、認証に成功すると利用メニュー画面520を示すHTML文書を端末装置200に送信する。
【0086】
利用メニュー画面520は、認証が成功した結果、Webブラウザ210に表示される画面である。利用メニュー画面520には、設定ボタン521、予定登録ボタン522および予定閲覧ボタン523が表示されている。ユーザは、入力デバイスを操作して、各ボタンを押下操作し、各ボタンに対応する画面をWebブラウザ210に表示させることができる。
【0087】
設定ボタン521は、設定画面へ遷移するためのボタンである。利用メニュー画面520では、ユーザ“富士太郎”がログインした状態を示している。設定ボタン521が押下されると、当該ログイン中のユーザの暗号処理の設定を行う画面に遷移する。
【0088】
予定登録ボタン522は、予定登録画面へ遷移するためのボタンである。予定登録ボタン522が押下されると、当該ユーザの予定登録画面に遷移する。
予定閲覧ボタン523は、予約閲覧画面へ遷移するためのボタンである。予定閲覧ボタン523が押下されると、当該ユーザの予定閲覧画面に遷移する。
【0089】
なお、利用メニュー画面520では、ユーザ個人でログインした場合を例示したが、グループでログインした場合にも同様に設定メニュー画面が表示される。ただし、その場合、設定メニュー画面には、グループに所属しているユーザごとの予定登録ボタンや予定閲覧ボタンが表示されてもよい。
【0090】
また、例えば、ネットワーク20以外からのアクセス(社外からのアクセス)に対しては、データ提供サーバ100は、利用メニュー画面520に予定登録ボタン522を表示させないこととしてもよい。
【0091】
図12は、暗号処理の設定画面を例示する図である。設定画面530は、利用メニュー画面520で設定ボタン521を押下すると、Webブラウザ210に表示される画面である。設定画面530には、テキストボックス531,532、チェックボックス533,534および確定ボタン535が表示されている。
【0092】
テキストボックス531は、暗号鍵の配置場所を示すURIを入力するためのフォームである。テキストボックス532は、アクセス元ドメインが社内のドメインであるか否かを判定するための判定基準となるドメインを入力するためのフォームである。ユーザは、入力デバイスを用いてテキストボックス531,532に文字列を入力できる。
【0093】
チェックボックス533,534は、スケジュールデータのうち暗号化するデータ項目を指定するためのフォームである。チェックボックス533は、概要のデータ項目を暗号化するか否かを受け付ける。チェックボックス534は、場所のデータ項目を暗号化するか否かを受け付ける。ユーザは、該当のデータ項目を暗号化対象としたい場合には、入力デバイスを操作して、チェックボックス533,534にチェックを入力することができる。
【0094】
確定ボタン535は、設定画面530に入力したデータを確定し、データ提供サーバ100に送信するためのボタンである。ユーザは、入力デバイスを操作して、確定ボタン535を押下操作することで、設定画面530に入力された内容で自身のユーザ管理レコードを更新するようデータ提供サーバ100に指示できる。
【0095】
データ提供サーバ100は、当該入力内容を受信すると、データ記憶部110に記憶されたユーザ管理テーブル111の該当ユーザのレコードを更新する。具体的には、テキストボックス531に入力されたURIがユーザ管理テーブル111の鍵配置場所URIに設定される。また、テキストボックス532に入力されたドメインがユーザ管理テーブル111の社内判定ドメインに設定される。また、チェックボックス533にチェックが入力されている場合に、ユーザ管理テーブル111の暗号化対象のうち概要の項目に“○”が設定される。同様に、チェックボックス534にチェックが入力されている場合に、ユーザ管理テーブル111の暗号化対象のうち場所の項目に“○”が設定される。チェックが未入力の場合には、ユーザ管理テーブル111の当該項目に“×”が設定される。
【0096】
なお、設定画面530には、ユーザ単位でのログインの場合に、当該ユーザが属するグループを設定変更するためのフォームを設けてもよい。また、グループでログインしている場合には、設定画面530によりグループ管理テーブル112に設定されたグループの暗号処理の設定・変更を行うことができる。
【0097】
図13は、予定登録画面を例示する図である。予定登録画面540は、利用メニュー画面520で予定登録ボタン522を押下すると、Webブラウザ210に表示される画面である。予定登録画面540には、アンカー541、テキストボックス542,543,544,545、チェックボックス546および登録ボタン547が表示されている。
【0098】
アンカー541は、予定閲覧画面に遷移するためのハイパーリンクである。
テキストボックス542は、スケジュールの日付を入力するためのフォームである。テキストボックス543は、スケジュールの開始時刻を入力するためのフォームである。テキストボックス544は、スケジュールの概要を入力するためのフォームである。テキストボックス545は、スケジュールの場所を入力するためのフォームである。ユーザは、入力デバイスを用いてテキストボックス542,543,544,545に各データ項目を入力できる。
【0099】
チェックボックス546は、設定画面530で指定した暗号化対象のデータ項目に対して暗号化を行うか否かを選択するためのフォームである。ユーザは、入力デバイスを操作して、チェックボックス546にチェックを入力することができる。
【0100】
登録ボタン547は、テキストボックス542,543,544,545およびチェックボックス546に入力した内容を確定するためのボタンである。ユーザは、入力デバイスを操作して、登録ボタン547を押下操作することで、予定登録画面540に入力されたスケジュールの内容を自身のスケジュールデータに登録するようデータ提供サーバ100に指示できる。
【0101】
このときチェックボックス546にチェックが入力されている場合、端末装置200は、所定のデータ項目について暗号化した後に、データ提供サーバ100へ当該入力内容を送信する。
【0102】
また、例えば、ネットワーク20以外からのアクセス(社外からのアクセス)に対して、データ提供サーバ100は、予定登録画面540にチェックボックス546を表示させないこととしてもよい。
【0103】
図14は、予定登録画面のHTML文書を例示する図である。HTML文書540aは、利用メニュー画面520の予定登録ボタン522が押下された際に、データ提供サーバ100が生成して端末装置200に送信される。Webブラウザ210は、HTML文書540aに基づいて、予定登録画面540をモニタに表示する。
【0104】
HTML文書540aは、コード541a,542a,543aを含む。
コード541aは、暗号処理を実行するための関数を記載したファイル群(“internal.js”など)を端末装置200のメモリ上に読み込むためのコードである。
【0105】
コード542aは、鍵取得部220を実現するためのスクリプトを記述したコードである。コード542aは、鍵管理サーバ300に記憶された鍵を指定するURIを含む。具体的には、“http://sales.example.com/key.jsonp”が、鍵管理サーバ300に記憶された鍵を指定するURIである。端末装置200は、例えばネットワーク20に接続されたネームサーバ(図2では図示せず)に“sales.example.com”を問い合わせることで、当該ドメイン名に対応する鍵管理サーバ300のIP(Internet Protocol)アドレスを取得できる。あるいは、端末装置200がドメイン名とIPアドレスとの対応付けを定義したファイルを予め有していてもよい。これにより、端末装置200上で鍵取得部220が実現される。
【0106】
そして、鍵取得部220は、JSONP(JavaScript Object Notation with Padding)により鍵管理サーバ300から鍵を取得する。鍵管理サーバ300には、所定のディレクトリにファイル“key.jsonp”が格納される。“key.jsonp”には、例えばJSONPデータ「jsonp(“mysecretkey”);」が記述される。鍵取得部220は、鍵管理サーバ300からjsonp(“mysecretkey”);の応答を得て、コード542aで定義される関数“jsonp”により鍵“mysecretkey”を取得できる。
【0107】
コード543aは、暗号化部231を実現するためのスクリプトを記述したコードである。暗号化部231は、登録ボタン547が押下操作された際に、チェックボックス546にチェックが入力されている場合、入力されたスケジュールデータのうち、暗号化対象のデータ項目(場所や概要)を暗号化する。そして、端末装置200は暗号化後のスケジュールデータをデータ提供サーバ100に送信する。
【0108】
なお、コード542a,543aは、データ記憶部110に記憶されたユーザ管理テーブル111およびグループ管理テーブル112に設定された内容に応じて生成される。例えば、コード542aに含まれるURIには鍵管理サーバ300以外のサーバが指定される場合もある。また、例えば、コード543aにおいて、場所や概要以外のデータ項目を暗号化対象としてもよい。なお、その場合には、ユーザ管理テーブル111やグループ管理テーブル112において、暗号化対象として場所や概要以外のデータ項目(例えば、開始時刻など)が設定される。HTML文書540aを生成するためのひな型は、データ記憶部110に予め格納される。
【0109】
図15は、暗号処理を実行するための関数を例示する図である。ファイル540bは、“internal.js”の内容を示している。ファイル540bは、予定登録画面540の構成ファイルとしてデータ記憶部110に予め格納される。ファイル540bは、コード541b、542bを含む。
【0110】
コード541bは、暗号化部231による暗号化処理を示すコードである。コード541bでは、鍵取得部220が取得した鍵(“pcdms.key”)を使用して所定の関数(“blowfish.encrypt”)により暗号化を行った後に、base64によるエンコードを行う場合を例示している。暗号化部231は、当該エンコード後のデータの先頭に“{enc:”を、最後尾に“}”を付加する。復号部232による暗号化部分の特定を容易とするためである。
【0111】
コード542bは、復号部232による復号処理を示すコードである。コード542bでは、コード541bで暗号化されたデータを復号する場合を例示している。復号部232は、復号対象データのうち、“{enc:”を先頭に含まないものはそのまま出力する。“{enc:”を含むものについて、先頭の“{enc:”と最後尾の“}”を除いた文字列につきbase64によるデコードを行う。更に、鍵取得部220が取得した鍵を使用してデコード後のデータを所定の関数(“blowfish.decrypt”)により復号する。そして、復号後のデータをWebブラウザ210に出力する。
【0112】
なお、復号対象データが暗号化されていないにも関わらず、先頭に“{enc:”を含む場合も考えられる。そのような場合を考慮して、非暗号化データが復号されないように、コード542bに適宜他のエスケープ処理を追加してもよい。
【0113】
図16は、予定閲覧画面を例示する図である。(A)はデータ提供サーバ100に社内からアクセスした場合(社内アクセス時)の予定閲覧画面550を示す。予定閲覧画面550は端末装置200のWebブラウザ210に表示される画面である。(B)はデータ提供サーバ100に社外からアクセスした場合(社外アクセス時)の予定閲覧画面560を示す。予定閲覧画面560は端末装置200aのWebブラウザに表示される画面である。
【0114】
予定閲覧画面550には、アンカー551および予定一覧表示部552が表示されている。アンカー551は、予定登録画面540に遷移するためのハイパーリンクである。予定一覧表示部552は、現在ログイン中のユーザのスケジュールの一覧を表示する領域である。
【0115】
予定一覧表示部552には、データ記憶部110に記憶されたデータ管理テーブル113に設定されるデータ本体の内容が表示される。例えば、ユーザ“富士太郎”がログインしている場合、ログイン時のユーザID“tarou”に対応するデータ本体“スケジュールデータ(tarou).vcs”が読み出され、その内容が予定一覧表示部552に表示される。端末装置200は、データ本体に記述されたデータのうち、暗号化部分に関しては、鍵管理サーバ300から取得した鍵により復号して予定一覧表示部552に表示する。
【0116】
予定閲覧画面560には、アンカー561および予定一覧表示部562が表示されている。アンカー561は、アンカー551に対応する。予定一覧表示部562は、予定一覧表示部552に対応する。
【0117】
予定一覧表示部562には、予定一覧表示部552と同様にしてログイン中のユーザのスケジュールの一覧が表示される。ただし、社外アクセス時には、ネットワーク20内にアクセスして鍵を取得することができないため、暗号化部分は所定の文字列で置換する。
【0118】
図17は、予定閲覧画面のHTML文書の第1の例を示す図である。HTML文書550aは、社内アクセス時に利用メニュー画面520の予定閲覧ボタン523が押下されると、データ提供サーバ100が生成して端末装置200に送信される。Webブラウザ210は、HTML文書550aに基づいて、予定閲覧画面550をモニタに表示する。
【0119】
HTML文書550aは、コード551a,552a,553a,554aを含む。
コード551aは、暗号処理を実行するための関数を記載したファイル群を端末装置200のメモリ上に読み込むためのコードである。
【0120】
コード552aは、鍵取得部220を実現するためのスクリプトを記述したコードである。コード552aは、鍵管理サーバ300に記憶された鍵を指定したURIを含む。具体的には、“http://sales.example.com/key.jsonp”が、鍵管理サーバ300に記憶された鍵を指定するURIである。当該URIによる鍵の取得方法は、図14のコード542aで説明した方法と同様である。
【0121】
コード553aは、復号部232を実現するためのスクリプトを記述したコードである。復号部232は、鍵取得部220が鍵を取得すると、当該HTML文書550a内のタグ“td”の要素につき復号を試みる。
【0122】
コード554aは、タグ“td”の要素に暗号化部分を含むコードである。
暗号化部分の復号方法は、図15のコード542bの説明の通りである。
図18は、予定閲覧画面のHTML文書の第2の例を示す図である。HTML文書560aは、社外アクセス時に利用メニュー画面520の予定閲覧ボタン523が押下されると、データ提供サーバ100が生成して、端末装置200aに送信される。Webブラウザは、HTML文書560aに基づいて、予定閲覧画面560をモニタに表示する。
【0123】
HTML文書560aは、コード561aを含む。コード561aは、図17で示したコード554aに対応している。このように、データ提供サーバ100は社外アクセス時には暗号化部分を所定の文字列(例えば“社外秘”)に置換したHTML文書560aを生成する。これにより、暗号化部分に含まれる無意味な文字列がユーザに提示されるのを防止する。
【0124】
このため、例えば、端末装置200aのWebブラウザに予定閲覧画面560を表示させたとしても、暗号化された無意味な文字列が表示されない。よって、社外アクセス時にも暗号化部分の安全性を確保するとともに、内容の見易さを向上できる。
【0125】
次に、以上のような構成の情報処理システムにおける処理手順を説明する。なお、以下では特に明記しない限り、端末装置200からユーザ“富士太郎”がデータ提供サーバ100へアクセスする場合を想定する。
【0126】
図19は、メニュー画面の表示処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS11]端末装置200は、ログイン画面510のURIを受け付ける。当該URIは、例えば、ユーザが所定のWebページ上から当該URIを示すハイパーリンクを選択したり、Webブラウザ210に直接入力したりすることで、端末装置200に入力される。
【0127】
[ステップS12]端末装置200は、データ提供サーバ100にログイン画面510のリクエストを送信する。
[ステップS13]データ提供サーバ100は、端末装置200からリクエストを受信する。データ提供サーバ100は、リクエストに応じて、ログイン画面510のHTML文書を含むレスポンスを端末装置200に送信する。
【0128】
[ステップS14]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、レスポンスに含まれるHTML文書に基づいて、ログイン画面510をモニタに表示させる。
【0129】
[ステップS15]端末装置200は、ログイン画面510のログインボタン513の押下操作を受け付けると、テキストボックス511,512に入力されたユーザIDおよびパスワードをデータ提供サーバ100に送信する。
【0130】
[ステップS16]データ提供サーバ100は、受信したIDおよびパスワードをデータ記憶部110に記憶されたユーザ管理テーブル111のユーザIDおよびパスワードと照合する。照合により、IDおよびパスワードが一致するものがあれば、認証OKとして処理をステップS17に進める。この場合、データ提供サーバ100は、例えば端末装置200との間のセッションに対応付けたセッション変数に認証したIDを保持する。IDおよびパスワードが一致するものがなければ、認証NGとして処理をステップS18に進める。
【0131】
[ステップS17]データ提供サーバ100は、利用メニュー画面520のHTML文書を端末装置200に応答する。
[ステップS18]データ提供サーバ100は、認証失敗を端末装置200に応答する。そして、端末装置200上で認証失敗がユーザに示されて、処理が完了する。
【0132】
[ステップS19]端末装置200は、受信したHTML文書に基づいて利用メニュー画面520をモニタに表示させる。そして、処理が完了する。
このようにして、データ提供サーバ100は、端末装置200を利用するユーザにつき認証に成功した場合に当該情報処理システムの利用を許可する。
【0133】
ユーザは、端末装置200に接続されたモニタに表示された利用メニュー画面520から所望のボタンを押下操作することで、データ提供サーバ100が提供する各機能を利用することができる。次に、各機能の処理手順を説明する。ここで、設定ボタン521を押下操作した場合の設定処理については、図12で説明した内容と同一であるため説明を省略する。
【0134】
まず、利用メニュー画面520で予定登録ボタン522が押下操作された際に、その後各装置が実行する処理について説明する。
図20は、予定登録処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0135】
[ステップS21]端末装置200は、利用メニュー画面520の予定登録ボタン522の押下操作を受け付ける。
[ステップS22]端末装置200は、予定登録画面540のリクエストを送信する。
【0136】
[ステップS23]データ提供サーバ100は、端末装置200からリクエストを受信する。データ提供サーバ100は、リクエストに応じて、予定登録画面540のHTML文書540aやその他の必要なファイル群を含むレスポンスを端末装置200に送信する。
【0137】
[ステップS24]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、レスポンスに含まれるHTML文書540aを解析し、HTML文書540aに含まれるスクリプトを実行する。これにより、端末装置200上に鍵取得部220の機能が実現される。
【0138】
[ステップS25]端末装置200は、鍵管理サーバ300から鍵を取得する。
[ステップS26]端末装置200は、HTML文書540aに基づいて、予定登録画面540をモニタに表示させる。端末装置200は、予定登録画面540の登録ボタン547の押下操作を受け付ける。
【0139】
[ステップS27]端末装置200は、予定登録画面540に入力されたデータ項目につき暗号化処理を行う。
[ステップS28]端末装置200は、データ提供サーバ100に各データ項目を含むスケジュールデータを送信する。
【0140】
[ステップS29]データ提供サーバ100は、端末装置200からスケジュールデータを受信する。データ提供サーバ100は、データ記憶部110に記憶されたデータ管理テーブル113に登録されたスケジュールデータの内容を更新する。例えば、スケジュールが追加された場合には、当該ユーザの既存のスケジュールデータに追加された内容を追記する。また、既存のスケジュールが変更された場合には、当該ユーザの既存のスケジュールデータに含まれる対象スケジュールを更新する。
【0141】
[ステップS30]データ提供サーバ100は、スケジュールデータの登録が完了した旨を通知するレスポンスを端末装置200に送信する。
[ステップS31]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、スケジュールデータの登録が完了した旨をモニタに表示させる。そして、処理が完了する。
【0142】
このようにして、データ提供サーバ100は、端末装置200からの予定登録画面540のリクエストに応じて、予定登録画面540用のHTML文書540aを生成して端末装置200に送信する。端末装置200は、データ提供サーバ100から受信したHTML文書540aに基づいて、鍵管理サーバ300から鍵を取得し、データ提供サーバ100に送信するデータを暗号化することができる。
【0143】
次に、上記ステップS23で示したデータ提供サーバ100の予定登録画面応答処理の手順について説明する。
図21は、予定登録画面応答処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0144】
[ステップS41]受信部120は、予定登録画面540のリクエストを受信する。受信部120は、受信したリクエストをユーザ情報管理部130に出力する。ユーザ情報管理部130は、当該アクセスのユーザIDを取得する。例えば、端末装置200との間で定義されるセッション変数からユーザIDを取得できる。
【0145】
[ステップS42]ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理テーブル111を参照して、ユーザIDに対応する鍵配置場所URIを取得する。
[ステップS43]ユーザ情報管理部130は、ユーザ管理テーブル111を参照して、ユーザIDに対応する暗号化対象のデータ項目を取得する。そして、取得した鍵配置場所URIと暗号化対象とをクライアントプログラム構成部140に出力する。
【0146】
[ステップS44]クライアントプログラム構成部140は、データ記憶部110に記憶されたひな型に基づいて、HTML文書540aを生成する。具体的には、取得した鍵配置場所URIに応じたコードを生成し、ひな型に挿入する。例えば、HTML文書540aのコード541aに含まれる“http://sales.shanai.example.com/key.jsonp”の箇所が対応する。また、取得した暗号化対象のデータ項目に応じたコードを生成し、ひな型に挿入する。例えば、コード542aに含まれる“form.location.value=pcdms.enc(form.location.value);”および“form.summary.value=pcdms.enc(form.summary.value);”の箇所が対応する。そして、生成したHTML文書540aとその他の必要なファイル群を送信部150に出力する。
【0147】
[ステップS45]送信部150は、クライアントプログラム構成部140から取得したHTML文書540aなどをレスポンスに含めて端末装置200に送信する。
このようにして、データ提供サーバ100は、HTML文書540aを生成し、端末装置200に送信する。
【0148】
端末装置200は、HTML文書540aに記述されたスクリプトに基づいて、鍵取得部220の機能を実現する。次に、図20のステップS25で示した端末装置200の鍵取得処理の手順について説明する。
【0149】
図22は、鍵取得処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS51]Webブラウザ210は、HTML文書540aに記述されたコード542aに基づいて、鍵配置場所URIを含むJSONPデータ取得用のスクリプトタグを生成する。
【0150】
[ステップS52]Webブラウザ210は、生成したスクリプトタグをHTML文書540aのbody部に挿入する。そして、Webブラウザ210は、生成したスクリプトタグを評価し、実行する。これにより、鍵取得部220が実現する。
【0151】
[ステップS53]鍵取得部220は、鍵配置場所URIにアクセスする。具体的には、コード542aに記載された鍵管理サーバ300上の鍵を示す外部ファイル“http://sales.shanai.example.com/key.jsonp”を読み込む。鍵取得部220は、例えば、鍵管理サーバ300から「jsonp(“mysecretkey”);」の応答を得て、コールバック関数“jsonp”を実行する。
【0152】
[ステップS54]鍵取得部220は、当該関数により取得した鍵を鍵格納用の変数(pcdms.key)に代入する。
このようにして、鍵取得部220が実現される。そして、鍵取得部220は、鍵管理サーバ300から鍵を取得する。なお、上記の例では、JSONPにより鍵を取得する場合を示したが、これに限らない。例えば、JavaScript(登録商標)以外のプログラム言語により記述されたアプリケーションをデータ提供サーバ100から端末装置200に送信して実行させることで鍵取得部220の機能を実現することも考えられる。
【0153】
端末装置200は、HTML文書540aに基づいて予定登録画面540をモニタに表示させる。そして、予定登録画面540の登録ボタン547が押下操作されると、暗号化処理を行う。次に、図20のステップS27で示した端末装置200の暗号化処理の手順について説明する。
【0154】
図23は、暗号化処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS61]Webブラウザ210は、予定登録画面540のチェックボックス546がON/OFFの何れであるか、すなわち、暗号化を行うか否かを判定する。暗号化を行う場合、HTML文書540aのコード543aの記述に基づいて暗号化部231を実現し、処理をステップS62に進める。暗号化を行わない場合、処理を完了する。
【0155】
[ステップS62]暗号化部231は、暗号化対象のデータ項目に関して以下のステップS63〜S65を繰り返し実行する。ここで、HTML文書540aでは、コード543aには、データ項目のうち、場所(“location”)および概要(“summary”)を対象として暗号化を行う旨が記述されている。
【0156】
[ステップS63]暗号化部231は、暗号化対象のデータ項目のデータを抽出する。
[ステップS64]暗号化部231は、鍵取得部220が取得した鍵を用いて抽出したデータを暗号化する。暗号化部231は、鍵取得部220が出力した所定の変数の値を参照することで鍵を取得できる。暗号化処理の具体的な内容は、図15のコード541bに基づく処理の通りである。暗号化部231は、暗号化後のデータの先頭と最後尾に所定の文字または文字列を付加する。
【0157】
[ステップS65]暗号化部231は、暗号化後のデータで、入力されたデータを置換する。
[ステップS66]暗号化部231は、コード543aに記述された全てのデータ項目についての暗号化処理を実行したか否かを判定する。全て実行した場合、処理を完了させる。全て実行していない場合、処理をステップS63に進める。
【0158】
このようにして、暗号化部231は暗号化処理を行う。なお、データ項目ごとの処理順序は、例えば、コード543aに記述された順序(上から下へ向かう順)である。
次に、利用メニュー画面520で予定閲覧ボタン523が押下操作された際に、その後各装置が実行する処理について説明する。
【0159】
図24は、予定閲覧処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS71]端末装置200は、利用メニュー画面520の予定閲覧ボタン523の押下操作を受け付ける。
【0160】
[ステップS72]端末装置200は、予定閲覧画面550のリクエストを送信する。
[ステップS73]データ提供サーバ100は、端末装置200からリクエストを受信する。データ提供サーバ100は、リクエストに応じて、予定閲覧画面550のHTML文書550aやその他の必要なファイル群を含むレスポンスを端末装置200に送信する。
【0161】
[ステップS74]端末装置200は、データ提供サーバ100からレスポンスを受信する。端末装置200は、レスポンスに含まれるHTML文書550aを解析し、HTML文書550aに含まれる鍵取得用のスクリプト(コード552aに対応する)の有無を判定する。スクリプトがある場合、処理をステップS75に進める。スクリプトがない場合、処理をステップS78に進める。
【0162】
[ステップS75]端末装置200は、HTML文書550aに含まれるスクリプトを実行する。これにより、端末装置200上に鍵取得部220の機能が実現される。
[ステップS76]端末装置200は、鍵管理サーバ300から鍵を取得する。
【0163】
[ステップS77]端末装置200は、HTML文書550aに含まれるデータ項目につき復号処理を行う。
[ステップS78]端末装置200は、HTML文書550aの内容をモニタに表示させる。なお、ステップS77で復号処理が行われている場合、当該部分には復号後の内容が表示される。
【0164】
このようにして、データ提供サーバ100は、端末装置200からの予定閲覧画面550のリクエストに応じて、予定閲覧画面550用のHTML文書550aを生成して端末装置200に送信する。端末装置200は、データ提供サーバ100から受信したHTML文書550aに基づいて、鍵管理サーバ300から鍵を取得し、暗号化部分を復号してモニタに表示させることができる。
【0165】
なお、上記の例では、端末装置200からデータ提供サーバ100にアクセスする場合を示した。これに対し、端末装置200aがデータ提供サーバ100にアクセスする場合も同様である。ただし、端末装置200aの場合は、社外からのアクセスとなる。このため、データ提供サーバ100が端末装置200aに提供するのは暗号化部分を予め所定の文字列に置換したHTML文書560aとなる。端末装置200aは、HTML文書560aに基づいて、モニタに予定一覧を表示する。その処理手順を以下に示す。
【0166】
次に、上記ステップS73で示したデータ提供サーバ100の予定閲覧画面応答処理の手順について説明する。
図25は、予定閲覧画面応答処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【0167】
[ステップS81]受信部120は、予定登録画面540のリクエストを受信する。受信部120は、受信したリクエストをユーザ情報管理部130に出力する。ユーザ情報管理部130は、当該アクセスのユーザIDを取得する。例えば、受信部120は端末装置200との間で定義されるセッション変数からユーザIDを取得できる。
【0168】
[ステップS82]ユーザ情報管理部130は、データ記憶部110に記憶されたデータ管理テーブル113を参照して、ユーザIDに対応するスケジュールデータを取得する。
【0169】
[ステップS83]ユーザ情報管理部130は、当該アクセスが社内アクセスであるか否かを判定する。社内アクセスである場合、処理をステップS84に進める。社外アクセスである場合、処理をステップS86に進める。社内アクセスであるか否かは、例えば、ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理テーブル111を参照して当該ユーザIDに対応する社内判定ドメインを取得し、これが現在のアクセス元のドメイン名と一致するか否かによって判定できる。
【0170】
[ステップS84]ユーザ情報管理部130は、データ記憶部110に記憶されたユーザ管理テーブル111を参照して、ユーザIDに対応する鍵配置場所URIを取得する。そして、ユーザ情報管理部130は取得した鍵配置場所URIとスケジュールデータとをクライアントプログラム構成部140に出力する。
【0171】
[ステップS85]クライアントプログラム構成部140は、データ記憶部110に記憶されたひな型に基づいて、HTML文書550aを生成する。具体的には、クライアントプログラム構成部140は、取得した鍵配置場所URIに応じたコードを生成し、ひな型に挿入する。例えば、HTML文書550aのコード552aに含まれる“http://sales.shanai.example.com/key.jsonp”の箇所が鍵配置場所URIに応じたコードに相当する。また、クライアントプログラム構成部140は、スケジュールデータの内容により、予定閲覧画面550の予定一覧表示部552に対応するコードを生成する。具体的には、HTML文書550aの“table”タブで括られた箇所が予定一覧表示部552に対応するコードに相当する。クライアントプログラム構成部140は、生成したHTML文書550aとその他の必要なファイル群を送信部150に出力する。
【0172】
[ステップS86]クライアントプログラム構成部140は、データ記憶部110に記憶されたひな型と、スケジュールデータの内容と、に基づいて、HTML文書を生成する。このとき、クライアントプログラム構成部140はスケジュールデータに暗号化部分が含まれる場合、当該部分は暗号化された状態でHTML文書に挿入する。そして、クライアントプログラム構成部140は、その暗号化部分を特定する。
【0173】
[ステップS87]クライアントプログラム構成部140は、特定した暗号化部分を所定の文字列に置換してHTML文書560aを生成する。置換用の文字列は、データ記憶部110に予め格納される。HTML文書560aの例では、“社外秘”の文字列が対応する。クライアントプログラム構成部140は、生成したHTML文書550aとその他の必要なファイル群を送信部150に出力する。
【0174】
[ステップS88]送信部150は、クライアントプログラム構成部140から取得したHTML文書550a(あるいはHTML文書560a)などをレスポンスに含めて端末装置200(あるいは端末装置200a)に送信する。
【0175】
このようにして、データ提供サーバ100は、HTML文書550a,560aを生成し、端末装置200,200aに送信する。
端末装置200は、HTML文書550aに記述されたスクリプトに基づいて、鍵取得部220の機能を実現する。ここで、図24のステップS76に示した鍵取得処理は図22で説明した手順と同一である。
【0176】
端末装置200は、鍵を取得するとHTML文書550aに基づいて予定閲覧画面550をモニタに表示させる。このとき、取得した鍵を用いて、HTML文書550aの暗号化部分を復号する。次に、図24のステップS77で示した端末装置200の復号処理の手順について説明する。
【0177】
図26は、復号処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
[ステップS91]Webブラウザ210は、HTML文書550aのコード553aの記述に基づいて復号部232を実現する。復号部232は、HTML文書550aに含まれる各データ項目に関して以下のステップS92〜S95を繰り返し実行する。
【0178】
[ステップS92]復号部232は、タグ“td”の要素(データ)を抽出する。
[ステップS93]復号部232は、抽出したデータが暗号化されているか否かを判定する。暗号化されている場合、処理をステップS94に進める。暗号化されていない場合、処理をステップS96に進める。復号部232は、抽出したデータの先頭に所定の文字列(“{enc:”)が含まれているか否かによって、当該データが暗号化されているか否かを判定することができる。
【0179】
[ステップS94]復号部232は、鍵取得部220が取得した鍵を用いて抽出したデータを復号する。復号部232は、鍵取得部220が出力した所定の変数の値を参照することで鍵を取得できる。復号処理の具体的な内容は、図15のコード542bに基づく処理の通りである。復号部232は、当該データに付加された所定の文字列を除去した後のデータについて復号を行う。
【0180】
[ステップS95]復号部232は、HTML文書550aの当該タグの要素を復号後のデータに置換する。
[ステップS96]復号部232は、タグ“td”の要素全てについて処理済みであるか否かを判定する。全て処理済みである場合、処理を完了する。未処理のものがある場合、処理をステップS91に進める。
【0181】
このようにして、復号部232は復号処理を行う。Webブラウザ210は、復号部232による復号後のHTML文書に基づいて、予定閲覧画面550をモニタに表示させる。
【0182】
図27は、第2の実施の形態のデータ閲覧方法の具体例を示す図である。データ提供サーバ100は、例えばサービス事業者の構内に設置される。データ記憶部110には、少なくとも一部が暗号化されたユーザデータが格納されている。なお、データ記憶部110は、データ提供サーバ100に設けられてもよいし、別個の記憶装置として設けられてもよい。
【0183】
端末装置200および鍵管理サーバ300は、ユーザ会社の社内に設置される。端末装置200は、データ提供サーバ100にアクセスしてユーザ認証された後、予定閲覧画面のリクエストを送信する。すると、端末装置200は、データ提供サーバ100から、データ記憶部110に記憶されたデータおよび当該データの暗号化部分を復号するための鍵のURIを取得できる(ST11)。
【0184】
そして、端末装置200は、取得したURIに基づき鍵管理サーバ300から鍵を取得し、データの暗号化部分を復号する(ST12)。
これにより、端末装置200はデータ提供サーバ100で管理されるデータを適正に復号し、ユーザにその内容を提供できる。その際、鍵はサービス事業者ではなく、自社内で管理できるので、サービス事業者に鍵を不正に取得されるおそれがない。よって、データの安全性を向上できる。また、ユーザ会社とサービス事業者との間のネットワークに暗号処理するための特別の装置を設ける必要がない。すなわち、端末装置200は、データ提供サーバ100が提供するアプリケーションの機能により、当該暗号処理を行えるので、サービスの利用開始に伴うコストを一層削減できる。
【0185】
更に、端末装置200aは、ユーザ会社の社員が、ユーザ会社の社外で利用するコンピュータである。端末装置200aは、データ提供サーバ100にアクセスしてユーザ認証されると、データ記憶部110に記憶されたデータを取得できる。このとき、データ提供サーバ100は、提供するデータのうち暗号化部分を所定の文字列(例えば社外秘)に置換する。これにより、社外からのアクセスに対するデータの安全性を向上できる。また、社外からのアクセスに対して、暗号化部分につき無意味な情報の提示を防止できる。
【0186】
また、端末装置500は、第三者が利用するコンピュータである。端末装置500は、ネットワーク20にアクセスすることはできず、鍵を取得することはできない(ST31)。このため、サービス事業者からデータ記憶部110に記憶されたデータを不正に取得したとしても、暗号化部分を閲覧することはできない。すなわち、第三者に対してもデータの安全性を向上できる。
【0187】
[第3の実施の形態]
以下、第3の実施の形態を図面を参照して詳細に説明する。前述の第2の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【0188】
第2の実施の形態では、データ提供サーバ100に暗号化部分を含むユーザデータを格納することとした。これに対し、第3の実施の形態では、ユーザデータをユーザ会社内のネットワーク20に接続されたデータ管理サーバ300aに格納する。より具体的には、スケジュールに含まれる日時の情報など、サービス事業者に開示してもよい部分に関しては、データ提供サーバ100に格納するが、スケジュールの場所や内容などの部分はデータ管理サーバ300aに格納する。これにより、機密部分の安全性を一層向上できる。以下では、このような情報処理システムに関して具体的に説明する。
【0189】
図28は、第3の実施の形態に係る情報処理システムを示す図である。この情報処理システムは、ユーザ会社に業務サービスを提供するWebシステムである。業務のためのデータは、サービス事業者が管理するデータ提供サーバ100に格納される。この情報処理システムでは、データ提供サーバ100、端末装置200,200aおよび鍵管理サーバ300およびデータ管理サーバ300aがネットワーク10,20および通信装置10aを介して接続されている。
【0190】
ここで、データ提供サーバ100、端末装置200,200a、鍵管理サーバ300、ネットワーク10,20および通信装置10aは、図2において同一の符号を付して説明した第2の実施の形態の各構成と同一である。
【0191】
ただし、データ提供サーバ100が記憶するスケジュールデータは、スケジュールの場所や内容などの機密部分につき暗号化されたURIが設定されたものである。このURIは、データ管理サーバ300aに記憶された当該機密部分の内容の所在を示すものである。データ提供サーバ100は、当該スケジュールデータとともに暗号化されたURIを復号するための鍵を記憶する。
【0192】
データ管理サーバ300aは、ネットワーク20に接続されている。データ管理サーバ300aは、スケジュールに含まれる機密部分(場所や概要など)の情報を記憶・管理する。データ管理サーバ300aは、端末装置200からリクエストを受信すると、それに応じた機密部分の情報を端末装置200に応答する。
【0193】
なお、データ管理サーバ300aも図3で示したデータ提供サーバ100と同様のハードウェア構成により実現することができる。
また、第3の実施の形態のデータ提供サーバ100、端末装置200および鍵管理サーバ300の機能構成は、第2の実施の形態で示した機能構成と同様である。ただし、端末装置200のWebブラウザ210で実現される機能につき以下の点が異なる。
【0194】
図29は、第3の実施の形態の端末装置の機能構成を示す図である。端末装置200は、Webブラウザ210、鍵取得部220および暗号処理部230を有する。これらの機能は、所定のプログラムを端末装置200のCPUが実行することで実現される。
【0195】
Webブラウザ210は、データ提供サーバ100に予定閲覧画面のリクエストを送信する。すると、Webブラウザ210は、データ提供サーバ100からデータ内容の所在を示す暗号化されたURIと、それを復号するための鍵のURIと、を記述したHTML文書を含むレスポンスを受信する。
【0196】
鍵取得部220は、鍵のURIに基づいて、鍵管理サーバ300より鍵を取得する。復号部232は、当該鍵によりデータ内容の所在を示す暗号化されたURIを復号する。
Webブラウザ210は、復号部232が復号したURIに基づいて、データ管理サーバ300aからスケジュールの内容を取得し、取得した内容を端末装置200に接続されたモニタに表示させる。
【0197】
図30は、第3の実施の形態のスケジュールデータの内容を例示する図である。(A)に示すスケジュールデータ400aは、暗号化前を示している。(B)に示すスケジュールデータ410aは、暗号化後を示している。
【0198】
スケジュールデータ400aは、スケジュールの内容を示す複数のデータ項目を有している。データ項目には、場所(LOCATION)401aおよび概要(SUMMARY)402aが含まれる。ここで、場所401aおよび概要402aの各データ項目は、図10で示したスケジュールデータ400のデータ項目である場所401および概要402に対応する。
【0199】
場所401aには、例えば“<http://shanai.example.com/schedule/tarou1.jsonp>”という情報が設定されている。また、概要402aには、例えば“<http://shanai.example.com/schedule/tarou2.jsonp>”という情報が設定されている。
【0200】
Webブラウザ210は、図13に示した予定登録画面540の登録ボタン547が押下されると、対応するデータ項目の内容をデータ管理サーバ300aに格納する。そして、該当するデータ項目を、その格納場所を示すURIに置換する。これは、場所401aおよび概要402aの部分が対応する。これにより、スケジュールデータ400aが生成される。
【0201】
更に、暗号化部231は、鍵管理サーバ300から取得した鍵によって当該URIを暗号化し、スケジュールデータ410aを生成する。
スケジュールデータ410aは、スケジュールデータ400と同一のデータ項目を有している。データ項目には、場所411aおよび概要412aが含まれる。場所411aは、場所401aの暗号化後に対応する。概要412aは、概要402aの暗号化後に対応する。
【0202】
例えば、当該ユーザの暗号化対象として、場所と概要とが選択されている場合、スケジュールデータ410aのように場所411aおよび概要412aに暗号化されたURIが設定される。そして、端末装置200はスケジュールデータ410aをデータ提供サーバ100に送信する。データ提供サーバ100はデータ記憶部110に記憶されたデータ管理テーブル113にスケジュールデータ410aの内容を登録する。
【0203】
図31は、第3の実施の形態のデータ閲覧方法の具体例を示す図である。データ提供サーバ100は、例えばサービス事業者の構内に設置される。データ記憶部110には、少なくとも一部が暗号化されたユーザデータが格納されている。なお、データ記憶部110は、データ提供サーバ100に設けられてもよいし、別個の記憶装置として設けられてもよい。
【0204】
端末装置200、鍵管理サーバ300およびデータ管理サーバ300aは、ユーザ会社の社内に設置される。端末装置200は、データ提供サーバ100にアクセスしてユーザ認証後、予定閲覧画面のリクエストを送信する。すると、端末装置200は、データ提供サーバ100から、データ記憶部110に記憶されたデータおよび当該データの暗号化されたURI部分を復号するための鍵のURIを含むレスポンスを受信する(ST41)。暗号化されたURI部分とは、図30で示した場所411aおよび概要412a(ただし、データ項目を示す文字列“LOCATION”などを除く)に対応する。
【0205】
そして、端末装置200は、取得したURIに基づき鍵管理サーバ300から鍵を取得する(ST42)。端末装置200は、取得した鍵により、データの暗号化されたURI部分を復号する(ST43)。復号後のURI部分は、図30で示した場所401aおよび概要402a(ただし、データ項目を示す文字列を除く)に対応する。更に、端末装置200は、復号したURIに基づいて、URIに対応する項目内容をデータ管理サーバ300aから取得する(ST44)。なお、データ提供サーバ100は、端末装置200にST44の処理を実行させるためのスクリプトを含むHTML文書を生成し、ST41のレスポンスに含める。端末装置200は、当該HTML文書のスクリプトを実行することで、ST44の処理を実現できる。
【0206】
このように、第3の実施の形態の情報処理システムによっても、第2の実施の形態と同様の効果を奏することができる。特に、機密内容を社内のデータ管理サーバ300aに格納することで、当該内容の安全性を一層向上できる。
【0207】
また、端末装置200aが社外からアクセスした場合には、データ提供サーバ100は、暗号化されたURI部分を所定の文字列(例えば、社外秘)に置換して、端末装置200aにレスポンスを送信する。これにより、第2の実施の形態と同様、社外からのアクセスに対するデータの安全性を向上できる。また、社外からのアクセスに対して、暗号化部分につき無意味な情報の提示を防止できる。
【0208】
また、データ提供サーバ100は、HTML文書に含まれるスクリプトとして、端末装置200に鍵を取得させるプログラムを送信するものとしたが、端末装置200で実行可能なHTML文書以外のデータ形式によって、当該プログラムを送信してもよい。
【0209】
更に、暗号化時に使用する鍵と、復号時に使用する鍵とを、同一にしてもよいし別個の鍵にしてもよい。その場合、暗号化時用の鍵のURIと、復号時用の鍵のURIと、がユーザ管理テーブル111に登録される。そして、データ提供サーバ100は、暗号化時および復号時に応じた鍵をユーザ管理テーブル111から取得して、端末装置200に送信する。
【0210】
なお、上記情報処理システムでは、ユーザ会社の社員のスケジュールを管理する業務サービスを例示したが、これに限らない。例えば、掲示板、電子メールなどのその他のグループウェア機能、勤怠管理や給与管理などの機能を提供する業務サービスに適用してもよい。これにより、これらの業務サービスが提供する文書の機密部分の安全性を容易に向上することができる。
【0211】
以上、本発明のデータ提供方法、データ提供装置およびデータ提供プログラムを図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0212】
1 データ提供装置
1a,1b 記憶部
1c 受信部
1d 処理部
1e 送信部
2 端末装置
3 情報処理装置
【特許請求の範囲】
【請求項1】
データ提供装置が、
端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得し、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する、
ことを特徴とするデータ提供方法。
【請求項2】
前記データ提供装置が、
前記端末装置から前記識別情報を含むデータ登録要求を受信すると、前記第2の記憶部を参照して、前記データ登録要求に含まれる前記識別情報に対応する前記所在情報を取得し、
取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させる鍵取得プログラムを前記端末装置に送信し、
少なくとも一部が前記鍵により暗号化された登録データを前記端末装置から受信すると、前記登録データを前記データ登録要求に含まれる識別情報に対応付けて前記第1の記憶部に格納する、
ことを特徴とする請求項1記載のデータ提供方法。
【請求項3】
前記管理情報には、識別情報に対応付けて前記端末装置が送信するデータのうち何れのデータ項目を暗号化対象とするかを示す情報が設定されており、
前記データ提供装置が、
前記データ登録要求を受信した際に、前記第2の記憶部に記憶された前記管理情報を参照して、前記端末装置が暗号化すべきデータ項目を前記鍵により暗号化させる暗号化プログラムを生成し、前記鍵取得プログラムとともに前記暗号化プログラムを前記端末装置に送信する、
ことを特徴とする請求項2記載のデータ提供方法。
【請求項4】
端末装置から所定の識別情報を含むデータ取得要求を受信する受信部と、
登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得する処理部と、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する送信部と、
を有することを特徴とするデータ提供装置。
【請求項5】
端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得し、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する、
処理をコンピュータに実行させることを特徴とするデータ提供プログラム。
【請求項1】
データ提供装置が、
端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得し、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する、
ことを特徴とするデータ提供方法。
【請求項2】
前記データ提供装置が、
前記端末装置から前記識別情報を含むデータ登録要求を受信すると、前記第2の記憶部を参照して、前記データ登録要求に含まれる前記識別情報に対応する前記所在情報を取得し、
取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させる鍵取得プログラムを前記端末装置に送信し、
少なくとも一部が前記鍵により暗号化された登録データを前記端末装置から受信すると、前記登録データを前記データ登録要求に含まれる識別情報に対応付けて前記第1の記憶部に格納する、
ことを特徴とする請求項1記載のデータ提供方法。
【請求項3】
前記管理情報には、識別情報に対応付けて前記端末装置が送信するデータのうち何れのデータ項目を暗号化対象とするかを示す情報が設定されており、
前記データ提供装置が、
前記データ登録要求を受信した際に、前記第2の記憶部に記憶された前記管理情報を参照して、前記端末装置が暗号化すべきデータ項目を前記鍵により暗号化させる暗号化プログラムを生成し、前記鍵取得プログラムとともに前記暗号化プログラムを前記端末装置に送信する、
ことを特徴とする請求項2記載のデータ提供方法。
【請求項4】
端末装置から所定の識別情報を含むデータ取得要求を受信する受信部と、
登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得する処理部と、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する送信部と、
を有することを特徴とするデータ提供装置。
【請求項5】
端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データを識別情報に対応付けて記憶する第1の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理用の鍵の所在を示す所在情報が識別情報に対応付けて定義された管理情報を記憶する第2の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得し、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する、
処理をコンピュータに実行させることを特徴とするデータ提供プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【公開番号】特開2012−10071(P2012−10071A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−143672(P2010−143672)
【出願日】平成22年6月24日(2010.6.24)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願日】平成22年6月24日(2010.6.24)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]