説明

情報処理装置、データ複製方法、プログラムおよび記録媒体

【課題】 共有記憶領域を利用したデータ複製におけるセキュリティ保護を向上すること。
【解決手段】本発明の情報処理装置100は、その上で1以上のアプリケーション150a〜150cが動作し、コピー元アプリケーション150aが汎用共有メモリへのコピーを指令したコピーデータを取得し、該コピーデータに対し、入力装置(112,114)を介した操作パターンから解釈されるライフタイムを設定して、記憶領域(142,144)に保存するコピー操作監視部134と、上記記憶領域に保存される1以上のコピーデータの中から選択されたペースト候補を表示装置に表示する表示部138と、入力装置を介した確定操作に対応して、記憶領域から読み込んだペースト候補をペースト先アプリケーション150cへ渡すペースト操作監視部136と、ライフタイムが切れて残存が許容されなくなったデータを記憶領域から消去する消去部140とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共有記憶領域を利用したデータ複製に関し、より詳細には、共有記憶領域を利用したデータ複製におけるセキュリティ保護を向上するための情報処理装置、データ複製方法、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
一般的なオペレーティング・システムにおけるデスクトップ環境は、一時的にデータを格納するためのクリップボードを備える。クリップボードは、簡便な操作で、種々のアプリケーションからデータを自由に書き込むことができ、またフォーマットさえ解釈できれば、自由にデータを読み込むことができる、便利な汎用共有メモリである。
【0003】
また、一般的なクリップボードは、同時に保管可能なデータ数が1つであるが、Microsoft Office(登録商標)やEmacsなどは、アプリケーション独自の拡張機能として、過去のデータを別領域に保管する拡張機能を提供する。これらの機能により、アプリケーション内での複数のデータの使い回しが容易となるが、アプリケーション独自の拡張機能であり、データが揮発性記憶領域に保管されることから、アプリケーションが起動している必要があり、アプリケーション終了と同時にデータが消失してしまう。
【0004】
また、クリップボードの機能を拡張するという観点から、特開2010−170165号公報(特許文献1)は、通常のデータ保存とペースト用にコピー元のデータを保存できるセーブ手段と、通常のデータ読み込みとコピー&ペースト用の特定ファイルからペースト用にコピー元をオブジェクト単位で復元できるロード手段と、コピー元となるデータを特定し、上記セーブ手段を利用してペースト用のデータファイルを作成させるコピー手段と、上記ロード手段を利用して、ペーストに必要なコピー元の複製を作成させるペースト手段とを備える、データ複製方式を開示する。上記特許文献1の技術は、複数のユーザでデータを共有したり、コンピュータの再起動後に再利用したりすることを可能とする。
【0005】
その他、同様にクリップボードの機能を拡張するという観点から、特開2005−250896号公報(特許文献2)は、ペースト頻度の高いデータをクリップボードに可能な限り残すようにしたコピー(またはカット)&ペースト機能を備えるデータ入力支援装置を開示する。
【0006】
上述のように、クリップボードは便利な機能であるが、セキュリティの観点から見ると、利便性の高さゆえに管理が困難となり、重大なセキュリティ事故を招く可能性がある。クリップボードは、カーネル・オブジェクトとは異なり、アクセス制御リスト(ACL)などのアクセス制御機構が設けられていないユーザ・オブジェクトである。このため、同一のデスクトップ環境で動作する不審なプログラムへの意図せぬ情報漏洩が懸念される。必要箇所にペーストし終えたクリップボード上のデータは、本来的には不要なデータであるが、重要なデータが上書きされずそのまま放置されることがしばしばある。このとき、クリップボード上に残存するデータが、ウィルスに感染したピア・ツー・ピア・ファイル交換アプリケーションなどを介して外部に漏洩してしまう可能性がある。官公庁、大学、企業などの組織においては、このような情報漏洩は許されない。
【0007】
したがって、情報漏洩を防止すべくクリップボード機能に何らかのセキュリティ制限を設ける必要性が高い。共有メモリを介した情報漏洩に対する対策としては、例えば、特開2010−176431号公報(特許文献3)は、アクセス権を有するユーザによる情報の再利用に起因した情報漏洩を防止することを目的として、文書格納領域に格納された保護文書の内容を再利用するためにOSやアプリケーションが行うコピーや貼り付けなどの特定の処理を監視し、上記特定の処理が補足されると、第1のアクセス権が設定された第1の文書の内容を再利用した第2の文書に対し、第1のアクセス権を承継する第2のアクセス権を設定するための各種処理を実行することを特徴とする、アクセス制御プログラムを開示する。
【0008】
上記特許文献3の従来技術によれば、コピー元文書のアクセス制御ポリシーをコピー先文書へ継承することで、共有メモリを介した情報フローを制御することができる。しかしながら、特許文献1の技術は、文書に対するアクセス制御ポリシーを設定する技術であり、上記共有メモリ上には、依然として無防備な状態でデータが残存する可能性がある。
【0009】
上述した背景から、クリップボードなどの共有記憶領域におけるデータのライフタイムを有効に制限し、必要箇所にペーストし終えた不要なデータを効率的に消去することができる技術の提供が望まれる。
【0010】
一方、クリップボードは、あらゆるプロセスからアクセスされる汎用共有メモリであるため、一律にクリップボードの機能を制限することは、その利便性を損ねてしまう結果となる。GUIベースのコンピュータにおいては、セキュリティ強化を理由として、不必要にユーザの利便性を害するのは望ましくない。また、特定のアプリケーションにおける保護のみでは効果は薄いため、アプリケーションに依存しない高い汎用性のある機能として実現することが望ましい。さらに、情報に求められる機密度は多様なレベルがあり、多様なレベルで共有記憶領域上のデータを保護することが好ましい。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2010−170165号公報
【特許文献2】特開2005−250896号公報
【特許文献3】特開2010−176431号公報
【非特許文献】
【0012】
【非特許文献1】古市 実裕、工藤 道治、“GUIベースのコンピュータに適したアクセス制御ポリシー管理方法の提案”、情報処理学会論文誌、Vol.49、No.9、pp.1−11(2008年9月).
【発明の概要】
【発明が解決しようとする課題】
【0013】
本発明は、上記従来技術における問題点に鑑みてなされたものであり、本発明は、ユーザの操作性や、クリップボードに代表される共有記憶領域が有する利便性をあまり損なわせずに、共有記憶領域におけるデータのライフタイムを有効に制限し、共有記憶領域の利便性およびセキュリティ保護を両立させることが可能な情報処理装置、データ複製方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明は、上記従来技術の不都合に鑑みてなされたものであり、本発明は、以下の特徴を有する情報処理装置を提供する。本発明の情報処理装置は、その上で1以上のアプリケーションが動作しており、コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを取得し、該コピーデータに対し、入力装置を介した操作パターンから解釈されるライフタイムを設定して、不揮発性または揮発性の記憶領域に保存するコピー操作監視部を備える。
【0015】
さらに本情報処理装置は、上記記憶領域に保存される1以上のコピーデータの中から選択されたペースト候補を表示装置に表示する表示部と、入力装置を介した確定操作に対応して、記憶領域から読み込んだペースト候補をペースト先アプリケーションへ渡すペースト操作監視部と、ライフタイムが切れて残存が許容されなくなったデータを記憶領域から消去する消去部とを含む。なお、上記コピーは、コピー元アプリケーションからコピー内容の消去を伴うカットを一態様として含むことができる。さらに本発明では、入力装置を介した操作パターンを解釈して、揮発性記憶領域および不揮発性記憶領域のいずれかを指定された保存先として特定することができる。
【発明の効果】
【0016】
上記構成によれば、共有の記憶領域に保存されるコピーデータに対して、入力装置を介した操作パターンによりライフタイムを自在に設定することが可能となる。ライフタイムが切れたコピーデータは、上記データ消去部により順次記憶領域から消去される。これにより、記憶領域中にコピーデータが不用意に残存し、情報漏洩を引き起こしてしまう可能性を好適に低減することができる。ひいては、ユーザの操作性や、共有記憶領域が有する利便性をあまり損なわせず、共有記憶領域におけるデータのライフタイムを有効に制限し、セキュリティを向上させることができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態による情報処理装置の機能ブロック図。
【図2】本発明の実施形態によるコンピュータ装置におけるコピー操作監視部が実行する、拡張クリップボードへのコピー処理を示すフローチャート。
【図3】操作パターンを解釈する際に参照することができる解釈ルールのデータ構造を例示する図。
【図4】操作パターンを解釈する際に参照することができる解釈ルールのデータ構造を例示する図。
【図5】本実施形態の拡張クリップボードで管理されるデータ残存制御情報のデータ構造を例示する図。
【図6】本実施形態のコンピュータ装置のディスプレイ画面上に表示されるコピー元アプリケーション・ウィンドウを例示する図。
【図7】本発明の実施形態によるコンピュータ装置におけるペースト操作監視部が実行する、拡張クリップボードからのペースト処理を示すフローチャート。
【図8】本実施形態のコンピュータ装置のディスプレイ画面上に表示されるペースト先アプリケーション・ウィンドウを例示する図。
【図9】本実施形態のコンピュータ装置のディスプレイ画面上に表示されるペースト先アプリケーション・ウィンドウの他の例を示す図。
【発明を実施するための形態】
【0018】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
【0019】
以下、図1〜図9を参照しながら、本発明の実施形態による情報処理装置について説明する。図1は、本発明の実施形態による情報処理装置の機能ブロック図である。図1に示す情報処理装置は、特に限定されるものではないが、概ねデスクトップ型、ノートブック型、タブレット型またはネットブック型のパーソナル・コンピュータ、ワークステーション、サーバ、携帯端末、PDA(Personal Digital Assistant)などのコンピュータ装置100として構成される。
【0020】
コンピュータ装置100は、図示しないCPU(Central Processing Unit)と、RAM(Random Access Memory)と、HDD(Hard Disk Drive)やSSD(Solid State Drive)と、NIC(Network Interface Card)とを備える。本実施形態のコンピュータ装置100は、さらに、ユーザ・インタフェースを提供するための物理デバイス110として、キーボード112およびマウス114、あるいは図示しないタッチパネルなどの入力装置と、図示しないディスプレイなどの表示装置とを備える。コンピュータ装置100は、Windows(登録商標)、Linux(登録商標)、UNIX(登録商標)、Mac(登録商標)OS XなどのGUI(Graphical User Interface)ベースのオペレーティング・システム(以下、OSと参照する。)の制御下で動作する。
【0021】
コンピュータ装置100は、OS上で動作する1以上のアプリケーション150a〜150cを備える。各アプリケーション150a〜150cとしては、特に限定されるものではないが、例えば、ウェブブラウザ、メーラ、文書作成アプリケーション、グループウェア、表計算アプリケーション、データベース・アプリケーション、プレゼンテーション・アプリケーション、統合開発環境など、如何なるアプリケーションを挙げることができる。
【0022】
コンピュータ装置100は、OSが提供する機能の一部として、いわゆる汎用共有メモリである標準クリップボード120を備えることができる。標準クリップボード120は、メニュー選択やショートカット・キーを使用した簡便な操作で、種々のアプリケーション150からデータを自由に書き込むことができ、さらに、同様の簡便な操作で種々のアプリケーションへデータを読み込ませることができる。
【0023】
コンピュータ装置100は、さらに、OSが提供する機能の一部として、キーボード112およびマウス114などの物理デバイス110の操作に応答するメッセージがポストされるメッセージ・キュー122を備える。キーボード112やマウス114に対し操作が行われると、OSは、当該操作に関するメッセージをメッセージ・キュー122にポストする。一般的には、その後、メッセージは、スレッドのメッセージ・ループでメッセージ・キュー122から取り出され、再度システム経由で対応するアプリケーション150へと渡される。
【0024】
上述した標準クリップボード120は、ユーザ・オブジェクトであり、あらゆるアプリケーションからアクセス可能とされ、アクセス制御機構が設けられていない。このため、標準クリップボード120を経由した情報漏洩が懸念される。そこで、本発明の実施形態によるコンピュータ装置100は、上記標準クリップボード120に加えて、または上記標準クリップボード120に代えて、拡張クリップボード130を備える。
【0025】
拡張クリップボード130は、アプリケーション・プログラミング・インタフェース(以下、APIという。)およびメッセージ・キュー122を監視し、物理デバイス110からプロセスへのメッセージ伝達の監視結果に応じて、プロセスから標準クリップボード120などのリソースへのアクセスを制御する。拡張クリップボード130は、コンピュータ装置100上で動作する各アプリケーション150に注入され、アプリケーション150とOSとの間で動作して、拡張された共有の記憶領域を提供する、ライブラリとして構成することができる。このようなライブラリは、ダイナミック・リンク・ライブラリ(DLL)、共有ライブラリ、シェアード・ライブラリとして参照される。
【0026】
以下、拡張クリップボード130を用いたコピー操作について説明する。拡張クリップボード130は、より詳細には、メッセージ監視部132と、コピー操作監視部134とを備える。メッセージ監視部132は、メッセージ・キュー122を監視しており、メッセージ・キュー122にポストされた、アプリケーション150a〜150cのウィンドウへの物理デバイス110の操作に関するメッセージを取得する。メッセージ監視部132は、取得したメッセージがコピー操作に関連するメッセージであれば、コピー操作監視部134へメッセージを渡す。
【0027】
コピー操作監視部134は、メッセージ監視部132から渡されるメッセージを解釈して処理するとともに、コピーに関するAPI(以下、コピーAPIという。)を監視する。コピー操作監視部134は、コピー元となるアプリケーション150aが標準クリップボード120へコピーを指令するAPIコールを行うと、そのコピーデータを取得し、データの残存が許される範囲を規定するライフタイムを設定して、所定の保存先へ保存する。
【0028】
上記コピーデータの保存先としては、RAMなどの揮発性記憶装置が提供する揮発性記憶領域142と、HDDやSSDなどの不揮発性記憶装置が提供する不揮発性記憶領域144とが設けられる。本実施形態では、不揮発性記憶領域144を設け、ここをコピーデータの保存先とすることにより、当該コンピュータ装置100が一度シャットダウンした後も、ユーザは、コピーデータを利用することが可能となる。また、揮発性記憶領域142および不揮発性記憶領域144は、それぞれ、1または複数のコピーデータを保管することができ、過去にコピーされたデータをも長期にわたって再利用可能な構成とされている。
【0029】
一方、揮発性記憶領域142および不揮発性記憶領域144に保管されるコピーデータに対しては、ライフタイムを設定することが可能とされている。ライフタイム設定は、特に限定されるものではないが、データの残存が許される期間を規定する有効期限や、データに対して許されるペースト回数の限度を規定する限度回数(または度数)を挙げることができる。
【0030】
上記コピーデータの保存先およびライフタイム設定は、例えば、詳細は後述するが、図5に示すようなデータ構造を有するデータ残存制御情報146を用いて管理される。なお、揮発性記憶領域142または不揮発性記憶領域144が保存先となる場合には、セキュリティを向上させる観点から、コピー元アプリケーション150aからの上記APIコールはブロックされ、標準クリップボード120へはコピーデータは送られない。
【0031】
また本発明の実施形態では、キーボード112やマウス114の操作パターンに意味を持たせる。コピー操作監視部134は、コピー操作に関するメッセージを受け取り、操作パターンを解釈することにより、コピーデータの保存先およびコピーデータに設定するライフタイム設定を決定する。操作パターンは、キーボード操作におけるキー・コンビネーション、キー・コンビネーションのシーケンス、その他マウス・ジェスチャなど、キーボード112およびマウス114またはこれらの一方による操作状態ないし操作状態の時系列として説明される。
【0032】
Windows(登録商標)環境における一例を説明すると、初回の「Ctrl+C」のキー・コンビネーションにより揮発性記憶領域142へ限度回数1で保存され、以降の「Ctrl+C」のキー・コンビネーションにより限度回数が増分される構成を取ることができる。また、「Ctrl+C」のキー・コンビネーションの短押しにより、揮発性記憶領域142が選択され、「Ctrl+C」のキー・コンビネーションの長押しにより、不揮発性記憶領域144が選択されるよう構成することができる。
【0033】
なお、ここまでコピー動作について説明してきたが、カット動作は、アプリケーション側からみればカットされた内容が消去される点で異なるものの、拡張クリップボード130へデータを書き込む点で拡張クリップボード130側から見ればコピー動作と同一である。したがって、本実施形態における説明では、カット動作は、コピー動作の一態様として取り扱う。
【0034】
また、図1では、公知情報などの機密にする必要がないデータ用に、上記揮発性記憶領域142および不揮発性記憶領域144に加えて、標準クリップボード120へのコピーする経路が示されている。しかしながら、機密情報を扱う業務用コンピュータ等においてセキュリティを向上する観点から、標準クリップボード120への経路を遮断する設定することができる。
【0035】
以下、拡張クリップボード130を用いたペースト操作について説明する。拡張クリップボード130は、さらに、ペースト操作監視部136と、オーバーレイ表示部138とを備える。メッセージ監視部132は、取得したメッセージがペースト操作に関連するメッセージであれば、ペースト操作監視部136へメッセージを渡す。ペースト操作監視部136は、メッセージ監視部132から渡されるメッセージを解釈して処理するとともに、ペーストに関するAPI(以下、ペーストAPIという。)を監視する。
【0036】
ペースト操作監視部136は、より具体的には、ペースト操作に関するメッセージを受け取り、上記コピー操作と同様に、操作パターンを解釈することにより、ペースト対象とするコピーデータを選択し、またペースト対象を確定する。オーバーレイ表示部138は、記憶領域に保存される1以上のコピーデータのうち、現在選択中のペースト候補を表示画面上に描画する。描画方法は、特に限定されるものではないが、本実施形態では、ペースト先アプリケーション150cのウィンドウの前面に透明なウィンドウを作成して、該透明なウィンドウにペースト候補を描画して、オーバーレイ表示させる。
【0037】
Windows(登録商標)環境における一例を説明すると、「Ctrl」キーを維持したまま「Ctrl+V」のキー・コンビネーションで、履歴上新しい順(または古い順)など所定の順序でペースト候補を選択し、所望のコピーデータが選択されて表示されている状態で、上記キーを離すことにより、ペースト対象を確定される構成を取ることができる。
【0038】
ペースト操作監視部136は、ペースト先となるアプリケーション150cが標準クリップボード120からのペーストを指令するAPIコールを行うと、それに応答して、確定されたペースト対象のコピーデータをペースト先アプリケーション150cへ渡す。ペースト操作監視部136は、さらに、ペースト対象として確定したコピーデータに対し限度回数など、ペースト動作に応じて書き換えを必要とするライフタイム設定がなされている場合には、さらに限度回数を減じる等データ残存制御情報146を更新する。
【0039】
ペースト先プリケーション150cは、渡されたコピーデータを取得して、適切なフォーマットで、コピーデータの貼り付け処理を行う。なお、図1では、ペースト先アプリケーション150cは、コピー元アプリケーション150aと異なっているが、コピー元とペースト先とが同一アプリケーションであってもよい。
【0040】
以下、拡張クリップボード130を用いたコピー(カット)・アンド・ペースト操作において、ライフタイムが切れたコピーデータの取り扱いについて説明する。拡張クリップボード130は、さらに、データ消去部140を備える。データ消去部140は、定期的に、不定期に、またはペースト操作監視部136からのコピーデータのライフタイムが切れた旨の明示的な通知に応答して、データ残存制御情報146を参照し、ライフタイムが切れて残存が許容されなくなったデータが存在するか否かを確認する。
【0041】
データ消去部140は、ライフタイムが切れて残存が許容されなくなったデータを発見すると、該当するコピーデータを揮発性記憶領域142または不揮発性記憶領域144から消去し、データ残存制御情報146からも登録を抹消する。なお、ライフタイム設定が、限度回数など、ペースト動作に応じて書き換えを必要とするライフタイム設定のみが設けられる実施形態では、データ消去部140の機能をペースト操作監視部136の機能として包含させてもよい。
【0042】
以下、図2を参照しながら、コピー操作時の処理の流れについてより詳細に説明する。図2は、本発明の実施形態によるコンピュータ装置100におけるコピー操作監視部134が実行する、拡張クリップボードへのコピー処理を示すフローチャートである。図2に示す処理は、ステップS100から開始され、ステップS101で、コピー操作監視部134は、メッセージ監視部132からコピー操作に関連するメッセージを取得する。ステップS102では、コピー操作監視部134は、操作パターンを解釈する。操作パターンの解釈は、特に限定されるものではないが、例えば、図3(A)〜(C)および図4(A),(B)に示すいずれかの解釈ルール200を適用して行うことができる。
【0043】
図3および図4は、操作パターンを解釈する際に参照することができる解釈ルールのデータ構造を例示する。図3および図4に示す例では、Windows(登録商標)で一般的な「Ctrl+C」のショートカット・キー(以下、コピー・キー操作という。)を対象とし、このショートカット・キーの連続して押下した回数、短押しまたは長押しの別によって操作パターンが規定されている。例えば、図3(A)に示す例の解釈ルール200Aは、初回のコピー・キー操作で、ペーストの限度回数を1に設定して揮発性記憶領域142へ保存するアクション、2回目以降のコピー・キー操作で、限度回数を1づつ増分するアクション、10回目のコピー操作で、揮発性記憶領域142から不揮発性記憶領域144へ保存先を変更するアクションが規定されている。
【0044】
また、図3(B)に示す解釈ルール200Bは、初回のコピー・キー操作において、短押しで揮発性記憶領域142を選択し、長押しで不揮発性記憶領域144を選択し、ペーストの限度回数を1に設定して保存する旨が規定されている。そして、2回目以降は、短押しのコピー・キー操作で、限度回数を1づつ増分し、長押しのコピー・キー操作で、不揮発性記憶領域144へ保存先を変更する旨が規定されている。
【0045】
ライフタイムの変更は、図3(A)および(B)に示すように、コピー・キー操作を行うほど、限度回数が増加したり、揮発性記憶領域142からより長期の保存が可能な不揮発性記憶領域144へ変更されたりする、すなわち利便性が高くなる一方でセキュリティが低くなるようにルールを作成することができる。しかしながら、特に限定されるものではなく、図3(C)に示すように、当初は多い限度回数で不揮発性記憶領域144へ保存され、コピー・キー操作を行うほど、限度回数が減少し、長期の保存が可能な不揮発性記憶領域144から短期用の揮発性記憶領域142へ変更される、すなわち利便性が低くなる一方でセキュリティが高くなるようにルールを作成してもよい。
【0046】
さらに、図4(A)に示すように、コピー元アプリケーション150aでフォーカスしているドキュメントの属性に応じて、通常レベルのセキュリティが求められる場合と、機密レベルが求められる場合とで、コピー・キー操作毎の限度回数の増分を変化させてもよい。なお、アプリケーションで開かれているドキュメントのセキュリティ・レベルに応じた動的なアクセス制御については、より詳細には、非特許文献1(古市 実裕、工藤 道治、“GUIベースのコンピュータに適したアクセス制御ポリシー管理方法の提案”、情報処理学会論文誌、Vol.49、No.9、pp.1−11(2008年9月))を参照することができる。
【0047】
さらに他の実施形態では、既知のデータ漏洩防止技術(DLP:Data Loss Protection)で採用されているようなコンテンツ分析を実行するコンテンツ分析エンジンと連携し、コピーデータの内容から判定されるセキュリティ・レベルに応じて、自動的にライフタイムを決定する構成をとることができる。例えば、機密度の高い内容のコピーデータに対してはより短い期間または少ない限度回数を決定することができる。この場合、自動決定されたライフタイム設定に対し、一定の制限(例えば上限値など)の範囲で、ユーザは、操作パターンによるライフタイムの増減を行うことができる。
【0048】
上記コンテンツ分析エンジンは、コンピュータ装置100の内部または外部のモジュールとして実装することができ、コンテンツの内容を分析し、内容中に機密情報が含まれないかを検出するエンジンである。例えば、顧客情報等の機密情報を格納したデータベースからインデックスを生成し、当該インデックスを使用してデータベース上に登録されている機密情報を検出することができる。あるいは、機密文書ファイルを登録してインデックスを作成し、当該インデックスを使用して、登録した文書そのもののコピーまたは、文書の一部分を引用して作成した文書を検出することができる。さらに、文書内に含まれる特定のキーワードやフレーズ、またはファイルの属性によって、機密情報を特定することもできる。
【0049】
その他、図4(B)に示すように、コピー・キー操作毎に保存先を代えるようにルールを作成してもよい。図4(B)に示す例では、まずデータが次の上書きまで残存するクリップボードへ、続いてコンピュータ装置100の電源を落とすまでデータが残存する揮発性記憶領域142へ、最後にコンピュータ装置100の電源を落としてもデータが残存する不揮発性記憶領域144へと保存先が、コピー・キー操作毎に変更される。
【0050】
再び図2を参照すると、ステップS103では、ステップS102で行った操作パターンの解釈に従って処理を分岐させる。ステップS103で、コピー処理が求められていると解釈される場合(コピー)には、ステップS104へ処理を進められる。ステップS103で、保存先の変更が求められていると解釈される場合(保存先変更)には、ステップS107へ処理を進められる。ステップS103で、ライフタイム設定の変更が求められていると解釈される場合(ライフタイム設定変更)には、ステップS109へ処理を進められる。
【0051】
コピー処理が求められる場合、コピー元アプリケーション150aがメッセージを受け取り、標準クリップボードへのコピーを指令するコピーAPIコールを発行する。この場合、ステップS104で、コピー操作監視部134は、コピー元アプリケーション150aからのコピーAPIコールを検出し、該アプリケーション150aからコピーデータを取得する。
【0052】
ステップS105では、コピー操作監視部134は、取得したコピーデータを、上記ステップS102で解釈から特定される保存先(揮発性記憶領域142、不揮発性記憶領域144および標準クリップボード120のいずれか)へ保存する。ステップS106では、コピー操作監視部134は、保存したコピーデータに対応するレコードをデータ残存制御情報146に追加登録し、保存したコピーデータに対し、操作パターンの解釈により特定されるライフタイム設定の初期値を設定し、ステップS110へ進める。例えば、図3(A)に示す解釈ルールが適用される場合には、初回のコピー・キー操作では、コピー処理が求められていると解釈され、ステップS105で揮発性記憶領域142へ保存され、ステップS106で、限度回数1が設定される。
【0053】
図5は、本実施形態の拡張クリップボード130で管理されるデータ残存制御情報146のデータ構造を例示する。図5に示すようにデータ残存制御情報146は、コピーデータを識別する識別番号フィールド146aと、保存先の種別を管理する保存先種別フィールド146bと、有効期限を管理する有効期限フィールド146cと、ペーストの限度回数を管理する限度回数フィールド146dとからなる。
【0054】
図5に示す例では、コピーデータに対して設定されるライフタイム設定として、有効期限および限度回数の両方のフィールドが設けられている。有効期限および限度回数の両方が設定された場合は、例えば、有効期限が到来するか、または限度回数のペーストを行った時点でライフタイムが切れる、という取り扱いとすることができる。また、図5にデータ残存制御情報146は、コピーデータを最新のものを先頭(または末尾)とし、新しい順(または古い順)に並べられ、履歴データとしても利用される。
【0055】
なお、図1および図5に示すように、説明する実施形態では、コピーデータに設定されるライフタイムは、コピーデータとは別のテーブルで管理されるが、特に限定されるものではなく、他の実施形態では、コピーデータに付属させる形式で、揮発性記憶領域142または不揮発性記憶領域144それぞれにおいて管理されていてもよい。
【0056】
再び図2を参照すると、ステップS110では、メッセージ監視部132からの次の操作のメッセージを待ち受け、新たなメッセージを取得するまで、または所定時間が経過してタイムアウトするまで(NOの間)、ステップS110をループする。ステップS110で、次の操作のメッセージを取得するかタイムアウトすると、ステップS111へ処理が進められる。ステップS111では、コピー操作監視部134は、続きのコピー操作が行われたか否かを判定する。例えば、コピーに関連しない無関係のイベントが行われたり、タイムアウトであったりする場合、続きのコピー操作が行われなかったと判定される。
【0057】
ステップS111で、続きのコピー操作が行われなかったと判定された場合(NO)には、ステップS112で、本コピー処理を終了する。一方、ステップS111で、例えば続けてコピー・キー操作が行われ、当該コピー処理について続きのコピー操作が行われたと判定される場合(YES)には、ステップS102へ処理をループさせ、続きのコピー操作について解釈を行う。
【0058】
再びステップS103を参照すると、ここで、保存先の変更が求められていると解釈される場合(保存先変更)には、ステップS107では、コピー操作監視部134は、現在の保存先から、操作パターンの解釈により特定される保存先へ、コピーデータを移動して、ステップS108で、保存先の変更に伴うデータ残存制御情報の更新を行う。例えば、図3(A)に示す解釈ルールが適用される場合には、コピー・キー操作が連続して行われると10回目の操作において、不揮発性記憶領域144へ変更さが求められていると解釈される。この場合、ステップS107で、揮発性記憶領域142上のコピーデータが不揮発性記憶領域144へ移動され、ステップS108で、データ残存制御情報146の保存先種別が「storage」へ変更される。なお、保存先変更が求められる場合は、当該コピー・キー操作によるメッセージのコピー元アプリケーション150aへの伝達の結果呼び出されるコピーAPIはブロックされる。
【0059】
ステップS103で、ライフタイム設定の変更が求められていると解釈される場合(ライフタイム設定変更)には、ステップS109で、操作パターンの解釈に応じてライフタイム設定を変更して、データ残存制御情報146を更新する。例えば、図3(A)に示す解釈ルールが適用される場合には、コピー・キー操作が連続して行われた場合、2〜9回目の各コピー・キー操作毎に、ステップS109で、ペーストの限度回数が所定量増加される。有効期限が設定されるときは、2〜9回目の各コピー・キー操作毎に、ステップS109で有効期限を段階的に延長することができる。なお、ライフタイム設定変更が求められる場合は、当該コピー・キー操作によるメッセージのコピー元アプリケーション150aへの伝達の結果呼び出されるコピーAPIはブロックされる。
【0060】
図6は、本実施形態のコンピュータ装置100のディスプレイ画面上に表示されるコピー元アプリケーション・ウィンドウを例示する。図6に示すウィンドウ300は、ドキュメントの内容を編集可能に表示するエディタ・エリア302内に、イメージ・オブジェクト304が表示され、また、枠312で強調表示され、マウスポインタ310によりイメージ・オブジェクト304が選択されていることが示されている。イメージ・オブジェクト304が選択された状態で、例えば1回目のコピー・キー操作が行われると、イメージ・オブジェクト304は拡張クリップボード130へコピーされる。さらに続けて、コピー・キー操作が行われると、図6においてペーストの限度回数と保存先が記載されたポップアップ表示316が表示されているように、限度回数が増加する。その後、他のエリアをクリックするなど、コピー操作とは無関係な操作が行われると、ライフタイムの設定を含む本コピー処理を終了させる。
【0061】
以下、図7を参照して、ペースト操作時の処理の流れについて、より詳細に説明する。図7は、本発明の実施形態によるコンピュータ装置100におけるペースト操作監視部136が実行する、拡張クリップボードからのペースト処理を示すフローチャートである。図7に示す処理は、ステップS200から開始され、ステップS201で、ペースト操作監視部136は、メッセージ監視部132からペースト操作に関連するメッセージを取得する。ステップS202では、ペースト操作監視部136は、操作パターンを解釈する。操作パターンの解釈は、特に限定されるものではないが、図3および図4に示した解釈ルールと同様のものを適用して行うことができる。
【0062】
なお、説明する実施形態では、Windows(登録商標)で一般的な「Ctrl+V」のショートカット・キー(以下、ペースト・キー操作という。)を対象とし、「Ctrl」キーを維持したままペースト・キー操作を連続することにより、揮発性記憶領域142および不揮発性記憶領域144に保管された1以上のコピーデータのうちからペースト候補を選択し、所望のコピーデータが選択されている状態で、ペースト・キー操作を解除することにより、ペースト対象が確定されるものとして説明する。
【0063】
ステップS203では、ステップS202による操作パターンの解釈に従って処理を分岐させる。ステップS203で、選択操作であると解釈される場合(選択)には、ステップS204へ処理を進める。ステップS203で、確定操作であると解釈される場合(確定)には、ステップS209へ処理を進める。
【0064】
選択操作の場合、当該ペースト・キー操作によるメッセージのペースト先アプリケーション150cへの伝達の結果呼び出されるペーストAPIはブロックされる。この場合、ステップS204で、ペースト操作監視部136は、履歴データとして利用されるデータ残存制御情報146を参照し、拡張クリップボード130へコピーされた最新のもの順にコピーデータを、選択されたペースト候補として設定する。ステップS205では、ペースト操作監視部136は、ペースト候補のコピーデータを、揮発性記憶領域142、不揮発性記憶領域144および標準クリップボード120のうちの対応する保存先から読み込む。
【0065】
ステップS206では、ペースト操作監視部136は、オーバーレイ表示部138に対し読み込んだコピーデータを渡し、コピーデータをペーストする場合におけるプレビューをオーバーレイで描画させる。図8は、本実施形態のコンピュータ装置100のディスプレイ画面上に表示されるペースト先アプリケーション・ウィンドウを例示する。図8(A)に示すように、エディタ・ウィンドウ中のカーソル位置326にて、ペースト・キー操作が行われると、揮発性記憶領域142および不揮発性記憶領域144の両方に保存される1以上のコピーデータのうちの選択中のペースト候補のデータがオーバーレイ表示され、選択中の内容をユーザに提示する。なお、図8(A)に示す例では、ポップアップ表示324で、保存先および残された限度回数が表示される。また、目的のコピーデータを見つけやすいように、オーバーレイ表示部138は、図9に示すように現在選択中のペースト候補342以外のコピーデータ344a,344bをオーバーレイ表示させることもできる。
【0066】
再び図7を参照すると、ステップS206の処理が終わると、ステップS207へ処理が進められる。ステップS207では、ペースト操作監視部136は、次の操作のメッセージを待ち受け、新たなメッセージを取得するまで、または所定時間が経過してタイムアウトするまで(NOの間)、ステップS207をループする。ステップS207で、次の操作のメッセージを取得すると、ステップS208へ処理が進められる。ステップS208では、ペースト操作監視部136は、続きのコピー操作が行われたか否かを判定する。例えば、エスケープ・キーなど処理を中断するキーや、ペースト操作に関連しない無関係の操作が行われたりすると、ペースト操作の続きが行われなかったと判定される。
【0067】
ステップS208で、続きのコピー操作が行われなかったと判定された場合(NO)には、ステップS214へ処理を分岐させ、本ペースト処理を終了する。一方、ステップS208で、連続してペースト・キー操作が行われたり、すべてのキーが離されたり、続きのコピー操作が行われたと判定される場合(YES)には、ステップS202へ処理をループさせ、続きのコピー操作についての解釈を行う。
【0068】
確定操作である場合、ペースト・キー操作のメッセージが発生し、ペースト先アプリケーション150cは当該メッセージを受け取り、標準クリップボード120からのペーストを指令するコピーAPIコールを発行する。ステップS203で確定と解釈される場合(確定)、ステップS209へ処理が進められる。ステップS209では、ペースト操作監視部136は、ペースト先アプリケーション150cからのコピーAPIコールを検出し、これに応答して、揮発性記憶領域142、揮発性記憶領域144および標準クリップボード120のうちの対応する保存先から読み込んだコピーデータを、ペースト先アプリケーション150cに渡す。
【0069】
図8(B)は、選択されたコピーデータがペーストされた後のペースト先アプリケーション・ウィンドウを例示する。図8(B)に示すように、ペースト・キー操作が離されて確定操作が行われると、エディタ・ウィンドウ中の従前のカーソル位置にオブジェクト332が挿入される。
【0070】
ステップS210では、ペースト操作監視部136は、当該コピーデータに、限度回数などペースト動作に応じて書き換えを必要とするライフタイム設定がなされている場合、当該ライフタイム設定を減じ、データ残存制御情報146を更新する。ステップS211では、ペーストしたコピーデータを先頭(または最後尾)に移動し、履歴上の最新(または最古)のデータとして取り扱う。ステップS212では、ペースト操作監視部136は、上記ライフタイム設定を減じた結果、残存が不可となったか否かを判定する。ステップS212で、残存不可と判定された場合(YES)には、ステップS213へ処理を進める。ステップS213では、ペースト操作監視部136は、データ消去部140にその旨を通知し、ペーストが完了したコピーデータを保存先から削除させ、データ残存制御情報146から登録を削除させて、ステップS214で、本ペースト処理を終了する。
【0071】
以上説明した実施形態によれば、拡張クリップボード130に保存されるコピーデータに対して簡単な操作でライフタイムを自在に設定することが可能となる。ライフタイムが切れたコピーデータは、上記データ消去部140により順次記憶領域から消去される。したがって、拡張クリップボード130中にコピーデータが不用意に残存し、情報漏洩を引き起こしてしまう可能性を好適に低減することができる。
【0072】
さらに、上記実施形態によれば、揮発性記憶領域142に加えて、不揮発性記憶領域144が設けられ、これらの共有記憶領域に1または複数のコピーデータが保存可能とされる。そして、保存されたコピーデータは、簡易な操作で選択してアプリケーションへとペーストすることができる。コピーデータの保存先を不揮発性記憶領域144にするか、揮発性記憶領域142にするかは、簡単な操作により指定することができ、例えば機密性の低いデータは、不揮発性記憶領域144に保存することで、コンピュータ装置100の再起動後も利用できるようになる。つまり、上記実施形態による拡張クリップボード130は、データの残存を有効に制限し、セキュリティを向上させつつ、複数のデータを簡便に使い回すことを可能とし、クリップボードの利便性を好適に高めるものということができる。
【0073】
さらに、アプリケーション独自の機能ではなく、アプリケーション・プロセスに注入される共有ライブラリとして構成することにより、アプリケーションに依存しない形式で拡張されたクリップボード機能を提供することができる。上記共有ライブラリは、コピーAPIおよびペーストAPIを監視し、コピーデータの流れを制御できるため、標準クリップボード120へのデータのコピーをブロックし、既存の標準クリップボードを経由した情報漏洩を好適に防止することもできる。
【0074】
以上説明したように、本発明の実施形態によれば、ユーザの操作性や、クリップボードに代表される共有記憶領域が有する利便性をあまり損なわせず、共有記憶領域におけるデータのライフタイムを有効に制限し、共有記憶領域の利便性・セキュリティを両立させることが可能な情報処理装置、データ複製方法、プログラムおよび記憶媒体を提供することができる。
【0075】
本発明の上記機能は、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
【0076】
これまで本発明を、特定の実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0077】
100…コンピュータ装置、110…物理デバイス、112…キーボード、114…マウス、120…標準クリップボード、122…メッセージ・キュー、130…拡張クリップボード、132…メッセージ監視部、134…コピー操作監視部、136…ペースト操作監視部、138…オーバーレイ表示部、140…データ消去部、142…揮発性記憶領域、144…不揮発性記憶領域、146…データ残存制御情報、150…アプリケーション、200…解釈ルール、300,320,330,340…アプリケーション・ウィンドウ、302…エディタ・エリア、304,332…イメージ・オブジェクト、310…マウスポインタ、312…枠、316,324,346…ポップアップ表示、322,342…ペースト候補、326…カーソル,344…他のコピーデータ

