JP5567414B2 - 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法 - Google Patents

情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法 Download PDF

Info

Publication number
JP5567414B2
JP5567414B2 JP2010149939A JP2010149939A JP5567414B2 JP 5567414 B2 JP5567414 B2 JP 5567414B2 JP 2010149939 A JP2010149939 A JP 2010149939A JP 2010149939 A JP2010149939 A JP 2010149939A JP 5567414 B2 JP5567414 B2 JP 5567414B2
Authority
JP
Japan
Prior art keywords
computer
data
virtual execution
control
execution platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010149939A
Other languages
English (en)
Other versions
JP2012014403A (ja
Inventor
裕治 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010149939A priority Critical patent/JP5567414B2/ja
Priority to US13/173,491 priority patent/US8615808B2/en
Publication of JP2012014403A publication Critical patent/JP2012014403A/ja
Priority to US14/083,716 priority patent/US9043933B2/en
Application granted granted Critical
Publication of JP5567414B2 publication Critical patent/JP5567414B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、データ管理の方法に関し、より詳しくは、情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法に関する。
各金融機関が保持するデータや情報を、複数の金融機関にわたって取りまとめて、分析のための計算を行うというニーズがある。例えば、各金融機関における財務諸表が取りまとめて監査されたり、比較されたり、全体としての統計として算出されたりする。各金融機関における運営の内容を透明化して金融リスクを未然に防ぐ等、公の秩序を維持するという意味合いからも、このような分析はさらに推し進められていくことが期待されている。
信頼できる機関によって分析のための計算が行われるのであれば、各金融機関は自分が保持するデータを限定的に公開してもよいと考えるであろう。信頼できる機関としては、日本の金融庁や米国のFRBなどが典型であろうが、こういった公的な機関の確立、運営、維持には多大なコストを要する。また、そもそも信頼できる機関といっても、情報漏洩のリスクが完全に払拭できるわけではない。
また、各金融機関が独自に保持するデータを機密に保持しておきたい事情がある場合に、公開してもらうことに承諾してもらおうとすると、情報漏洩が生じないようにする安全性について十分な配慮が必要となってくる。特に、ポジションデータとか、損失算出モデルといった金融データは、各金融機関にとっては運営上のノウハウとして、他の金融機関に対して手の内を明かしたくないようなデータであることが多い。
もっとも、各金融機関は、自分で独自に保持している状態の「元のデータ」さえ機密に保持されていればよい、または、その「元のデータ」の出所さえ分からないようになっていればよい、と考えることも少なくない。むしろ記憶しておくコストを軽減するために、自分で保持しないで済むのであれば、外部で保管しておきたい、と考えることも少なくない。
例えば、統計として算出される結果が、たとえ2つの金融機関が保持するデータの単純平均にすぎない形での取りまとめの内容であったとしても、データが結合された状態になってさえいればよいという場合もある。他の(相手の)金融機関の側でも機密を保持したいと考えているのであれば、積極的に情報漏洩させようとはしないであろうことを期待できるからである。
特許文献1は、電子情報の保存場所を一極に集中することなく複数に分割保存させるようにして、作成した電子情報を安全に保存し、その後に内部記憶装置に存在する元の対象電子情報を消去するが、分割保存された分割情報は、全て集めて統合することによって元の対象電子情報を復元するという技術を開示するものである。
悪意を持った者による情報の持ち出しを防ぎ、安全にデータを管理しておくという点では本発明の目的に共通する部分が見られる。しかし、データを複数に分割して保管することについて正しい処理が行なわれることを前提としている。さらには、保存されたデータのサイズは、復元のための冗長度までを含め、記憶装置分に増えてしまう。データの一極管理を避けて、漏洩されるかもしれない対象を分割されたデータのみに限定しようとしている思想であるが、全体の処理も動作主体についての自由度がなく、中央集権的な仕組みに頼っている。
非特許文献1は、仮想計算機(VMs:Virtual Machines)を利用して、通信の流れを強制する(enforce)ことができること、または、強制的アクセス制御(MAC:Mandatory Access Control)が、実現可能な一般的技術水準であることについて説明している。本発明を実施するにあたって基盤として利用される技術である。
特開2006−301849号公報
Shamon:A System for Distributed Mandatory Access Control,Jonathan M.McCune, Trent Jaeger, Stefan Berger Ramon Caceres Reiner Sailer
本発明の目的は、第三者機関の計算基盤の上で、情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理することにある。
仮想計算機(VMs:Virtual Machines)を利用した基盤(仮想実行基盤)を、信頼できる機関の代替として利用する。結合されたデータを暗号化することで、情報漏洩のリスクを低減し、安全性を増すことができる。仮想実行基盤が通信の結線と向きを制御することができるので、各金融機関が独自の暗号化を施すことができ、外部で保管するにあたってはさらに都合がよい。また、各金融機関が独自の復号化を施すことができれば、2つの金融機関の一方の側が勝手に、外部で保管されたデータを仮想実行基盤に取り込むことを防止することができる。また、情報漏洩リスクに応じて動作主体について自由度を与えることができる。
このようにデータが結合されて暗号化された状態になっていれば、第三者機関の計算基盤の上でデータ保護に対する高信頼を担保するために、通常は高価で小容量の記憶領域において揮発的なデータを独自に保持しておく必要がなくなる。一方で、通常は安価で大容量のストレージが提供されている外部のパブリッククラウドに永続的なデータを保管しておくことができる。
図1は、本発明の方法が実行されるシステムの全体構成を示す図である。 図2は、本発明の方法が実行されるところの仮想実行基盤の制御下にあるメモリ空間の構成、および、複数のコンピュータ(コンピュータA、コンピュータB)の制御下にあるメモリ空間の構成を模式的に示す図である。 図3は、本発明の方法を実行するにあたって、データやモジュールをアップロードすることを模式的に示す図である。 図4は、本発明の方法を実行するにあたって、データAおよびデータBから結合データであるデータABを計算することを模式的に示す図である。 図5は、本発明の方法を実行するにあたって、結合データであるデータABを二重に暗号化することを模式的に示す図である。 図6は、本発明の方法を実行するにあたって、外部にあるストレージにおいて保管されているデータを復号化する方法を模式的に示す図である。 図7は、本発明の方法を実行するにあたって、外部にあるモジュールから内部にある代理モジュールへと、暗号化された情報を持ち込む具体的な手順を示す図である。 図8は、メモリ空間100においてアップロードまたはダウンロードされるデータまたはモジュールと、それらの動作主体との関係を一覧にした図である。
図1は、本発明の方法が実行されるシステムの全体構成を示す図である。本発明の方法は、仮想計算機(VMs:Virtual Machines)を利用した基盤(仮想実行基盤10)を利用して実行される。仮想計算機(VMs:Virtual Machines)については、非特許文献1に詳しい。
仮想実行基盤10は、コンピュータの一種であり、メモリ空間100を仮想実行基盤10の制御下に置いている、第三者機関の計算基盤である。コンピュータA20とコンピュータB30という複数のコンピュータが、それぞれ独自に、このメモリ空間100へデータやモジュールをアップロードし、またはこのメモリ空間100からデータやモジュール(コンピュータに実行させるためのプログラムまたはプログラム・コード)をダウンロードする。また、複数のコンピュータはそれぞれ独自に、または互いに協力して、このメモリ空間100からデータを外部にあるストレージ400へアップロードし、またはこのメモリ空間100へとデータを外部にあるストレージ400からダウンロードする。
例えば、コンピュータA20が一つの金融機関が管理するコンピュータに相当しており、コンピュータB30が一つの別の金融機関が管理するコンピュータに相当している、という状況を想定することができる。また、メモリ空間100およびそれを制御している仮想実行基盤10は、信頼できる機関の代替になり得るコンピュータに相当している、という状況を想定することができる。
第三者(監査法人など)のコンピュータ500も、このメモリ空間100へデータやモジュールをアップロードし、またはこのメモリ空間100からデータやモジュールをダウンロードすることができるコンピュータに相当している、という状況を想定することができる。第三者(監査法人など)500のコンピュータからこのメモリ空間100へのアクセス許容度は制限されるが、監査のためにたとえ一部であってもアクセスが許容されているという点では、やはり信頼できる機関の代替になり得るコンピュータであり、第三者機関の計算基盤である。
外部にあるストレージ400という用語のうちの「外部」とは、メモリ空間100の外部に外出しすることを表現するためのものにすぎず、本発明においてはそれ以上に技術的に特別な意義は含んでおらず、「外部」という用語の意義は広く解釈されるべきである。メモリ空間100をファイアウォールの「内部」に位置させておき、(後述するところの)二重暗号化の後にファイアウォールの外部へと外出ししておく場合には、情報漏洩のリスクを極小化しながらパブリッククラウドをより効率的に活用することができる。
図2は、本発明の方法が実行されるところの仮想実行基盤の制御下にあるメモリ空間の構成、および、複数のコンピュータ(コンピュータA、コンピュータB)の制御下にあるメモリ空間の構成を模式的に示す図である。メモリ空間100の(境界線の)内部へは、コンピュータA20およびコンピュータB30からデータやモジュールをアップロードすることができる。この図2の例では、点線で囲む四角によって12個の単位空間が示されている。12個の単位空間は、11、12、13、21、22、23、31、32、33、41、42、43、という行列としての位置番号をもって、模式的に示されている。
さらに、これら12個の単位空間を貫くようにして一点鎖線が描かれている。これらの一点鎖線は、通信の「結線」と「向き」を制御することができることを潜在的に示している仮想的な線であり、アップロードされている状態にあるデータやモジュールとの間での通信を潜在的に描いている。以降の図面上の表現の約束として、実際の通信の「結線」があると、一点鎖線は実線となり、通信の「向き」には矢印を示すものとする。
本明細書においては、仮想実行基盤10の制御によって通信の結線と向きを制御することを「強制」と呼ぶことにする。別の言い方をすると、「強制」された処理がなされるのであれば、それは限られた通信の結線と向きしか認められないということであり、コンピュータA20やコンピュータB30がお互いに合意や承諾をしていない動作はできないことになるので、お互いに仮想実行基盤10を信頼できる機関の代替として認めることに納得するであろうと期待しているものである。メモリ空間100の(境界線の)「内部」では、誰が動作主体になろうとも、または、誰が動作のきっかけになって処理が始まろうとも、仮想実行基盤10が処理を「強制」するのが原則である。通信の「向き」は「強制」される重要な制御要素の一つである。
実際には、仮想実行基盤10は、ある物理的な計算機(ホスト計算機)上に構築される。ハードウエア若しくはソフトウエアまたはそれらの組合せとして実現される。仮想実行基盤10は、仮想計算機(VMs)の通信を次のように制御する。ホスト計算機外部と仮想計算機の間の通信は、外部からのホスト計算機への受信データを仮想実行基盤が仮想計算機に伝送することにより、また仮想計算機から外部へ送信データを仮想実行基盤が取得し、それをホスト計算機の外部へ伝送することによって、実現する。
また、仮想計算機間のデータ送受信は、仮想実行基盤10がホスト計算機上のメモリ空間を介して伝送する。いずれの場合も仮想実行基盤10が通信の可否、及びその向きを一定の方針に従って「強制」することができる。
なお、図2における一点鎖線は一例を模式的に示したにすぎず、一点鎖線が描かれていない複数の任意の単位空間の間においても、通信の結線と向きを制御することができるように構成することも可能である。例えば、図中では、単位空間11と、単位空間22との間とを貫くように、斜めの方向にはこれらの間にのみ、一点鎖線を描いて潜在的に示しているが、これらの単位空間の間で直接通信して結線と向きが制御できるように構成することも可能である。
また、これらの複数の単位空間の各々に対しては、データやモジュールのアップロードをすることができ、それと同時に、またはアクセス制限が必要となった時点で後発的に、アクセス可能な動作主体を個別に設定することができる。アクセス可能な動作主体については、コンピュータA20、コンピュータB30、第三者(監査法人など)のコンピュータ500である。アクセス可能な動作主体は、仮想実行基盤10が総務的に設定してもよいし、コンピュータA20とコンピュータB30とが合意の上で互いに協力して、または第三者(監査法人)などに委託して、設定してもよい。
また、メモリ空間100の(境界線の)内部から外部へまたがっても一点鎖線が延びている。図1との関係では、これらまたがって延びている箇所を通じてメモリ空間100の外部からデータやモジュールがアップロードされて(入って)きて、メモリ空間100の内部からデータやモジュールがダウンロードされて(出て)いく。
コンピュータAの制御下にあるメモリ空間200には、2個の単位空間が、A1、A2という位置番号をもって、模式的に示されている。コンピュータBの制御下にあるメモリ空間300には、2個の単位空間が、B1、B2という位置番号をもって、模式的に示されている。これらの単位空間と、メモリ空間100の単位空間の各々との間でも通信することがあり得る。
メモリ空間100の単位空間の各々と、コンピュータAの制御下にあるメモリ空間200の単位空間の各々との間、コンピュータBの制御下にあるメモリ空間300の単位空間の各々との間における通信の結線と向きについても、仮想実行基盤10によって「強制」することができる。ただし、コンピュータAの制御下にあるメモリ空間200と、コンピュータBの制御下にあるメモリ空間300とについては、仮想実行基盤10が(少なくとも)それらのメモリ空間にアップロードされている(状態にある)データやモジュールの内容までは見ることができないようにしておく方が、情報漏洩のリスクを低減するという点では、好ましい。
ちなみに、コンピュータAの制御下にあるメモリ空間200と、外部にあるストレージのメモリ空間400との間における通信の結線と向きについても、仮想実行基盤10によって「強制」することができるようにすることもできるであろう。コンピュータBの制御下にあるメモリ空間300と、外部にあるストレージのメモリ空間400との間における通信の結線と向きについても、仮想実行基盤10によって「強制」することができるようにすることもできるであろう。しかし、情報漏洩のリスクを低減するという点では、仮想実行基盤10が制御できないようにしておく方が好ましいであろう。
基本的に、仮想実行基盤10は、ダウンロードやアップロードをする動作主体になるというよりも、メモリ空間100を制御しているだけであって、コンピュータA20やコンピュータB30が、ダウンロードやアップロードができる空間(場)を提供しているにすぎない、という設定が好ましいことになる。
図3は、本発明の方法を実行するにあたって、データやモジュールをアップロードすることを模式的に示す図である。ここでは、データAはコンピュータA20において独自に所有しているデータであって、コンピュータA20がデータAを(単位空間11に)アップロードする。また、データBはコンピュータB30において独自に所有しているデータであって、コンピュータB30がデータBを(単位空間41に)アップロードする。
また、このアップロードと同時に、またはアクセス制限が必要となった時点で後発的に、単位空間ごとにアクセス可能な動作主体を個別に設定することができるので、データAはコンピュータB30からはアクセスできないように、データBはコンピュータA20からはアクセスできないように設定することもできる。コンピュータAとコンピュータBとが、それぞれ自分で保持するデータを機密に保持しておきたい場合に有効な設定となる。
このように、情報漏洩のリスクを気にする関係者(ここでは、コンピュータAとコンピュータB)に対して、そのリスクを極小化する様々な設定のバリエーションをフレキシブルに設けることができる。
代理復号化モジュールA(単位空間33)、暗号化モジュールA(単位空間A1)および復号化モジュールA(単位空間A2)はコンピュータAが独自に設定するモジュールであって、コンピュータAがそれらの両方またはいずれか一方を(処理に必要となる時点までに)アップロードする。暗号化モジュールA(単位空間33)はコンピュータAの公開鍵を、復号化モジュールA(単位空間A2)はコンピュータAの秘密鍵を保持する。
また、暗号化モジュールB(単位空間13)および復号化モジュールB(単位空間B1)はコンピュータBが独自に設定するモジュールであって、コンピュータBがそれらの両方またはいずれか一方を(処理に必要となる時点までに)アップロードする。暗号化モジュールB(単位空間13)および代理復号化モジュールA(単位空間33)のアップロードは、仮想実行基盤10の制御下において、仮想実行基盤10を経由して行っている。暗号化モジュールB(単位空間13)及び代理復号化モジュールA(単位空間33)はコンピュータBの公開鍵を、復号化モジュールB(単位空間B1)はコンピュータBの秘密鍵を保持する。
復号化モジュールA(単位空間A2)は、メモリ空間100にアップロードするべきではない。その理由は、仮想実行基盤10が外部から攻撃された場合に、その復号化モジュールを解読されてしまうためである。同様に、復号化モジュールB(単位空間B1)も、メモリ空間100にアップロードするべきではない。
また、暗号化モジュールBをコンピュータA20からはアクセスできないように設定することもできる。暗号化の方法さえ他人に知られたくない場合に有効な設定となる。
後述するが、メモリ空間の内部から外部に向かって、暗号化モジュールBの出力は、コンピュータAにしか向かうことができないように「強制」される。また、コンピュータBからメモリ空間内部に向かっての入力は、代理復号化モジュールAにしか入ってこないように「強制」される。
計算モジュール(単位空間21)は、コンピュータA20およびコンピュータB30の合意の下にコンピュータA20とコンピュータB20とが協力してアップロードしてもよいし、何れか一方によってアップロードしてもよい。信頼できる機関(例えば、第三者(監査法人)のコンピュータ500)が調停者または仲裁者という中立的な立場として、またはコンピュータA20およびコンピュータB30から委託されて、アップロードしてもよい。
図4は、本発明の方法を実行するにあたって、データAおよびデータBから結合データであるデータABを計算することを模式的に示す図である。計算モジュールは、データAとデータBとを入力として、結合データとしてのデータABを出力する。このように、矢印の起点を入力として、矢印の終点が出力先となるように、仮想実行基盤10によってデータ処理が「強制」されている。このデータ処理は、誰が動作主体になろうとも、または、誰が動作のきっかけになって処理が始まることになろうとも、「強制」されている
データABの計算にあたって、計算モジュールが第三者(監査法人)のコンピュータ500からアップロードされたものであれば、データABを第三者(監査法人)のコンピュータ500に対してだけアクセスできるようにしてもよい。監査してもらうというだけを目的にする場合に有効な設定である。
データABの計算が、データAとデータBとの単純平均にすぎない形での算出であったとしても、データが結合された状態になってさえいれば、データAであればコンピュータBに対して、データBであればコンピュータAに対して知られてしまっても問題ない、という場合も考えられる。このような場合には、互いにだけアクセスできるようにしてもよい。相手が積極的に情報漏洩させようとはしないであろうことを期待できる場合に有効な設定である。
データABがコンピュータAからもコンピュータBからも、又は第三者からもアクセスできないように制御する場合もある。それは例えば、結合が十分でなく元のデータが結合されてもまだわかってしまう場合や、第三者に開示できるデータを生成する前段階の中間計算データ等が該当する。
図5は、本発明の方法を実行するにあたって、結合データであるデータABを二重に暗号化することを模式的に示す図である。データABは、まず暗号化モジュールBによって暗号化され、次にそれに重ねて、暗号化モジュールAによって暗号化される。暗号化の順番として仮想実行基盤10によって「強制」されることになるが、かならずしもB→Aの順序である必要はなく、メモリ空間100の内部の暗号化モジュールX(X={A,B})からの通信は、外部の暗号化モジュールY(=Xではない方)にしか向かうことがないように、仮想実行基盤10によって「強制」されればよい。
このように二重に暗号化されたデータは、外部にあるストレージ400にアップロードされる。コンピュータA若しくはコンピュータBの何れか一方またはそれらの両方によって、外部にあるストレージ400にアップロードされてもよい。このようにして、データが外部で保管される。データが結合された上にさらに暗号化された状態になっていれば、情報漏洩のリスクを気にせずに、パブリッククラウドのストレージを利用しやすくなる。パブリッククラウドのストレージは、通常は安価で大容量で提供されている。
図6は、本発明の方法を実行するにあたって、外部にあるストレージにおいて保管されているデータを復号化する方法を模式的に示す図である。外部にあるストレージ400から保管されているデータがダウンロードされる。コンピュータA若しくはコンピュータBの何れか一方またはそれらの両方によってダウンロードされてもよい。保管されているデータは、まず復号化モジュールAによって復号化され、次にそれに重ねて、復号化モジュールBによって復号化される。復号化の順番としては仮想実行基盤10によって「強制」されることになる。
最終的に元のデータAB(結合データ)に復元される前には、代理復号化モジュールAが介在する。
図7は、本発明の方法を実行するにあたって、外部にあるモジュールから内部にある代理モジュールへと、暗号化された情報を持ち込む具体的な手順を示す図である。
外部からの入力は、代理復号化モジュールAにしか入ってこないように仮想実行基盤10によって「強制」されるが、かならずしもB→Aの順序である必要はなく、メモリ空間100の内部にある代理復号化モジュールX(X={A,B})に入っていく通信は、復号化を処理する“代理”として、外部にある復号化モジュールY(=Xでない方)からのものしか入ってこないように、仮想実行基盤10によって「強制」されていればよい。
ただし、代理復号化モジュールAが復号化モジュールAと同様の機能を果たすためには、暗号化モジュールAにおいて暗号のために用いられた暗号のための鍵が、代理復号化モジュールAへ正確に伝えられる必要がある。これは、仮想実行基盤10の制御下にあるメモリ空間100の外部から内部へと「必要な瞬間だけ持ち込まれる」ようにしておけば、仮想実行基盤10が自分だけでは暗号と復号との両方を処理することができないという点において安全である。
データABを取り込む際の具体的な手順(1)〜(8)は次の通りである。
(1)暗号化モジュールBが、データdを処理するものとする。
(2)暗号化モジュールBが、代理復号化モジュールAに空の封筒を要求する。空の封筒とは、封筒内に入れるデータを暗号化するための鍵Rを指す。
(3)代理復号化モジュールAは、乱数発生によりRを生成して、それをコンピュータAの公開鍵pk_Aで暗号化することにより、封筒データ:E(pk_A,R)を生成する。(ここでE(k,m)はメッセージmを鍵kを用いて暗号化することによって得られる暗号文の意)
(4)代理復号化モジュールAは、封筒データを暗号化モジュールBへ返す。
(5)暗号化モジュールBからのデータ取得要求(封筒データが添付されている)が、暗号化モジュールAへと通信が強制される。
(6)暗号化モジュールAは、データABの二重暗号化を解くためのAの鍵(K_Aとする)を代理復号化モジュールAへ暗号化した形式で送信したい。そのため、封筒データを、復号化モジュールAが持つコンピュータAの秘密鍵sk_Aで復号しRを得る。そしてそのRを用いてK_Aを暗号化することにより、E(R,K_A)を得る。
(7)E(R,K_A)は、復号化モジュールBへ送られ、復号化モジュールBは、データABの二重暗号化を解くためのBの鍵(K_Bとする)を使って1回暗号を解く。(この段階では、データABはまだK_Aで暗号化された状態のままである。)
(8)復号化モジュールBは、1回暗号が解かれK_Aで暗号化された状態のデータABとE(R,K_A)とを併せて仮想実行基盤へ送信する。その送信先は、仮想実行基盤によって代理復号化モジュールAに強制される。Rは代理復号化モジュールAが(3)において生成し保持している。従って、それを鍵として用いて、E(R,K_A)を復号(封筒を開封)すると、K_Aが復元できる。すなわち、(6)において外部の復号化モジュールAが送信したかったところのK_Aは、今や無事に代理復号モジュールAの手にあるので、それを使って最後の復号化を施し、データABを得ることができる。
これら手順を通じて、復号化モジュールAのみが封筒に鍵を詰めることができ、代理復号化モジュールAのみが封筒から鍵を取り出すことができる。
本発明は、コンピュータによって実行される方法若しくはプロセスまたはこれらを実行するための装置という態様で実施することができる。コンピュータとしては、仮想実行基盤10、コンピュータA20、コンピュータB30、第三者(監査法人)のコンピュータ500、が動作を制御する主体として説明してきた。しかし、メモリ空間100が仮想実行基盤10の制御下にあって仮想実行基盤10が主体的に「強制」を司っていること以外のことについては本発明では必須の要件ではなく、これらの主体の何れかに限定されなければ本発明の動作ができないというわけではない。
図8は、メモリ空間100においてアップロードまたはダウンロードされるデータまたはモジュールと、それらの動作主体との関係を一覧にした図である。今までの説明のまとめにもなるが、この関係が説明しようとしていることは、仮想実行基盤10による「強制」以外は動作主体の自由度があるということである。一方では、人間の行為そのものが動作の主体になる場合を全面的に許容しているものでもないので、各国の特許要件に応じて、特許請求の範囲における動作主体の記載が許容されるべきである。当業者であれば、本発明の範囲を逸脱せずに、これらの主体が単独で動作を制御するように、または、これらの主体が協力して動作を制御するように、様々な変更や応用を想到することが可能であろう。
なお、メモリ空間100における仮想実行基盤10の制御を、コンピュータに実行させるためのコードを備えたプログラムによって実現して、仮想実行基盤10またはその制御下にあるメモリ空間100として機能するコンポーネントの一部を担うプログラムとしてロードすることも可能である。または、メモリ空間100またはその仮想実行基盤10による制御について、(高速化を主たる目的として)ハードウエア化したワイヤードロジック(論理回路)として実現することも可能である。
メモリ空間100の提供は、サービス・プロバイダとしての行為として、クラウド・サービスとして行うことができる。
外部にあるストレージ400の提供は、保管のための記憶メディアをプロビジョニングするシステム(の一部)として捉えることができる。このプロビジョニングは、コンピュータA20の記憶容量が所定の限界を超えたとき、または、コンピュータB30の記憶容量が所定の限界を超えたときにおいて、自動的に行うようにすることもできる。
10 仮想実行基盤
100 メモリ空間(仮想実行基盤の制御下にある)
20 コンピュータA(一つの金融機関が管理するコンピュータに相当)
30 コンピュータB(一つの別の金融機関が管理するコンピュータに相当)
200 メモリ空間(コンピュータAの制御下にある)
300 メモリ空間(コンピュータBの制御下にある)
400 外部にあるストレージ
500 第三者(監査法人など)のコンピュータ

Claims (10)

  1. 複数のコンピュータ(コンピュータA,コンピュータB)の両方が仮想実行基盤にアクセス可能であって、この仮想実行基盤を利用することによって、複数のコンピュータ(コンピュータA,コンピュータB)の各々が独自に所有している複数のデータの両方から処理された結合データを、外部にあるストレージにおいて保管する方法であって、
    コンピュータAが、コンピュータAにおいて独自に所有しているデータAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    コンピュータBが、コンピュータBにおいて独自に所有しているデータBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    仮想実行基盤の制御下において、コンピュータA若しくはコンピュータBによって、または、第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    仮想実行基盤の制御下において、コンピュータAまたはコンピュータBに対して、または、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制するステップと、
    コンピュータAが、コンピュータAによってのみ制御可能な暗号化モジュールAを、コンピュータAの制御下にあるメモリ空間にアップロードするステップと、
    コンピュータBが、コンピュータBによってのみ制御可能な暗号化モジュールBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    仮想実行基盤の制御下において、コンピュータBに対して、データABを暗号化モジュールBによって暗号化することを強制するステップと、
    コンピュータAが、暗号化モジュールBによって暗号化されたデータABをさらに、暗号化モジュールAによって二重に暗号化するステップと、
    コンピュータAまたはコンピュータBが、二重に暗号化されたデータを外部にあるストレージにアップロードするステップと、
    を有する、
    方法。
  2. コンピュータAが、コンピュータAによってのみ制御可能な復号化モジュールAを、コンピュータAの制御下にあるメモリ空間にアップロードするステップと、
    コンピュータBが、コンピュータBによってのみ制御可能な復号化モジュールBを、コンピュータBの制御下にあるメモリ空間にアップロードするステップと、
    コンピュータAまたはコンピュータBが、二重に暗号化されたデータを外部にあるストレージからダウンロードするステップと、
    を有する
    請求項1に記載の方法。
  3. コンピュータAが、コンピュータAによってのみ制御可能な代理復号化モジュールAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    代理復号化モジュールAによって、処理が強制されているデータを復号化する、
    請求項2に記載の方法。
  4. 暗号化モジュールAにおいて暗号のために用いられた暗号のための鍵が、代理復号化モジュールAへ暗号化されて送信される、
    請求項3に記載の方法。
  5. 仮想実行基盤による制御下において、データAがアップロードされている単位空間へはコンピュータBがアクセスすることができないように設定するステップと、
    仮想実行基盤による制御下において、データBがアップロードされている単位空間へはコンピュータAがアクセスすることができないように設定するステップと、
    を有する、
    請求項1に記載の方法。
  6. メモリ空間を有し、メモリ空間を制御する仮想実行基盤であって、
    複数のコンピュータ(コンピュータA、コンピュータB)からのデータやモジュールをアップロードまたはダウンロードすることができる複数の単位空間を提供し、
    複数の単位空間の各々についてアクセス可能な主体を設定することができ、
    ある単位空間にアップロードされている状態にあるデータやモジュールから、別の単位空間にアップロードされている状態にあるデータやモジュールへの通信の結線と向きを制御することができ、
    複数のコンピュータ(コンピュータA,コンピュータB)の両方がこの仮想実行基盤にアクセス可能であって、この仮想実行基盤を利用することによって、複数のコンピュータ(コンピュータA,コンピュータB)の各々が独自に所有している複数のデータの両方から処理された結合データを、外部にあるストレージにおいて保管することができ、
    コンピュータAが、コンピュータAにおいて独自に所有しているデータAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    コンピュータBが、コンピュータBにおいて独自に所有しているデータBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    この仮想実行基盤の制御下において、コンピュータA若しくはコンピュータBによって、または、第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    この仮想実行基盤の制御下において、コンピュータAまたはコンピュータBに対して、または、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制することができ、
    コンピュータAが、コンピュータAによってのみ制御可能な暗号化モジュールAを、コンピュータAの制御下にあるメモリ空間にアップロードすることができ、
    コンピュータBが、コンピュータBによってのみ制御可能な暗号化モジュールBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    この仮想実行基盤の制御下において、コンピュータBに対して、データABを暗号化モジュールBによって暗号化することを強制することができ、
    コンピュータAが、暗号化モジュールBによって暗号化されたデータABをさらに、暗号化モジュールAによって二重に暗号化することができ、
    コンピュータAまたはコンピュータBが、二重に暗号化されたデータを外部にあるストレージにアップロードすることができる、
    仮想実行基盤。
  7. さらに、
    複数のコンピュータ(コンピュータA、コンピュータB)の制御下にある単位空間に対しても、仮想実行基盤が制御するメモリ空間を含め、ある単位空間にアップロードされている状態にあるデータやモジュールから、別の単位空間にアップロードされている状態にあるデータやモジュールへの通信の結線と向きを制御することができる、
    請求項6に記載の仮想実行基盤。
  8. 仮想実行基盤または仮想実行基盤により制御されるメモリ空間にロードされるコンピュータ・プログラムであって、
    コンピュータに実行させるコードとして、
    複数のコンピュータ(コンピュータA、コンピュータB)からのデータやモジュールをアップロードまたはダウンロードすることができる複数の単位空間を提供するコードと、
    複数の単位空間の各々についてアクセス可能な主体を設定するコードと、
    ある単位空間にアップロードされている状態にあるデータやモジュールから、別の単位空間にアップロードされている状態にあるデータやモジュールへの通信の結線と向きを制御することができるコードと、
    を有していて、
    複数のコンピュータ(コンピュータA,コンピュータB)の両方がこの仮想実行基盤にアクセス可能であって、この仮想実行基盤を利用することによって、複数のコンピュータ(コンピュータA,コンピュータB)の各々が独自に所有している複数のデータの両方から処理された結合データを、外部にあるストレージにおいて保管することができ、
    コンピュータAが、コンピュータAにおいて独自に所有しているデータAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    コンピュータBが、コンピュータBにおいて独自に所有しているデータBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    この仮想実行基盤の制御下において、コンピュータA若しくはコンピュータBによって、または、第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    この仮想実行基盤の制御下において、コンピュータAまたはコンピュータBに対して、または、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制することができ、
    コンピュータAが、コンピュータAによってのみ制御可能な暗号化モジュールAを、コンピュータAの制御下にあるメモリ空間にアップロードすることができ、
    コンピュータBが、コンピュータBによってのみ制御可能な暗号化モジュールBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードすることができ、
    この仮想実行基盤の制御下において、コンピュータBに対して、データABを暗号化モジュールBによって暗号化することを強制することができ、
    コンピュータAが、暗号化モジュールBによって暗号化されたデータABをさらに、暗号化モジュールAによって二重に暗号化することができ、
    コンピュータAまたはコンピュータBが、二重に暗号化されたデータを外部にあるストレージにアップロードすることができる、
    コンピュータ・プログラム。
  9. 複数のコンピュータ(コンピュータA,コンピュータB)の両方が仮想実行基盤にアクセス可能であって、この仮想実行基盤を利用することによって、複数のコンピュータ(コンピュータA,コンピュータB)の各々が独自に所有している複数のデータの両方から処理された結合データを、第三者のコンピュータがアクセスすることができるようにする方法であって、
    コンピュータAが、コンピュータAにおいて独自に所有しているデータAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    コンピュータBが、コンピュータBにおいて独自に所有しているデータBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    仮想実行基盤の制御下において、コンピュータA若しくはコンピュータBによって、または、第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    仮想実行基盤の制御下において、コンピュータAまたはコンピュータBに対して、または、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制するステップと、
    仮想実行基盤による制御下において、データABがアップロードされている単位空間へは第三者のコンピュータのみがアクセスすることができるように設定するステップと、
    を有する、
    方法。
  10. 第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
    仮想実行基盤の制御下において、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制するステップと、
    を有する、
    請求項9に記載の方法。
JP2010149939A 2010-06-30 2010-06-30 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法 Active JP5567414B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010149939A JP5567414B2 (ja) 2010-06-30 2010-06-30 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法
US13/173,491 US8615808B2 (en) 2010-06-30 2011-06-30 Method of processing data to enable external storage thereof with minimized risk of information leakage
US14/083,716 US9043933B2 (en) 2010-06-30 2013-11-19 Method of processing data to enable external storage thereof with minimized risk of information leakage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010149939A JP5567414B2 (ja) 2010-06-30 2010-06-30 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法

Publications (2)

Publication Number Publication Date
JP2012014403A JP2012014403A (ja) 2012-01-19
JP5567414B2 true JP5567414B2 (ja) 2014-08-06

Family

ID=45400649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010149939A Active JP5567414B2 (ja) 2010-06-30 2010-06-30 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法

Country Status (2)

Country Link
US (2) US8615808B2 (ja)
JP (1) JP5567414B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US9213966B2 (en) 2012-06-22 2015-12-15 Intuit Inc. Regulation compliant data integration for financial institutions
JP2015072629A (ja) * 2013-10-03 2015-04-16 富士通株式会社 データ処理プログラム及びデータ処理方法
CN105991563B (zh) * 2015-02-05 2020-07-03 阿里巴巴集团控股有限公司 一种保护敏感数据安全的方法、装置及三方服务***
US10447670B2 (en) 2016-07-28 2019-10-15 Red Hat Israel, Ltd. Secret keys management in a virtualized data-center
US11184333B2 (en) * 2016-12-05 2021-11-23 Intecrowd, LLC Human capital management data transfer systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448079B2 (en) * 2000-07-05 2008-11-04 Ernst & Young, Llp Method and apparatus for providing computer services
JP2002055868A (ja) * 2000-08-07 2002-02-20 Ricoh Co Ltd 情報処理システムおよび情報処理方法
JP2006301849A (ja) 2005-04-19 2006-11-02 Global Friendship Inc 電子情報保存システム
US7689800B2 (en) * 2005-05-12 2010-03-30 Microsoft Corporation Partition bus
JP5037016B2 (ja) * 2006-01-17 2012-09-26 株式会社リコー ネットワークコンピューティングシステム、通信方法、画像投影装置、画像入出力装置
US7444670B2 (en) 2006-03-21 2008-10-28 International Business Machines Corporation Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
JP4256897B2 (ja) * 2006-06-16 2009-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーション マッチング・サービスを提供するための装置、方法及びプログラム
JP2009116382A (ja) * 2007-11-01 2009-05-28 Hitachi Ltd 分散システム及び分散システムを有するコンピュータ
US20100161926A1 (en) * 2008-12-23 2010-06-24 Hong Li Data protection by segmented storage
EP2577539B1 (en) 2010-06-02 2018-12-19 VMware, Inc. Securing customer virtual machines in a multi-tenant cloud

Also Published As

Publication number Publication date
US8615808B2 (en) 2013-12-24
US20140075205A1 (en) 2014-03-13
US20120005486A1 (en) 2012-01-05
JP2012014403A (ja) 2012-01-19
US9043933B2 (en) 2015-05-26

Similar Documents

Publication Publication Date Title
CN108632284B (zh) 基于区块链的用户数据授权方法、介质、装置和计算设备
JP5567414B2 (ja) 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法
TWI569169B (zh) 用可重新程式設計的密碼操作來管理對現場可程式設計閘陣列的使用
JP6449970B2 (ja) IoTデバイス
US20200104528A1 (en) Data processing method, device and system
CN110050437A (zh) 分布式证书注册的装置和方法
EP4222915A1 (en) Providing cryptographically secure post-secrets-provisioning services
WO2020078804A1 (en) Puf based securing of device update
CN108182095A (zh) 一种应用部署方法、装置及设备
CN111181944B (zh) 通信***及信息发布方法、装置、介质、设备
US11290277B2 (en) Data processing system
US11432156B2 (en) Security unit for an IoT device and method for running one or more applications for the secured exchange of data with one or more servers which provide web services
Bakir et al. Caplets: Resource aware, capability-based access control for IoT
KR20200084388A (ko) Intel SGX를 사용한 투명하고 안전한 IoT 게이트웨이 연결법
Sarhan et al. Secure android-based mobile banking scheme
US20240193255A1 (en) Systems and methods of protecting secrets in use with containerized applications
WO2020144758A1 (ja) 秘密計算装置及びクライアント装置
US9135449B2 (en) Apparatus and method for managing USIM data using mobile trusted module
CN115396179A (zh) 基于区块链的数据传输方法、装置、介质及设备
CN115758332A (zh) 一种交易分组方法和区块链节点
CN114338629A (zh) 数据处理方法、装置、设备及介质
US12047370B2 (en) Data encryption using public key cryptography and certificate verification
US20240214185A1 (en) Protecting secret processing, secret input data, and secret output data using enclaves
US20200067717A1 (en) Authentication system, authentication device, terminal device, authentication method, and recording medium
US20230388279A1 (en) Data processing methods, apparatuses, and devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140619

R150 Certificate of patent or registration of utility model

Ref document number: 5567414

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150