(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157406
(43)【公開日】2024-11-07
(54)【発明の名称】データ管理システム及び秘匿データを用いた情報処理方法
(51)【国際特許分類】
H04L 9/10 20060101AFI20241030BHJP
G09C 1/00 20060101ALI20241030BHJP
G06F 21/60 20130101ALI20241030BHJP
【FI】
H04L9/10 A
G09C1/00 660D
G06F21/60 320
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023071758
(22)【出願日】2023-04-25
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】佐藤 恵一
(72)【発明者】
【氏名】川元(内藤) 成美
(57)【要約】
【課題】セキュリティリスクの抑制及び安全かつ容易な外部サービスとの連携を実現できる。
【解決手段】データ管理システムは、ユーザ秘密鍵を用いた確率的暗号化方式に基づいて暗号化された秘匿データを格納するデータベースを管理し、クライアント端末及びサービス提供システムと接続し、記憶装置に信頼領域を生成するための機能を有する。データ管理システムは、秘匿データを用いたサービスの利用を指示するリクエストをクライアント端末から受信した場合、データベースから秘匿データを取得し、信頼領域に格納し、取得された秘匿データを復号し、復号された秘匿データを用いて、信頼領域で、サービスを利用するためにサービス提供システムに送信する送信データを生成し、信頼領域で、サービス提供システムが復号可能な形式に送信データを暗号化し、サービス提供システムに送信する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
データ管理システムであって、
演算装置及び記憶装置を有する計算機を少なくとも一つ含み、
ユーザ秘密鍵を用いた確率的暗号化方式に基づいて暗号化された秘匿データを格納する第1データベースを管理し、
前記秘匿データを前記データ管理システムに登録するクライアント端末及び任意のサービスを提供するサービス提供システムと接続し、
前記演算装置は、前記記憶装置に、セキュリティが確保され、かつ、論理的に隔離された信頼領域を生成するための機能を有し、
前記データ管理システムは、
前記秘匿データを用いた前記サービスの利用を指示するリクエストを前記クライアント端末から受信した場合、前記第1データベースから少なくとも一つの前記秘匿データを取得し、前記信頼領域に格納し、
前記信頼領域で、取得された前記秘匿データを復号し、
復号された前記秘匿データを用いて、前記信頼領域で、前記サービスを利用するために前記サービス提供システムに送信する第1送信データを生成し、
前記信頼領域で、前記サービス提供システムが復号可能な形式に前記第1送信データを暗号化し、
前記サービス提供システムに暗号化された前記第1送信データを送信することを特徴とするデータ管理システム。
【請求項2】
請求項1に記載のデータ管理システムであって、
前記ユーザ秘密鍵は、前記信頼領域に格納されていることを特徴とするデータ管理システム。
【請求項3】
請求項2に記載のデータ管理システムであって、
前記第1データベースから、送信対象となる前記秘匿データを特定し、
特定された前記秘匿データから前記サービスの利用に必要なデータ値を取得し、
取得された前記データ値から構成される秘匿データを前記信頼領域に格納することを特徴とするデータ管理システム。
【請求項4】
請求項2に記載のデータ管理システムであって、
暗号化された前記第1送信データを送信した後、前記信頼領域に格納される復号された前記秘匿データを削除することを特徴とするデータ管理システム。
【請求項5】
請求項1に記載のデータ管理システムであって、
ユーザから秘匿データを生成するためデータであって、公開鍵暗号方式で暗号化された登録データを受け付ける第2データベースを管理し、
前記クライアント端末は、前記ユーザ秘密鍵及び前記公開鍵暗号方式の秘密鍵を保持し、
前記データ管理システムは、前記クライアント端末によって、前記公開鍵暗号方式の秘密鍵を用いて前記第2データベースに格納される前記登録データが復号され、前記ユーザ秘密鍵を用いて検索可能暗号化された前記秘匿データを、前記第1データベースに格納することを特徴とするデータ管理システム。
【請求項6】
請求項5に記載のデータ管理システムであって、
所定のタイミングで、前記第2データベースに格納される前記登録データを削除することを特徴とするデータ管理システム。
【請求項7】
請求項1に記載のデータ管理システムであって、
前記サービス提供システムから前記秘匿データの取得リクエストを受信した場合、前記第1データベースから少なくとも一つの前記秘匿データを取得し、前記信頼領域に格納し、
前記信頼領域で、取得された前記秘匿データを復号し、
復号された前記秘匿データを用いて、前記信頼領域で、前記サービス提供システムが要求するデータ値を含む第2送信データを生成し、
前記信頼領域で、前記サービス提供システムが復号可能な形式に前記第2送信データを暗号化し、
前記サービス提供システムに暗号化された前記第2送信データを送信することを特徴とするデータ管理システム。
【請求項8】
データ管理システムが実行する秘匿データを用いた情報処理方法であって、
前記データ管理システムは、
演算装置及び記憶装置を有する計算機を少なくとも一つ含み、
ユーザ秘密鍵を用いた確率的暗号化方式に基づいて暗号化された秘匿データを格納する第1データベースを管理し、
前記秘匿データを前記データ管理システムに登録するクライアント端末及び任意のサービスを提供するサービス提供システムと接続し、
前記演算装置は、前記記憶装置に、セキュリティが確保され、かつ、論理的に隔離された信頼領域を生成するための機能を有し、
前記秘匿データを用いた情報処理方法は、
前記データ管理システムが、前記秘匿データを用いた前記サービスの利用を指示するリクエストを前記クライアント端末から受信した場合、前記第1データベースから少なくとも一つの前記秘匿データを取得し、前記信頼領域に格納する第1のステップと、
前記データ管理システムが、前記信頼領域で、取得された前記秘匿データを復号する第2のステップと、
前記データ管理システムが、復号された前記秘匿データを用いて、前記信頼領域で、前記サービスを利用するために前記サービス提供システムに送信する第1送信データを生成する第3のステップと、
前記データ管理システムが、前記信頼領域で、前記サービス提供システムが復号可能な形式に前記第1送信データを暗号化する第4のステップと、
前記データ管理システムが、前記サービス提供システムに暗号化された前記第1送信データを送信する第5のステップと、を含むことを特徴とする秘匿データを用いた情報処理方法。
【請求項9】
請求項8に記載の秘匿データを用いた情報処理方法であって、
前記ユーザ秘密鍵は、前記信頼領域に格納されていることを特徴とする秘匿データを用いた情報処理方法。
【請求項10】
請求項9に記載の秘匿データを用いた情報処理方法であって、
前記第1のステップは、
前記データ管理システムが、前記第1データベースから、送信対象となる前記秘匿データを特定するステップと、
前記データ管理システムが、特定された前記秘匿データから前記サービスの利用に必要なデータ値を取得するステップと、
前記データ管理システムが、取得された前記データ値から構成される秘匿データを前記信頼領域に格納するステップと、を含むことを特徴とする秘匿データを用いた情報処理方法。
【請求項11】
請求項9に記載の秘匿データを用いた情報処理方法であって、
前記データ管理システムは、暗号化された前記第1送信データを送信した後、前記信頼領域に格納される復号された前記秘匿データを削除するステップを含むことを特徴とする秘匿データを用いた情報処理方法。
【請求項12】
請求項8に記載の秘匿データを用いた情報処理方法であって、
前記データ管理システムは、ユーザから秘匿データを生成するためデータであって、公開鍵暗号方式で暗号化された登録データを受け付ける第2データベースを管理し、
前記クライアント端末は、前記ユーザ秘密鍵及び前記公開鍵暗号方式の秘密鍵を保持し、
前記秘匿データを用いた情報処理方法は、前記データ管理システムが、前記クライアント端末によって、前記公開鍵暗号方式の秘密鍵を用いて前記第2データベースに格納される前記登録データが復号され、前記ユーザ秘密鍵を用いて検索可能暗号化された前記秘匿データを、前記第1データベースに格納するステップを含むことを特徴とする秘匿データを用いた情報処理方法。
【請求項13】
請求項12に記載の秘匿データを用いた情報処理方法であって、
前記データ管理システムが、所定のタイミングで、前記第2データベースに格納される前記登録データを削除するステップを含むことを特徴とする秘匿データを用いた情報処理方法。
【請求項14】
請求項8に記載の秘匿データを用いた情報処理方法であって、
前記データ管理システムが、前記サービス提供システムから前記秘匿データの取得リクエストを受信した場合、前記第1データベースから少なくとも一つの前記秘匿データを取得し、前記信頼領域に格納するステップと、
前記データ管理システムが、前記信頼領域で、取得された前記秘匿データを復号するステップと、
前記データ管理システムが、復号された前記秘匿データを用いて、前記信頼領域で、前記サービス提供システムが要求するデータ値を含む第2送信データを生成するステップと、
前記データ管理システムが、前記信頼領域で、前記サービス提供システムが復号可能な形式に前記第2送信データを暗号化するステップと、
前記データ管理システムが、前記サービス提供システムに暗号化された前記第2送信データを送信するステップと、を含むことを特徴とする秘匿データを用いた情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、個人情報等の機密情報が秘匿された状態で処理を実行するシステム及びその情報処理方法に関する。
【背景技術】
【0002】
2016年12月に、多様な主体による個人に関する官民データの適正な活用を促進する官民データ活用推進基本法が公布、施行された。2017年5月には、改正個人情報保護法が施行され、匿名加工情報や要配慮個人情報の規定が設けられるなど、個人データの保護及び活用のための基盤が整備され、個人データの活用が進んでいる。一方で、個人データの情報漏洩などのセキュリティインシデントは年々増えつつあり、データ利活用における消費者の懸念は高まっている。
【0003】
こうした背景の元、個人データの漏えい防止に重点を置いた技術が開発されている。例えば、特許文献1には、検索可能暗号技術を用いてデータを管理する技術が記載されている。特許文献1に記載の技術では、サーバ管理者への情報漏洩を防ぎ、DBサーバが復号することなくデータを検索し、検索結果をユーザ側の端末が復号することが可能となっている。この時、検索/復号は鍵(以下、ユーザ秘密鍵)を持つユーザ側の端末だけが可能である。
【0004】
前述のような技術は、検索/復号するためのユーザ秘密鍵と秘匿情報とを分離して管理できるため、個人情報保護の観点から非常に効果は高い。例えば、鍵及び秘匿情報が同じサーバ上にある場合、悪意のある第三者による不正アクセス等によって、鍵及び秘匿情報の両方を盗まれ、暗号化されたデータが復号される可能性がある。
【0005】
ユーザ秘密鍵及び秘匿情報が分離することによって、サーバ管理者、及び特許文献1を活用したシステムを提供する事業者(以下、サービス提供事業者)は、特許文献1を活用したシステムを利用するユーザが管理する秘匿情報を見ることなく、様々なシステムの提供が可能である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2012-123614号公報
【特許文献2】特開2018-097034号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1を利用したシステムは、外部のサービスと連携が難しいという課題がある。なぜならば、外部サービスとの連携には復号された秘匿情報が必要となるためである。
【0008】
実現方法として、外部サービスが秘匿情報を復号するためのユーザ秘密鍵を保持する方式が考えられる。しかし、ユーザが利用する全ての外部サービスにユーザ秘密鍵を渡すことは、サービス提供事業者及び外部サービス事業者の負担が大きく、また、セキュリティの低下につながる。したがって、本方式は実用には適さない。
【0009】
別の実現方法として、秘匿情報を管理するサーバに、ユーザ秘密鍵を保存し、当該サーバが、秘匿情報を復号し、外部サービスに送信する方式が考えられる。しかし、本方式は、鍵及び秘匿情報が分離して保存されていないため、セキュリティリスクが非常に大きく、特許文献1の技術の効果を著しく低下させる。
【0010】
本発明は、セキュリティリスクの抑制及び安全かつ容易な外部サービスとの連携を実現するシステムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データ管理システムであって、演算装置及び記憶装置を有する計算機を少なくとも一つ含み、ユーザ秘密鍵を用いた確率的暗号化方式に基づいて暗号化された秘匿データを格納する第1データベースを管理し、前記秘匿データを前記データ管理システムに登録するクライアント端末及び任意のサービスを提供するサービス提供システムと接続し、前記演算装置は、前記記憶装置に、セキュリティが確保され、かつ、論理的に隔離された信頼領域を生成するための機能を有し、前記データ管理システムは、前記秘匿データを用いた前記サービスの利用を指示するリクエストを前記クライアント端末から受信した場合、前記第1データベースから少なくとも一つの前記秘匿データを取得し、前記信頼領域に格納し、前記信頼領域で、取得された前記秘匿データを復号し、復号された前記秘匿データを用いて、前記信頼領域で、前記サービスを利用するために前記サービス提供システムに送信する第1送信データを生成し、前記信頼領域で、前記サービス提供システムが復号可能な形式に前記第1送信データを暗号化し、前記サービス提供システムに暗号化された前記第1送信データを送信する。
【発明の効果】
【0012】
本発明の一形態によれば、セキュリティリスクの抑制及び安全かつ容易な外部サービスとの連携を実現できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】実施例1の計算機システムの構成例を示す図である。
【
図2】実施例1のクライアント端末のハードウェア構成の一例を示す図である。
【
図3】実施例1のデータ管理サーバのハードウェア構成の一例を示す図である。
【
図4】実施例1のクライアント端末の機能構成の一例を示す図である。
【
図5】実施例1のデータ管理サーバの機能構成の一例を示す図である。
【
図6A】実施例1の計算機システムで実行される処理の流れの一例を示すシーケンスである。
【
図6B】実施例1の計算機システムで実行される処理の流れの一例を示すシーケンスである。
【
図8】実施例1の検索可能暗号化登録情報の一例を示す図である。
【
図9】実施例1の検索可能暗号化登録情報(TEE)の一例を示す図である。
【
図10】実施例1の復号された検索可能暗号化登録情報(TEE)の一例を示す図である。
【
図11】実施例2の計算機システムの構成例を示す図である。
【
図12】実施例2のデータ管理サーバの機能構成の一例を示す図である。
【
図13】実施例2のクライアント端末の機能構成の一例を示す図である。
【
図14】実施例2のクライアント端末の機能構成の一例を示す図である。
【
図15】実施例2の一時データ管理サーバの機能構成の一例を示す図である。
【
図16A】実施例2の計算機システムで実行される処理の流れの一例を示すシーケンスである。
【
図16B】実施例2の計算機システムで実行される処理の流れの一例を示すシーケンスである。
【
図17】実施例2の登録データの一例を示す図である。
【
図18】実施例3の計算機システムで実行される処理の流れの一例を示すシーケンスである。
【発明を実施するための形態】
【0014】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0015】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0016】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【実施例0017】
図1から
図5を用いて実施例1の計算機システムの構成について説明する。
【0018】
図1は、実施例1の計算機システムの構成例を示す図である。
【0019】
実施例1の計算機システムは、データ管理サーバ100、クライアント端末101、及び外部サービス102から構成される。なお、計算機システムに含まれるクライアント端末101及び外部サービス102の数は二つ以上でもよい。
【0020】
データ管理サーバ100は、ネットワーク103を介してクライアント端末101及び外部サービス102と通信可能に接続される。ネットワーク103は、例えば、WAN(Wide Area Network)及びLAN(Local Area Network)等が考えられる。また、ネットワークの接続方式は、有線及び無線のいずれでもよい。
【0021】
外部サービス102は、電子署名検証サービス、顔照合サービス、Eメール送信サービス、及びファイルサーバサービス等の種々のサービスを提供する外部システムである。本発明は、外部サービス102が提供するサービスの種類に限定されない。
【0022】
クライアント端末101は、ユーザ管理者が操作する端末である。クライアント端末101は、登録情報の閲覧及び検索、外部サービス102の処理結果の確認、並びに、全体のステータス管理等を行う。
【0023】
データ管理サーバ100は、登録情報の管理、及び外部サービス102に送信する情報の生成及び共有を行う。なお、データ管理サーバ100は、復号することなく検索が可能なデータを生成する暗号化(検索可能暗号化)を行う。
【0024】
図2は、実施例1のクライアント端末101のハードウェア構成の一例を示す図である。
【0025】
クライアント端末101は、パーソナルコンピュータ、スマートフォン、及びサーバ装置等の情報処理装置であり、CPU201、主記憶装置202、副記憶装置203、ネットワークインタフェース204、入力装置205、及び表示装置206を備える。主記憶装置202は、例えば、DRAM(Dynamic Random Access Memory)等であり、副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等である。入力装置205は、例えば、キーボード、マウス、及びタッチパネル等である。
【0026】
なお、クライアント端末101は仮想計算機として実現してもよい。
【0027】
図3は、実施例1のデータ管理サーバ100のハードウェア構成の一例を示す図である。
【0028】
データ管理サーバ100は、パーソナルコンピュータ、スマートフォン、及びサーバ装置等の情報処理装置であり、CPU301、主記憶装置302、副記憶装置303、ネットワークインタフェース304、入力装置305、及び表示装置306を備える。主記憶装置302は、例えば、DRAM等であり、副記憶装置303は、HDD及びSSD等である。入力装置305は、例えば、キーボード、マウス、及びタッチパネル等である。
【0029】
データ管理サーバが備えるCPU301は、TEE機能を有するCPUであり、主記憶装置302の記憶領域上にTEE信頼領域310を生成できる。Intel SGX(Software Guard Extensions)(Intelは登録商標以下同じ。)を搭載したCPUが考えられる。
【0030】
TEE信頼領域310は、計算機の管理者権限を奪われても情報を読み取られないハードウェア的な領域である。
【0031】
なお、データ管理サーバ100は仮想計算機として実現してもよい。また、データ管理サーバ100は、複数の計算機から構成されるデータ管理システムとして実現してもよい。
【0032】
図4は、実施例1のクライアント端末101の機能構成の一例を示す図である。
【0033】
クライアント端末101は、機能構成として、検索可能暗号化部400及び復号部401を有する。各機能部は、CPU201が主記憶装置202に格納されるプログラムを実行することによって実現される。また、クライアント端末101は、ユーザ秘密鍵410を保持する。
【0034】
なお、クライアント端末101は、図示しない機能及び情報を保持するが、本発明とは直接関係しない機能及び情報は省略している。
【0035】
ユーザ秘密鍵410は、クライアント端末101を使用するユーザ管理者に対して設定される秘密鍵である。ユーザ秘密鍵410は検索可能暗号化及びその復号に用いられる。ユーザ秘密鍵410は、追加、削除、及び更新が可能な秘密鍵である。ユーザ秘密鍵410はユーザ管理者に対して割り当てられる秘密鍵であるため、クライアント端末101は、使用するユーザ管理者の数だけユーザ秘密鍵410を保持する。また、ユーザ秘密鍵410は、他のユーザ秘密鍵410と異なる値となっている。ユーザ秘密鍵410については特許文献2に記載されているため詳細な説明は省略する。
【0036】
検索可能暗号化部400は、データに対して暗号化したまま検索できる「検索可能暗号化」を行う。具体的に、検索可能暗号化部400は、ハッシュ値と準同型関数の出力値によるマスクを用いた確率的暗号化方式によって暗号化を行い、検索可能暗号化データ(秘匿データ)を生成する。検索可能暗号化データの生成方法は、例えば、特許文献1に開示されている。
【0037】
復号部401は、データ管理サーバ100から受信した、暗号化された処理結果等を復号する。
【0038】
図5は、実施例1のデータ管理サーバ100の機能構成の一例を示す図である。
【0039】
データ管理サーバ100は、機能構成として、TEE信頼領域処理部500及び暗号化DB部501を有する。各機能部は、CPU301が主記憶装置302に格納されるプログラムを実行することによって実現される。
【0040】
データ管理サーバ100は、図示しない機能及び情報を保持するが、本発明とは直接関係しない機能及び情報は省略している。
【0041】
TEE信頼領域310には、ユーザ秘密鍵530、検索可能暗号化登録情報(TEE)531、及び送信情報532が格納される。また、TEE信頼領域310以外の領域には、検索可能暗号化登録情報533が格納される。
【0042】
TEE信頼領域処理部500は、サーバOSの管理者権限を持つサーバ管理者及びその管理者権限をサイバー攻撃により奪ったサイバー攻撃者であっても情報を読み取ることができないTEE信頼領域310上で稼働する。すなわち、TEE信頼領域処理部500は、サーバ管理者及びサイバー攻撃者に対して、秘匿性を確保したまま機密情報及び各種鍵情報の平文処理を実行できる。
【0043】
TEE信頼領域処理部500は、暗号化部510、検索可能暗号化部511、復号部512、及び送信情報生成部513を含む。また、TEE信頼領域処理部500は、ユーザ秘密鍵530、検索可能暗号化登録情報(TEE)531、及び送信情報532を管理する。
【0044】
ユーザ秘密鍵530は、TEE信頼領域310でのみ使用可能な秘密鍵である。ユーザ秘密鍵530は、クライアント端末101が所持するユーザ秘密鍵410と同様の性質を有する秘密鍵である。
【0045】
検索可能暗号化登録情報(TEE)531は、暗号化DB部501が所持する検索可能暗号化登録情報533から抽出された検索可能暗号化登録データを格納する。
【0046】
送信情報532は、各外部サービス102に、サービスを利用するための所定のデータ形式のデータを格納する。当該データは、例えば、Eメールで使用される送信元、宛先のアドレス、件名、及びメッセージ本文等を含む。
【0047】
暗号化部510は、AES等の基本的な暗号化技術を用いてデータを暗号化する。検索可能暗号化部511は、データに対して検索可能暗号化を行う。復号部512は、暗号化された処理結果等の暗号化データを復号する。送信情報生成部513は、外部サービス102が使用可能なデータ形式のデータを生成する。
【0048】
暗号化DB部501は、データ登録部520を含む。また、暗号化DB部501は、検索可能暗号化登録情報533を管理する。
【0049】
検索可能暗号化登録情報533は、検索可能暗号化されたデータ値から構成される登録データを格納する。
【0050】
データ登録部520は、検索可能暗号化登録情報533にデータを登録する。
【0051】
以下、実施例1の計算機システムで実行される処理について説明する。実施例1では、外部サービス102としてEメール送信サービスを利用するユースケースを例に処理を説明する。
【0052】
ユーザ管理者は、任意のサービスを提供しており、データ管理サーバ100にサービスを利用するユーザに関する情報(登録データ)を登録しているものとする。すなわち、検索可能暗号化登録情報533には、一人のユーザの一つの登録データ(レコード)が登録される。ユーザ管理者が、ユーザに対してメールを送信する業務を行うケースを想定する。数人にメールを送信する場合、ユーザ管理者は、自身が管理するSMTPサーバを利用すればよい。しかし、大量のメールの一括送信は負荷が大きいためSMTPサーバに障害が発生する可能性がある。そこで、ユーザ管理者はEメールを一括送信する外部サービス102を利用するケースがある。このケースでは、メールアドレス等を含む登録データを管理するデータ管理サーバ100と外部サービス102との安全な情報の連携が求められる。
【0053】
実施例1のデータ管理サーバ100は、登録データの秘匿性を確保しつつ、Eメールを一括送信するために必要かつ外部サービス102が利用可能なデータ形式のデータを生成し、外部サービス102に送信する。以下、具体的な処理について説明する。
【0054】
図6A及び
図6Bは、実施例1の計算機システムで実行される処理の流れの一例を示すシーケンスである。
【0055】
クライアント端末101は、ユーザ秘密鍵410を用いて、データ管理サーバに登録する登録データに対して検索可能暗号化を実行し、検索可能暗号化登録データを生成する(ステップS601)。
【0056】
クライアント端末101は、検索可能暗号化登録データをデータ管理サーバ100に登録する(ステップS602)。
【0057】
ここで、
図7及び
図8を用いて、登録データ及び検索可能暗号化登録データを説明する。
【0058】
図7は、実施例1の登録情報の一例を示す図である。登録情報700は、管理ID701、氏名702、メールアドレス703、及びフラグ704を含むレコードを格納する。一つのレコードが一人のユーザの登録データである。なお、レコードに含まれるカラムは一例であってこれに限定されない。
【0059】
管理ID701は、登録情報700におけるレコードのIDを格納するカラムである。氏名702及びメールアドレス703は、ユーザの氏名及びメールアドレスを格納するカラムである。
【0060】
フラグ704は、Eメールの一括送信の対象であるか否かを示すフラグを格納するカラムである。一括送信の対象である場合、フラグ704には「1」が格納され、一括送信の対象でない場合、フラグ704には「0」が格納される。フラグ704の初期値は「0」である。
【0061】
図8は、実施例1の検索可能暗号化登録情報533の一例を示す図である。検索可能暗号化登録情報533のレコードの構造は登録情報700のレコードと同一である。ただし、各カラムには検索可能暗号化されたデータ値が格納される。
【0062】
ユーザ管理者は、ユーザにEメールを送信する場合、クライアント端末101を操作して、データ管理サーバ100から検索可能暗号化登録情報533を取得する。クライアント端末101の復号部401は、検索可能暗号化登録情報533を復号する。ユーザ管理者は、平文の登録情報700に格納される任意の登録データに対してフラグ「1」を付与する。クライアント端末101は、データ管理サーバ100に、Eメールの一括送信の対象となるユーザのレコードに対してフラグ「1」を登録し、外部サービス102の連携を指示する連携リクエストを送信する(ステップS610)。データ管理サーバ100には、検索可能暗号化部400によって検索可能暗号化されたフラグが登録される。
【0063】
データ管理サーバ100の暗号化DB部501は、検索可能暗号化登録情報533からフラグ「1」が登録されたレコードを抽出し、検索可能暗号化登録情報(TEE)531を生成する(ステップS611)。例えば、
図9に示すような検索可能暗号化登録情報(TEE)531が生成される。
【0064】
データ管理サーバ100の暗号化DB部501は、TEE信頼領域310に検索可能暗号化登録情報(TEE)531を格納する(ステップS612)。
【0065】
TEE信頼領域処理部500の復号部512は、ユーザ秘密鍵530を用いて、検索可能暗号化登録情報(TEE)531を復号する(ステップS613)。
図9に示す検索可能暗号化登録情報(TEE)531を復号した場合、
図10に示すような結果となる。
【0066】
TEE信頼領域処理部500の送信情報生成部513は、復号された検索可能暗号化登録情報(TEE)531を用いて送信情報532を生成する(ステップS614)。
【0067】
具体的には、送信情報生成部513は、連携する外部サービス102が利用可能なデータ形式の送信情報532を生成する。例えば、復号された検索可能暗号化登録情報(TEE)531の一つの登録データに対して、Eメールの送信に用いる送信元及び宛先のアドレス、件名、並びにメッセージ本文から構成される一つの送信データが生成される。
【0068】
なお、送信情報生成部513は、登録データに含まれる全てのカラムのデータ値を送信データに含めてもよいし、登録データに含まれる所定のカラムのデータ値を送信データに含めてもよい。
【0069】
TEE信頼領域処理部500は、送信情報532を含むリクエストを外部サービス102に送信する(ステップS615)。
【0070】
なお、データ管理サーバ100及び外部サービス102の間の通信は、例えば、TLS(Transport Layer Security)/SSL(Secure Sockets Layer)等によって暗号化されることが望ましい。通信を暗号化することによって、クライアント端末101から外部サービス102までの通信経路では暗号化された情報のみが送受信されるため、セキュリティが向上する。
【0071】
外部サービス102は、リクエストを受信した場合、リクエストに対応した処理を実行し(ステップS616)、データ管理サーバ100にレスポンスを送信する(ステップS617)。当該レスポンスは、TEE信頼領域処理部500が受信する。本実施例では、外部サービス102はユーザ管理者が指定したユーザにメールを送信する。
【0072】
データ管理サーバ100のTEE信頼領域処理部500は、レスポンスを受信した場合、検索可能暗号化登録情報(TEE)531及び送信情報532を削除する(ステップS618)。
【0073】
データ管理サーバ100のTEE信頼領域処理部500は、暗号化DB部501にレスポンスを送信する(ステップS619)。データ管理サーバ100の暗号化DB部501は、検索可能暗号化登録情報533にレスポンスを反映する(ステップS620)。なお、ステップS619及びステップS620の処理は実行されなくてもよい。
【0074】
ユーザ管理者は、必要に応じて、クライアント端末101を用いて外部サービス102の処理結果を確認する(ステップS621)。
【0075】
実施例1によれば、登録データを秘匿したまま、外部サービス102との連携を実現できる。
【0076】
ユーザ秘密鍵530はTEE信頼領域310に格納され、TEE信頼領域310でのみ検索可能暗号化登録データの復号が行われるため、サイバー攻撃による情報漏えいのリスクを低減し、また、サービス提供事業者への情報漏洩のリスクも低減することができる。
【0077】
クライアント端末101及びデータ管理サーバ100間、並びに、データ管理サーバ100及び外部サービス102間では、登録データは暗号化された状態で送受信されるため、秘匿性が確保される。
【0078】
また、送信データの生成時には、外部サービス102が必要とするデータ値のみを抽出し、送信データに含めることによって、情報漏洩のリスクをさらに低減できる。
【0079】
実施例1では、Eメールの一括送信するユースケースを例に説明したが、個人情報等の機微な情報を含む帳票を外部のファイルサーバに登録するユースケース等でも実施例1と同様の制御を活用できる。
実施例2では、不特定多数の一般ユーザが登録データを登録するユースケースに対応したシステムについて説明する。以下、実施例1との差異を中心に実施例2について説明する。
クライアント端末1101は、ユーザ管理者が提供するサービスを利用する一般ユーザが操作する端末である。クライアント端末1101のハードウェア構成はクライアント端末101と同一である。
一時データ管理サーバ1100は、一般ユーザが登録する登録データを一時的に格納する。一時データ管理サーバ1100のハードウェア構成はデータ管理サーバ100と同一である。
なお、データ管理サーバ100及び一時データ管理サーバ1100は、同一のサービス提供事業者によって提供されるものとする。すなわち、データ管理サーバ100及び一時データ管理サーバ1100は、一つのシステムとして提供される。
実施例2のTEE信頼領域310は、公開鍵暗号基盤(PKI:Public Key Infrastructure)を用いて生成された秘密鍵1200を有する点が実施例1のTEE信頼領域310と異なる。秘密鍵1200は、TEE信頼領域310及び一時データ管理サーバ1100の間で共有される。
クライアント端末1101は、機能構成として、暗号化部1300を有する。暗号化部1300は、CPU(図示省略)が主記憶装置(図示省略)に格納されるプログラムを実行することによって実現される。また、クライアント端末1101は、公開鍵1301を保持する。
公開鍵1301は、公開鍵暗号基盤を用いて生成された鍵である。公開鍵1301は、クライアント端末1101及び一時データ管理サーバ1100の間で共有される。公開鍵1301は、一時データ管理サーバ1100に送信する登録データを暗号化するために用いられる。なお、本発明は、鍵配布方式に限定されない。
一時データ管理サーバ1100は、機能構成として、暗号化DB部1400を有する。暗号化DB部1400は、CPU(図示省略)が主記憶装置(図示省略)に格納されるプログラムを実行することによって実現される。
暗号化登録情報1420は、暗号化されたデータ値から構成される登録データを格納する。本実施例では、一つの登録データ(レコード)が一人のユーザに対応する。データ登録部1410は、暗号化登録情報1420に暗号化登録データを登録する。
実施例2では、eKYC(electronic Know Your Computer)を提供する外部サービス102との連携を想定する。犯罪収益移転防止法で認められているeKYCの方式として、本人確認書類の画像と本人の容貌の画像の同一性の確認、本人確認書類のICチップ情報と本人の容貌の画像の同一性の確認等が挙げられる。eKYCで用いられる本人確認の技術は、多くの事業者が自社独自のアルゴリズムを持っている。
この場合、一般ユーザは、自身のセルフィー写真並びに運転免許証及びマイナンバーカード等の本人確認書類の画像が登録データとしてデータ管理サーバ100に登録する必要がある。実施例1の方式と同様に、一般ユーザにユーザ秘密鍵410を配布する方式の場合、一般ユーザが、直接、データ管理サーバ100に検索可能暗号化登録データを登録できる。しかし、この方式では、ユーザ管理者の鍵管理の負担が大きく、また、セキュリティ的にも望ましくない。
そこで、実施例2では、一般ユーザは、一般的な公開鍵暗号基盤を用いて登録データを暗号化し、一時データ管理サーバ1100に登録する。TEE信頼領域310は、暗号化された登録データを復号し、外部サービス102との連携を行う。その後、ユーザ管理者は、暗号化された登録データを復号し、登録データの内容を確認し、検索可能暗号化し、データ管理サーバ100に登録する。本方式では、鍵管理の負担を低減し、また、セキュリティも向上する。
一時データ管理サーバ1100は、公開鍵共有リクエストを受信した場合、公開鍵暗号基盤を用いて公開鍵1301を生成し、クライアント端末1101に送信する(ステップS1502)。なお、公開鍵1301の生成方法に限定されない。
クライアント端末1101の暗号化部1300は、公開鍵1301を用いて登録データを暗号化することによって、暗号化登録データを生成する(ステップS1503)。
TEE信頼領域処理部500の復号部512は、秘密鍵1200を用いて、暗号化登録データを復号し、外部サービス102と連携する。外部サービス102との連携の処理は実施例1と同一である。なお、一時データ管理サーバ1100からデータ管理サーバ100に送信する形(プッシュ型)でもよいし、外部サービス102がデータ管理サーバ100に要求する形(プル型)でもよい。
外部サービスでの処理が行われたのち、一時データ管理サーバ1100はレスポンスを受信し(ステップS1506)、レスポンス内容を反映する(ステップS1507)。
クライアント端末101の復号部401は、秘密鍵1200を用いて、暗号化登録データを復号する(ステップS1511)。このとき、ユーザ管理者は、登録データの内容を確認してもよい。また、ユーザ管理者は、確認結果に基づいて、ステータス管理を行ってもよい。
クライアント端末101の検索可能暗号化部400は、登録データに対して検索可能暗号化を行い、検索可能暗号化登録データを生成する(ステップS1512)。また、クライアント端末101は、データ管理サーバ100に検索可能暗号化登録データを登録する(ステップS1513)。
なお、データ管理サーバ100は、一時データ管理サーバ1100から暗号化登録データを取得した時、検索可能暗号化登録データが登録されたとき、又は、周期的に、一時データ管理サーバ1100に格納される暗号化登録データを削除してもよい。