【特許請求の範囲】
【請求項1】
1以上のアプリケーションが動作する情報処理装置であって、
コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを取得し、該コピーデータに対し、入力装置を介した操作パターンから解釈されるライフタイムを設定して、記憶領域に保存するコピー操作監視部と、
前記記憶領域に保存される1以上のコピーデータの中から選択されたペースト候補を表示装置に表示する表示部と、
入力装置を介した確定操作に対応して、前記記憶領域から読み込んだ前記ペースト候補をペースト先アプリケーションへ渡すペースト操作監視部と、
前記ライフタイムが切れて残存が許容されなくなったデータを前記記憶領域から消去する消去部と
を含む、情報処理装置。
【請求項2】
前記コピーデータが保存される前記記憶領域は、揮発性記憶領域または不揮発性記憶領域であり、前記コピー操作監視部は、前記入力装置を介した前記操作パターンを解釈して、前記揮発性記憶領域および前記不揮発性記憶領域のいずれかを指定された保存先として特定することを特徴とする、請求項1に記載の情報処理装置。
【請求項3】
前記表示部は、入力装置を介したペースト操作毎にコピー履歴に応じた順序で前記1以上のコピーデータのいずれかを前記ペースト候補として順に選択し、前記ペースト先アプリケーションのウィンドウ上にオーバーレイ表示することを特徴とする、請求項2に記載の情報処理装置。
【請求項4】
前記コピー操作監視部は、取得した前記コピーデータの内容を分析してセキュリティ・レベルを付与するコンテンツ分析エンジンと連携し、付与された前記セキュリティ・レベルに応じて前記ライフタイムを決定することを特徴とする、請求項3に記載の情報処理装置。
【請求項5】
前記コピー操作監視部は、前記入力装置を介したコピー操作毎に、前記コピーデータに対して設定する前記ライフタイムを増減することを特徴する、請求項3に記載の情報処理装置。
【請求項6】
前記ペースト操作監視部は、前記確定操作に対応して前記ペースト候補をペースト先アプリケーションへ渡した後、前記コピー履歴における前記ペースト候補の順序を変更することを特徴とする、請求項3に記載の情報処理装置。
【請求項7】
前記ライフタイムは、前記コピーデータの残存が許される有効期限および前記コピーデータの残存が許されるペースト限度回数、またはこれらのいずれか一方として規定されることを特徴とする、請求項1に記載の情報処理装置。
【請求項8】
前記コピー操作監視部は、前記コピー元アプリケーションから指令されたコピーデータの汎用共有メモリへのコピーをブロックすることを特徴とする、請求項1に記載の情報処理装置。
【請求項9】
1以上のアプリケーションが動作する情報処理装置が実行する方法であって、
前記情報処理装置が、コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを記憶領域に保存するステップと、
前記情報処理装置が、前記コピーデータに対し、入力装置を介した操作パターンから解釈されるライフタイムを設定するステップと、
前記情報処理装置が、ペースト先アプリケーション内でのペースト操作に応答して、前記記憶領域に保存される1以上のコピーデータの中から選択されたペースト候補を表示装置に表示するステップと、
前記情報処理装置が、入力装置を介した確定操作に対応して、前記記憶領域上の前記ペースト候補をペースト先アプリケーションへ渡すステップと
を含み、前記方法は、さらに、
前記情報処理装置が、設定された前記ライフタイムが切れて残存が許容されなくなったコピーデータを前記記憶領域から消去するステップと
を含む、データ複製方法。
【請求項10】
前記コピーデータが保存される前記記憶領域は、揮発性記憶領域または不揮発性記憶領域であり、前記保存するステップは、前記入力装置を介した前記操作パターンを解釈して前記揮発性記憶領域および前記不揮発性記憶領域のいずれかを指定された保存先として特定するサブステップを含むことを特徴とする、請求項9に記載のデータ複製方法。
【請求項11】
1以上のアプリケーションが動作する情報処理装置を実現するためのコンピュータ実行可能なプログラムであって、前記コンピュータを、
コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを取得し、該コピーデータに対し、入力装置を介した操作パターンから解釈されるライフタイムを設定して、記憶領域に保存するコピー操作監視部、
前記記憶領域に保存される1以上のコピーデータの中から選択されたペースト候補を表示装置に表示する表示部、
入力装置を介した確定操作に対応して、前記記憶領域から読み込んだ前記ペースト候補をペースト先アプリケーションへ渡すペースト操作監視部、および
前記ライフタイムが切れて残存が許容されなくなったデータを前記記憶領域から消去する消去部
として機能させるためのプログラム。
【請求項12】
請求項11に記載のコンピュータ実行可能なプログラムをコンピュータ可読に格納する記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−133620(P2012−133620A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−285708(P2010−285708)
【出願日】平成22年12月22日(2010.12.22)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100110607
【弁理士】
【氏名又は名称】間山 進也
【Fターム(参考)】