(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-27
(54)【発明の名称】データ難読化
(51)【国際特許分類】
G06F 40/151 20200101AFI20240820BHJP
【FI】
G06F40/151
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024504506
(86)(22)【出願日】2022-07-29
(85)【翻訳文提出日】2024-03-15
(86)【国際出願番号】 EP2022071384
(87)【国際公開番号】W WO2023012069
(87)【国際公開日】2023-02-09
(32)【優先日】2021-08-05
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】516005083
【氏名又は名称】ブルー プリズム リミテッド
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】ジャン,デ
(72)【発明者】
【氏名】ダッバ,クリシュナ サンディープ レディ
【テーマコード(参考)】
5B109
【Fターム(参考)】
5B109QB14
(57)【要約】
本発明は、機密データを不明瞭化するためのコンピュータ実装方法に関する。本方法は、プロセッサによって、画像データを取得することと、プロセッサによって、画像データから構造化データを抽出することであって、構造化データは、機密データであり、定義された機能的フォーマット及び定義された視覚的フォーマットを有することと、プロセッサによって、構造化データとは異なる人工データを生成することであって、人工データは、構造化データと同じ機能的フォーマットを有することと、プロセッサによって、構造化データが人工データに置換された画像データに基づいて人工画像データを生成することであって、人工データは、構造化データの視覚的フォーマットに基づいていることと、プロセッサによって、人工画像データを出力することとを含む。
【選択図】
図5
【特許請求の範囲】
【請求項1】
機密データを不明瞭化するためのコンピュータ実装方法において、
プロセッサによって、画像データを取得することと、
前記プロセッサによって、前記画像データから構造化データを抽出することであって、前記構造化データは、機密データであり、定義された機能的フォーマット及び定義された視覚的フォーマットを有することと、
前記プロセッサによって、前記構造化データとは異なる人工データを生成することであって、前記人工データは、前記構造化データと同じ機能的フォーマットを有することと、
前記プロセッサによって、前記構造化データが前記人工データに置換された前記画像データに基づいて前記人工画像データを生成することであって、前記人工データは、前記構造化データの前記視覚的フォーマットに基づいていることと、
前記プロセッサによって、前記人工画像データを出力することと、
を含む方法。
【請求項2】
請求項1に記載の方法において、前記人工画像データは、前記構造化データと同じ視覚的フォーマットを有する方法。
【請求項3】
請求項1又は請求項2に記載の方法において、前記画像データから構造化データを抽出することは、
前記画像データに対して光学式文字認識を実行し、前記画像データ内のテキストを識別することと、
前記テキスト内の構造化データを識別することと、
前記構造化データに対応する前記画像データ内の1つ又は複数のバウンディングボックスを決定することと、
前記1つ又は複数のバウンディングボックスを使用して、前記画像データから1つ又は複数の画像部分を抽出することと、
を含む方法。
【請求項4】
請求項3に記載の方法において、前記人工画像データを生成することは、
前記1つ又は複数の画像部分における前記構造化データの前記視覚的フォーマットを識別することと、
前記1つ又は複数の画像部分における前記構造化データの前記視覚的フォーマットに基づいて、前記1つ又は複数の画像部分に対応する1つ又は複数の人工画像部分を生成することと、
前記画像データを変更して、前記1つ又は複数の画像部分を前記1つ又は複数の人工画像部分に置換することと、
を含む方法。
【請求項5】
請求項1から請求項4のいずれか一項に記載の方法において、前記定義された機能的フォーマットは、
エンティティタイプ、及び
エンティティタイプフォーマットのうちの1つ又は複数を含む方法。
【請求項6】
請求項1から請求項5のいずれか一項に記載の方法において、前記定義された視覚的フォーマットは、
テキスト長、
テキストフォント、
テキスト色、及び
背景色のうちの1つ又は複数を含む方法。
【請求項7】
請求項1から請求項6のいずれか一項に記載の方法において、前記人工データを生成することは、
前記構造化データの機能的フォーマットを識別することと、
前記画像から抽出された前記構造化データを一覧化することと、
前記構造化データの前記機能的フォーマットに基づいて人工データを生成することと、
前記人工データを、前記対応する構造化データと共に一覧化することと、
を含む方法。
【請求項8】
請求項7に記載の方法において、更に、前記一覧化された構造化データ及び前記一覧化された人工データを編集可能な表として出力することを含む方法。
【請求項9】
請求項8に記載の方法において、更に前記人工画像データを生成する前に、前記人工データを確認するためのプロンプトをオペレータに送信することを含む方法。
【請求項10】
請求項7から請求項9のいずれか一項に記載の方法において、更に、第2の画像データを取得することと、前記第2の画像データから第2の構造化データを抽出することと、前記第2の構造化データとは異なる第2の人工データを生成することとを含み、前記第2の構造化データが前記構造化データと同一である場合、前記第2の人工データは前記人工データと同一である方法。
【請求項11】
請求項1から請求項10のいずれか一項に記載の方法において、前記人工画像データは、前記機密データを使用するソフトウェアの開発プロセス中にディスプレイに出力される方法。
【請求項12】
請求項11に記載の方法において、前記ディスプレイは、前記プロセッサとは異なるコンピュータに属する方法。
【請求項13】
請求項11又は請求項12に記載の方法において、前記ソフトウェアは、ロボットプロセス自動化(RPA)プロセスである方法。
【請求項14】
リモートアクセスアプリケーションを介して受信された機密データがオペレータに出力されることを防止するコンピュータ実装方法において、
リモートアクセスアプリケーションを介してサーバから、前記リモートサーバ上で実行されているソフトウェアアプリケーションのグラフィカルユーザインタフェースを受信することと、
請求項1から請求項13のいずれか一項に記載の方法に基づいて、前記グラフィカルユーザインタフェースを変更して機密データを削除することと、
前記変更されたグラフィカルユーザインタフェースを、オペレータが受信するための、コンピュータの1つ又は複数の出力周辺機器に出力することと、
を含む方法。
【請求項15】
プロセッサによって実行されると、前記プロセッサに請求項1から請求項14のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
【請求項16】
請求項1から請求項14のいずれか一項に記載の方法を実行するように構成されたプロセッサを含むコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機密データを不明瞭化するためのコンピュータ実装方法、コンピュータプログラム及びコンピュータシステムに関する。
【背景技術】
【0002】
データの再編集(redaction)は、データの機密性が高い内容(sensitive content)、すなわち認知的内容(cognitive content)を露出させないように、機密データを視覚的に削除又は置換する処理である。例えば、
図1Aに示す画像には、日付及び/又は時刻、ドメイン名、電子メールアドレス、氏名、電話番号等、様々な種類の機密データが含まれている。このデータの機密内容は、特定の日付及び/又は時刻(Mon 22/02/2021 10:28; 1.5 hrs)、特定のドメイン名(www.blueprism.com)、特定の電子メールアドレス(Ben.Carter@blueprism.com)等である。データ再編集とは、このデータを視覚的に除去又は置換する処理である。
【0003】
データ再編集を行う理由は、再編集されたデータが共有されるとき、再編集されたデータを受け取った当事者が機密性が高い内容を収集できないようにするためである。機密データの侵害は、機密データの偶発的又は違法な破壊、紛失、改ざん、機密データの不正な開示、又は機密データへの不正なアクセスを引き起こし、重大な人的被害をもたらす可能性があるため、この処理は重要である。更に、受信側当事者による機密データへのアクセスは、様々な法域の規制により違法となる可能性もある。
【0004】
データの再編集には幾つかの手法が知られている。これらの手法は、一般に、例えば、不透明な(通常は、黒色の)矩形、固定文字列(パスワードの「******」やクレジットカード番号の「xxxx xxxx xxxx 6789」等)、エンティティタイプに依存する文字列(人名の「<PERSON>」等)、又はピクセル化によって、検出された機密データを覆ったり置換したりすることによって、機密データを再編集することを含む。例えば、Google Cloudでは、Cloud Data Loss Preventionは、base64エンコードされた画像のテキストを検査し、テキスト内の機密データを検出し、照合された機密データが不透明な矩形によって不明瞭化されたbase64エンコードされた画像を返す。
図1Bは、
図1Aの画像にこの先行技術を適用したものである。
【発明の概要】
【発明が解決しようとする課題】
【0005】
既存のデータ再編集技術の問題点は、このような技術では、再編集された機密データの視覚的フォーマットのみでなく、機能的フォーマットを理解することも困難になるということである。これは、機密データがロボットプロセスオートメーションアプリケーション(robotic process automation application)等のソフトウェアアプリケーションで使用され、ソフトウェアアプリケーションの開発及びテストが必要な場合に特に問題となる。この理由は、ソフトウェア開発者は、通常、ソフトウェアアプリケーションが正しくセットアップされ及び機能することを保証するために、機密データの機能的フォーマット、場合によっては、視覚的フォーマットを理解する必要があるからである。
【課題を解決するための手段】
【0006】
本発明は、独立請求項によって定義され、更なる任意の特徴は、従属請求項によって定義される。
【0007】
本発明の第1の側面では、機密データを不明瞭化するためのコンピュータ実装方法が提供され、この方法は、プロセッサによって、画像データを取得することと、プロセッサによって、画像データから構造化データを抽出することであって、構造化データは、機密データであり、定義された機能的フォーマット及び定義された視覚的フォーマットを有することと、プロセッサによって、構造化データとは異なる人工データを生成することであって、人工データは、構造化データと同じ機能的フォーマットを有することと、プロセッサによって、構造化データが人工データに置換された画像データに基づいて人工画像データを生成することであって、人工データは、構造化データの視覚的フォーマットに基づいていることと、プロセッサによって、人工画像データを出力することとを含む。これにより、データの機密性の高い認知的内容(sensitive cognitive content)を明らかにすることなく、機密データの機能的フォーマットを維持しながら、機密データを不明瞭化できる。これは、(例えば、機能的フォーマットがロボットプロセス自動化(RPA)アプリケーションのような別のソフトウェアアプリケーションとインタラクションするため)機密データの機能的フォーマットを理解する必要があるが、その内容の機密性のために機密データにアクセスできない人間であるオペレータ(human operator:以下、単に「オペレータ」という)にとって有用である。更に、人工データの視覚的フォーマットが機密データの視覚的フォーマットに基づいていることは、人工画像データが画像データの代わりに使用できることを保証するために有用である。
【0008】
幾つかの実施形態では、人工画像データは、構造化データと同じ視覚的フォーマットを有する。これは、オペレータによって開発される必要がある機密データとインタラクションするソフトウェアアプリケーションが、例えば、RPAアプリケーションにおいて、機密データの視覚的フォーマットに何らかの形で依存する場合に有用である。
【0009】
ある実施形態では、画像データから構造化データを抽出することは、画像データに対して光学式文字認識を実行し、画像データ内のテキストを識別することと、テキスト内の構造化データを識別することと、構造化データに対応する画像データ内の1つ又は複数のバウンディングボックスを決定することと、1つ又は複数のバウンディングボックスを使用して、画像データから1つ又は複数の画像部分を抽出することとを含む。これにより、機密データを置換する目的で、機密データを含む画像データの部分を識別し、残りの画像データを無視でき、後続のステップの処理要件を軽減できる。
【0010】
オプションとして、定義された機能的フォーマットは、エンティティタイプ、及びエンティティタイプフォーマットのうちの1つ又は複数を含む。エンティティタイプは、例えば、氏名、日付及び/又は時刻、電子メールアドレス、住所等、機密データが何を示しているかについての情報を提供する。これにより、使用可能なエンティティタイプフォーマットの種類を絞り込むことができる。エンティティタイプフォーマットは、所与のエンティティタイプのフォーマットである。エンティティタイプフォーマットを判定することにより、機密データと同じエンティティタイプフォーマットを使用して人工データを生成できる。例えば、機密データが英国の郵便番号の場合、人工データも英国の郵便番号フォーマットになる。これにより、他のソフトウェアアプリケーションが機密データの機能的フォーマットをどのように扱うか、また、これがそのソフトウェアアプリケーションの実行にどのように影響するかを理解しやすくなる。
【0011】
オプションとして、定義された視覚的フォーマットは、テキスト長、テキストフォント、テキスト色、及び背景色のうちの1つ又は複数を含む。テキスト長を使用することにより、生成される人工画像データが、同じ長さ又は類似の長さを使用して、人工データが機密データを囲むバウンディングボックス内に収まるようにできる。テキストフォントを使用することによって、フォントの視覚的フォーマットに関する潜在的な問題を認識できる。例えば、あるソフトウェアアプリケーションが画像上で光学式文字認識を使用しているが、使用されている特定のフォントではI(大文字の「i」)とl(小文字の「L」)の見た目がよく似ている場合、人工画像データ内のテキストフォントを維持することで、そのような問題が識別可能になる。テキスト色と背景色により、人工画像データは、機密データと同じ視覚的フォーマットを持つことができる。
【0012】
ある実施形態では、人工データを生成することは、構造化データの機能的フォーマットを識別することと、画像から抽出された構造化データを一覧化することと、構造化データの機能的フォーマットに基づいて人工データを生成することと、人工データを、対応する構造化データと共に一覧化することとを含む。これらの実施形態において、本方法は、オプションとして、一覧化された構造化データ及び一覧化された人工データを編集可能な表として出力することを含んでもよい。これにより、オペレータが人工データを検証し、承認できる。更に重要な点として、オペレータは、編集可能な表を変更して、特定された機密データに修正を加えることができる。具体的には、ユーザは、表に行を追加することによって見逃された機密データを追加し、表の行を削除することによって誤検出された機密データエンティティを削除し、表の対応するセルを編集することによって機密データの誤りを修正し、又は生成された人工データを単に置換することができる。これらの実施形態において、本方法は、更にオプションとして、人工画像データを生成する前に、人工データを確認するためのプロンプトをオペレータに送信することを含んでもよい。これにより、オペレータは、機密データから人工データへのマッピングがどのように実行されるかを透過的に見ることができるため、アプローチの堅牢性が向上する。
【0013】
更なる実施形態において、本方法は、第2の画像データを取得することと、第2の画像データから第2の構造化データを抽出することと、第2の構造化データとは異なる第2の人工データを生成することとを含んでもよく、第2の構造化データが先の構造化データと同一である場合、第2の人工データは先の人工データと同一である。これは、同じ機密データの複数回の出現が、本方法を用いて常に同様に難読化されることを意味する。このように人工データを異なる画像データ間で一貫させることにより、人工データを使用するオペレータに混乱を生じさせることが回避される。更に、データの完全性が維持されるため、機密データを使用するソフトウェアアプリケーションのテスト/デバッグが可能になる。
【0014】
特定の実施形態では、人工画像データを生成することは、1つ又は複数の画像部分における構造化データの視覚的フォーマットを識別することと、1つ又は複数の画像部分における構造化データの視覚的フォーマットに基づいて、1つ又は複数の画像部分に対応する1つ又は複数の人工画像部分を生成することと、画像データを変更して、1つ又は複数の画像部分を1つ又は複数の人工画像部分に置換することとを含んでもよい。このように画像部分を考慮することにより、機密データを不明瞭化するために異なる画像部分における異なる視覚的フォーマットを考慮に入れることができる。
【0015】
幾つかの実施形態では、人工画像データは、機密データを使用するソフトウェアの開発プロセス中にディスプレイに出力される。データの機能的フォーマットと、データの視覚的フォーマットは、いずれも、データのこれらの側面を何らかの方法で使用する様々なソフトウェアアプリケーションにとって重要であり得る。機能的フォーマットと視覚的フォーマットを維持することにより、ソフトウェア開発者は、そのソフトウェアアプリケーションが正しく設定され、機能していることを確認できる。オプションとして、ディスプレイは、プロセッサとは別のコンピュータに属する。通常、ソフトウェア開発を行う当事者は、機密データを見ることを許可されない。これにより、一方の当事者(すなわち、機密データを見ることを許可された当事者、クライアントコンピュータ)がそのデータの不明瞭化と人工画像データの生成を実行し、他方の当事者(開発者コンピュータ)がその人工画像データを使用することが保証される。
【0016】
特定の実施形態では、ソフトウェアは、ロボットプロセス自動化(robotic process automation:RPA)プロセスである。RPAは、自動化されたプロセス及びワークフローを使用して、グラフィカルユーザインタフェース(GUI)又はドキュメント等の画像データから構造化データ、典型的には、機密データを抽出することを含む。自動化されたプロセスやワークフローが正しく機能しているかどうかを判断できるようにするためには、人工データ内の機密データの機能的フォーマットを維持することが重要である。RPAは、機密データを抽出するためにソフトウェアアプリケーションのGUIに依存することが多いため、機密データの視覚的フォーマットを維持することも重要である。すなわち、機密データの視覚的フォーマットを維持することで、抽出に伴う潜在的な問題を明らかにできる。
【0017】
本発明の第2の側面では、リモートアクセスアプリケーションを介して受信された機密データがオペレータに出力されることを防止するコンピュータ実装方法が提供される。この方法は、リモートアクセスアプリケーションを介してサーバから、リモートサーバ上で実行されるソフトウェアアプリケーションのGUIを受信することと、本発明の第1の側面の方法に基づいて、GUIを変更して機密データを除去することと、変更されたGUIを、オペレータが受信するための、コンピュータの1つ又は複数の出力周辺機器に出力することとを含む。これにより、本発明の第1の側面の利点をリモートアクセスアプリケーションのコンテキストで使用でき、これは、特にソフトウェア開発目的に有用である。
【0018】
本発明の第3の側面では、プロセッサによって実行されると、プロセッサに本発明の第1の側面の方法を実行させる命令を含むコンピュータプログラムが提供される。
【0019】
本発明の第4の側面では、プロセッサによって実行されると、プロセッサに本発明の第1の側面の方法を実行させる命令を含むコンピュータ可読媒体が提供される。
【0020】
本発明の第5の側面では、本発明の第1の側面の方法を実行するように構成されたプロセッサが提供される。
【0021】
本発明の第6の側面では、本発明の第1の側面の方法を実行するように構成されたプロセッサを含むコンピューティングシステムが提供される。
【0022】
以下の図面を参照して、本発明の実施形態を例示的に説明する。
【図面の簡単な説明】
【0023】
【
図1A】本発明の方法で使用する画像データの例を示す図である。
【
図1B】(先行技術)公知のデータ再編集技術を適用した後の
図1Aの画像データを示す図である。
【
図2】本発明の方法を実施するためのシステムの例を示す図である。
【
図3】本発明の方法を実施するためのシステムの例を示す図である。
【
図4】本発明の方法に基づいて不明瞭化される機密データを含む画像データの例を示す図である。
【
図6A】本発明の方法に基づく、
図1Aの画像データ例からの構造化データの抽出を示す図である。
【
図6B】本発明の方法で使用するための、
図1Aの構造化データに対応するデータベースを示す図である。
【
図6C】本発明の方法に基づいて
図1Aの構造化データが置換された人工画像データを示す図である。
【発明を実施するための形態】
【0024】
図2は、一実施形態に基づいて本発明の方法が実施されるコンピューティングシステム10を示している。コンピューティングシステム10は、1人以上のオペレータ25(human operator 25)が物理的にアクセス可能な1台以上のクライアントコンピュータ20を備える。
【0025】
また、コンピューティングシステム10は、1つ又は複数のサーバ50を備える。サーバ50は、通常、リモートサーバであり、すなわち、サーバ50は、オペレータ25が物理的にアクセスできないように、クライアントコンピュータ20とは異なる場所に配置されている。幾つかの例では、リモートサーバ50は、仮想サーバである。
図2では、サーバ50-1、50-2、50-3は、クラウドコンピューティング環境60内の仮想サーバである。クライアントコンピュータ20及びサーバ50は、少なくとも1つの通信ネットワーク30を介して互いに通信可能に接続されている。この通信可能な接続により、クライアントコンピュータ20とサーバ50との間でデータを通信できる。少なくとも1つの通信ネットワーク30は、通常、インターネット(すなわち、IP、IPv4、IPv6)を含む。インターネットに加えて又はインターネットに代えて、セルラーネットワーク(すなわち、3G、4GLTE、5G)、ローカルエリアネットワーク、クラウドネットワーク、無線ネットワーク、又は任意の他の既知の通信ネットワーク等の他の通信ネットワークが存在してもよい。
【0026】
また、コンピューティングシステム10には、ソフトウェア開発者であるオペレータ45(human operator 45)がアクセス可能な開発者コンピュータ40が存在する。開発者コンピュータ40は、サーバ50に通信可能に接続されており、これにより、オペレータ45は、サーバ50上で実行されているソフトウェアアプリケーション50Aをセットアップ、開発、構成、スケジューリング、又は監視できる。これに代えて又はこれに加えて、開発者コンピュータ40は、クライアントコンピュータ20に通信可能に接続されており、これにより、オペレータ45は、クライアントコンピュータ20上で実行されているソフトウェアアプリケーション20Aをセットアップ、開発、構成、スケジューリング、又は監視できる。
【0027】
ここに説明したコンピューティングシステム10は、例示的なものに過ぎず、システム構成要素の削除又は追加を含む変更が可能である。
【0028】
図3は、
図2に示すコンピューティングシステム10の選択された側面を示している。具体的には、
図3は、通信ネットワーク30を介してサーバ50と通信するクライアントコンピュータ20を示している。クライアントコンピュータ20は、1つ又は複数のソフトウェアアプリケーション20A、プロセッサ20B、メモリ20C、1つ又は複数の入力周辺機器20D、及び1つ又は複数の出力周辺機器20Eを備える。プロセッサ20Bは、中央処理装置(central processing unit:CPU)及び/又はグラフィック処理装置(graphical processing unit:GPU)を含む。メモリ20Cは、データ記憶装置及び/又は半導体メモリを含む。データ記憶装置は、ハードディスクドライブ、ソリッドステートドライブ、外部ドライブ、リムーバブル光ディスク、及び/又はメモリカードの形態をとる。半導体メモリは、データを一時的に記憶するための揮発性メモリ、例えば、ランダムアクセスメモリ(RAM)、及びデータを長期的に記憶するための不揮発性メモリ、例えば、リードオンリメモリ(ROM)、フラッシュメモリの形態をとる。
【0029】
1つ又は複数のソフトウェアアプリケーション20Aは、メモリ20Cにコンピュータプログラムとして格納され、クライアントコンピュータ20上でプロセッサ20Bによって実行される。入力周辺機器20D及び出力周辺機器20Eを介してオペレータ25との直接的なインタラクションを実現するこれらのソフトウェアアプリケーションは、オペレーティングシステム(OS)及びデスクトップアプリケーションを含む。既知のオペレーティングシステムの例には、マイクロソフトウィンドウズ(登録商標)、MacOS、及びLinux(登録商標)が含まれる。クライアントコンピュータ20用の既知のデスクトップアプリケーションの例には、Google Chrome等のウェブブラウザ、Microsoft Word等の文書作成アプリケーション、Microsoftによるリモートデスクトッププロトコル(remote desktop protocol:RDP)やリモートフレームバッファ(remote framebuffer:RFB)プロトコル等のリモートアクセスアプリケーションが含まれる。但し、本発明は、ここで述べた特定のアプリケーションと共に使用することに限定されるものではない。
【0030】
上述したように、クライアントコンピュータ20は、1つ又は複数の入力周辺機器20Dを備える。入力周辺機器20Dの目的は、オペレータ25がクライアントコンピュータ20に指示を送ることを可能にすることである。入力周辺機器20Dの例には、マウス、キーボード、タッチスクリーン、イメージスキャナ、バーコードリーダ、ゲームコントローラ、マイク、デジタルカメラ、ウェブカメラ等が含まれる。
【0031】
また、クライアントコンピュータ20は、1つ又は複数の出力周辺機器20Eを備える。出力周辺機器20Eの目的は、オペレータ25がクライアントコンピュータ20から情報を受け取ることを可能にすることである。出力周辺機器20Eの例には、ディスプレイ装置(例えば、コンピュータモニタやプロジェクタ)、プリンタ、ヘッドフォン、コンピュータスピーカ等が含まれる。入力周辺機器20Dと同様に、出力周辺機器20Eは、クライアントコンピュータ20と一体化されていてもよく、クライアントコンピュータ20の外部に設けられていてもよい。オペレータ25は、視覚や聴覚等の感覚を用いてアプリケーション21のUIを解釈することにより、出力周辺機器20Eを用いてクライアントコンピュータ20から情報を受け取る。
【0032】
クライアントコンピュータ20には、(
図3には示していない)他の構成要素も存在する。例えば、コンピュータ20は、通信ネットワーク30を介した通信を可能にするネットワークアダプタカード、電源、マザーボード、サウンドカード等の1つ又は複数を備える。
【0033】
開発者コンピュータ40は、
図3に示すクライアントコンピュータ20と同じ構成要素を有する。開発者コンピュータ40とクライアントコンピュータ20の違いとして、開発者コンピュータ40は、サーバ50において、サーバ50上で実行されている1つ又は複数のソフトウェアアプリケーション50Aをセットアップ、開発、設定、スケジューリング、及び監視できるアクセス権を有しており、クライアントコンピュータ20は、このようなアクセス権を有していない。これに加えて又はこれに代えて、開発者コンピュータは、クライアントコンピュータ20において、クライアントコンピュータ20上で実行されている1つ又は複数のソフトウェアアプリケーション20Aをセットアップ、開発、構成、スケジューリング、及び監視できるアクセス権を有しており、クライアントコンピュータ20は、開発者コンピュータ40と同等の機能を有していない。したがって、開発者コンピュータ40は、オペレータ45がこのセットアップ、開発、構成、スケジューリング、及び監視を実行できるように、追加のソフトウェアアプリケーション20Aを有していてもよい。例えば、マイクロソフト社のリモートデスクトッププロトコル(remote desktop protocol:RDP)やリモートフレームバッファ(remote framebuffer:RFB)プロトコル等のリモートアクセスアプリケーションをこの目的に使用できる。
【0034】
図3に示すように、サーバ50は、1つ又は複数のソフトウェアアプリケーション50Aに加えて、プロセッサ50B、メモリ50C、及びマシンインタフェース50Dを備える。1つ又は複数のアプリケーション50Aは、メモリ50Cにコンピュータプログラムとして格納され、プロセッサ50Bによってリモートサーバ50上で実行される。
【0035】
サーバ50は、単一のサーバ(例えば、
図2に示すサーバ50)又は複数のサーバ(例えば、
図2に示すサーバ50-1、50-2、50-3)の形態をとることができ、あるいは、分散サーバの形態をとることもできる。分散サーバは、構成要素であるコンポーネントに処理とデータを分散して動作する。サーバ50は、物理サーバでも仮想サーバでもよい。サーバ50が仮想サーバである場合、ソフトウェアアプリケーション50A、プロセッサ50B、メモリ50C及びマシンインタフェース50Dは全て、コンピュータシステム10のクラウドコンピューティング環境60においてホストされる仮想エンティティである。
【0036】
サーバ50上の1つ又は複数のソフトウェアアプリケーション50Aは、必ずしも、入力周辺機器20D及び出力周辺機器20Eを介してオペレータ25又はオペレータ45と直接インタラクションするとは限らない。これに代えて、1つ又は複数のソフトウェアアプリケーション50Aは、通信ネットワーク30及びマシンインタフェース50Dを介してクライアントコンピュータ20又は開発者コンピュータ40と直接インタラクトするアプリケーションであってもよい。幾つかの例では、サーバ50上のソフトウェアアプリケーション50Aは、オプションとして、開発者コンピュータ40上のソフトウェアアプリケーション20Aを介して、ソフトウェアアプリケーション50Aのセットアップ、開発、構成、スケジューリング、及び監視を実行する際にオペレータ45を支援するための開発者インタフェースを開発者コンピュータ40に提供できる。この開発者インタフェースは、クライアントコンピュータ20を操作するオペレータ25には提供されない。
【0037】
1つ又は複数のソフトウェアアプリケーション50Aは、クライアントコンピュータ20からのデータ又はクライアントコンピュータ20に関連するデータを使用できる。このデータは、本明細書で更に説明する「機密データ」である可能性がある。クライアントコンピュータ20からのデータ又はクライアントコンピュータ20に関連するデータを使用する例示的なソフトウェアアプリケーション50Aは、米国特許出願第14/053319号及び米国特許第10,469,572号に記載されているようなロボットプロセス自動化(robotic process automation:RPA)アプリケーションである。RPAアプリケーションでは、クライアントコンピュータ20からのデータ又はクライアントコンピュータ20に関連するデータを使用して、自動化されたプロセスが実行される。
【0038】
ある特定の実施形態において、コンピュータシステム10を使用してRPAアプリケーションを実行する場合、
図2に示すように、クラウドコンピューティング環境60内の複数の仮想サーバ50-1、50-2、50-3に加えて、物理サーバ50が存在してもよい。本実施形態において、物理サーバ50は、プロセス定義、ログ、監査、及びユーザ情報を保持する集中リポジトリであるデータベースサーバである。データベースサーバは、複数の仮想サーバのうちの第1の仮想サーバ50-1と通信する。第1の仮想サーバ50-1は、データベースサーバと、第2及び第3の仮想サーバ50-2、50-3との間の接続を制御するアプリケーションサーバである。アプリケーションサーバは、仮想Windowsサーバとしてプロビジョニングされ、セキュアなクレデンシャル管理(secure credential management)、データベース接続マーシャリング(database connection marshalling)、データ暗号化、スケジューリングされたプロセス実行等の機能を含んでいてもよい。第2の仮想サーバ50-2は、ロボットプロセス自動化のための自動化されたプロセスの実行を担当する、通常、標準化されたエンドユーザデスクトップの仮想化されたインスタンスをホストする。第3の仮想サーバ50-3は、自動化プロセスのセットアップ、開発、設定、スケジューリング、及び監視を実現するエンドユーザデスクトップ構築である。第3の仮想サーバ50-3は、専用のソフトウェアアプリケーション20Aを介して、開発者コンピュータ40にアクセス可能である。
【0039】
機密データ
多くの場合、
図2に示す例示的なコンピュータシステム10のようなコンピュータシステムは、機密データを扱うことが要求される。例えば、開発者コンピュータ40は、ソフトウェアアプリケーション50Aのセットアップ、開発、設定、スケジューリング、又は監視を行うために、サーバ50上で実行されているソフトウェアアプリケーション50A(例えば、RPAアプリケーション)にアクセスする必要がある場合がある。しかしながら、ソフトウェアアプリケーション50Aは、機密データを使用している可能性があり、すなわち、開発者コンピュータ40を操作するオペレータ45によって閲覧されるべきではないクライアントコンピュータ20からのデータ又はクライアントコンピュータ20に関連するデータを使用している可能性がある。別の例では、開発者コンピュータ40は、機密データを使用するクライアントコンピュータ20上のソフトウェアアプリケーション20Aを設定、開発、構成、スケジューリング、又は監視するために、クライアントコンピュータ20にアクセスする必要がある場合がある。
【0040】
ここで言う機密データとは、その認知的内容により、高度なセキュリティ配慮を必要とする特別なタイプのデータである。機密データの侵害は、機密データの偶発的又は違法な破壊、紛失、改ざん、機密データの不正な開示、又は機密データへのアクセスを引き起こし、重大な人的被害をもたらす可能性がある。例えば、ある個人の医療記録が永久的に削除されると、その個人の健康に重大かつ長期的な影響が及ぶ可能性がある。このため、欧州連合(EU)では、一般データ保護規則(General Data Protection Regulation:GDPR)、英国では、データ保護法(Data Protection Act 2018)等、様々な法域で機密データの保存と処理が規制されている。
【0041】
機密データは、テキストの形態をとる。機密データには、個人情報、すなわち、特定又は識別可能な自然人に関連する情報が含まれる場合がある。例えば、機密データには、氏名、住所、生年月日、電話番号等が含まれる。他の種類の機密データには、個人の位置データ、オンライン識別情報、個人の身体的、生理的、遺伝的、精神的、経済的、文化的若しくは、社会的アイデンティティに固有の1つ又は複数の要素が含まれる。これに加えて又はこれに代えて、機密データには、クレジットカード番号や銀行番号等の金融情報が含まれる場合がある。更に、別の例として、機密データには、医療情報が含まれる場合がある。
【0042】
本発明の目的のための機密データは、構造化データの形態をとる。本明細書で使用する「構造化データ」という用語は、行(レコード)と列(フィールド)で構造化された、リレーショナルデータベース等の電子ファイル内に格納できるデータを意味する。例えば、日付を取得するには、日付フィールド(日付列)にアクセスする。これに対し、「構造化されていない」自由フォーマットのテキストから意味を導き出すには、テキストを順次スキャンして比較する必要がある。
【0043】
機密データは、定義された視覚的フォーマットのみでなく、定義された機能的フォーマットを有する。本明細書で使用する「機能的フォーマット」という用語は、ソフトウェアアプリケーション20Aを介してクライアントコンピュータ20の動作を制御するような技術システムにおいて技術的機能を有する機密データの部分、特にその部分のフォーマットを指す。ここで使用する「視覚的フォーマット」という用語は、機密データの提示の手法を指す。
【0044】
機能的フォーマットは、エンティティタイプ及び/又はエンティティタイプフォーマットのうちの1つ又は複数を含むことができる。エンティティタイプは、例えば、氏名、日付及び/又は時刻、電子メールアドレス、住所等、機密データが何を示しているかについての情報を提供する。電子メールアドレスの機能的フォーマットは、電話番号の機能的フォーマットとは異なるため、使用可能なエンティティタイプフォーマットの種類を絞り込むことができる。エンティティタイプフォーマットは、所与のエンティティタイプのフォーマットである。日付及び/又はや時刻のエンティティタイプは、様々なエンティティタイプフォーマットを有することができる。例えば、日付は、「DD/MM/YYY」(欧州標準フォーマット)、「MM/DD/YYYY」(米国標準フォーマット)、「YYYY/MM/DD」(日本標準フォーマット)で表すことができる、「D」は、日、「M」は、月、「Y」は、年を表す。時間は「hh:mm」、「hh:mm:ss」で表すことができ、「h」は、24時間制の時、「m」は、分、「s」は、秒である。12時間制(AM、PM)、異なるタイムゾーン(GMT、EST等)等、その他の時間フォーマットもある。別の例において、英国の郵便番号の場合、エンティティタイプのフォーマットは、「A9AA 9AA」、「A9A 9AA」、「A9 9AA」、「A99 9AA」、「AA9 9AA」、又は「AA99 9AA」(ここで、「A」は文字、「9」は、数字を表す)といった設定された数のフォーマットのいずれかでなければならない。
【0045】
視覚的フォーマットは、テキスト長、テキストフォント、テキスト色、及び/又は背景色の1つ又は複数を含んでいてもよい。テキスト長は、テキストの水平方向の長さを表す。テキスト長は、テキストの文字数に基づいて測定してもよく(例えば、「Ben Carter」は、スペースを含めて10文字)、ピクセル数を使用して測定してもよい。テキストフォントには、テキストの書体(例えば、Arial、Times NewRoman、Courier New)、テキストのサイズ(例えば、12pt)、及び特殊なスタイル特性(太字、斜体、下線、取り消し線、下付き文字、上付き文字等)が含まれる。テキスト色は、テキストの主要な色であり、通常はRGBスケール又はHSLスケールで測定される。背景色は、テキストを囲む背景の主な色であり、これも通常はRGBスケール又はHSLスケールで測定される。
【0046】
図4は、機密データ410を含むグラフィカルユーザインタフェース(GUI)400の例である。この例では、機密データ410は、日付及び/又は時刻410A、ドメイン名410B、電子メールアドレス410C、氏名410D、及び電話番号410Eといったエンティティタイプを含む。日付及び/又は時刻410Aとして示されるフォーマットには、「ddd DD/MM/YYYY hh:mm」及び「小数時間」の2つのエンティティタイプフォーマットがある。視覚的フォーマットとして、機密データは、同じフォント(Calibri)を有し、グレーのテキスト色と白の背景色を有する。この例については、本発明の方法を説明する文脈で、
図6を参照して更に詳しく後述する。このGUIは、RPAアプリケーションに見られる典型的なGUIである。
【0047】
図4に示すタイプのような機密データを再編集するための様々な手法が知られている。しかしながら、このような手法は、クライアントコンピュータ20からの又はクライアントコンピュータ20に関連する機密データがソフトウェアアプリケーション50Aによって使用され、ソフトウェアアプリケーション50Aが開発者コンピュータ40上でオペレータ45によって更に開発及びテストされる必要がある場合のシナリオでの使用には適していない。この理由は、既知の技術では、機密データの機能的フォーマットのみでなく視覚的フォーマットも置換又は除去され、データの機能的フォーマット及び視覚的フォーマットが使用可能にならないため、オペレータ45がソフトウェア開発及びテストタスクを実行することが困難になるからである。
【0048】
方法の概説
図5は、既知のデータ再編集技術と同様の欠点を有することなく、機密データを不明瞭化するために本発明が採用する方法500を示している。
図5の方法500は、クライアントコンピュータ20のプロセッサ20Bによって実行してもよく、サーバ50のプロセッサ50Bによって実行してもよい。開発者コンピュータ40は、機密データを含む画像データにアクセスすべきではないため、
図5の方法は、開発者コンピュータ40のプロセッサ20Bによって実行されるべきではない。
【0049】
図5に示すように、方法500は、プロセッサによって実行される以下のステップを含む。
【0050】
・プロセッサによって、画像データを取得する(ステップ510)
・プロセッサによって、機密データであり、定義された機能的フォーマット及び定義された視覚的フォーマットを有する構造化データを画像データから抽出する(ステップ520)
・プロセッサによって、構造化データと同じ機能的フォーマットを有する、構造化データとは異なる人工データを生成する(ステップ530);
・プロセッサによって、構造化データが、構造化データと同じ視覚的フォーマットに基づいている人工データに置換された画像データに基づいて人工画像データを生成する(ステップ540)
・プロセッサによって、人工画像データを出力する(ステップ550)。
【0051】
方法500は、データの機密性の高い認知的内容を明らかにすることなく、機密データの機能的フォーマット、並びに視覚的フォーマットを維持しながら、機密データを不明瞭化することを可能にする。これは、開発者コンピュータ40のオペレータ45が、クライアントコンピュータ20に関連する又はクライアントコンピュータ20からの機密データを使用するサーバ50におけるソフトウェアアプリケーション50A上のソフトウェア開発及びテストタスク、又はクライアントコンピュータ20に関連する又はクライアントコンピュータ20からの機密データを使用するクライアントコンピュータ20におけるソフトウェアアプリケーション20Aのためのソフトウェア開発及びテストタスクを実行するために特に有用である。
【0052】
ステップ510からステップ550については、以下のセクションで更に詳細に説明する。
【0053】
画像データ取得
図5のステップ510において、プロセッサ20B又はプロセッサ50Bは、画像データを取得する。画像データは、クライアントコンピュータ20に関連付けられ又はクライアントコンピュータ20から取得される。「関連付けられる」とは、画像データがクライアントコンピュータ20のクライアントに属するか又はクライアントコンピュータ20のクライアントに関連することを意味する。「から」とは、クライアントコンピュータ20から間接的に受信される画像データ及び/又はクライアントコンピュータ20から直接的に受信される画像データの両方を意味する。
【0054】
画像データには、クライアントコンピュータ20から見て機密データであるデータが含まれている可能性がある。これは、クライアントコンピュータ20を操作するオペレータ25は、機密データを閲覧し、インタラクトする権限を有するが、開発者コンピュータ40を操作するオペレータ45は、その権限がないことを意味する。
【0055】
画像データは、グラフィカルユーザインタフェース(GUI)の形態をとることができる。例えば、画像データは、(サーバ50がオペレータによってアクセス可能なGUIを有する実施形態では)クライアントコンピュータ20又はサーバ50からキャプチャされたGUI画像であってもよい。GUIは、クライアントコンピュータ20上で実行されているソフトウェアアプリケーション20A又はサーバ50上で実行されているソフトウェアアプリケーション50Aのうちの1つ又は複数を示すことができる。GUIは、(オペレータに出力されるような)デスクトップインタフェース全体を含んでいてもよく、ソフトウェアアプリケーション20A又は50Aの特定の1つに関連するデスクトップインタフェースの部分のみを含んでいてもよい。画像データがGUIの形態をとる場合、プロセッサ20B又はプロセッサ50Bは、GUIをキャプチャすることによって画像データを取得する。これに代えて、GUIは、プロセッサ20B又はプロセッサ50Bによって先にキャプチャされ、それぞれメモリ20C又はメモリ50Cに格納されていてもよい。このような例では、GUIは、メモリ20C又はメモリ50Cから読み出すことができる。幾つかの例では、GUIは、リモートアクセスアプリケーションによってキャプチャされてもよい。
【0056】
これに代えて、画像データは、PDF又は画像ファイル等の文書の形態をとってもよい。この場合、プロセッサ20B又はプロセッサ50Bは、画像データが格納されているメモリ20C又はメモリ50Cからそれぞれ画像データを取得する。
【0057】
図6Aは、画像データの一例を示す図である。具体的には、
図6Aは、Microsoft Outlook等の電子メールアプリケーションのGUI600を示している。このGUIには、氏名、日付、電話番号、電子メールアドレス、ドメイン名等の機密データが含まれている。
【0058】
構造化データ抽出
図5のステップ520では、プロセッサ20B又はプロセッサ50B(ステップ510で画像データを取得した一方)が画像データから構造化データを抽出する。上述したように、構造化データは、定義された機能的フォーマット及び定義された視覚的フォーマットを有する機密データである。したがって、このステップの目的は、機密データである画像データ内の構造化データを特定して抽出することである。
【0059】
画像データは生来的に構造化されていないが、構造化されていない画像データから構造化データを識別する方法は既知である。例えば、Googleは、コンピュータビジョン(光学式文字認識(OCR)を含む)及び自然言語処理(NLP)を使用して、文書に対して事前に訓練されたモデルを作成するDocument AIを使用している。
【0060】
ステップ520を実行するための1つの方法は、最初に画像データに対して光学式文字認識を実行して、画像データ内のテキストを識別し、テキスト内の構造化データを識別することである。これは、Document AI等の既知の方法を使用して実行できる。構造化データがテキスト内で識別された後、ステップ520を実行することは、構造化データに対応する画像データ内の1つ又は複数のバウンディングボックスを決定することと、1つ又は複数のバウンディングボックスを使用して画像データから1つ又は複数の画像部分を抽出することとを含んでもよい。機密データであると識別された構造化データのみについて、画像データから対応する画像部分を抽出することが望ましい。
【0061】
上述した方法を用いて抽出された、機密データに対応する構造化データをそれぞれ含む画像データからの1つ又は複数の画像部分に加えて、ステップ520は、第2の出力を有する。すなわち、1つ又は複数の画像部分内の機密データに対応する基底にある構造化データも出力される。このデータは、ステップ530の準備として一覧化(tabulated)される(表にされる)。
【0062】
図6Aの画像データ例であるGUI600は、構造化データを含む複数のバウンディングボックス610を示している。複数のバウンディングボックス610は、機密データを含む複数の画像部分を形成するように抽出される。更に、画像部分内の構造化データが抽出される。GUI600の場合、構造化データには、「Ben Benjamin Carter」、「Ben Carter」、「De Zhang」、「Eric Tyree」、「John Reid」、「Krishna Dubba」、及び「+44 785 407 9884」が含まれる。この構造化データは、
図6Bの表620の列615に示すように、一覧化できる。
【0063】
人工データ生成
図5のステップ530において、プロセッサ20B又はプロセッサ50B(ステップ510において画像データを取得した一方)は、構造化データとは異なるが、構造化データと同じ機能的フォーマットを有する人工データを生成する。このステップの目的は、機密性の高い内容を含むことなく機能的フォーマットを維持した、構造化データの代替データを提供することである。
【0064】
構造化データとは異なるが、構造化データと同じ機能的フォーマットを有する人工データを生成できるようにするには、データの機能的フォーマットを識別できるようにする必要がある。これは、機械学習モデルやヒューリスティックルールを利用することで達成される。機械学習モデルは、ニューラルネットワーク等の機械学習技術を使用して事前に訓練される。具体的には、テキスト中のエンティティタイプを認識するためのニューラルネットワークモデルは、RoBERTa等のトランスフォーマアーキテクチャに基づいていてもよい。例えば、Hugging Face社(https://huggingface.co/roberta-base参照)が提供する事前訓練済みRoBERTaモデルの基本バージョン(「roberta-base」)は、768の隠れベクトルサイズを持つ12個のエンコーダ層、12個のアテンションヘッド、125Mのパラメータで構成されている。このモデルは、強化されたBERT(Bidirectional Encoder Representations from Transformers)アルゴリズムを用いて、様々なサイズとドメインの5つの一般公開コーパスから得た160GB以上の英語テキストデータで学習されている。エンティティ認識の目的のために、事前に学習されたroberta-baseモデルは、よく見られる18のエンティティタイプを含むOntoNotes5データセット(https://deepai.org/dataset/ontonotes-v5-english等参照)等のラベル付きNER(Named Entity Recognition)データセットによって微調整できる。ヒューリスティックルールには、(重み付けされた)正規表現のテキストパターンや、周囲の単語等の文脈上の手がかりを含めることができる。例えば、正規表現「\b([0-9]{10})\b」を使用して、米国の電話番号又は米国の銀行口座番号を表すと思われる10桁のシーケンスをテキストから抽出できる。次に、ローカルコンテキスト(例えば、10桁のシーケンスの前後5語)に「mobile」や「call」等の単語があれば、その10桁のシーケンスは、米国の電話番号である可能性が高い。逆に、ローカルコンテキストに「savings」や「debit」といった単語があれば、10桁の数字列が米国の銀行口座番号である可能性が高い。更に、正規表現を使用してデータの機能的フォーマットを判定することもできる。例えば、正規表現「(\+[0-9]{1,3})?([0-9]{10})\b」を使用すると、10桁の電話番号の前に対応する国の通話コード(プラス記号の後に1~3桁の数字が続き、その後にスペース文字が続くフォーマット)を有するかどうかを判断できる。
【0065】
エンティティタイプ及びエンティティタイプフォーマットの表示は、メモリ20B又はメモリ50Bに出力又は格納できる。例えば、
図6Aでは、バウンディングボックスの1つに「Mon22/02/2021 10:28」という構造化データが含まれている。上述した方法を用いると、この構造化データエンティティタイプは「日付及び/又は時刻」であるとみなされ、エンティティタイプのフォーマットは「ddd DD/MM/YYYY hh:mm」であるとみなされる。
【0066】
次に、人工データを生成するために、オペレータ25が編集可能なテーブルを使用することが好ましい。具体的には、構造化データの機能的フォーマットを特定した後、画像から抽出された構造化データを一覧化する。この一覧化は、識別された機能的フォーマットの補助によって行うことができる。更に、機能的フォーマット自体を一覧化することもできる。
図6Bは一例を示しており、表620は、識別された機能的フォーマットエンティティタイプを使用する第1の列625と、対応する構造化データを示す第2の列615とを有する。この例では、エンティティタイプは、アルファベット順にソートされ、これにより、エンティティタイプがグループ化されている。
【0067】
その後、テーブルの各行に対して、構造化データと同じ機能的フォーマットを有するが、異なる認知的内容を有し、したがって機密データではない人工データが生成される。例えば、日付及び/又は時刻のエンティティタイプである構造化データ「Mon 22/02/2021 10:28」に対して、これを同じ機能的フォーマットの人工的な日付及び/又は時刻、例えば「Fri 24/06/1987 19:03」に変更できる。その後、人工データは、構造化データ及びオプションとして機能的フォーマットとともに一覧化される。
図6Bは、生成された人工データを含む表620の第3列660を示している。
【0068】
構造化データと同じ機能的フォーマットを有する人工データの生成は、エンティティタイプとエンティティタイプフォーマットを条件とするエンティティの確率分布からのランダムサンプリングによって実行される。例えば、人工的な人名を生成するには、姓(surname)のリストから姓を、名(first-name)のリストから名をランダムにサンプリングする。そして、姓と名は、構造化データの同じフォーマット(例えば、「SURNAME, First-name」)にまとめられる。別の例として、人工的な日付を生成するために、元の日付から5年以内の距離にあるカレンダーの日付がランダムにサンプリングされ、その後、構造化データの同じフォーマット(例えば、「ddd DD/MM/YYYY」)を使用して、日付のテキスト表現が生成される。オプションとして、生成された人工データが、対応するソフトウェアアプリケーションによって要求される有効範囲内にあることを保証するために、ポストフィルタリングを実施してもよい。
【0069】
一覧化された構造化データ及び一覧化された人工データは、オペレータ25が編集できるように、編集可能な表としてクライアントコンピュータ20上に出力してもよい。これにより、オペレータは、構造化データと人工データとのマッピングを適切と思われるように追加、削除、又は編集できる。例えば、オペレータ25は、画像データ内の構造化データ検出に修正を加えるように編集可能テーブルを編集できる。具体的には、ユーザは、表に行を追加することによって、見逃された機密データエンティティを追加してもよく、表の行を削除することによって、誤検出された機密データを削除してもよく、表の対応するセルを編集することによって、機密データ検出の誤りを修正してもよく(例えば、
図6Bにおいて、誤って識別された「Ben Benjamin Carter」を「Benjamin Carter」に変更してもよく)、又は自動的に生成された偽のデータエンティティを、ユーザが好むものに単に置換してもよい(例えば、
図6Bにおいて、Krishna Dubbaの偽の氏名を「Michele Oneal」を「Dr Strangelove」に変更してもよい)。
【0070】
ステップ540において人工画像データを生成する前にオペレータ25に人工データを承認させることは有用である。したがって、プロセッサ20Bは、人工データを確認するためのプロンプトをオペレータ25に送信してもよい。
【0071】
編集可能テーブルは、異なる(例えば、第2、第3等の)画像データからの構造化データ及び人工データを含むことができる。このような例では、後続の構造化データ(例えば、第2の構造化データ)が先の構造化データと同一である場合、後続の画像データ(例えば、第2の人工データ)に基づいて生成される人工データは先の人工データと同一であることが好ましい。例えば、
図6AのGUI600を参照すると、第2の画像データが、Ben Carterからの電子メールを含む更なるGUIに関連する場合、構造化データ「Ben Carter」は、元の画像データ及び後続の第2の画像データの両方に現れることになる。そして、構造化データ「Ben Carter」が元の画像データに由来するか第2の画像データに由来するかにかかわらず、生成される人工データは、Anne Wellsとなる(
図6B参照)。編集可能テーブルは、第2の画像データの「Ben Carter」のインスタンスのために新たな行を生成する必要はなく、元の画像データから既に生成されている行を利用できる。このように、編集可能テーブルは、1つ又は複数の画像データにわたる構造化データと人工データとのマッピングのグローバルテーブルであるとみなすことができる。
【0072】
人工画像データの生成
図5のステップ540において、プロセッサ20B又はプロセッサ50Bは、構造化データが人工データに置換された画像データに基づいて人工画像データを生成し、人工データは、構造化データと同様の視覚的フォーマットに基づいている。
【0073】
ステップ540を実行するために、プロセッサ20B又はプロセッサ50Bは、まず、1つ又は複数の画像部分における構造化データの視覚的フォーマットを識別し、次に、1つ又は複数の画像部分における構造化データの視覚的フォーマットに基づいて、1つ又は複数の画像部分に対応する1つ又は複数の人工画像部分を生成し、次に、画像データを変更して1つ又は複数の画像部分を1つ又は複数の人工画像部分に置換する。
【0074】
視覚的フォーマットの識別は、Python Image Library(Pillow)に実装されているようなデジタル画像処理技術や、OpenCVライブラリによって提供されているようなコンピュータビジョン技術を利用することによって実行される。テキスト長、テキスト色、背景色を検出するための既知の技術が存在する。テキストフォントの認識は、フォントの書体、フォントサイズ、及びフォントスタイルの可能な構成に対してグリッド検索又はベイズ最適化を実行し、どの構成が元の画像部分に最も類似した構造化データの画像を生成するかを見つけることによって達成できる。
【0075】
1つ又は複数の人工画像部分の生成は、Python Image Library(Pillow)に実装されているようなデジタル画像処理技術を利用して実行される。例えば、Python Image Library(Pillow)は、新しい画像を作成したり、既存の画像に注釈を付けたり、レタッチしたりするために使用できるImageDrawモジュールを提供する。具体的には、ImageDraw.rectangle関数を使用すると、指定された位置に、指定されたサイズで、指定された塗りつぶし色を背景とする矩形ボックスを描画でき、ImageDraw.text関数を使用すると、指定された位置に、指定されたフォントと色で、指定されたテキスト(すなわち、元の機能的フォーマットで生成された人工データ)の一部を描画できる。ここで、テキストフォント、テキスト色、及び背景色は、全て、上述の方法を介して識別された視覚的フォーマットによって与えられる。
【0076】
幾つかの例では、人工画像データは、画像データ中の構造化データと同じ視覚的フォーマットを有するように生成される。これにより、構造化データの視覚的フォーマットに依存するソフトウェアアプリケーション20A上でソフトウェア開発を行うオペレータ45が視覚的フォーマットが何であるかを高い精度で理解できるようになる。あるいは、人工画像データは、人工データに関係する部分と画像データに関係する部分とが区別されるように、画像データの構造化データとは1つ又は複数の相違点を有する視覚的フォーマットを有するように生成できる。例えば、
図6Cの人工GUI650の人工画像データにおいて、人工画像部分は、これらの部分が人工的であることを示すために、強調表示された背景を有する。この場合でも、人工画像データは、構造化データと同様の視覚的フォーマットに基づくものとみなされる。
【0077】
人工画像データの出力
図5のステップ550において、プロセッサ20B又はプロセッサ50B(画像データを受信した一方)は、人工画像データを出力する。
【0078】
人工画像データは、メモリ20C又はメモリ50Cに格納されるファイルに出力してもよい。このファイルは、後日、開発者コンピュータ40において、オペレータ45がソフトウェア開発の目的でアクセスできる。ファイルは、人工画像データのみを含んでいてもよい。このような場合、ファイルは、元の画像データと同じファイルフォーマット(例えば、pdf、jpeg)であってもよい。あるいは、ファイルは、人工画像データと、ソフトウェア開発をガイドしサポートするための他の関連情報とを含む包括的なドキュメント(comprehensive document)であってもよい。このようなファイルの例としては、ロボットプロセス自動化(robotic process automation:RPA)内で開発されるビジネスプロセスのフローをキャプチャするプロセス設計文書(process design document:PDD)が挙げられる。
【0079】
これに代えて又はこれに加えて、人工画像データは、ディスプレイに出力してもよい。例えば、オペレータ25がチェックするために、人工画像データをクライアントコンピュータ20に出力してもよい。他の例では、人工画像データは、プロセッサ20B又はプロセッサ50Bとは異なるコンピュータに属するディスプレイに出力してもよい。具体的には、開発者コンピュータ40のディスプレイに人工画像データを出力してもよく、これにより、機密データを使用するソフトウェアのソフトウェア開発プロセス中に、オペレータ45が画像データ内の機密データを閲覧できないようにできる。
【0080】
幾つかの例では、人工画像データを使用して、機密データを使用するロボットプロセス自動化(RPA)アプリケーションを開発してもよい。RPAでは、自動化されたプロセスやワークフローを使用して、GUIやドキュメント等の画像データから、通常は、機密データである構造化データを抽出する。自動化されたプロセスやワークフローが正しく機能しているかどうかを判断できるようにするためには、人工データ内の機密データの機能的フォーマットを維持することが重要である。RPAは、機密データを抽出するためにソフトウェアアプリケーションのGUIに依存することが多いため、機密データの視覚的フォーマットを維持することも重要である。すなわち、機密データの視覚的フォーマットを維持することで、抽出に関する潜在的な問題を明らかにできる。
【0081】
幾つかの例では、人工画像データは、Microsoftによるリモートデスクトッププロトコル(remote desktop protocol:RDP)やリモートフレームバッファ(remote framebuffer:RFB)プロトコル等のリモートアクセスアプリケーションで使用されることがある。例えば、米国特許出願US17/144,640号(Method of Remote Access)で使用されているGUI画像変更技術の代わりに、
図5の方法500と出力された人工画像データを使用してもよい。これにより、リモートアクセスプロトコルを介して受信された機密データがオペレータ(例えば、オペレータ45)に出力されることを防止するコンピュータ実装方法が提供される。このような例では、この方法は、リモートアクセスアプリケーションを介してサーバ50から、リモートサーバ上で実行されているソフトウェアアプリケーション50AのGUIを受信することと、本発明の方法に基づいて、機密データを不明瞭化するためにGUIを変更することと、変更されたGUIを、オペレータ45が受信するための、開発者コンピュータ40の1つ又は複数の出力周辺機器40Eに出力することとを含む。
【0082】
総括
ソフトウェアで実施する場合、本発明は、コンピュータプログラムの形態をとることができる。コンピュータプログラムは、プロセッサによって使用され又はプロセッサに関連して使用されるコンピュータ実行可能コードを有するコンピュータ可読媒体として具現化できる。コンピュータ可読媒体は、プロセッサによって使用され又はプロセッサに関連して使用されるプログラムを格納、保存、通信、伝播、又は輸送できる任意の有形デバイスである。更に、コンピュータ可読媒体は、電子、磁気、光学、電磁、赤外線、半導体デバイス、又は伝搬媒体であってもよい。コンピュータ読取可能媒体の例としては、半導体メモリ、ランダムアクセスメモリ(random access memory:RAM)、読取専用メモリ(read-only memory:ROM)、フラッシュメモリ、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、メモリカード等がある。現在の光ディスクの例としては、CD、DVD、ブルーレイ等がある。現在のメモリカードの例としては、USBフラッシュドライブ、SDカード、microSDカード、MMCカード、xDカード、メモリスティック等がある。
【0083】
ハードウェアで実施する場合、本発明は、本明細書で説明する特定のハードウェアに限定されない。本発明は、
図2及び
図3に関して説明したものとは異なるハードウェアで実装しても、上述のように機能させることができることは、当業者にとって明らかである。
【0084】
図示したフローチャートは、本発明の方法の可能な実施側面のアーキテクチャ、機能、及び動作を示している。幾つかの代替的な具体例では、図に示すステップは、図に示す順序とは異なる順序で実行してもよい。例えば、連続して示されている2つのステップは、実際には、実質的に同時に実行してもよく、ステップを表すブロックは、関係する機能によっては、逆の順序で実行してよいこともある。
【0085】
上の説明は、例示のみを目的とし、当業者によって様々に変更できることは明らかである。上では、ある程度の特殊性をもって又は1つ又は複数の個々の実施形態を参照して様々な実施形態を説明したが、当業者は、本発明の範囲から逸脱することなく、ここに開示した実施形態に多数の変更を加えることができる。
【国際調査報告】