(57)【要約】【課題】情報漏洩防止プログラムに関し，クリップボードの利便性を確保しつつ，クリップボードを介したデータの情報漏洩を防止する技術を提供する。【解決手段】アプリケーション１において，扱うデータの保護が必要とされる保護状態でコピーが指示されると，ダミーデータ格納部１０２は，あらかじめ用意されたダミーデータを通常のフォーマット識別情報に対応付けてクリップボード２０に格納する。データ暗号化部１０４は，コピーデータを暗号化し，暗号化データ格納部１０５は，その暗号化データを所定の暗号化データ用のフォーマット識別情報に対応付けてクリップボード２０に格納する。保護状態で貼り付けが指示されると，暗号化データ取得部１０７は，所定の暗号化データ用のフォーマット識別情報を指定してクリップボード２０から暗号化データを取得し，暗号化データ復号部１０８は，その暗号化データを復号する。【選択図】図１
2010055371.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムにおいて扱うデータの保護が必要とされる保護状態と，扱うデータの保護が必要とされない非保護状態とを有し，前記保護状態においてコピーまたは切り取り指示されたデータの情報漏洩を防止する情報漏洩防止プログラムであって，
コンピュータを，
前記保護状態においてデータのコピーまたは切り取りが指示されたときに，コピーまたは切り取りが指示されたデータを暗号化するデータ暗号化部と，
前記暗号化データを，所定の暗号化データ用のフォーマット識別情報に対応付けて，共有メモリ領域に格納する暗号化データ格納部と，
前記保護状態においてデータの貼り付けが指示されたときに，前記暗号化データ用のフォーマット識別情報を指定して，前記暗号化データを前記共有メモリ領域から取得する暗号化データ取得部と，
前記取得された暗号化データを復号する暗号化データ復号部として
機能させるための情報漏洩防止プログラム。
【請求項２】
前記コンピュータを，
前記保護状態においてデータのコピーまたは切り取りが指示されたときに，さらにダミーデータを，前記非保護状態において使用されるフォーマット識別情報に対応付けて，前記共有メモリ領域に格納するダミーデータ格納部として
機能させるための請求項１に記載の情報漏洩防止プログラム。
【請求項３】
前記コンピュータを，
前記非保護状態においてデータの貼り付けが指示されたときに，前記共有メモリ領域に前記暗号化データ用のフォーマット識別情報に対応付けられて暗号化データが格納されている場合，実行プロセスを前記非保護状態から保護状態に移行する非保護／保護状態移行部として
機能させるための請求項１または請求項２に記載された情報漏洩防止プログラム。
【請求項４】
アプリケーションプログラムにおいて扱うデータの保護が必要とされる保護状態と，扱うデータの保護が必要とされない非保護状態とを有し，前記保護状態においてコピーまたは切り取り指示されたデータの情報漏洩を防止する情報漏洩防止方法であって，
コンピュータが，
前記保護状態においてデータのコピーまたは切り取りが指示されたときに，コピーまたは切り取りが指示されたデータを暗号化する過程と，
前記暗号化データを，所定の暗号化データ用のフォーマット識別情報に対応付けて，共有メモリ領域に格納する過程と，
前記保護状態においてデータの貼り付けが指示されたときに，前記暗号化データ用のフォーマット識別情報を指定して，前記暗号化データを前記共有メモリ領域から取得する過程と，
前記取得された暗号化データを復号する過程とを実行する
ことを特徴とする情報漏洩防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，コンピュータシステム内からの秘密情報の漏洩を防止する技術に関するものであり，特に，クリップボードの利便性を失わずに，クリップボードを介した情報の漏洩を防止することが可能となる情報漏洩防止プログラムおよび情報漏洩防止方法に関するものである。
【背景技術】
【０００２】
近年，コンピュータからの秘密情報の漏洩が，大きな社会問題となっている。
【０００３】
個人情報や企業秘密情報などが記録された秘密文書のファイルは，一般的に，コンピュータのファイルシステム上で暗号化によって保護される。このような秘密文書のファイルには，アクセス権が設定され，例えば特定のユーザ以外はアクセスできないように保護されることもある。このように，暗号化などによりデータが保護された文書を，ここでは保護文書と呼ぶ。保護文書で保護されるデータには，文字だけではなく表や図形なども含まれる。
【０００４】
保護文書のファイルは，ファイルシステムへの格納時に暗号化されて格納される。保護文書の閲覧，編集を行うときには，その保護文書に対応するアプリケーションが，暗号化された保護文書のファイルを復号する。保護文書は，そのアプリケーション上でのみ非暗号化の状態で閲覧，編集が可能であり，編集後のファイルシステムへの格納時には再び暗号化される。このような仕組みにより，保護文書からの情報の漏洩が防止されている。
【０００５】
ところが，保護文書の編集を行うときに，クリップボードの使用を認めると，クリップボードを介して秘密情報が漏洩してしまう危険性がある。
【０００６】
アプリケーション上で保護文書が開かれ，編集が行われている状況では，保護文書は暗号化された状態ではない。このとき，保護文書の一部あるいは全部の文章をクリップボードにコピーして他の文書にペーストを行うことを認めると，ペースト先の文書が保護文書でない場合（以下，非保護文書と呼ぶ）に，そのペーストされた秘密情報を含む非保護文書のファイルが，暗号化されずにファイルシステムに格納されてしまう可能性がある。すなわち，暗号化されていない，ペーストされた秘密情報を含む非保護文書のファイルから，秘密情報が漏洩してしまう危険性がある。
【０００７】
ここで，クリップボードについて簡単に説明する。
【０００８】
クリップボードは，ＯＳにより提供される機能であり，複数のアプリケーションからの利用が可能な，コンピュータ上で簡易的にデータを格納する共有メモリ領域である。例えば，ワープロソフト等で文書の編集を行うときなどに，このようなクリップボードを利用したコピー＆ペーストやカット＆ペーストがしばしば行われる。
【０００９】
図１０は，クリップボードの仕組みを説明する図である。図１０（Ａ）は，コピーまたは切り取り（カット）によるクリップボード２０へのデータ格納と，貼り付け（ペースト）によるクリップボード２０からのデータ取得の例を示し，図１０（Ｂ）は，フォーマット番号とフォーマット名との対応情報の例を示す。ここでは，フォーマット番号とフォーマット名との対応情報を，クリップボードフォーマット対応情報２１と呼ぶものとする。フォーマット番号やフォーマット名は，クリップボード２０に格納するデータのフォーマットの識別情報である。
【００１０】
図１０（Ａ）に示すように，クリップボード２０では，データは，そのデータのフォーマットの識別情報との組で格納される。また，１つのデータがコピーまたは切り取りされた場合でも，対応するフォーマットが複数あるときには，そのフォーマットの数だけ，フォーマットの識別情報とデータとの組がクリップボード２０に格納される。
【００１１】
例えば，あるワードプロセッサの文書ファイルから一部の文章がコピーされた場合に，コピー文章のテキストデータ，コピー文章のビットマップデータ，コピー文章のネイティブデータ（制御コードなどを含む，そのワードプロセッサ固有のフォーマットデータ）が，クリップボード２０のテキストデータ，ビットマップデータ，ネイティブデータのそれぞれのフォーマット用に確保された領域に格納される。
【００１２】
クリップボード２０では，図１０（Ａ）に示すように，フォーマットがフォーマット番号で管理される。フォーマット番号は，図１０（Ｂ）に示すように，各フォーマットのフォーマット名に対応している。
【００１３】
図１０（Ｂ）に示すようなフォーマット番号とフォーマット名との対応は，ＯＳ（クリップボード２０）が管理しており，例えばフォーマット番号からフォーマット名を取得するためのＡＰＩ（Application Programming Interface ）や，フォーマット名からフォーマット番号を取得するためのＡＰＩなどが用意されている。クリップボード２０を利用するアプリケーションは，使用するフォーマットのフォーマット名からフォーマット番号を取得し，フォーマット番号でクリップボード２０へのアクセスを行う。
【００１４】
クリップボード２０において，フォーマットには，あらかじめ決められたフォーマットと，ユーザが新たに定義できるフォーマットとがある。例えば，アプリケーションは，テキストデータフォーマットやビットマップデータフォーマットのように，既存のフォーマットを利用し，クリップボード２０へのデータの格納を行うことができる。また，ユーザやアプリケーションが，新たなフォーマットをクリップボード２０に登録して，クリップボード２０へのデータの格納を行うこともできる。
【００１５】
例えば，アプリケーションが新たに使用するフォーマットのフォーマット名を登録すると，クリップボード２０では，登録されたフォーマット名にフォーマット番号が割り当てられる。アプリケーションが割り当てられたフォーマット番号を対応付けてデータの格納を行うと，クリップボード２０では，そのフォーマット番号に対応するデータ格納領域が確保され，その領域にデータが格納される。
【００１６】
クリップボード２０を用いたコピー＆ペーストの簡単な例を説明する。
【００１７】
図１０（Ａ）において，あるアプリケーションのプロセスαにおいて，閲覧／編集中の文書から一部の文章データがコピーされたものとする。また，アプリケーションは，テキストデータ，ビットマップデータ，ネイティブデータ等の複数のデータフォーマットで，クリップボード２０にデータを格納するものとする。このとき，アプリケーションは，図１０（Ｂ）に示すクリップボードフォーマット対応情報２１から，各フォーマットのフォーマット名に対応するフォーマット番号を取得する。アプリケーションは，コピーされた文章データを各フォーマットのデータに変換し，各フォーマットのデータを，各フォーマットのフォーマット番号を対応付けてクリップボード２０に格納する。
【００１８】
ここで，あるアプリケーションのプロセスβにおいて，クリップボード２０に格納された文章データを，閲覧／編集中の文書に貼り付けするものとする。なお，プロセスβは，プロセスαと同じアプリケーションのプロセスであってもよいし，別のアプリケーションのプロセスであってもよい。また，プロセスαとプロセスβとが同じプロセスであってもよい。すなわち，プロセスαにおいてコピーされたデータを，プロセスαで貼り付けしてもよい。
【００１９】
プロセスβにおいて，アプリケーションは，図１０（Ｂ）に示すクリップボードフォーマット対応情報２１から，閲覧／編集中の文書に貼り付けする文章データのフォーマットのフォーマット名に対応するフォーマット番号を取得する。例えば，テキストデータフォーマットで文章データを貼り付けしたい場合には，フォーマット名“TEXT”からフォーマット番号：１を取得する。アプリケーションは，フォーマット番号を指定してクリップボード２０に格納されたデータを取得し，閲覧／編集中の文書に貼り付けする。
【００２０】
このように，クリップボード２０を介することにより，編集中のある文書から編集中の他の文書に，簡単に文章や画像などをコピーすることができる。すなわち，保護文書の編集を行うときにクリップボード２０の使用を認めると，保護文書でコピーされたデータを非保護文書でペーストすることもできるため，クリップボード２０を介して秘密情報が漏洩してしまう可能性がある。
【００２１】
このようなクリップボード２０を介した情報漏洩の対策として，アプリケーションでクリップボード２０の使用を禁止する技術が知られている。
【００２２】
図１１は，アプリケーションでクリップボードの使用を禁止することにより情報漏洩を防止する技術を説明する図である。
【００２３】
図１１に示すように，保護文書αのファイルは，ファイルシステム３上では暗号化され，情報が漏洩しないようになっている。アプリケーションで保護文書αを閲覧／編集する場合には，そのファイルオープン時に復号され，保護文書αの閲覧／編集を行う保護プロセス１５０αにおいて，保護文書αは非暗号化状態となる。
【００２４】
コンピュータシステム内において暗号や持ち出し禁止等でファイルのデータが保護された保護文書を扱うプロセスは，扱うデータの保護が必要とされる保護状態となり，閲覧／編集中の文書の情報を保護する制御が行われる。保護状態となったプロセスでは，例えばファイル出力の制限やファイル出力時の強制暗号化等により，クリップボード２０以外からの情報漏洩がないように制御される。保護文書を扱うことが可能なアプリケーションにおいて，保護文書のファイルをオープンした場合，その保護文書を扱うプロセスは，自動的に保護状態となる。ここでは，保護状態であるプロセスを，保護プロセスと呼ぶものとする。
【００２５】
保護文書αの閲覧／編集を行う保護プロセス１５０αにおいて，クリップボード２０を利用したデータのコピーやカットを許可すると，クリップボード２０から情報が流出してしまう可能性がある。
【００２６】
これを防止するために，アプリケーションやＯＳでクリップボード２０の使用を禁止する技術がある。図１１に示すように，保護プロセス１５０αにおいて，クリップボード２０を利用したデータのコピーや切り取りは，禁止される。
【００２７】
また，保護文書を扱うアプリケーションが，コピーデータやカットデータを暗号化してクリップボードに格納する技術が知られている（例えば，特許文献１参照）。
【００２８】
図１２は，保護文書を扱うアプリケーションがコピーデータを暗号化してクリップボードに格納する技術の例を説明する図である。
【００２９】
図１２に示すように，保護プロセス１５０αにおいて，アプリケーションは，保護文書αからのコピーデータを暗号化してクリップボード２０に格納する。このとき，すべてのアプリケーションまたはプロセスが指定可能な既存のフォーマットで，暗号化データがクリップボード２０に格納される。
【００３０】
保護文書βの閲覧／編集を行う保護プロセス１５０βにおいて，保護文書βへのペーストが指示されたものとする。このときアプリケーションは，クリップボード２０から取得された暗号化データを復号し，保護文書βへのペーストを行う。保護文書βのファイル保存時には，暗号化により保護文書βのファイルからの情報の流出が防止される。
【００３１】
図１２に示す技術では，クリップボード２０の格納データが暗号化された状態となる。すなわち，図１２に示す技術では，クリップボード２０に格納された暗号化データを復号可能なアプリケーションまたはプロセスでのみ，クリップボード２０を介した秘密情報のコピー＆ペーストが可能となる。
【００３２】
秘密情報の取得が許可されていないアプリケーションやプロセスでは，ペーストの指示によりクリップボード２０から暗号化データが得られても，その暗号化データの復号ができないので，編集中の文書に意味のない暗号化データがペーストされるだけである。例えば，テキストデータフォーマットの暗号化データは，既存のテキストデータフォーマットを指定してクリップボード２０から取得できるが，秘密情報の取得が許可されていないアプリケーションやプロセスでは，その暗号化データの復号ができない。
【００３３】
また，メモリからの出力データの前にダミーデータを付加してデータを出力することにより，ダミーデータが付加されたことを知らない第三者が解読できないデータを出力する技術が知られている（例えば，特許文献２参照）。この技術では，メモリに，出力データの前にダミーデータを付加する回路が設けられている。
【００３４】
どのようなダミーデータが付加されているのかを知っているユーザは，そのダミーデータを省いた正規のメモリデータを取得することが可能であるが，どのようなダミーデータが付加されているのかを知らない第三者は，正規のメモリデータの開始位置がわからないため，メモリデータの解析ができない。
【特許文献１】特開２００６−１５５１５５号公報
【特許文献２】特開２０００−１４８５９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００３５】
上述のクリップボード２０の使用を禁止する技術では，クリップボード２０の利便性が得られず，文書の編集を行うのに非常に不便であるという問題がある。
【００３６】
また，上述のコピーデータを暗号化してクリップボードに格納する技術では，秘密情報の取得が許可されていないアプリケーションやプロセスでコピーデータのペーストが行われると，障害が発生する可能性があるという問題がある。
【００３７】
図１３は，保護文書を扱うアプリケーションがコピーデータを暗号化してクリップボードに格納する技術の問題点を説明する図である。
【００３８】
図１３に示すように，保護プロセス１５０αにおいて，アプリケーションは，保護文書αからのコピーデータを暗号化してクリップボード２０に格納する。
【００３９】
非保護文書γの閲覧／編集を行う非保護プロセス１６０γにおいて，非保護文書γへのペーストが指示されたものとする。このときアプリケーションは，フォーマットを指定してクリップボード２０から暗号化データを取得することはできる。しかし，取得された暗号化データを復号できないため，暗号化データがそのまま非保護文書γにペーストされることになる。
【００４０】
コンピュータシステム内においてファイルのデータが保護されていない非保護文書を扱うプロセスは，扱うデータの保護が必要とされない非保護状態となり，閲覧／編集中の文書の情報を保護する制御が行われない。非保護状態となったプロセスでは，例えばファイル出力の制限やファイル出力時の強制暗号化等の情報漏洩防止の制御が，特に行われない。ここでは，非保護状態であるプロセスを，非保護プロセスと呼ぶものとする。
【００４１】
非保護プロセス１６０γにおいてペーストが行われても，無意味な暗号化データがペーストされるだけなので，情報の漏洩は防止される。しかし，クリップボード２０のデータフォーマットと暗号化データとの対応が整合していないため，図１３に示すように，非保護プロセス１６０γではペーストされる暗号化データの意味を理解できず，このことがアプリケーションがフリーズする原因となってしまう可能性がある。
【００４２】
また，上述の出力データの前にダミーデータを付加する技術では，メモリにダミーデータを付加する回路を持たせなくてはならない。この技術をクリップボード２０のセキュリティ技術として応用するためには，メモリやＯＳのクリップボード２０の機能に何らかの手を加える必要がある。
【００４３】
本発明は，上記の問題点の解決を図り，クリップボードの利便性を確保するとともに，クリップボードを介して保護された情報が漏洩されることを防止する技術を提供することを目的とする。
【課題を解決するための手段】
【００４４】
アプリケーションプログラムにおいて扱うデータの保護が必要とされる保護状態と，扱うデータの保護が必要とされない非保護状態とを有する。
【００４５】
保護状態においてコピーまたは切り取り指示されたデータの情報漏洩を防止する情報漏洩防止プログラムは，コンピュータを，保護状態においてデータのコピーまたは切り取りが指示されたときに，コピーまたは切り取りが指示されたデータを暗号化するデータ暗号化部と，暗号化データを所定の暗号化データ用のフォーマット識別情報に対応付けて共有メモリ領域に格納する暗号化データ格納部と，保護状態においてデータの貼り付けが指示されたときに，暗号化データ用のフォーマット識別情報を指定して暗号化データを共有メモリ領域から取得する暗号化データ取得部と，取得された暗号化データを復号する暗号化データ復号部として機能させる。
【００４６】
また，保護状態においてコピーまたは切り取り指示されたデータの情報漏洩を防止する情報漏洩防止方法は，コンピュータが，保護状態においてデータのコピーまたは切り取りが指示されたときに，コピーまたは切り取りが指示されたデータを暗号化する過程と，暗号化データを所定の暗号化データ用のフォーマット識別情報に対応付けて共有メモリ領域に格納する過程と，保護状態においてデータの貼り付けが指示されたときに，暗号化データ用のフォーマット識別情報を指定して暗号化データを共有メモリ領域から取得する過程と，取得された暗号化データを復号する過程とを実行する。
【発明の効果】
【００４７】
保護状態において，所定の暗号化データ用のフォーマット識別情報に対応付けてクリップボード（共有メモリ領域）に暗号化データを格納することにより，所定の暗号化データ用のフォーマット識別情報を指定してクリップボードから暗号化データを取得し，その暗号化データを復号することができる保護状態のプロセスでのみ，保護されたデータの貼り付けを行うことができるので，クリップボードの利便性を確保するとともに，クリップボードを介して保護されたデータが漏洩されることを防止することができる。
【００４８】
また，非保護状態において通常に使用されるフォーマット識別情報に対応付けて暗号化データをクリップボードに格納しないので，暗号化データを復号できないアプリケーションやプロセスで暗号化データを取得し，そのままペーストしてしまうことにより発生する障害を防止することができる。
【００４９】
これらの効果は，メモリや，ＯＳのクリップボードの機能，所定の暗号化データ用のフォーマット識別情報でクリップボードに格納される暗号化データを復号できないアプリケーション等に手を加えなくても，得ることができる。
【００５０】
これらの効果により，アプリケーションで保護文書と非保護文書とを同時に扱い，それらの文書でクリップボードを共有しても，保護文書から非保護文書に情報が漏洩することを防止することが可能となる。
【発明を実施するための最良の形態】
【００５１】
以下，本実施の形態について，図を用いて説明する。
【００５２】
図１は，本実施の形態によるクリップボード情報漏洩防止処理部を備えるアプリケーションの構成例を示す図である。
【００５３】
図１において，アプリケーション１は，コンピュータ（図示省略）が備えるＣＰＵ，メモリ等のハードウェアとソフトウェアプログラムとにより実現され，コピー／切り取り処理部１１，貼り付け処理部１２，クリップボード情報漏洩防止処理部１００を備える。
【００５４】
図１において，クリップボード機能部２は，コンピュータが備えるＯＳ（Operating System）によって提供されるクリップボード機能である。クリップボード機能部２には，複数のアプリケーションによりコピーまたは切り取り（カット）されたデータを格納する共有メモリ領域であるクリップボード２０と，クリップボード２０に格納されるデータのフォーマットのフォーマット番号とフォーマット名との対応情報であるクリップボードフォーマット対応情報２１とが含まれる。フォーマット番号やフォーマット名は，クリップボード２０に格納するデータのフォーマットの識別情報である。
【００５５】
アプリケーション１において，コピー／切り取り処理部１１は，ユーザによる編集中の文書等からのデータのコピーまたは切り取りの指示により，データのコピーまたは切り取りを行う。コピー／切り取り処理部１１によりコピーまたは切り取りされたデータは，クリップボード情報漏洩防止処理部１００を介して，クリップボード２０に格納される。
【００５６】
貼り付け処理部１２は，ユーザによる編集中の文書等へのデータの貼り付け（ペースト）の指示により，データの貼り付けを行う。貼り付け処理部１２により貼り付けられるデータは，クリップボード情報漏洩防止処理部１００を介して，クリップボード２０から取得される。
【００５７】
クリップボード情報漏洩防止処理部１００は，クリップボードの利便性を確保しつつ，クリップボードを介した秘密情報の漏洩を防止する。クリップボード情報漏洩処理部１００は，データ格納部１０１，ダミーデータ格納部１０２，フォーマット登録部１０３，データ暗号化部１０４，暗号化データ格納部１０５，データ取得部１０６，暗号化データ取得部１０７，暗号化データ復号部１０８，非保護／保護状態移行部１０９を備える。
【００５８】
以下の本実施の形態の説明において，保護プロセスと非保護プロセスは，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えるアプリケーション１のプロセスである。図示はしていないが，アプリケーション１は，実行プロセスが保護状態であるか非保護状態であるかの状態管理を行っている。
【００５９】
コンピュータシステム内において暗号や持ち出し禁止等でファイルのデータが保護された保護文書を扱うプロセスは，扱うデータの保護が必要とされる保護状態となる。また，ファイルのデータが保護されていない非保護文書を扱うプロセスは，扱うデータの保護が必要とされない非保護状態となる。ここでは，保護状態であるプロセスを保護プロセスと呼び，非保護状態であるプロセスを非保護プロセスと呼ぶ。保護プロセスでは，例えばファイル出力の制限やファイル出力時の強制暗号化等により，クリップボード２０以外からの情報漏洩がないように制御される。
【００６０】
なお，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えていないアプリケーションは，以下で説明する所定の暗号化データ用のフォーマットを知らず，また所定の暗号化データ用のフォーマット識別情報でクリップボード２０に格納された暗号化データを復号できないので，基本的に非保護プロセスと同様の動作となる。
【００６１】
データ格納部１０１は，非保護プロセスにおいて，コピーまたは切り取りが指示されたデータを，通常のフォーマットの識別情報に対応付けて，クリップボード２０に格納する。
【００６２】
通常のフォーマットとは，非保護プロセスにおいて，すなわち情報の保護を行わない非保護状態において，アプリケーション１がクリップボード２０にデータを格納するときに使用する本来のデータフォーマットである。既存のテキストデータフォーマットやビットマップフォーマット，アプリケーション固有の制御コードが含まれるネイティブデータフォーマットなどが，通常のフォーマットである。通常のフォーマットの識別情報に対応付けられてクリップボード２０に格納されたデータは，保護プロセスでも，非保護プロセスでも，また本実施の形態によるクリップボード情報漏洩防止処理部１００を備えていないアプリケーションでも，取得可能である。
【００６３】
ダミーデータ格納部１０２は，保護プロセスにおいてコピーまたは切り取りが指示されたときに，通常のフォーマットの識別情報に対応付けて，ダミーデータをクリップボード２０に格納する。ダミーデータは，あらかじめ用意しておいてもよいし，生成するようにしてもよい。ダミーデータには，空データも含まれる。
【００６４】
フォーマット登録部１０３は，保護プロセスにおいて，クリップボード２０に，所定の暗号化データ用のフォーマットを登録する。
【００６５】
所定の暗号化データ用のフォーマットは，暗号化データをクリップボード２０に格納するために，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えるアプリケーション１であらかじめ決められたフォーマットである。すなわち，所定の暗号化データ用のフォーマットのフォーマット名は，保護文書からコピーまたは切り取りされたデータの暗号化データをクリップボード２０に格納するアプリケーション１，またクリップボード２０に格納された暗号化データを取得し，復号して保護文書に貼り付けるアプリケーション１が，共通に使用するフォーマット名である。複数のフォーマットの暗号化データをクリップボード２０に格納する場合には，複数の所定の暗号化データ用のフォーマットをあらかじめ決めておく。
【００６６】
所定の暗号化データ用のフォーマット識別情報に対応付けられてクリップボード２０に格納された暗号化データは，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えるアプリケーション１の保護プロセスで取得可能であり，復号可能である。
【００６７】
データ暗号化部１０４は，保護プロセスにおいて，コピーまたは切り取りが指示されたデータを暗号化する。
【００６８】
暗号化データ格納部１０５は，保護プロセスにおいて，データ暗号化部１０４により暗号化されたデータを，所定の暗号化データ用のフォーマット識別情報に対応付けて，クリップボード２０に格納する。
【００６９】
データ取得部１０６は，非保護プロセスにおいて貼り付けが指示されたときに，通常のフォーマットを指定してクリップボード２０からデータを取得する。非保護プロセスでは，所定の暗号化データ用のフォーマットは，指定されない。また，データ取得部１０６は，保護プロセスにおいて，貼り付けが指示されたときに，所定の暗号化データ用のフォーマット識別情報に対応付けられて暗号化データがクリップボード２０に格納されていなければ，通常のフォーマットを指定してクリップボード２０からデータを取得する。
【００７０】
暗号化データ取得部１０７は，保護プロセスにおいて貼り付けが指示されたときに，所定の暗号化データ用のフォーマット識別情報に対応付けられて暗号化データがクリップボード２０に格納されていれば，所定の暗号化データ用のフォーマット識別情報を指定して，クリップボード２０から暗号化データを取得する。
【００７１】
暗号化データ復号部１０８は，暗号化データ取得部１０７により取得された暗号化データを復号する。
【００７２】
非保護／保護状態移行部１０９は，非保護プロセスにおいて貼り付けが指示され，また所定の暗号化データ用のフォーマット識別情報に対応付けられて暗号化データがクリップボード２０に格納されているときに，実行プロセスを保護状態に移行すると判断されれば，実行プロセスを非保護状態から保護状態に移行する。
【００７３】
実行プロセスが非保護状態から保護状態に移行すると，現在の実行プロセスで編集中の非保護文書を保護文書として扱うように，すなわち編集中の文書の情報を保護するように制御が変更される。実行プロセスの状態が非保護状態から保護状態になるため，その実行プロセスは，非保護プロセスから保護プロセスに変わる。
【００７４】
図２は，本実施の形態によるアプリケーションの保護プロセスにおけるクリップボードへのコピーデータの格納を説明する図である。
【００７５】
アプリケーション１の保護プロセス１５において，ユーザによりデータのコピーが指示されると，ダミーデータ格納部１０２は，通常のフォーマットの識別情報に対応付けて，あらかじめ用意されたダミーデータをクリップボード２０に格納する。
【００７６】
例えば，図２において，フォーマット番号：１は通常に利用されるテキストデータのフォーマット識別情報であり，フォーマット番号：２は通常に利用されるビットマップデータのフォーマット識別情報であるものとする。アプリケーション１は，ユーザにより編集中の文書からのデータのコピーが指定されると，そのコピーデータを，テキストデータフォーマットとビットマップデータフォーマットでクリップボード２０に格納するものとする。
【００７７】
このとき，ダミーデータ格納部１０２は，テキストデータフォーマットのダミーデータと，ビットマップデータフォーマットのダミーデータを，それぞれフォーマット番号：１，フォーマット番号：２を指定して，クリップボード２０に格納する。
【００７８】
クリップボード機能部２では，クリップボード２０にフォーマット番号：１，フォーマット番号：２の領域が確保され，それぞれの領域にテキストデータフォーマットのダミーデータ，ビットマップデータフォーマットのダミーデータが格納される。
【００７９】
各フォーマットのダミーデータは，あらかじめ用意して保持しておくようにしてもよいし，自動的に生成するようにしてもよい。ダミーデータは空データであってもよい。なお，ダミーデータは暗号化されていないデータである。
【００８０】
また，アプリケーション１の保護プロセス１５において，ユーザによりデータのコピーが指定されると，フォーマット登録部１０３は，クリップボード２０に所定の暗号化データ用のフォーマットを登録する。例えば，クリップボード２０に独自のフォーマットを登録するＡＰＩがＯＳにより提供されており，新たにフォーマット名を登録すると，自動的にフォーマット番号が割り当てられる。
【００８１】
例えば，図２において，通常のテキストデータフォーマット“TEXT”に対応する所定の暗号化データ用のフォーマットとして，暗号化されたテキストデータのフォーマット“ENCRYPTEDTEXT ”を登録する。クリップボード機能部２では，新たに登録されたフォーマットのフォーマット名に対してフォーマット番号が割り当てられる。ここでは，図２のクリップボードフォーマット対応情報２１に示すように，フォーマット名“ENCRYPTEDTEXT ”にフォーマット番号：ｎが割り当てられたものとする。
【００８２】
なお，所定の暗号化データ用のフォーマットを一度登録してしまえば，システムがリセットされるまで，同じフォーマットの暗号化データをクリップボード２０に格納するたびに新たなフォーマットの登録を行わなくてもよい。
【００８３】
アプリケーション１の保護プロセス１５において，ユーザによりデータのコピーが指定されると，データ暗号化部１０４は，指定されたコピーデータを暗号化する。暗号化データ格納部１０５は，暗号化されたコピーデータを，所定の暗号化データ用のフォーマットのフォーマット番号で，クリップボード２０に格納する。
【００８４】
例えば，図２において，データ暗号化部１０４は，指定されたテキストデータフォーマットのコピーデータを暗号化する。暗号化データ格納部１０５は，フォーマット番号：ｎを指定して，暗号化されたコピーデータをクリップボード２０に格納する。
【００８５】
クリップボード機能部２では，クリップボード２０にフォーマット番号：ｎの領域が確保され，その領域に暗号化されたコピーデータが格納される。
【００８６】
なお，複数のフォーマットの暗号化データをクリップボード２０に格納する場合には，それぞれの所定の暗号化データ用のフォーマットを登録し，それぞれ対応する所定の暗号化データ用のフォーマットを指定して各暗号化データをクリップボード２０に格納する。例えば，テキストデータフォーマットの暗号化データとビットマップデータフォーマットの暗号化データをクリップボード２０に格納する場合には，テキストデータフォーマットに対応する所定の暗号化データ用のフォーマットと，ビットマップデータフォーマットに対応する所定の暗号化データ用のフォーマットとを登録し，それぞれの所定の暗号化データ用のフォーマット識別情報を指定して，テキストデータフォーマットの暗号化データとビットマップデータフォーマットの暗号化データをクリップボード２０に格納する。
【００８７】
このように，保護プロセス１５において，ユーザによりデータのコピーが指定された場合に，通常のフォーマットではダミーデータをクリップボード２０に格納し，指定されたコピーデータについては，クリップボード２０に所定の暗号化データ用のフォーマットを登録し，コピーデータを暗号化し，暗号化されたコピーデータを所定の暗号化データ用のフォーマットでクリップボード２０に格納する。
【００８８】
なお，ここでは保護プロセス１５におけるデータのコピーについての例を説明しているが，保護プロセス１５におけるデータの切り取り（カット）についても同様となる。
【００８９】
図３は，本実施の形態のアプリケーションによるクリップボードからのコピーデータの取得を説明する図である。図３に示す例は，図２において，保護プロセス１５でクリップボード２０に格納されたコピーデータを，保護プロセス１５，非保護プロセス１６のそれぞれにおいて，貼り付けする場合の例である。
【００９０】
アプリケーション１の保護プロセス１５において，ユーザによりデータの貼り付けが指示されると，暗号化データ取得部１０７は，所定の暗号化データ用のフォーマット識別情報で暗号化データがクリップボード２０に格納されていれば，その格納された暗号化データを取得する。暗号化データ復号部１０８は，取得された暗号化データを復号する。
【００９１】
例えば，図３において，暗号化データ取得部１０７は，クリップボード機能部２から，フォーマット名“ENCRYPTEDTEXT ”に対応するフォーマット番号を取得する。ここでは，図３のクリップボードフォーマット対応情報２１に示すように，フォーマット名“ENCRYPTEDTEXT ”に対応付けられたフォーマット番号：ｎが得られる。フォーマット名に対応するフォーマット番号を取得するＡＰＩがＯＳにより提供されている。
【００９２】
暗号化データ取得部１０７は，フォーマット番号：ｎを指定してクリップボード機能部２にデータの取得を要求し，クリップボード２０から，フォーマット番号：ｎに対応付けられて格納されている暗号化されたコピーデータを取得する。
【００９３】
暗号化データ復号部１０８は，暗号化されたコピーデータを復号する。なお，暗号化データ復号部１０８は，実行プロセスが保護状態である場合にのみ，すなわち保護プロセス１５でのみ暗号化データの復号を行う。保護プロセス１５において，復号されたコピーデータの貼り付けが行われる。
【００９４】
アプリケーション１の非保護プロセス１６において，ユーザによりデータの貼り付けが指示されると，データ取得部１０６は，通常のフォーマット識別情報に対応付けられて格納されたデータを取得する。
【００９５】
例えば，図３において，データ取得部１０６は，テキストデータの貼り付けが行われる場合には，通常のテキストデータフォーマットのフォーマット番号：１に対応付けられて格納されたテキストデータを，ビットマップデータの貼り付けが行われる場合には，通常のビットマップデータフォーマットのフォーマット番号：２に対応付けられて格納されたビットマップデータを，クリップボード２０から取得する。
【００９６】
ところが，図３に示すように，クリップボード２０のフォーマット番号：１やフォーマット番号：２に対応付けられて格納されたデータはダミーデータであるので，データ取得部１０６は，ダミーデータしか取得できない。非保護プロセス１６において，ダミーデータの貼り付けが行われる。ダミーデータは，暗号化されていない通常のフォーマットのデータであるので，暗号化データの貼り付けによるフリーズの可能性はない。
【００９７】
このように，保護プロセス１５においてクリップボード２０に格納された暗号化コピーデータは，保護プロセス１５でのみ所定の暗号化データ用のフォーマット識別情報を指定して取得可能であり，非保護プロセス１６では取得できず，取得された暗号化コピーデータの復号も保護プロセス１５でのみ行われる。また，保護プロセス１５においてクリップボード２０にコピーデータが格納されているときに，非保護プロセス１６で貼り付けが指示された場合でも，クリップボード２０からは通常のフォーマットの暗号化されていないダミーデータが取得されるため，情報の漏洩を防止しながらも，暗号化データの強引な貼り付けによるフリーズを防止することができる。
【００９８】
なお，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えていないアプリケーションでは，所定の暗号化データ用のフォーマット識別情報を指定してクリップボード２０から暗号化データを取得する手段を持たないため，上記の非保護プロセス１６におけるデータの貼り付けと同様に，通常のフォーマットの暗号化されていないダミーデータが取得される。
【００９９】
また，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えていないアプリケーションが，クリップボード２０の所定の暗号化データ用のフォーマットの領域から暗号化データを取得したとしても，暗号化データを復号する鍵を持たないため，クリップボード２０を介した情報の漏洩が防止される。
【０１００】
また，ここでは保護プロセス１５においてクリップボード２０に格納されたコピーデータの取得の例を説明しているが，保護プロセス１５においてクリップボード２０に格納された切り取り（カット）データの取得についても同様となる。
【０１０１】
図４は，本実施の形態によるアプリケーションの保護プロセスでデータコピーが行われた場合の具体例を示す図である。
【０１０２】
ファイルシステム３において，保護文書ａのファイルは，その情報を保護するために暗号化された状態である。保護文書ａのファイルは，保護文書ａの閲覧／編集が行われる場合に，アプリケーション１において保護状態でオープンされ，このときに復号される。保護文書ａのファイルがクローズされるときには，再び暗号化される。すなわち，保護文書ａは，ファイルシステム３上では暗号化された状態であり，文書の情報が保護された保護プロセス１５ａでの閲覧／編集時にのみ非暗号化の状態となる。
【０１０３】
また，保護文書ｂも保護文書ａと同様であり，文書の情報が保護された保護プロセス１５ｂでの閲覧／編集時にのみ非暗号化の状態となる。
【０１０４】
なお，保護プロセス１５ａと保護プロセス１５ｂとは，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えた，同じアプリケーション１で実行されるプロセスであってもよいし，それぞれが本実施の形態によるクリップボード情報漏洩防止処理部１００を備えた，異なるアプリケーション１で実行されるプロセスであってもよい。
【０１０５】
アプリケーション１の非保護プロセス１６ｃでは，文書の情報が保護されていない非保護文書ｃの閲覧／編集が行われる。図４では省略されているが，非保護文書ｃファイルは，ファイルシステム３上でも暗号化されないものとする。
【０１０６】
アプリケーション１の保護プロセス１５ａにおいて，閲覧／編集中の保護文書ａの一部文章のコピーが指示されたものとする。このとき，通常のテキストデータフォーマット（フォーマット番号：１）のダミーデータが，クリップボード２０に平文で格納される。また，コピー指示された一部文章のテキストデータ（コピーデータ）が，暗号化され，所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられてクリップボード２０に格納される。すなわち，コピーデータは，クリップボード２０に暗号文で格納される。
【０１０７】
アプリケーション１の保護プロセス１５ｂにおいて，閲覧／編集中の保護文書ｂにクリップボード２０に格納されたコピー文章（テキストデータ）の貼り付けが指示されたものとする。このとき，クリップボード２０には，所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられたコピーデータ（暗号文）が格納されているので，そのデータが取得される。取得されたコピーデータ（暗号文）が復号されて得られたコピー文章が，保護文書ｂに貼り付けされる。
【０１０８】
なお，保護文書ｂは，情報が保護される文書であるので，クローズ時に暗号化される。すなわち，ファイルシステム３上では，保護文書ｂのファイルは暗号化されている。
【０１０９】
アプリケーション１の非保護プロセス１６ｃにおいて，閲覧／編集中の保護文書ｃにクリップボード２０に格納されたコピー文章（テキストデータ）の貼り付けが指示されたものとする。このとき，非保護プロセス１６ｃでは，クリップボード２０の所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられたデータの取得が許可されていないので，クリップボード２０の通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたデータが取得される。取得された通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたデータはダミーデータであるので，非保護文書ｃにはダミーデータが貼り付けされる。
【０１１０】
このように，保護プロセス１５でクリップボード２０に格納されたデータは，保護プロセス１５でのみ取得，復号，貼り付けが可能である。非保護プロセス１６では，平文のダミーデータが取得され，貼り付けされるので，クリップボード２０を介した情報の漏洩が防止され，かつ暗号化データの強引な貼り付けによるアプリケーションのフリーズが防止される。
【０１１１】
なお，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えていないアプリケーションでは，非保護プロセス１６と同様に，クリップボード２０の通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたデータが取得されるので，ダミーデータが取得され，貼り付けされる。すなわち，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えていないアプリケーションでも，クリップボード２０を介した情報の漏洩が防止され，かつ暗号化データの強引な貼り付けによるアプリケーションのフリーズが防止される。
【０１１２】
また，保護文書のデータは，保護プロセス１５における閲覧／編集中以外では暗号化された状態であるので，ファイルシステム３上の暗号化された保護文書のファイルや，クリップボード２０に格納された暗号化データが流出しても，それらを復号する鍵が流出しなければ，そこから情報が漏洩することはない。
【０１１３】
図５は，本実施の形態によるアプリケーションの非保護プロセスでデータコピーが行われた場合の具体例を示す図である。
【０１１４】
アプリケーション１の非保護プロセス１６ｄでは，文書の情報が保護されていない非保護文書ｄの閲覧／編集が行われる。非保護文書ｄは，文書の情報を保護する必要がないので，ファイルシステム３上でも暗号化されない。
【０１１５】
また，非保護文書ｆも，非保護文書ｄと同様に，文書の情報が保護されない非保護プロセス１６ｆで閲覧／編集される文書である。
【０１１６】
アプリケーション１の保護プロセス１５ｅでは，文書の情報が保護された保護文書ｅの閲覧／編集が行われる。保護文書ｅは，文書の情報が保護された保護プロセス１５ｅでの閲覧／編集時にのみ非暗号化の状態となる。図５では省略されているが，保護文書ｅのファイルは，ファイルシステム３上で暗号化されるものとする。
【０１１７】
アプリケーション１の非保護プロセス１６ｄにおいて，閲覧／編集中の非保護文書ｄの一部文章のコピーが指示されたものとする。このとき，通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたコピーデータが，クリップボード２０に平文で格納される。非保護プロセス１６では，ダミーデータや暗号化データのクリップボード２０への格納は行われない。
【０１１８】
アプリケーション１の保護プロセス１５ｅにおいて，閲覧／編集中の保護文書ｅにクリップボード２０に格納されたコピー文章（テキストデータ）の貼り付けが指示されたものとする。このとき，クリップボード２０には，所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられたコピーデータ（暗号文）が格納されていないので，通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたコピーデータ（平文）が取得され，そのコピー文章が保護文書ｅに貼り付けされる。
【０１１９】
アプリケーションの非保護プロセス１６ｆにおいて，閲覧／編集中の非保護文書ｆにクリップボード２０に格納されたコピー文章（テキストデータ）の貼り付けが指示されたものとする。このとき，非保護プロセス１６ｆでは，クリップボード２０の通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたコピーデータ（平文）が取得され，そのコピー文章が非保護文書ｆに貼り付けされる。
【０１２０】
このように，非保護プロセス１６でクリップボード２０に格納されたデータは，保護プロセス１５であっても非保護プロセス１６であっても，従来と同様に取得され，貼り付けされる。すなわち，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えたアプリケーション１を用いても，クリップボード２０の利便性は損なわれない。
【０１２１】
図６は，本実施の形態によるアプリケーションの保護プロセスでデータコピーが行われ，非保護プロセスでコピーデータの貼り付けが行われる例を説明する図である。
【０１２２】
図６において，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えたアプリケーション１で実行される保護プロセス１５によって，通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたダミーデータ（非暗号化）と，所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられたコピーデータ（暗号化）とが，クリップボード２０に格納されているものとする。
【０１２３】
非保護文書ｇの閲覧／編集を行う非保護プロセス１６ｇ，非保護文書ｈの閲覧／編集を行う非保護プロセス１６ｈは，本実施の形態によるクリップボード情報漏洩防止処理部１００を備えたアプリケーション１で実行される非保護プロセス１６である。
【０１２４】
保護プロセス１５により格納されたデータがクリップボード２０に存在するときに，非保護プロセス１６においてデータの貼り付けが指示された場合には，２通りの対処が考えられる。
【０１２５】
１つ目は，前述したように，クリップボード２０の通常のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたダミーデータを取得し，非保護文書にダミーデータを貼り付けするパターンである。
【０１２６】
図６において，非保護プロセス１６ｇでは，所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられたコピーデータ（暗号化）が取得されず，クリップボード２０のテキストデータフォーマットの識別情報（フォーマット番号：１）に対応付けられたダミーデータ（非暗号化）が取得され，そのダミーデータが非保護文書ｇに貼り付けされる。
【０１２７】
２つ目は，貼り付け先の非保護文書を保護文書にして，所定の暗号化データ用のフォーマット（フォーマット番号：ｎ）のコピーデータ（暗号化）の貼り付けを行うパターンである。このとき，非保護状態から保護状態への実行プロセスの状態の移行が行われる。
【０１２８】
アプリケーション１の非保護プロセス１６ｈにおいて，データの貼り付けが指示されたものとする。このとき，クリップボード２０には，所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられたコピーデータ（暗号化）が格納されているので，非保護プロセス１６ｈを実行するアプリケーション１の非保護／保護状態移行部１０９は，実行プロセスの状態を，非保護状態から保護状態に移行する。すなわち，実行プロセスが保護プロセス１５ｈ’となり，閲覧／編集中の非保護文書ｈは，情報が保護された保護文書ｈ’となる。
【０１２９】
アプリケーション１の保護プロセス１５ｈ’において，クリップボード２０に格納された所定の暗号化データ用のフォーマット識別情報（フォーマット番号：ｎ）に対応付けられたコピーデータ（暗号化）が取得される。取得されたコピーデータ（暗号化）が復号されて得られたコピー文章が，保護文書ｈ’に貼り付けされる。保護文書ｈ’は，情報が保護される文書であるので，クローズ時には暗号化され，ファイルシステム３上では保護文書ｈ’のファイルが暗号化された状態となる。
【０１３０】
実行プロセスの状態を非保護状態から保護状態に移行するか否かの判断は，例えば，“常時移行する”，“ユーザに指示を仰ぐ”などの様々な設計が可能である。例えば，“ユーザに指示を仰ぐ場合”に，移行すると指示されたときには非保護状態から保護状態への移行を行い，移行しないと指示されたときには上述のダミーデータの取得を行うなどの設計が可能である。
【０１３１】
実行プロセスの状態を非保護状態から保護状態に移行して，クリップボード２０に格納された所定の暗号化データ用のフォーマット識別情報に対応付けられた暗号化データを取得し，復号して貼り付けを行うことにより，暗号化データを強引に貼り付けしてアプリケーションがフリーズすることを防ぐことができる。
【０１３２】
このように，保護プロセス１５により格納されたデータがクリップボード２０に存在するときに，非保護プロセス１６においてデータの貼り付けが指示された場合には，ダミーデータを貼り付けする手法や，実行プロセスの状態を非保護状態から保護状態に移行する手法などがある。いずれの手法でも，情報の漏洩を防止しながらも，クリップボード２０の利便性は失われない。
【０１３３】
図７は，本実施の形態のアプリケーションによるコピー／カット時の処理フローチャートである。
【０１３４】
アプリケーション１の実行中に，ユーザによるデータのコピーまたはカットの操作があれば（ステップＳ１０のＹＥＳ），現在の実行プロセスが保護プロセスであるか，すなわち現在の実行プロセスの状態が保護状態であるかを確認する（ステップＳ１１）。
【０１３５】
現在の実行プロセスが保護プロセスであれば（ステップＳ１１のＹＥＳ），非保護プロセスで使用される通常のフォーマット識別情報に対応付けて，ダミーデータをクリップボード２０に格納する（ステップＳ１２）。このとき，テキストデータ，ビットマップデータ，そのアプリケーション１のネイティブデータなどの複数のフォーマットで，ダミーデータをクリップボード２０に格納するようにしてもよい。
【０１３６】
クリップボード２０に所定の暗号化データ用のフォーマットを登録する（ステップＳ１３）。ユーザに指定されたコピーデータまたはカットデータを暗号化し（ステップＳ１４），暗号化されたコピーデータまたはカットデータを，所定の暗号化データ用のフォーマット識別情報に対応付けて，クリップボード２０に格納する（ステップ１５）。このとき，テキストデータ，ビットマップデータ，そのアプリケーション１のネイティブデータなどの複数のフォーマットに対応する所定の暗号化データ用のフォーマットをそれぞれクリップボード２０に登録し，コピーデータまたはカットデータをそれぞれのフォーマットに変換して暗号化し，それぞれ該当する所定の暗号化データ用のフォーマット識別情報に対応付けて，クリップボード２０に格納するようにしてもよい。
【０１３７】
現在の実行プロセスが保護プロセスでなければ（ステップＳ１１のＮＯ），すなわち現在の実行プロセスの状態が非保護状態（実行プロセスが非保護プロセス）であれば，非保護プロセスで使用される通常のフォーマット識別情報に対応付けて，ユーザに指定されたコピーデータまたはカットデータを，クリップボード２０に格納する（ステップＳ１６）。このとき，コピーデータまたはカットデータを，テキストデータ，ビットマップデータ，そのアプリケーション１のネイティブデータなどの複数のフォーマットにそれぞれ変換し，それぞれ該当するフォーマット識別情報に対応付けてクリップボード２０に格納するようにしてもよい。
【０１３８】
図８，図９は，本実施の形態のアプリケーションによるペースト時の処理フローチャートである。
【０１３９】
アプリケーション１の実行中に，ユーザによるデータのペーストの操作があれば（ステップＳ２０のＹＥＳ），現在の実行プロセスが保護プロセスであるか，すなわち現在の実行プロセスの状態が保護状態であるかを確認する（ステップＳ２１）。
【０１４０】
現在の実行プロセスが保護プロセスであれば（ステップＳ２１のＹＥＳ），クリップボード２０に所定の暗号化データ用のフォーマット識別番号に対応付けられたデータがあるかを確認する（ステップＳ２２）。
【０１４１】
クリップボード２０に所定の暗号化データ用のフォーマット識別情報に対応付けられたデータがあれば（ステップＳ２２のＹＥＳ），所定の暗号化データ用のフォーマット識別情報を指定して，クリップボード２０から暗号化データ（暗号化されたコピーデータまたはカットデータ）を取得し（ステップＳ２３），取得された暗号化データを復号し（ステップＳ２４），復号されたデータをペーストする（ステップＳ２５）。
【０１４２】
クリップボード２０に所定の暗号化データ用のフォーマット識別情報に対応付けられたデータがなければ（ステップＳ２２のＮＯ），非保護プロセスで使用される通常のフォーマット識別情報を指定して，クリップボード２０からデータを取得し（ステップＳ２６），取得されたデータをペーストする（ステップＳ２７）。
【０１４３】
現在の実行プロセスが保護プロセスでなければ（ステップＳ２１のＮＯ），すなわち現在の実行プロセスの状態が非保護状態（実行プロセスが非保護プロセス）であれば，クリップボード２０に所定の暗号化データ用のフォーマット識別情報に対応付けられたデータがあるかを確認する（ステップＳ２８）。
【０１４４】
クリップボード２０に所定の暗号化データ用のフォーマット識別情報に対応付けられたデータがあれば（ステップＳ２８のＹＥＳ），現在の実行プロセスの状態を非保護状態から保護状態に移行するかを確認する（ステップＳ２９）。この実行プロセスの状態移行の確認は，ユーザに対する確認でもよいし，所定のポリシに対する確認でもよい。
【０１４５】
実行プロセスの状態を保護状態に移行する場合には（ステップＳ２９のＹＥＳ），現在の実行プロセスの状態を非保護状態から保護状態に移行し（ステップＳ３０），所定の暗号化データ用のフォーマット識別情報を指定して，クリップボード２０から暗号化データ（暗号化されたコピーデータまたはカットデータ）を取得し（ステップＳ３１），取得された暗号化データを復号し（ステップＳ３２），復号されたデータをペーストする（ステップＳ３３）。
【０１４６】
クリップボード２０に所定の暗号化データ用のフォーマット識別情報に対応付けられたデータがなかった場合（ステップＳ２８のＮＯ），また，実行プロセスの状態を保護状態に移行しない場合には（ステップＳ２９のＮＯ），非保護プロセスで使用される通常のフォーマット識別情報を指定して，クリップボード２０からデータを取得し（ステップＳ３４），取得されたデータをペーストする（ステップＳ３５）。
【０１４７】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【０１４８】
例えば，本実施の形態では，保護プロセスにおいてコピーまたはカットが指示された場合に，通常のフォーマット識別情報に対応付けてクリップボード２０へのダミーデータの格納を行っているが，通常のフォーマット識別情報に対応付けたダミーデータの格納を行わないようにしてもよい。
【０１４９】
アプリケーションやＯＳの仕様によって，データのペーストが指示されたときに，通常のフォーマットから所定順に各フォーマットのデータの存在を確認し，最初に存在が確認されたデータをクリップボード２０から取得するものがある。この場合，クリップボード２０に通常のフォーマットが指定されたデータが存在しなければ，非保護プロセスにおいても，所定の暗号化データ用のフォーマットが指定された暗号化データがクリップボード２０から取得されてしまう可能性がある。
【０１５０】
このような場合でも，通常のフォーマット識別情報に対応付けてクリップボード２０にダミーデータが格納されていれば，非保護プロセスにおいてデータのペーストが指示されたときにダミーデータがまず取得されるため，所定の暗号化データ用のフォーマット識別情報に対応付けられた暗号化データが，非保護プロセスにおいてクリップボード２０から取得されることを防止できる。
【図面の簡単な説明】
【０１５１】
【図１】本実施の形態によるクリップボード情報漏洩防止処理部を備えるアプリケーションの構成例を示す図である。
【図２】本実施の形態によるアプリケーションの保護プロセスにおけるクリップボードへのコピーデータの格納を説明する図である。
【図３】本実施の形態のアプリケーションによるクリップボードからのコピーデータの取得を説明する図である。
【図４】本実施の形態によるアプリケーションの保護プロセスでデータコピーが行われた場合の具体例を示す図である。
【図５】本実施の形態によるアプリケーションの非保護プロセスでデータコピーが行われた場合の具体例を示す図である。
【図６】本実施の形態によるアプリケーションの保護プロセスでデータコピーが行われ，非保護プロセスでコピーデータの貼り付けが行われる例を説明する図である。
【図７】本実施の形態のアプリケーションによるコピー／カット時の処理フローチャートである。
【図８】本実施の形態のアプリケーションによるペースト時の処理フローチャートである。
【図９】本実施の形態のアプリケーションによるペースト時の処理フローチャートである。
【図１０】クリップボードの仕組みを説明する図である。
【図１１】アプリケーションでクリップボードの使用を禁止することにより情報漏洩を防止する技術を説明する図である。
【図１２】保護文書を扱うアプリケーションがコピーデータを暗号化してクリップボードに格納する技術の例を説明する図である。
【図１３】保護文書を扱うアプリケーションがコピーデータを暗号化してクリップボードに格納する技術の問題点を説明する図である。
【符号の説明】
【０１５２】
１  アプリケーション
１１  コピー／切り取り処理部
１２  貼り付け処理部
１００  クリップボード情報漏洩防止処理部
１０１  データ格納部
１０２  ダミーデータ格納部
１０３  フォーマット登録部
１０４  データ暗号化部
１０５  暗号化データ格納部
１０６  データ取得部
１０７  暗号化データ取得部
１０８  暗号化データ復号部
１０９  非保護／保護状態移行部
２  クリップボード機能部
２０  クリップボード
２１  クリップボードフォーマット対応情報
【図１】
2010055371.tif 000003
【図２】
2010055371.tif 000004
【図３】
2010055371.tif 000005
【図４】
2010055371.tif 000006
【図５】
2010055371.tif 000007
【図６】
2010055371.tif 000008
【図７】
2010055371.tif 000009
【図８】
2010055371.tif 000010
【図９】
2010055371.tif 000011
【図１０】
2010055371.tif 000012
【図１１】
2010055371.tif 000013
【図１２】
2010055371.tif 000014
【図１３】
2010055371.tif 000015