(57)【特許請求の範囲】
【請求項１】
１以上のアプリケーションが動作する情報処理装置であって、
コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを取得し、該コピーデータに対し、入力装置を介した前記コピーを指令する際の操作パターンおよび取得した前記コピーデータの内容を分析してセキュリティ・レベルを付与するコンテンツ分析エンジンと連携し、付与された前記セキュリティ・レベルから解釈されるライフタイムを設定して、記憶領域に保存するコピー操作監視部と、
前記記憶領域に保存される１以上のコピーデータの中から選択されたペースト候補を表示装置に表示する表示部と、
入力装置を介した確定操作に対応して、前記記憶領域から読み込んだ前記ペースト候補をペースト先アプリケーションへ渡すペースト操作監視部と、
前記ライフタイムが切れて残存が許容されなくなったデータを前記記憶領域から消去する消去部と
を含む、情報処理装置。
【請求項２】
前記コピーデータが保存される前記記憶領域は、揮発性記憶領域または不揮発性記憶領域であり、前記コピー操作監視部は、前記入力装置を介した前記操作パターンを解釈して、前記揮発性記憶領域および前記不揮発性記憶領域のいずれかを指定された保存先として特定することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記表示部は、入力装置を介したペースト操作毎にコピー履歴に応じた順序で前記１以上のコピーデータのいずれかを前記ペースト候補として順に選択し、前記ペースト先アプリケーションのウィンドウ上にオーバーレイ表示することを特徴とする、請求項２に記載の情報処理装置。
【請求項４】
前記コピー操作監視部は、前記入力装置を介したコピー操作毎に、前記コピーデータに対して設定する前記ライフタイムを増減することを特徴する、請求項３に記載の情報処理装置。
【請求項５】
前記ペースト操作監視部は、前記確定操作に対応して前記ペースト候補をペースト先アプリケーションへ渡した後、前記コピー履歴における前記ペースト候補の順序を変更することを特徴とする、請求項３に記載の情報処理装置。
【請求項６】
前記ライフタイムは、前記コピーデータの残存が許される有効期限および前記コピーデータの残存が許されるペースト限度回数、またはこれらのいずれか一方として規定されることを特徴とする、請求項１に記載の情報処理装置。
【請求項７】
前記コピー操作監視部は、前記コピー元アプリケーションから指令されたコピーデータの汎用共有メモリへのコピーをブロックすることを特徴とする、請求項１に記載の情報処理装置。
【請求項８】
１以上のアプリケーションが動作する情報処理装置が実行する方法であって、
前記情報処理装置が、コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを記憶領域に保存するステップと、
前記情報処理装置が、前記コピーデータに対し、入力装置を介し前記コピーを指令する際の操作パターンおよび取得した前記コピーデータの内容を分析してセキュリティ・レベルを付与するコンテンツ分析エンジンと連携し、付与された前記セキュリティ・レベルから解釈されるライフタイムを設定するステップと、
前記情報処理装置が、ペースト先アプリケーション内でのペースト操作に応答して、前記記憶領域に保存される１以上のコピーデータの中から選択されたペースト候補を表示装置に表示するステップと、
前記情報処理装置が、入力装置を介した確定操作に対応して、前記記憶領域上の前記ペースト候補をペースト先アプリケーションへ渡すステップと
を含み、前記方法は、さらに、
前記情報処理装置が、設定された前記ライフタイムが切れて残存が許容されなくなったコピーデータを前記記憶領域から消去するステップと
を含む、データ複製方法。
【請求項９】
前記コピーデータが保存される前記記憶領域は、揮発性記憶領域または不揮発性記憶領域であり、前記保存するステップは、前記入力装置を介した前記操作パターンを解釈して前記揮発性記憶領域および前記不揮発性記憶領域のいずれかを指定された保存先として特定するサブステップを含むことを特徴とする、請求項８に記載のデータ複製方法。
【請求項１０】
１以上のアプリケーションが動作する情報処理装置を実現するためのコンピュータ実行可能なプログラムであって、前記コンピュータを、
コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを取得し、該コピーデータに対し、入力装置を介した前記コピーを指令する際の操作パターンおよび取得した前記コピーデータの内容を分析してセキュリティ・レベルを付与するコンテンツ分析エンジンと連携し、付与された前記セキュリティ・レベルから解釈されるライフタイムを設定して、記憶領域に保存するコピー操作監視部、
前記記憶領域に保存される１以上のコピーデータの中から選択されたペースト候補を表示装置に表示する表示部、
入力装置を介した確定操作に対応して、前記記憶領域から読み込んだ前記ペースト候補をペースト先アプリケーションへ渡すペースト操作監視部、および
前記ライフタイムが切れて残存が許容されなくなったデータを前記記憶領域から消去する消去部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有記憶領域を利用したデータ複製に関し、より詳細には、共有記憶領域を利用したデータ複製におけるセキュリティ保護を向上するための情報処理装置、データ複製方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
一般的なオペレーティング・システムにおけるデスクトップ環境は、一時的にデータを格納するためのクリップボードを備える。クリップボードは、簡便な操作で、種々のアプリケーションからデータを自由に書き込むことができ、またフォーマットさえ解釈できれば、自由にデータを読み込むことができる、便利な汎用共有メモリである。
【０００３】
また、一般的なクリップボードは、同時に保管可能なデータ数が１つであるが、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ（登録商標）やＥｍａｃｓなどは、アプリケーション独自の拡張機能として、過去のデータを別領域に保管する拡張機能を提供する。これらの機能により、アプリケーション内での複数のデータの使い回しが容易となるが、アプリケーション独自の拡張機能であり、データが揮発性記憶領域に保管されることから、アプリケーションが起動している必要があり、アプリケーション終了と同時にデータが消失してしまう。
【０００４】
また、クリップボードの機能を拡張するという観点から、特開２０１０−１７０１６５号公報（特許文献１）は、通常のデータ保存とペースト用にコピー元のデータを保存できるセーブ手段と、通常のデータ読み込みとコピー＆ペースト用の特定ファイルからペースト用にコピー元をオブジェクト単位で復元できるロード手段と、コピー元となるデータを特定し、上記セーブ手段を利用してペースト用のデータファイルを作成させるコピー手段と、上記ロード手段を利用して、ペーストに必要なコピー元の複製を作成させるペースト手段とを備える、データ複製方式を開示する。上記特許文献１の技術は、複数のユーザでデータを共有したり、コンピュータの再起動後に再利用したりすることを可能とする。
【０００５】
その他、同様にクリップボードの機能を拡張するという観点から、特開２００５−２５０８９６号公報（特許文献２）は、ペースト頻度の高いデータをクリップボードに可能な限り残すようにしたコピー（またはカット）＆ペースト機能を備えるデータ入力支援装置を開示する。
【０００６】
上述のように、クリップボードは便利な機能であるが、セキュリティの観点から見ると、利便性の高さゆえに管理が困難となり、重大なセキュリティ事故を招く可能性がある。クリップボードは、カーネル・オブジェクトとは異なり、アクセス制御リスト（ＡＣＬ）などのアクセス制御機構が設けられていないユーザ・オブジェクトである。このため、同一のデスクトップ環境で動作する不審なプログラムへの意図せぬ情報漏洩が懸念される。必要箇所にペーストし終えたクリップボード上のデータは、本来的には不要なデータであるが、重要なデータが上書きされずそのまま放置されることがしばしばある。このとき、クリップボード上に残存するデータが、ウィルスに感染したピア・ツー・ピア・ファイル交換アプリケーションなどを介して外部に漏洩してしまう可能性がある。官公庁、大学、企業などの組織においては、このような情報漏洩は許されない。
【０００７】
したがって、情報漏洩を防止すべくクリップボード機能に何らかのセキュリティ制限を設ける必要性が高い。共有メモリを介した情報漏洩に対する対策としては、例えば、特開２０１０−１７６４３１号公報（特許文献３）は、アクセス権を有するユーザによる情報の再利用に起因した情報漏洩を防止することを目的として、文書格納領域に格納された保護文書の内容を再利用するためにＯＳやアプリケーションが行うコピーや貼り付けなどの特定の処理を監視し、上記特定の処理が補足されると、第１のアクセス権が設定された第１の文書の内容を再利用した第２の文書に対し、第１のアクセス権を承継する第２のアクセス権を設定するための各種処理を実行することを特徴とする、アクセス制御プログラムを開示する。
【０００８】
上記特許文献３の従来技術によれば、コピー元文書のアクセス制御ポリシーをコピー先文書へ継承することで、共有メモリを介した情報フローを制御することができる。しかしながら、特許文献１の技術は、文書に対するアクセス制御ポリシーを設定する技術であり、上記共有メモリ上には、依然として無防備な状態でデータが残存する可能性がある。
【０００９】
上述した背景から、クリップボードなどの共有記憶領域におけるデータのライフタイムを有効に制限し、必要箇所にペーストし終えた不要なデータを効率的に消去することができる技術の提供が望まれる。
【００１０】
一方、クリップボードは、あらゆるプロセスからアクセスされる汎用共有メモリであるため、一律にクリップボードの機能を制限することは、その利便性を損ねてしまう結果となる。ＧＵＩベースのコンピュータにおいては、セキュリティ強化を理由として、不必要にユーザの利便性を害するのは望ましくない。また、特定のアプリケーションにおける保護のみでは効果は薄いため、アプリケーションに依存しない高い汎用性のある機能として実現することが望ましい。さらに、情報に求められる機密度は多様なレベルがあり、多様なレベルで共有記憶領域上のデータを保護することが好ましい。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１０−１７０１６５号公報
【特許文献２】特開２００５−２５０８９６号公報
【特許文献３】特開２０１０−１７６４３１号公報
【非特許文献】
【００１２】
【非特許文献１】古市  実裕、工藤  道治、“ＧＵＩベースのコンピュータに適したアクセス制御ポリシー管理方法の提案”、情報処理学会論文誌、Ｖｏｌ．４９、Ｎｏ．９、ｐｐ．１−１１（２００８年９月）．
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、上記従来技術における問題点に鑑みてなされたものであり、本発明は、ユーザの操作性や、クリップボードに代表される共有記憶領域が有する利便性をあまり損なわせずに、共有記憶領域におけるデータのライフタイムを有効に制限し、共有記憶領域の利便性およびセキュリティ保護を両立させることが可能な情報処理装置、データ複製方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、上記従来技術の不都合に鑑みてなされたものであり、本発明は、以下の特徴を有する情報処理装置を提供する。本発明の情報処理装置は、その上で１以上のアプリケーションが動作しており、コピー元アプリケーションが汎用共有メモリへのコピーを指令したコピーデータを取得し、該コピーデータに対し、入力装置を介した操作パターンから解釈されるライフタイムを設定して、不揮発性または揮発性の記憶領域に保存するコピー操作監視部を備える。
【００１５】
さらに本情報処理装置は、上記記憶領域に保存される１以上のコピーデータの中から選択されたペースト候補を表示装置に表示する表示部と、入力装置を介した確定操作に対応して、記憶領域から読み込んだペースト候補をペースト先アプリケーションへ渡すペースト操作監視部と、ライフタイムが切れて残存が許容されなくなったデータを記憶領域から消去する消去部とを含む。なお、上記コピーは、コピー元アプリケーションからコピー内容の消去を伴うカットを一態様として含むことができる。さらに本発明では、入力装置を介した操作パターンを解釈して、揮発性記憶領域および不揮発性記憶領域のいずれかを指定された保存先として特定することができる。
【発明の効果】
【００１６】
上記構成によれば、共有の記憶領域に保存されるコピーデータに対して、入力装置を介した操作パターンによりライフタイムを自在に設定することが可能となる。ライフタイムが切れたコピーデータは、上記データ消去部により順次記憶領域から消去される。これにより、記憶領域中にコピーデータが不用意に残存し、情報漏洩を引き起こしてしまう可能性を好適に低減することができる。ひいては、ユーザの操作性や、共有記憶領域が有する利便性をあまり損なわせず、共有記憶領域におけるデータのライフタイムを有効に制限し、セキュリティを向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態による情報処理装置の機能ブロック図。
【図２】本発明の実施形態によるコンピュータ装置におけるコピー操作監視部が実行する、拡張クリップボードへのコピー処理を示すフローチャート。
【図３】操作パターンを解釈する際に参照することができる解釈ルールのデータ構造を例示する図。
【図４】操作パターンを解釈する際に参照することができる解釈ルールのデータ構造を例示する図。
【図５】本実施形態の拡張クリップボードで管理されるデータ残存制御情報のデータ構造を例示する図。
【図６】本実施形態のコンピュータ装置のディスプレイ画面上に表示されるコピー元アプリケーション・ウィンドウを例示する図。
【図７】本発明の実施形態によるコンピュータ装置におけるペースト操作監視部が実行する、拡張クリップボードからのペースト処理を示すフローチャート。
【図８】本実施形態のコンピュータ装置のディスプレイ画面上に表示されるペースト先アプリケーション・ウィンドウを例示する図。
【図９】本実施形態のコンピュータ装置のディスプレイ画面上に表示されるペースト先アプリケーション・ウィンドウの他の例を示す図。
【発明を実施するための形態】
【００１８】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
【００１９】
以下、図１〜図９を参照しながら、本発明の実施形態による情報処理装置について説明する。図１は、本発明の実施形態による情報処理装置の機能ブロック図である。図１に示す情報処理装置は、特に限定されるものではないが、概ねデスクトップ型、ノートブック型、タブレット型またはネットブック型のパーソナル・コンピュータ、ワークステーション、サーバ、携帯端末、ＰＤＡ（Personal Digital Assistant）などのコンピュータ装置１００として構成される。
【００２０】
コンピュータ装置１００は、図示しないＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）と、ＮＩＣ（Network Interface Card）とを備える。本実施形態のコンピュータ装置１００は、さらに、ユーザ・インタフェースを提供するための物理デバイス１１０として、キーボード１１２およびマウス１１４、あるいは図示しないタッチパネルなどの入力装置と、図示しないディスプレイなどの表示装置とを備える。コンピュータ装置１００は、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、Ｍａｃ（登録商標）ＯＳ  ＸなどのＧＵＩ（Graphical User Interface）ベースのオペレーティング・システム（以下、ＯＳと参照する。）の制御下で動作する。
【００２１】
コンピュータ装置１００は、ＯＳ上で動作する１以上のアプリケーション１５０ａ〜１５０ｃを備える。各アプリケーション１５０ａ〜１５０ｃとしては、特に限定されるものではないが、例えば、ウェブブラウザ、メーラ、文書作成アプリケーション、グループウェア、表計算アプリケーション、データベース・アプリケーション、プレゼンテーション・アプリケーション、統合開発環境など、如何なるアプリケーションを挙げることができる。
【００２２】
コンピュータ装置１００は、ＯＳが提供する機能の一部として、いわゆる汎用共有メモリである標準クリップボード１２０を備えることができる。標準クリップボード１２０は、メニュー選択やショートカット・キーを使用した簡便な操作で、種々のアプリケーション１５０からデータを自由に書き込むことができ、さらに、同様の簡便な操作で種々のアプリケーションへデータを読み込ませることができる。
【００２３】
コンピュータ装置１００は、さらに、ＯＳが提供する機能の一部として、キーボード１１２およびマウス１１４などの物理デバイス１１０の操作に応答するメッセージがポストされるメッセージ・キュー１２２を備える。キーボード１１２やマウス１１４に対し操作が行われると、ＯＳは、当該操作に関するメッセージをメッセージ・キュー１２２にポストする。一般的には、その後、メッセージは、スレッドのメッセージ・ループでメッセージ・キュー１２２から取り出され、再度システム経由で対応するアプリケーション１５０へと渡される。
【００２４】
上述した標準クリップボード１２０は、ユーザ・オブジェクトであり、あらゆるアプリケーションからアクセス可能とされ、アクセス制御機構が設けられていない。このため、標準クリップボード１２０を経由した情報漏洩が懸念される。そこで、本発明の実施形態によるコンピュータ装置１００は、上記標準クリップボード１２０に加えて、または上記標準クリップボード１２０に代えて、拡張クリップボード１３０を備える。
【００２５】
拡張クリップボード１３０は、アプリケーション・プログラミング・インタフェース（以下、ＡＰＩという。）およびメッセージ・キュー１２２を監視し、物理デバイス１１０からプロセスへのメッセージ伝達の監視結果に応じて、プロセスから標準クリップボード１２０などのリソースへのアクセスを制御する。拡張クリップボード１３０は、コンピュータ装置１００上で動作する各アプリケーション１５０に注入され、アプリケーション１５０とＯＳとの間で動作して、拡張された共有の記憶領域を提供する、ライブラリとして構成することができる。このようなライブラリは、ダイナミック・リンク・ライブラリ（ＤＬＬ）、共有ライブラリ、シェアード・ライブラリとして参照される。
【００２６】
以下、拡張クリップボード１３０を用いたコピー操作について説明する。拡張クリップボード１３０は、より詳細には、メッセージ監視部１３２と、コピー操作監視部１３４とを備える。メッセージ監視部１３２は、メッセージ・キュー１２２を監視しており、メッセージ・キュー１２２にポストされた、アプリケーション１５０ａ〜１５０ｃのウィンドウへの物理デバイス１１０の操作に関するメッセージを取得する。メッセージ監視部１３２は、取得したメッセージがコピー操作に関連するメッセージであれば、コピー操作監視部１３４へメッセージを渡す。
【００２７】
コピー操作監視部１３４は、メッセージ監視部１３２から渡されるメッセージを解釈して処理するとともに、コピーに関するＡＰＩ（以下、コピーＡＰＩという。）を監視する。コピー操作監視部１３４は、コピー元となるアプリケーション１５０ａが標準クリップボード１２０へコピーを指令するＡＰＩコールを行うと、そのコピーデータを取得し、データの残存が許される範囲を規定するライフタイムを設定して、所定の保存先へ保存する。
【００２８】
上記コピーデータの保存先としては、ＲＡＭなどの揮発性記憶装置が提供する揮発性記憶領域１４２と、ＨＤＤやＳＳＤなどの不揮発性記憶装置が提供する不揮発性記憶領域１４４とが設けられる。本実施形態では、不揮発性記憶領域１４４を設け、ここをコピーデータの保存先とすることにより、当該コンピュータ装置１００が一度シャットダウンした後も、ユーザは、コピーデータを利用することが可能となる。また、揮発性記憶領域１４２および不揮発性記憶領域１４４は、それぞれ、１または複数のコピーデータを保管することができ、過去にコピーされたデータをも長期にわたって再利用可能な構成とされている。
【００２９】
一方、揮発性記憶領域１４２および不揮発性記憶領域１４４に保管されるコピーデータに対しては、ライフタイムを設定することが可能とされている。ライフタイム設定は、特に限定されるものではないが、データの残存が許される期間を規定する有効期限や、データに対して許されるペースト回数の限度を規定する限度回数（または度数）を挙げることができる。
【００３０】
上記コピーデータの保存先およびライフタイム設定は、例えば、詳細は後述するが、図５に示すようなデータ構造を有するデータ残存制御情報１４６を用いて管理される。なお、揮発性記憶領域１４２または不揮発性記憶領域１４４が保存先となる場合には、セキュリティを向上させる観点から、コピー元アプリケーション１５０ａからの上記ＡＰＩコールはブロックされ、標準クリップボード１２０へはコピーデータは送られない。
【００３１】
また本発明の実施形態では、キーボード１１２やマウス１１４の操作パターンに意味を持たせる。コピー操作監視部１３４は、コピー操作に関するメッセージを受け取り、操作パターンを解釈することにより、コピーデータの保存先およびコピーデータに設定するライフタイム設定を決定する。操作パターンは、キーボード操作におけるキー・コンビネーション、キー・コンビネーションのシーケンス、その他マウス・ジェスチャなど、キーボード１１２およびマウス１１４またはこれらの一方による操作状態ないし操作状態の時系列として説明される。
【００３２】
Ｗｉｎｄｏｗｓ（登録商標）環境における一例を説明すると、初回の「Ｃｔｒｌ＋Ｃ」のキー・コンビネーションにより揮発性記憶領域１４２へ限度回数１で保存され、以降の「Ｃｔｒｌ＋Ｃ」のキー・コンビネーションにより限度回数が増分される構成を取ることができる。また、「Ｃｔｒｌ＋Ｃ」のキー・コンビネーションの短押しにより、揮発性記憶領域１４２が選択され、「Ｃｔｒｌ＋Ｃ」のキー・コンビネーションの長押しにより、不揮発性記憶領域１４４が選択されるよう構成することができる。
【００３３】
なお、ここまでコピー動作について説明してきたが、カット動作は、アプリケーション側からみればカットされた内容が消去される点で異なるものの、拡張クリップボード１３０へデータを書き込む点で拡張クリップボード１３０側から見ればコピー動作と同一である。したがって、本実施形態における説明では、カット動作は、コピー動作の一態様として取り扱う。
【００３４】
また、図１では、公知情報などの機密にする必要がないデータ用に、上記揮発性記憶領域１４２および不揮発性記憶領域１４４に加えて、標準クリップボード１２０へのコピーする経路が示されている。しかしながら、機密情報を扱う業務用コンピュータ等においてセキュリティを向上する観点から、標準クリップボード１２０への経路を遮断する設定することができる。
【００３５】
以下、拡張クリップボード１３０を用いたペースト操作について説明する。拡張クリップボード１３０は、さらに、ペースト操作監視部１３６と、オーバーレイ表示部１３８とを備える。メッセージ監視部１３２は、取得したメッセージがペースト操作に関連するメッセージであれば、ペースト操作監視部１３６へメッセージを渡す。ペースト操作監視部１３６は、メッセージ監視部１３２から渡されるメッセージを解釈して処理するとともに、ペーストに関するＡＰＩ（以下、ペーストＡＰＩという。）を監視する。
【００３６】
ペースト操作監視部１３６は、より具体的には、ペースト操作に関するメッセージを受け取り、上記コピー操作と同様に、操作パターンを解釈することにより、ペースト対象とするコピーデータを選択し、またペースト対象を確定する。オーバーレイ表示部１３８は、記憶領域に保存される１以上のコピーデータのうち、現在選択中のペースト候補を表示画面上に描画する。描画方法は、特に限定されるものではないが、本実施形態では、ペースト先アプリケーション１５０ｃのウィンドウの前面に透明なウィンドウを作成して、該透明なウィンドウにペースト候補を描画して、オーバーレイ表示させる。
【００３７】
Ｗｉｎｄｏｗｓ（登録商標）環境における一例を説明すると、「Ｃｔｒｌ」キーを維持したまま「Ｃｔｒｌ＋Ｖ」のキー・コンビネーションで、履歴上新しい順（または古い順）など所定の順序でペースト候補を選択し、所望のコピーデータが選択されて表示されている状態で、上記キーを離すことにより、ペースト対象を確定される構成を取ることができる。
【００３８】
ペースト操作監視部１３６は、ペースト先となるアプリケーション１５０ｃが標準クリップボード１２０からのペーストを指令するＡＰＩコールを行うと、それに応答して、確定されたペースト対象のコピーデータをペースト先アプリケーション１５０ｃへ渡す。ペースト操作監視部１３６は、さらに、ペースト対象として確定したコピーデータに対し限度回数など、ペースト動作に応じて書き換えを必要とするライフタイム設定がなされている場合には、さらに限度回数を減じる等データ残存制御情報１４６を更新する。
【００３９】
ペースト先プリケーション１５０ｃは、渡されたコピーデータを取得して、適切なフォーマットで、コピーデータの貼り付け処理を行う。なお、図１では、ペースト先アプリケーション１５０ｃは、コピー元アプリケーション１５０ａと異なっているが、コピー元とペースト先とが同一アプリケーションであってもよい。
【００４０】
以下、拡張クリップボード１３０を用いたコピー（カット）・アンド・ペースト操作において、ライフタイムが切れたコピーデータの取り扱いについて説明する。拡張クリップボード１３０は、さらに、データ消去部１４０を備える。データ消去部１４０は、定期的に、不定期に、またはペースト操作監視部１３６からのコピーデータのライフタイムが切れた旨の明示的な通知に応答して、データ残存制御情報１４６を参照し、ライフタイムが切れて残存が許容されなくなったデータが存在するか否かを確認する。
【００４１】
データ消去部１４０は、ライフタイムが切れて残存が許容されなくなったデータを発見すると、該当するコピーデータを揮発性記憶領域１４２または不揮発性記憶領域１４４から消去し、データ残存制御情報１４６からも登録を抹消する。なお、ライフタイム設定が、限度回数など、ペースト動作に応じて書き換えを必要とするライフタイム設定のみが設けられる実施形態では、データ消去部１４０の機能をペースト操作監視部１３６の機能として包含させてもよい。
【００４２】
以下、図２を参照しながら、コピー操作時の処理の流れについてより詳細に説明する。図２は、本発明の実施形態によるコンピュータ装置１００におけるコピー操作監視部１３４が実行する、拡張クリップボードへのコピー処理を示すフローチャートである。図２に示す処理は、ステップＳ１００から開始され、ステップＳ１０１で、コピー操作監視部１３４は、メッセージ監視部１３２からコピー操作に関連するメッセージを取得する。ステップＳ１０２では、コピー操作監視部１３４は、操作パターンを解釈する。操作パターンの解釈は、特に限定されるものではないが、例えば、図３（Ａ）〜（Ｃ）および図４（Ａ），（Ｂ）に示すいずれかの解釈ルール２００を適用して行うことができる。
【００４３】
図３および図４は、操作パターンを解釈する際に参照することができる解釈ルールのデータ構造を例示する。図３および図４に示す例では、Ｗｉｎｄｏｗｓ（登録商標）で一般的な「Ｃｔｒｌ＋Ｃ」のショートカット・キー（以下、コピー・キー操作という。）を対象とし、このショートカット・キーの連続して押下した回数、短押しまたは長押しの別によって操作パターンが規定されている。例えば、図３（Ａ）に示す例の解釈ルール２００Ａは、初回のコピー・キー操作で、ペーストの限度回数を１に設定して揮発性記憶領域１４２へ保存するアクション、２回目以降のコピー・キー操作で、限度回数を１づつ増分するアクション、１０回目のコピー操作で、揮発性記憶領域１４２から不揮発性記憶領域１４４へ保存先を変更するアクションが規定されている。
【００４４】
また、図３（Ｂ）に示す解釈ルール２００Ｂは、初回のコピー・キー操作において、短押しで揮発性記憶領域１４２を選択し、長押しで不揮発性記憶領域１４４を選択し、ペーストの限度回数を１に設定して保存する旨が規定されている。そして、２回目以降は、短押しのコピー・キー操作で、限度回数を１づつ増分し、長押しのコピー・キー操作で、不揮発性記憶領域１４４へ保存先を変更する旨が規定されている。
【００４５】
ライフタイムの変更は、図３（Ａ）および（Ｂ）に示すように、コピー・キー操作を行うほど、限度回数が増加したり、揮発性記憶領域１４２からより長期の保存が可能な不揮発性記憶領域１４４へ変更されたりする、すなわち利便性が高くなる一方でセキュリティが低くなるようにルールを作成することができる。しかしながら、特に限定されるものではなく、図３（Ｃ）に示すように、当初は多い限度回数で不揮発性記憶領域１４４へ保存され、コピー・キー操作を行うほど、限度回数が減少し、長期の保存が可能な不揮発性記憶領域１４４から短期用の揮発性記憶領域１４２へ変更される、すなわち利便性が低くなる一方でセキュリティが高くなるようにルールを作成してもよい。
【００４６】
さらに、図４（Ａ）に示すように、コピー元アプリケーション１５０ａでフォーカスしているドキュメントの属性に応じて、通常レベルのセキュリティが求められる場合と、機密レベルが求められる場合とで、コピー・キー操作毎の限度回数の増分を変化させてもよい。なお、アプリケーションで開かれているドキュメントのセキュリティ・レベルに応じた動的なアクセス制御については、より詳細には、非特許文献１（古市  実裕、工藤  道治、“ＧＵＩベースのコンピュータに適したアクセス制御ポリシー管理方法の提案”、情報処理学会論文誌、Ｖｏｌ．４９、Ｎｏ．９、ｐｐ．１−１１（２００８年９月））を参照することができる。
【００４７】
さらに他の実施形態では、既知のデータ漏洩防止技術（ＤＬＰ：Data Loss Protection）で採用されているようなコンテンツ分析を実行するコンテンツ分析エンジンと連携し、コピーデータの内容から判定されるセキュリティ・レベルに応じて、自動的にライフタイムを決定する構成をとることができる。例えば、機密度の高い内容のコピーデータに対してはより短い期間または少ない限度回数を決定することができる。この場合、自動決定されたライフタイム設定に対し、一定の制限（例えば上限値など）の範囲で、ユーザは、操作パターンによるライフタイムの増減を行うことができる。
【００４８】
上記コンテンツ分析エンジンは、コンピュータ装置１００の内部または外部のモジュールとして実装することができ、コンテンツの内容を分析し、内容中に機密情報が含まれないかを検出するエンジンである。例えば、顧客情報等の機密情報を格納したデータベースからインデックスを生成し、当該インデックスを使用してデータベース上に登録されている機密情報を検出することができる。あるいは、機密文書ファイルを登録してインデックスを作成し、当該インデックスを使用して、登録した文書そのもののコピーまたは、文書の一部分を引用して作成した文書を検出することができる。さらに、文書内に含まれる特定のキーワードやフレーズ、またはファイルの属性によって、機密情報を特定することもできる。
【００４９】
その他、図４（Ｂ）に示すように、コピー・キー操作毎に保存先を代えるようにルールを作成してもよい。図４（Ｂ）に示す例では、まずデータが次の上書きまで残存するクリップボードへ、続いてコンピュータ装置１００の電源を落とすまでデータが残存する揮発性記憶領域１４２へ、最後にコンピュータ装置１００の電源を落としてもデータが残存する不揮発性記憶領域１４４へと保存先が、コピー・キー操作毎に変更される。
【００５０】
再び図２を参照すると、ステップＳ１０３では、ステップＳ１０２で行った操作パターンの解釈に従って処理を分岐させる。ステップＳ１０３で、コピー処理が求められていると解釈される場合（コピー）には、ステップＳ１０４へ処理を進められる。ステップＳ１０３で、保存先の変更が求められていると解釈される場合（保存先変更）には、ステップＳ１０７へ処理を進められる。ステップＳ１０３で、ライフタイム設定の変更が求められていると解釈される場合（ライフタイム設定変更）には、ステップＳ１０９へ処理を進められる。
【００５１】
コピー処理が求められる場合、コピー元アプリケーション１５０ａがメッセージを受け取り、標準クリップボードへのコピーを指令するコピーＡＰＩコールを発行する。この場合、ステップＳ１０４で、コピー操作監視部１３４は、コピー元アプリケーション１５０ａからのコピーＡＰＩコールを検出し、該アプリケーション１５０ａからコピーデータを取得する。
【００５２】
ステップＳ１０５では、コピー操作監視部１３４は、取得したコピーデータを、上記ステップＳ１０２で解釈から特定される保存先（揮発性記憶領域１４２、不揮発性記憶領域１４４および標準クリップボード１２０のいずれか）へ保存する。ステップＳ１０６では、コピー操作監視部１３４は、保存したコピーデータに対応するレコードをデータ残存制御情報１４６に追加登録し、保存したコピーデータに対し、操作パターンの解釈により特定されるライフタイム設定の初期値を設定し、ステップＳ１１０へ進める。例えば、図３（Ａ）に示す解釈ルールが適用される場合には、初回のコピー・キー操作では、コピー処理が求められていると解釈され、ステップＳ１０５で揮発性記憶領域１４２へ保存され、ステップＳ１０６で、限度回数１が設定される。
【００５３】
図５は、本実施形態の拡張クリップボード１３０で管理されるデータ残存制御情報１４６のデータ構造を例示する。図５に示すようにデータ残存制御情報１４６は、コピーデータを識別する識別番号フィールド１４６ａと、保存先の種別を管理する保存先種別フィールド１４６ｂと、有効期限を管理する有効期限フィールド１４６ｃと、ペーストの限度回数を管理する限度回数フィールド１４６ｄとからなる。
【００５４】
図５に示す例では、コピーデータに対して設定されるライフタイム設定として、有効期限および限度回数の両方のフィールドが設けられている。有効期限および限度回数の両方が設定された場合は、例えば、有効期限が到来するか、または限度回数のペーストを行った時点でライフタイムが切れる、という取り扱いとすることができる。また、図５にデータ残存制御情報１４６は、コピーデータを最新のものを先頭（または末尾）とし、新しい順（または古い順）に並べられ、履歴データとしても利用される。
【００５５】
なお、図１および図５に示すように、説明する実施形態では、コピーデータに設定されるライフタイムは、コピーデータとは別のテーブルで管理されるが、特に限定されるものではなく、他の実施形態では、コピーデータに付属させる形式で、揮発性記憶領域１４２または不揮発性記憶領域１４４それぞれにおいて管理されていてもよい。
【００５６】
再び図２を参照すると、ステップＳ１１０では、メッセージ監視部１３２からの次の操作のメッセージを待ち受け、新たなメッセージを取得するまで、または所定時間が経過してタイムアウトするまで（ＮＯの間）、ステップＳ１１０をループする。ステップＳ１１０で、次の操作のメッセージを取得するかタイムアウトすると、ステップＳ１１１へ処理が進められる。ステップＳ１１１では、コピー操作監視部１３４は、続きのコピー操作が行われたか否かを判定する。例えば、コピーに関連しない無関係のイベントが行われたり、タイムアウトであったりする場合、続きのコピー操作が行われなかったと判定される。
【００５７】
ステップＳ１１１で、続きのコピー操作が行われなかったと判定された場合（ＮＯ）には、ステップＳ１１２で、本コピー処理を終了する。一方、ステップＳ１１１で、例えば続けてコピー・キー操作が行われ、当該コピー処理について続きのコピー操作が行われたと判定される場合（ＹＥＳ）には、ステップＳ１０２へ処理をループさせ、続きのコピー操作について解釈を行う。
【００５８】
再びステップＳ１０３を参照すると、ここで、保存先の変更が求められていると解釈される場合（保存先変更）には、ステップＳ１０７では、コピー操作監視部１３４は、現在の保存先から、操作パターンの解釈により特定される保存先へ、コピーデータを移動して、ステップＳ１０８で、保存先の変更に伴うデータ残存制御情報の更新を行う。例えば、図３（Ａ）に示す解釈ルールが適用される場合には、コピー・キー操作が連続して行われると１０回目の操作において、不揮発性記憶領域１４４へ変更さが求められていると解釈される。この場合、ステップＳ１０７で、揮発性記憶領域１４２上のコピーデータが不揮発性記憶領域１４４へ移動され、ステップＳ１０８で、データ残存制御情報１４６の保存先種別が「storage」へ変更される。なお、保存先変更が求められる場合は、当該コピー・キー操作によるメッセージのコピー元アプリケーション１５０ａへの伝達の結果呼び出されるコピーＡＰＩはブロックされる。
【００５９】
ステップＳ１０３で、ライフタイム設定の変更が求められていると解釈される場合（ライフタイム設定変更）には、ステップＳ１０９で、操作パターンの解釈に応じてライフタイム設定を変更して、データ残存制御情報１４６を更新する。例えば、図３（Ａ）に示す解釈ルールが適用される場合には、コピー・キー操作が連続して行われた場合、２〜９回目の各コピー・キー操作毎に、ステップＳ１０９で、ペーストの限度回数が所定量増加される。有効期限が設定されるときは、２〜９回目の各コピー・キー操作毎に、ステップＳ１０９で有効期限を段階的に延長することができる。なお、ライフタイム設定変更が求められる場合は、当該コピー・キー操作によるメッセージのコピー元アプリケーション１５０ａへの伝達の結果呼び出されるコピーＡＰＩはブロックされる。
【００６０】
図６は、本実施形態のコンピュータ装置１００のディスプレイ画面上に表示されるコピー元アプリケーション・ウィンドウを例示する。図６に示すウィンドウ３００は、ドキュメントの内容を編集可能に表示するエディタ・エリア３０２内に、イメージ・オブジェクト３０４が表示され、また、枠３１２で強調表示され、マウスポインタ３１０によりイメージ・オブジェクト３０４が選択されていることが示されている。イメージ・オブジェクト３０４が選択された状態で、例えば１回目のコピー・キー操作が行われると、イメージ・オブジェクト３０４は拡張クリップボード１３０へコピーされる。さらに続けて、コピー・キー操作が行われると、図６においてペーストの限度回数と保存先が記載されたポップアップ表示３１６が表示されているように、限度回数が増加する。その後、他のエリアをクリックするなど、コピー操作とは無関係な操作が行われると、ライフタイムの設定を含む本コピー処理を終了させる。
【００６１】
以下、図７を参照して、ペースト操作時の処理の流れについて、より詳細に説明する。図７は、本発明の実施形態によるコンピュータ装置１００におけるペースト操作監視部１３６が実行する、拡張クリップボードからのペースト処理を示すフローチャートである。図７に示す処理は、ステップＳ２００から開始され、ステップＳ２０１で、ペースト操作監視部１３６は、メッセージ監視部１３２からペースト操作に関連するメッセージを取得する。ステップＳ２０２では、ペースト操作監視部１３６は、操作パターンを解釈する。操作パターンの解釈は、特に限定されるものではないが、図３および図４に示した解釈ルールと同様のものを適用して行うことができる。
【００６２】
なお、説明する実施形態では、Ｗｉｎｄｏｗｓ（登録商標）で一般的な「Ｃｔｒｌ＋Ｖ」のショートカット・キー（以下、ペースト・キー操作という。）を対象とし、「Ｃｔｒｌ」キーを維持したままペースト・キー操作を連続することにより、揮発性記憶領域１４２および不揮発性記憶領域１４４に保管された１以上のコピーデータのうちからペースト候補を選択し、所望のコピーデータが選択されている状態で、ペースト・キー操作を解除することにより、ペースト対象が確定されるものとして説明する。
【００６３】
ステップＳ２０３では、ステップＳ２０２による操作パターンの解釈に従って処理を分岐させる。ステップＳ２０３で、選択操作であると解釈される場合（選択）には、ステップＳ２０４へ処理を進める。ステップＳ２０３で、確定操作であると解釈される場合（確定）には、ステップＳ２０９へ処理を進める。
【００６４】
選択操作の場合、当該ペースト・キー操作によるメッセージのペースト先アプリケーション１５０ｃへの伝達の結果呼び出されるペーストＡＰＩはブロックされる。この場合、ステップＳ２０４で、ペースト操作監視部１３６は、履歴データとして利用されるデータ残存制御情報１４６を参照し、拡張クリップボード１３０へコピーされた最新のもの順にコピーデータを、選択されたペースト候補として設定する。ステップＳ２０５では、ペースト操作監視部１３６は、ペースト候補のコピーデータを、揮発性記憶領域１４２、不揮発性記憶領域１４４および標準クリップボード１２０のうちの対応する保存先から読み込む。
【００６５】
ステップＳ２０６では、ペースト操作監視部１３６は、オーバーレイ表示部１３８に対し読み込んだコピーデータを渡し、コピーデータをペーストする場合におけるプレビューをオーバーレイで描画させる。図８は、本実施形態のコンピュータ装置１００のディスプレイ画面上に表示されるペースト先アプリケーション・ウィンドウを例示する。図８（Ａ）に示すように、エディタ・ウィンドウ中のカーソル位置３２６にて、ペースト・キー操作が行われると、揮発性記憶領域１４２および不揮発性記憶領域１４４の両方に保存される１以上のコピーデータのうちの選択中のペースト候補のデータがオーバーレイ表示され、選択中の内容をユーザに提示する。なお、図８（Ａ）に示す例では、ポップアップ表示３２４で、保存先および残された限度回数が表示される。また、目的のコピーデータを見つけやすいように、オーバーレイ表示部１３８は、図９に示すように現在選択中のペースト候補３４２以外のコピーデータ３４４ａ，３４４ｂをオーバーレイ表示させることもできる。
【００６６】
再び図７を参照すると、ステップＳ２０６の処理が終わると、ステップＳ２０７へ処理が進められる。ステップＳ２０７では、ペースト操作監視部１３６は、次の操作のメッセージを待ち受け、新たなメッセージを取得するまで、または所定時間が経過してタイムアウトするまで（ＮＯの間）、ステップＳ２０７をループする。ステップＳ２０７で、次の操作のメッセージを取得すると、ステップＳ２０８へ処理が進められる。ステップＳ２０８では、ペースト操作監視部１３６は、続きのコピー操作が行われたか否かを判定する。例えば、エスケープ・キーなど処理を中断するキーや、ペースト操作に関連しない無関係の操作が行われたりすると、ペースト操作の続きが行われなかったと判定される。
【００６７】
ステップＳ２０８で、続きのコピー操作が行われなかったと判定された場合（ＮＯ）には、ステップＳ２１４へ処理を分岐させ、本ペースト処理を終了する。一方、ステップＳ２０８で、連続してペースト・キー操作が行われたり、すべてのキーが離されたり、続きのコピー操作が行われたと判定される場合（ＹＥＳ）には、ステップＳ２０２へ処理をループさせ、続きのコピー操作についての解釈を行う。
【００６８】
確定操作である場合、ペースト・キー操作のメッセージが発生し、ペースト先アプリケーション１５０ｃは当該メッセージを受け取り、標準クリップボード１２０からのペーストを指令するコピーＡＰＩコールを発行する。ステップＳ２０３で確定と解釈される場合（確定）、ステップＳ２０９へ処理が進められる。ステップＳ２０９では、ペースト操作監視部１３６は、ペースト先アプリケーション１５０ｃからのコピーＡＰＩコールを検出し、これに応答して、揮発性記憶領域１４２、揮発性記憶領域１４４および標準クリップボード１２０のうちの対応する保存先から読み込んだコピーデータを、ペースト先アプリケーション１５０ｃに渡す。
【００６９】
図８（Ｂ）は、選択されたコピーデータがペーストされた後のペースト先アプリケーション・ウィンドウを例示する。図８（Ｂ）に示すように、ペースト・キー操作が離されて確定操作が行われると、エディタ・ウィンドウ中の従前のカーソル位置にオブジェクト３３２が挿入される。
【００７０】
ステップＳ２１０では、ペースト操作監視部１３６は、当該コピーデータに、限度回数などペースト動作に応じて書き換えを必要とするライフタイム設定がなされている場合、当該ライフタイム設定を減じ、データ残存制御情報１４６を更新する。ステップＳ２１１では、ペーストしたコピーデータを先頭（または最後尾）に移動し、履歴上の最新（または最古）のデータとして取り扱う。ステップＳ２１２では、ペースト操作監視部１３６は、上記ライフタイム設定を減じた結果、残存が不可となったか否かを判定する。ステップＳ２１２で、残存不可と判定された場合（ＹＥＳ）には、ステップＳ２１３へ処理を進める。ステップＳ２１３では、ペースト操作監視部１３６は、データ消去部１４０にその旨を通知し、ペーストが完了したコピーデータを保存先から削除させ、データ残存制御情報１４６から登録を削除させて、ステップＳ２１４で、本ペースト処理を終了する。
【００７１】
以上説明した実施形態によれば、拡張クリップボード１３０に保存されるコピーデータに対して簡単な操作でライフタイムを自在に設定することが可能となる。ライフタイムが切れたコピーデータは、上記データ消去部１４０により順次記憶領域から消去される。したがって、拡張クリップボード１３０中にコピーデータが不用意に残存し、情報漏洩を引き起こしてしまう可能性を好適に低減することができる。
【００７２】
さらに、上記実施形態によれば、揮発性記憶領域１４２に加えて、不揮発性記憶領域１４４が設けられ、これらの共有記憶領域に１または複数のコピーデータが保存可能とされる。そして、保存されたコピーデータは、簡易な操作で選択してアプリケーションへとペーストすることができる。コピーデータの保存先を不揮発性記憶領域１４４にするか、揮発性記憶領域１４２にするかは、簡単な操作により指定することができ、例えば機密性の低いデータは、不揮発性記憶領域１４４に保存することで、コンピュータ装置１００の再起動後も利用できるようになる。つまり、上記実施形態による拡張クリップボード１３０は、データの残存を有効に制限し、セキュリティを向上させつつ、複数のデータを簡便に使い回すことを可能とし、クリップボードの利便性を好適に高めるものということができる。
【００７３】
さらに、アプリケーション独自の機能ではなく、アプリケーション・プロセスに注入される共有ライブラリとして構成することにより、アプリケーションに依存しない形式で拡張されたクリップボード機能を提供することができる。上記共有ライブラリは、コピーＡＰＩおよびペーストＡＰＩを監視し、コピーデータの流れを制御できるため、標準クリップボード１２０へのデータのコピーをブロックし、既存の標準クリップボードを経由した情報漏洩を好適に防止することもできる。
【００７４】
以上説明したように、本発明の実施形態によれば、ユーザの操作性や、クリップボードに代表される共有記憶領域が有する利便性をあまり損なわせず、共有記憶領域におけるデータのライフタイムを有効に制限し、共有記憶領域の利便性・セキュリティを両立させることが可能な情報処理装置、データ複製方法、プログラムおよび記憶媒体を提供することができる。
【００７５】
本発明の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
【００７６】
これまで本発明を、特定の実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７７】
１００…コンピュータ装置、１１０…物理デバイス、１１２…キーボード、１１４…マウス、１２０…標準クリップボード、１２２…メッセージ・キュー、１３０…拡張クリップボード、１３２…メッセージ監視部、１３４…コピー操作監視部、１３６…ペースト操作監視部、１３８…オーバーレイ表示部、１４０…データ消去部、１４２…揮発性記憶領域、１４４…不揮発性記憶領域、１４６…データ残存制御情報、１５０…アプリケーション、２００…解釈ルール、３００，３２０，３３０，３４０…アプリケーション・ウィンドウ、３０２…エディタ・エリア、３０４，３３２…イメージ・オブジェクト、３１０…マウスポインタ、３１２…枠、３１６，３２４，３４６…ポップアップ表示、３２２，３４２…ペースト候補、３２６…カーソル，３４４…他のコピーデータ
【図１】
0005785390.tif 000002
【図２】
0005785390.tif 000003
【図３】
0005785390.tif 000004
【図４】
0005785390.tif 000005
【図５】
0005785390.tif 000006
【図６】
0005785390.tif 000007
【図７】
0005785390.tif 000008
【図８】
0005785390.tif 000009
【図９】
0005785390.tif 000010