JP6541688B2 - 安全なコンピューティングシステム及び方法 - Google Patents

安全なコンピューティングシステム及び方法 Download PDF

Info

Publication number
JP6541688B2
JP6541688B2 JP2016565139A JP2016565139A JP6541688B2 JP 6541688 B2 JP6541688 B2 JP 6541688B2 JP 2016565139 A JP2016565139 A JP 2016565139A JP 2016565139 A JP2016565139 A JP 2016565139A JP 6541688 B2 JP6541688 B2 JP 6541688B2
Authority
JP
Japan
Prior art keywords
data
request
program
execution
genomic
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
JP2016565139A
Other languages
English (en)
Other versions
JP2017515233A (ja
Inventor
キャリー ダブリュ.ノックス
キャリー ダブリュ.ノックス
エー.ニルソン ジャール
エー.ニルソン ジャール
グランサム バート
グランサム バート
Original Assignee
インタートラスト テクノロジーズ コーポレイション
インタートラスト テクノロジーズ コーポレイション
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 インタートラスト テクノロジーズ コーポレイション, インタートラスト テクノロジーズ コーポレイション filed Critical インタートラスト テクノロジーズ コーポレイション
Publication of JP2017515233A publication Critical patent/JP2017515233A/ja
Application granted granted Critical
Publication of JP6541688B2 publication Critical patent/JP6541688B2/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • 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
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/20Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/30Data warehousing; Computing architectures
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/63ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for local operation
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
    • 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/2101Auditing as a secondary aspect

Description

関連出願
本出願は、合衆国法典第35巻第119条(e)の下で、2014年5月1日に出願された米国仮特許出願第61/987,365号、名称「SECURE COMPUTING SYSTEMS AND METHODS」、及び2014年11月10日に出願された米国仮特許出願第62/077,691号、名称「SECURE COMPUTING SYSTEMS AND METHODS」に対する優先権の利益を主張するものであり、どちらも参照によりその全体が本明細書に組み込まれる。
著作権承認
本特許文献の開示の一部分は、著作権保護を受ける資料を含み得る。著作権所有者は、米国特許商標局の特許ファイルまたは記録に現れるような特許文書または特許開示を、第三者がファクシミリで複製することに異存はないが、その他の場合には、著作権に関する全ての権利を保有するものである。
本開示は、概して、情報の信用できる取り扱いを容易にするためのシステム及び方法に関する。より具体的には、排他的ではないが、本開示は、ゲノム、医療、ヘルスケア、バイオインフォマティックス、及び/または他の機密情報の安全な、管理された、及び/または監査された使用を可能にするためのシステム及び方法に関する。
データは、科学的発見を刺激し、データへのアクセスを制限する技術は、科学的プロセスを妨げる場合がある。この危険性は、ヘルスケアシステムにおいて特に深刻であり、アイドル状態のデータは、患者を治療するために、並びに/または新しい技術及び/若しくは治療法を開発するためには使用されないかもしれない場合のあるデータである。しかしながら、ヘルスケアデータは、本質的には機密であり、その公開は、ある特定の有害な影響を有する場合がある。例えば、ゲノム情報は、患者に関してだけでなく、患者の親族に関しても同様に、健康状態及び疾患の危険性に関する膨大な量の詳細を明かすことができる。匿名の形式であっても、ゲノム情報は、患者のプライバシー及び/または他の関連付けられる個人のプライバシーを危殆化し得る攻撃の影響を受け易い。故に、研究者及び/または他のヘルスケア提供者が使用することができるゲノムデータの量を増加させ、一方で、患者及び/または関与する個人のプライバシーを維持し、かつ危殆化させる攻撃を阻止する、という目標をバランスさせることは困難であると証明することができる。
いくつかのアクセスモデルの下では、ゲノム及び/または他の機密データへのアクセスを望み得る研究者または他のエンティティを慎重にスクリーニングすることができる。しかしながら、スクリーニングに成功した後に、研究者及び/またはエンティティが関連する対象物(例えば、患者)のプライバシーの利益を尊重すると信用できるという想定の下で、彼らにはゲノム及び/または他の機密データへの自由な、及び/または比較的制限の少ないアクセスを与えることができる。しかしながら、このような手法は、固有の信用の反推移性に対処することができない。例えば、このようなアクセスモデルは、信用できる、及び/またはスクリーニングされた研究者が、自分が信用する同僚に電子メールで患者の個人データを送ることができるかどうか、研究者が電子メールで情報のサブセットを正当に送ることができるかどうか、そして、送ることができる場合は、どのくらい大きいサブセットを許容することができるか、研究者の患者の個人データが記憶されているコンピューティングインフラストラクチャを管理することに関して、何が研究者の倫理的な義務なのか、及び/または同類のことに明確に対処することができない。
この従来のアクセスモデルに関する潜在的な問題は、データの使用を管理する比較的複雑なポリシーをユーザが施行すると期待し得ることである。情報が受信者(例えば、研究者)に明かされると、及び/または別様には提供されると、データのプライバシーの保護についての慎重さ、個人データを共有することによってより容易に達成することができる特定の科学的または研究の業務を達成するという受信者の要望と矛盾し得る要件、並びに/または受信者の技術的能力を超え得る要件についての慎重さを持って行動するといった負担を受信者にかける。
これらの問題の一部または全部を改善するシステム及び方法が本明細書で説明される。本明細書で開示される実施形態と一致して、機密データ(例えば、ゲノムまたは他の医療若しくはバイオインフォマティックスデータ)をやりとりさせることができるアプリケーション(例えば、モデルビューコントローラ(「MVC」)ウェブアプリケーション、及び/または同類のもの)と関連して、より強いセキュリティ及び/またはプライバシー機能を提供するために、データサービスを使用することができる。ある特定の実施形態において、開示されるシステム及び方法は、ゲノム及び/または他の機密データの使用に関するプライバシーに対する懸念に対処することができ、また、このようなデータが関与する危殆化攻撃の可能性を軽減することができる。更なる実施形態において、開示されるシステム及び方法は、機密データへの安全な及び/若しくはポリシーに基づくアクセス、並びに/または機密データの使用を可能にするために使用することができる。とりわけ、開示されるシステム及び方法の実施形態は、ゲノム及び/または他の機密データへのアクセス(例えば、配信、分析など)及び/またはそれらの使用、分散したゲノム及び/または他の機密データとの改善されたやりとり及び/またはそれらの使用、ゲノム及び/または他の機密データのワークフロープロセスにおける低減されたユーザの関与、並びに/または同類のことを容易にすることができる。
本発明の作用の主体は、添付図面と併せて以下の詳細な説明を参照することによって容易に理解されるであろう。
本開示の実施形態と一致する、機密データを記憶、管理、及び処理するための例示的なエコシステムを例示する図である。 本開示の実施形態と一致する、アプリケーションプログラミングインタフェースを使用して機密データをやりとりするための例示的なアーキテクチャを例示する図である。 本開示の実施形態と一致する、サンドボックス化実行環境及びデータアクセスプロキシを使用して機密データをやりとりするための例示的なアーキテクチャを例示する図である。 本開示の実施形態と一致する、データサービスと関連して使用するための例示的なプログラムを例示する図である。 本開示の実施形態と一致する、アプリケーションプログラミングインタフェースを介して、データアクセス要求と関連する例示的な交換を例示する図である。 本明細書で開示される実施形態と一致する、機密データを利用して計算を行うための例示的な計算ネットワークを例示する図である。 本明細書で開示される実施形態と一致する、データサービスとインターフェースするように構成される例示的なウェブアプリケーションを例示する図である。 本明細書で開示される実施形態と一致する、データアクセスプロキシを使用するデータサービスとインターフェースするように構成される例示的なウェブアプリケーションを例示する図である。 本明細書で開示される実施形態と一致する、機密データをやりとりする例示的な方法のフローチャートを例示する図である。 本明細書で開示されるシステム及び方法の実施形態を実施するために使用することができる例示的なシステムを例示する図である。 本発明の作用の主体のある特定の実施形態と一致する、データサービスによるプログラムまたは他の計算の実行を例示するフローチャートである。
本開示の実施形態と一致するシステム及び方法の詳細な説明は、下に提供される。複数の実施形態が説明されるが、本開示は、任意の一実施形態に限定されるものではなく、代わりに、多数の代替物、変形物、均等物を包含することを理解されたい。例えば、例示の目的で、ゲノムデータの文脈において数多くの実施例が提供されているが、本明細書で開示されるシステム及び方法は、その文脈に限定されるものではなく、他の形式の機密データとともに容易に使用することができることが認識されるであろう。加えて、本明細書で開示される実施形態の完全な理解を提供するために、多数の具体的な詳細が以下の説明に記載されるが、いくつかの実施形態は、これらの詳細の一部または全てを伴わずに実践することができる。更に、明確にする目的で、関連技術において知られているある特定の技術資料は、本開示を不必要に不明瞭にすることを回避するために、詳細に説明されていない。
本開示の様々な実施形態は、図面を参照することによって理解され得、特定の事例において、同じ部分は、同じ数字によって表され得る。開示される実施形態の構成要素は、概して本明細書で図面において説明され、例示されるように、多種多様な異なる構成で配設し、設計することができる。したがって、以下の詳細な説明は、特許請求される本開示の範囲を限定することを意図するものではなく、単に、本開示の可能な実施形態を表したものに過ぎない。加えて、本明細書で開示される任意の方法のステップは、別途指定されない限り、必ずしも任意の特定の順序で、更には連続的に実行する必要があるというわけではなく、また、ステップを1度だけ実行する必要があるというわけでもない。
ゲノム及び/または他の機密情報の安全な、管理された、及び/または監査された使用を容易にするシステム及び方法が提示される。ある特定の実施形態において、開示されるシステム及び方法は、機密データへのアクセス及び/またはその使用の、ポリシーに基づく管理を可能にするために、分散データのやりとり及び/または分散データの使用を改善するために、データワークフロー処理へのユーザの関与を減らすために、並びに/または同類ことのために使用することができる。本明細書で開示される実施形態と一致して、データサービスは、遺伝子配列及び/または他の医療若しくはバイオインフォマティック情報を記憶及び/または分析する、信用できるクラウドサービスのためのフレームワークを提供することができる。とりわけ、開示されるデータサービスの実施形態は、研究者及び臨床医がコンピュータプログラム(例えば、信用できる解析論)を通してデータをやりとりすることを可能にすることによって、ゲノムまたは他の機密データに関するプライバシーの問題に対処することができ、これは、データについて様々な利害関係者によって決定される施行ポリシーに従って、様々な方法で管理することができる。これらのシステム及び方法は、その中で用いられる構成要素、システム、及び方法の多くと同様に、新規であることが認識されるであろう。
ある特定の実施形態において、本明細書で説明されるシステム及び方法は、例えば、同一出願人による、2006年10月18日に出願された米国特許第8,776,216号、名称「Digital Rights Management Engine Systems and Methods」(「216号特許」)において説明されているような、デジタル権利管理(「DRM」)技術、同一出願人による、2004年6月7日に出願された米国特許第8,234,387号、名称「Interoperable Systems and Methods for Peer−to−Peer Service Orchestration」(「387号特許」)において説明されるような、サービスオーケストレーション及びDRM技術、同一出願人による、同時係属の、2012年4月11日に出願された米国特許出願第13/444,624号、名称「Information Security Systems and Methods」(「624号出願」)において説明されるような、情報管理技術、同一出願人による、同時係属の、2012年10月17日に出願された米国特許出願第13/654,349号、名称「Systems and Methods for Protecting and Governing Genomic and Other Information」(「349号出願」)及び2014年4月24日に出願された米国特許出願第14/260,714号、名称「Bioinformatic Processing Systems and Methods」(「714号出願」)において説明されるような、情報処理技術、同一出願人による、同時係属の、2013年3月15日に出願された米国特許出願第13/840,793号、名称「Distributed Computation Systems and Methods」(「793号出願」)において説明されるような、計算技術、と関連して、使用することができ(216号特許、387号特許、624号出願、349号出願、714号出願、及び793号出願の内容は、参照によりその全体が本明細書に組み込まれる)、並びに他の文脈において使用することができる。
データ処理エコシステム
図1は、本開示の実施形態と一致する、ゲノムデータ104〜108を記憶、管理、及び処理するための例示的なエコシステムを例示する。本明細書で使用するときに、「ゲノムデータ」及び/または「ゲノム情報」という用語は、概して、ゲノムまたはゲノム配列の全体または一部分を表現する、表す、及び/またはそれらから導出されるデータを指すことができる。このデータには、限定されることなく、DNA、mRNA、及びタンパク質などの化学構造において符号化される情報、並びにメチル化状態などの関連する情報が含まれる。本明細書で使用するときに、「ゲノム」という用語は、有機体の遺伝情報を指すことができる。ゲノムは、DNAまたはRNAに符合化することができ、また、mRNAとして、またはこれらの核酸配列から導出されるタンパク質配列として表すことができる。「ゲノム」という用語は、遺伝子及び非コード配列を含むことができる。特定の有機体に適用されるときに、「ゲノム」という用語は、正常細胞−ミトコンドリアDNAを含む−からのゲノムデータを指すことができ、更には、腫瘍及びマイクロバイオームの他の有機体などの関連する細胞からのゲノムデータも指すことができる。開示されるシステム及び方法のいくつかの実施形態は、ゲノムデータと関連して本明細書で論じられているが、開示されるシステム及び方法はまた、例えば他のタイプのバイオインフォマティクスデータ(例えば、トランスクリプトーム、コネクトーム、インシデンタロームなど)及び/または他の個人情報、プライベート情報、及び/または別様には機密情報を含む、任意の他の適切な情報と関連して使用することもできることが認識されるであろう。
図1を参照すると、クライアントシステム100は、ユーザ(例えば、研究者または臨床医)が、ゲノムデータ104〜108を処理すること、分析すること、または別様には該データをやりとりすることを可能にする、様々な関数を提供することができる。ある特定の実施形態において、クライアントシステム100は、ネットワーク102を介して、1つ以上のデータ記憶装置及び/または処理システム110〜114と通信可能に連結することができる。いくつかの実施形態において、1つ以上のデータ記憶装置及び/または処理システム110〜114のうちの少なくともいくつかは、ネットワーク102を介して、及び/または1つ以上の他の通信チャネルを通して、互いに通信可能に連結することができる。
1つ以上のデータ記憶装置及び/または処理システム110〜114は、とりわけ、ゲノムデータ104〜108を記憶及び/若しくは管理するように、並びに/または該ゲノムデータと関連してクライアントシステム100をやりとりするように構成することができる。開示される実施形態と一致して、1つ以上のデータ記憶装置及び/または処理システム110〜114は、ゲノムデータサービスと関連付けることができ、遺伝子配列及び/または他の情報を記憶及び/または分析する、信用できるクラウドサービスのフレームワークを提供する。
クライアントシステム100は、そこで様々な動作を行うために、1つ以上のデータ記憶装置及び/または処理システム110〜114によって記憶される情報をやりとりすることができる。例えば、クライアントシステム100は、そこに記憶されるゲノムデータ104〜108をやりとりするように構成される1つ以上のプログラム、アプリケーション、コード、及び/またはプロセス(例えば、プログラム116)を、1つ以上のデータ記憶装置及び/または処理システム110〜114に提供することができる。1つ以上のデータ記憶装置及び/または処理システム110〜114は、このようなプログラム、アプリケーション、コード、及び/またはプロセスを、信用できる、及び/またはポリシー管理方式で実行することができ、また、関連する結果をクライアントシステム100に通信することができる。
いくつかの実施形態において、データ記憶装置及び/または処理システム110〜114は、結果を計算するために、互いにやりとりすることができる。例えば、クライアントシステム100は、1つ以上のプログラム、アプリケーション、コード、及び/またはプロセス(例えば、プログラム116)を、データ記憶装置及び/または処理システム110〜114のうちの1つに提供することができる。このデータ記憶装置及び/または処理システムは、プログラムによって要求されるデータへのアクセスを有するかどうかを評価し、必要または望ましい場合に他のデータ記憶装置及び/または処理システムにプログラムを転送し、他のデータ記憶装置及び/または処理システムから計算結果を直接受信し、返された結果に対して追加的な処理を潜在的に行い、次いで、結果をクライアントシステム100に返すことができる。
ネットワーク102は、クライアントシステム100、データ記憶装置及び/若しくは処理システム110〜114、並びに/または1つ以上の他のシステムの間での通信を容易にするために、ネットワーク通信デバイス及び/またはチャネルの任意の適切な組み合わせを備えることができ、また、任意の適切な通信プロトコル及び/または技術を使用することができる。例えば、ネットワーク102は、インターネット、ローカルエリアネットワーク、仮想プライベートネットワーク、または任意の他の通信ネットワーク、またはこれらの組み合わせを備えることができる。例えば、いくつかの実施形態において、ネットワーク102は、パーソナル通信システム(「PCS」)などの無線キャリアシステム、及び/または任意の適切な通信技術、規格、及び/またはプロトコルを組み込んだ任意の他の適切な通信システムを備えることができる。更なる実施形態において、ネットワーク102は、例えば、符号分割多重アクセス(「CDMA」)、グローバルシステムフォーモバイルコミュニケーションズ若しくはグループスペシャルモバイル(「GSM」)、周波数分割多重アクセス(「FDMA」)、時分割多重アクセス(「TDMA」)、または直交周波数分割多重アクセス(OFDMA)規格を利用する、アナログモバイル通信ネットワーク及び/またはデジタルモバイル通信ネットワークを備えることができる。ある特定の実施形態において、ネットワーク102は、1つ以上の衛星通信リンクを組み込むことができる。なお更なる実施形態において、ネットワーク102は、IEEEの802.11規格、Bluetooth(登録商標)、超広帯域(「UWB」)、Zigbee(登録商標)、及び/または任意の他の適切な1つまたは複数の技術を使用することができる。
クライアントシステム100並びに/またはデータ記憶装置及び/若しくは処理システム110〜114は、例えば、ラップトップコンピュータシステム、デスクトップコンピュータシステム、サーバコンピュータシステム、分散コンピュータシステム、スマートフォン、タブレット、及び/または同類のものを含む、様々なコンピューティングデバイス及び/またはシステムを備えることができる。単一のサーバ若しくは一群のサーバ、または様々なネットワーク(インターネット、パブリック及び/若しくはプライベートネットワーク、並びに/または同類のもの)によって接続される分散された一群のコンピュータシステムを含むが、これらに限定されない、コンピューティングシステム及び記憶媒体の任意の適切な構成を、システム100、110〜114と関連して使用することができることが認識されるであろう。
ある特定の実施形態において、クライアントシステム100並びに/またはデータ記憶装置及び/若しくは処理システム110〜114は、関連する非一時的なコンピュータ読み出し可能な記憶媒体に記憶される命令を実行するように構成される少なくとも1つのプロセッサシステムを備えることができる。下で更に詳細に論じられるように、クライアントシステム100並びに/またはデータ記憶装置及び/若しくは処理システム110〜114は、信用できる証明書及び/若しくは鍵管理、安全なポリシー管理、並びに/または本明細書で開示されるシステム及び方法の他の態様などの、機密動作を行うように構成される安全な処理ユニット(「SPU」)を更に備えることができる。クライアントシステム100並びに/またはデータ記憶装置及び/若しくは処理システム110〜114は、任意の適切な通信技術及び/または規格を使用するネットワーク102を介して、デバイス及び/またはシステム100、110〜114の間で情報を電子的に通信することを可能にするように構成される、ソフトウェア及び/またはハードウェアを更に備えることができる。
データ記憶装置及び/または処理システム110〜114は、そこに記憶されるある特定のデータ104〜108を記憶する、管理する、処理する、配信する、及び/または更新するように構成することができる。ある特定の実施形態において、データ記憶装置及び/または処理システム110〜114は、1つ以上の処理ドメイン、管轄区域、組織、機関、ユーザ、場所、及び/または同類のものと関連付けることができる。一例として、データ記憶装置及び/または処理システム110並びに関連するデータ104は、研究機関、データ記憶装置及び/または処理システム112と関連付けることができ、また、関連するデータ106は、管轄区域からのデータ106の配信を許可しない管轄区域と関連付けることができ、データ記憶装置及び/または処理システム114並びに関連するデータ108は、臨床目的及び/または研究目的のデータプロダクトとしてデータ108を提供する事業組織と関連付けることができる。ある特定の実施形態において、データ記憶装置及び/または処理システム110〜114は、データの信用できる記憶及び分析のために、1つ以上のクラウドベースのシステムと関連付けることができ、また、開示されるデータサービスの実施形態を、及び/または例えば349号出願と関連して開示されるある特定のシステム及び方法を組み込むことができる。
上で論じられるように、クライアントシステム100上で実行するアプリケーションは、システムのユーザが、データ104〜108を使用する様々なワークフロープロセス及び/または分析を行うことと関連して、1つ以上のデータ記憶装置及び/または処理システム110〜114をやりとりすることを可能にする。例えば、ある特定の実施形態において、クライアントシステム100は、そこで管理されるデータ104〜108を使用してある特定の処理及び/または動作を行うように、データ記憶装置及び/または処理システム110〜114に指示する、データ記憶装置及び/または処理システム110〜114上で実行されるプログラム、アプリケーション、コード、及び/またはプロセス(例えば、プログラム116)に対して要求/クエリを発行するように構成することができる。本明細書で開示される実施形態と一致して、1つ以上のデータ記憶装置及び/または処理システム110〜114は、このようなプログラム、アプリケーション、コード、及び/またはプロセスを、信用できる、及び/またはポリシー管理方式で実行することができ、また、関連する結果をクライアントシステム100に通信することができる。プロセス及び/または動作の結果は、関連するデータ記憶装置及び/または処理システム110〜114からクライアントシステム100に返すことができる。
いくつかの実施形態において、1つ以上のデータ記憶装置及び/または処理システム110〜114は、そこに記憶されるデータ104〜108のセンシティビティ(機密性)に基づいて強化する、様々なレベルのハードウェア及び/またはソフトウェアセキュリティを含むことができる。例えば、特定の遺伝子配列と、関連する個人に関する識別情報(例えば、名前、アドレス、社会保障番号など)とを関連付ける情報を含まないゲノムデータは、このような関連付けを含むゲノムデータ104〜108よりもセキュリティ強化の低いシステムによって保護することができる。ある特定の実施形態において、1つ以上のデータ記憶装置及び/または処理システム110〜114は、下で更に詳細に論じられるように、開示されるシステム及び方法と関連して使用するための、1つ以上の安全な、保護された、及び/またはサンドボックス化実行環境を含むことができる。
ある特定の実施形態において、1つ以上のデータ記憶装置及び/または処理システム110〜114によって管理されるデータをやりとりする前に、クライアントシステム100及び/またはそのユーザは、データ104〜108をやりとりする、及び/または別様には該データを使用するために、そのアイデンティティ及び/または権利を認証することができる。例えば、データ104〜108及び/またはシステム110〜114をやりとりするために、及び/またはこれらを使用するために、例えば、ユーザ名及び/若しくはパスワード認証、バイオメトリック認証、個人識別番号認証、並びに/または任意の他の適切なタイプのユーザ認証またはユーザ認証の組み合わせを、クライアントシステム100及び/またはそのユーザの権利の認証と関連して使用することができる。
1つ以上のデータ記憶装置及び/若しくは処理システム110〜114並びに/またはクライアントシステム100は、データの利害関係者(例えば、関連する個人、データを収集した機関、データのアクセスまたは配信に対してある特定の管轄区域の制約を施行する責任を負う政府機関など)によって指定されるデータ104〜108と関連するプライバシー及び/またはポリシーを施行するように構成することができる。ポリシーは、データ104〜108へのアクセス、該データの使用、配信、及び/または同類のことと関連する、ある特定の制約、条件、要件、及び/または他のアクションを明確に示すことができる。このようなポリシーは、データ104〜108のやりとり、該データの使用、配信、及び/または同類のことと関連して施行することができる。例えば、ポリシーは、データ104〜108を、ある特定の方法でだけ、及び/またはそこからある特定の計算結果を導出するためだけに使用することができることを明確に示すことができる。
ポリシーの例としては、データ104〜108のやりとり、該データへのアクセス、該データの使用、及び/または配信を阻止及び/または別様には制限するポリシー、データ104〜108へのアクセス、該データの使用、及び/または配信の前にある特定のセキュリティ要件を満たすことを明確に示すポリシー、データ104〜108へのアクセス、該データの使用、及び/または配信と関連してある特定のアクション(例えば、匿名化アクティビティ、変換アクティビティ、監査アクティビティなど)が行われることを明確に示すポリシー、並びに/または同類のポリシーを含むが、これらに限定されない。様々なタイプのポリシーをデータ104〜108と関連付けることができ、また、データ104〜108のやりとり、これらへのアクセス、該データの使用、及び/または配信と関連して施行される制約、条件、要件、及び/またはアクションを明確に示す、任意の適切なタイプのポリシーを、開示される実施形態と関連して使用することができることが認識されるであろう。
本発明の作用の主体の範囲内で、図1と関連して提示されるアーキテクチャ及び関係に対して数多くの変形を行うことができることが認識されるであろう。例えば、限定されることなく、いくつかの実施形態において、クライアントシステム100によって行われる関数の一部または全部は、1つ以上のゲノムデータ記憶装置及び/または処理システム110〜114によって行うことができる。同様に、1つ以上のデータ記憶装置及び/または処理システム110〜114によって行われる関数の一部または全部は、クライアントシステム100によって行うことができる。したがって、図1は、例示及び説明の目的で提供されるものであり、限定するものではないことが認識されるであろう。
データサービスの概要
いくつかのコラボレイティブモデルにおいて、ゲノムデータを使用する研究は、大規模にプールされたゲノムデータセットを操作する国際的な研究者のチームによって、分散データセンター全体にわたって行われてもよい。しかしながら、このようなモデルは、ある特定の法的、倫理的、及び/またはプライバシー考慮事項が生じ得る。ゲノムデータを使用する臨床的な設定はまた、ゲノム情報の信用及びセキュリティを確実にするために、様々な潜在的な記憶装置及び/またはコンピューティング考慮事項(例えば、クラウドベースの及び/またはハイブリッド記憶装置考慮事項、データ配信考慮事項、セキュリティ考慮事項など)が生じ得る。
ローカル環境において十分に作用することができるある特定の特徴は、開示される実施形態と一致する、非集中型の、分散型の、及び/または相互接続した記憶装置及びコンピューティングネットワークと関連して、同様に作用しない場合がある。例えば、単一のローカル環境では、例えば、機密データを記憶するコンピューティング装置へのアクセスを阻止するためにドアを閉じること、機密データへのアクセスを保護するためにパスワードを使用すること、及び/または同類のことを含む、物理的なプロセスを通してポリシーを施行することができる。しかしながら、本明細書でより詳細に説明されるように、複数の機関にわたる分散アーキテクチャでは、機密データ及び関連するコンピューティングリソースを、例えばデータを提供する研究者、機関、資金提供者、患者、及び/または参加者によって設定されるポリシーに従って使用することを確実にするために、他の、または追加的な、セキュリティ及び/またはポリシー施行機構が必要になる場合がある。ある特定の実施形態では、ゲノムまたは他の機密データの様々な利害関係者のポリシーを尊重する分散ネットワークと関連付けることができる、データサービスが開示される。
信用管理
開示されるシステム及び方法のある特定の実施形態は、関連する分散ネットワークにおけるメンバーシップに関するある特定のベースライン要件を、機密データを取り扱うエンティティが満たすことを、管理する当局がアサートすることを可能にすることができる、信用管理システムを実現すること、及び/または別様には含むことができる。これらの要件は、例えば、参加するエンティティが該エンティティと関連するデータセンターの物理的セキュリティを実証すること、ある特定のレベルのデータアクセス及び使用監査を行うこと、及び/または同類のことを命令することができる。参加するであろうエンティティが、関連する要件を満たす場合、信用管理システムは、1つ以上の暗号化証明書を生成することができ、該エンティティが、他の関連するエンティティ及び/またはシステムにそのアイデンティティを証明するために、及び関連付けられるネットワーク参加要件の遵守を実証するために暗号化証明書を使用することができる。更なる実施形態において、このような証明書は、ユーザのアイデンティティ、並びに/または機密データへの関連するアクセス権及び/若しくは別様には該機密データの使用権を認証することと関連して使用することができる。本明細書で開示される実施形態と一致して、信用管理は、人間のアクター、関連するシステム、及びバイオインフォマティクプログラムを含む、関連する分散ネットワークにおける数多くのタイプのアクター、エンティティ、及び/または機関に拡張することができ、それによって、ある場所における参加者を他の場所で信用することを可能にするフレームワークを提供する。
ポリシー管理
本明細書で開示される実施形態と一致する分散システムでは、様々な参加するエンティティまたは機関を、データアクセス及び共有、関連するコンピューティングリソースの使用、及び/または同類のことに関する異なるポリシーと関連付けることができる。いくつかの実施形態において、これらのポリシーは、リモートシステムに対してさえもポリシーが尊重及び/または施行されることを確実にするために、エンティティ及び/または機関の間で明確に示す、符号化する、及び交換することができる。例えば、研究調査参加者が、自分のゲノムデータを特定の参加する機関が使用すること、及び/または特定の研究調査と関連するがこのデータの使用範囲をより広くしないことを承諾した場合、このような条件を表現するポリシーを、参加者のゲノムデータと持続的に関連付けることができる。いくつかの実施形態において、このポリシーは、分散ネットワーク全体にわたって施行することができる。様々なエンティティは、例えば研究者、研究の資金提供者及び/若しくは機関、製薬会社、政府、並びに/または同類のものを含む、このような分散ネットワークの中へポリシーを投入することができる。いくつかの実施形態において、216号特許及び/または387号特許において説明される権利の管理及びポリシーの施行技術は、このようなポリシーを表現し、施行するために使用することができるが、任意の適切なポリシー施行技術を使用し得ることが認識されるであろう。
監査
ある特定の実施形態において、開示されるシステム及び方法は、−個人から機関にわたる−分散システムにおけるデータの利害関係者が、誰が彼らのデータへのアクセスを有するか、彼らのデータに対して何のクエリが実行されたか、及び/または同類のことをみることができるようにしてもよい。更なる実施形態において、ゲノム及び/またはバイオインフォマティクスツール及び/またはアプリケーションの開発者は、何処に、及び誰によって彼らの様々なツール及び/またはアプリケーションが展開されたか、及び/または使用されたかをみることができてもよい。いくつかの実施形態では、承認された条件下でだけ、及び/または承認された宛先にだけ機密データが転送されることを確実にするために、演繹的及び帰納的機構の組み合わせを、開示されるシステム及び方法と関連して実施することができる。
信用及びポリシー管理ツールは、機密データがアクセスされる前に該機密データに対して作用することができるが、監査機構を実施する開示されるシステム及び方法の実施形態は、データ漏洩が起こった後に該データ漏洩のフォレンジック検査を可能にすることができる。監査機構は、例えば医療保険の携行性と責任に関する法律(「HIPPA」)、経済的及び臨床的健全性のための医療情報技術に関する法律(「HITECH」)、または同類のものなどの、プライバシー保護法及び/または規則と関連して、責任分析のサポートを更に提供することができる。
暗号化及び鍵管理
機密データが暗号化されずに公開されると、データ管理ポリシーを施行すること、及び/またはこのデータの使用を監査することが困難な場合がある。ある特定の実施形態では、データアクセスが管理され、監査可能であることを確実にするために、機密データは、暗号化を通して保護することができる。更なる実施形態において、機密データを保護する鍵へのアクセスは、これらの鍵へのアクセスが機密データ自体へのアクセスを可能にすることができるように管理することができる。
安全なソフトウェア
開示されるシステム及び方法の実施形態は、分散ネットワークを通じて機密データをやりとりするプログラムの結果に依存する、ある特定の保証を研究者及び/または他の個人若しくは機関に提供することができる。これらの保証は、例えば、限定されないが、以下の一部または全部を含むことができる。
・研究者がゲノムデータと関連して使用することを指定したアプリケーションが、実際に、返された結果を生成したアプリケーションであること。
・関連するリモートシステム上の他のソフトウェアが、要求されたアプリケーションの計算及び/または機密データの他の使用の結果を変更及び/または危殆化し得る方法で、入力または出力データを修正しなかったこと。
・要求されたアプリケーションに含まれるキーイング材料及び/または秘密が、アプリケーションの使用と関連して、漏洩されなかったこと、及び/または別様には暗号化されずに配信されなかったこと。
更なる実施形態において、開示されるシステム及び方法は、ソフトウェアモジュールが信用できるソースに由来する機密データをやりとりするという検証、このようなソフトウェアモジュールが、明かしてはならない機密データを(例えば、サードパーティのサイトまたは同類のものにアップロードすることによって)公開しないという保証、及び/またはある特定のソースからのある特定のソフトウェアモジュールによるある特定の計算リソース及び/またはデータへのアクセスの制限、を提供することができる。
開示されるシステム及び方法のある特定の実施形態は、機密データへの直接のアクセスを有する外部供給ソフトウェアモジュールを提供するのではなく、アプリケーションプログラミングインタフェース(「API」)を使用する。図2は、本開示の実施形態と一致する、API使用して機密データをやりとりするための例示的なアーキテクチャを例示する。ある特定の実施形態において、例示されるアーキテクチャは、データサービス200(例えば、ゲノムデータ記憶装置及び/若しくは処理システム上で、または同類のもので実行するゲノムデータサービス)と関連して実施することができる。
例示されるように、ユーザによって、1つ以上のアプリケーション202をデータサービス200にロードすることができる。ある特定の実施形態において、ユーザは、データサービス200とのやりとりと関連してデータサービス200と通信可能に連結される、分散クライアントシステムを使用することができる。アプリケーション202は、データストア206に記憶されるデータをやりとりするように構成することができる。例えば、研究者は、自分の研究アクティビティと関連してデータストア206によって管理されるゲノムデータを分析する要求を発行するために使用されるアプリケーション202を作成し、作成したアプリケーション202をデータサービス200にロードすることができる。とりわけ、アプリケーション202は、データストア206によって管理されるある特定のゲノムデータ及び/若しくは該データストアと関連して行われる計算に対する1つ以上の要求を発行するように、並びに/またはこのような要求に対する1つ以上の応答を受信するように構成することができる。データサービス200に対してローカルであるように例示されているが、他の実施形態において、データストア206は、分散させることができることが認識されるであろう。
データサービス200の観点から、アプリケーション202は、信用できないコードとみなすことができる。故に、データストア206によって管理されるデータへのアクセスに対するアプリケーション202による要求は、データサービス200の認証及び承認モジュール204と関連するAPIを通してルーティングすることができる。要求された機密データを使用して情報を明かす計算は、アプリケーション202の直接アクセス外の、APIの背後の安全な環境において行うことができる。認証及び承認モジュール204は、(例えば、要求または同類のものと関連する証明書を検査することによって)要求元プリンシパルのアイデンティティ及び/若しくは要求元アプリケーション202のアイデンティティを認証することでき、並びに/または要求元プリンシパル及び/若しくはアプリケーション202が、(例えば、適用可能なポリシー及び/または同類のものを施行することによって)要求されたデータへのアクセス及び/若しくは別様には該要求されたデータの使用を承認したかどうかを判定することができる。
要求元プリンシパル及び/またはアプリケーション202が認証され、関連する要求が承認された場合、認証及び承認モジュール204は、承認された要求をデータストア206に転送することができる。それに応じて、データストア206は、応答(例えば、要求された計算及び/または同類のものからの結果)を認証及び承認モジュール204に返すことができ、次いで、認証及び承認モジュール204は、データストア206から該応答を要求元アプリケーション202に転送することができる。ある特定の実施形態において、応答は、データストア206によって管理される要求されたゲノムデータに対して行われる計算及び/またはプロセスの結果を含むことができる。更なる実施形態において、応答は、データストア206からアクセスされるゲノムデータ及び/またはそのサブセットを含むことができる。いくつかの実施形態において、上で説明される認証及び/または要求承認プロセスに関する情報は、データサービス200及び/または別のサービスの監査及び/またはアカウンティングモジュール208に送信することができる。
いくつかの実施形態において、図2と関連して例示されるアーキテクチャは、例えば、REST(Representational State Transfer)APIを備えることができる、定義されたインターフェースを使用することができる。とりわけ、例示されるアーキテクチャは、以下のうちの1つ以上を容易にすることができる。
・機密データへのアクセスを望むプリンシパルの認証を通して、関連するアクセス要求に対して、異なるプリンシパル及び異なるポリシーのアプリケーションを区別すること。
・きめ細かいアクセス要求。例えば、プリンシパル及び/または関連する要求元アプリケーションは、特定のタスクに必要とされるデータのそのサブセットだけを要求することができる。
・機密情報がその後に公に広められた場合に、その漏洩の潜在的なソースをより容易に識別することができるように、監査されたアクセス情報の生成。
ある特定の環境において、例示されるアーキテクチャは、機密データを、アプリケーション202の信用できない環境に返すことを可能にしてもよい。例えば、アプリケーション202によって発行される要求は、ゲノム識別子のリストを与えられる特定のバリアントを有する、多数のゲノムを決定する要求を含むことができる。このような要求に対するAPIからの応答は、RSIDによって関連するバリアントを含むことができる。このような環境の下で、アプリケーション202は、要求に含まれるリストの中のゲノムの各々について個々のバリアントを学習することができ、これは、いくつかの他の表現型特性に基づいて選択することができる。したがって、このような関連付けの機密は、危殆化される場合がある。
この潜在的な懸念は、個々のバリアントを明かすことなく、データセットに関する統計情報を要求元アプリケーション202に返すことができる、より高度なAPIの使用を通して軽減することができ、情報を明かす計算をAPIの背後の安全な環境に効果的に移動させる。
データアクセスプロキシ
アプリケーションプログラミングインタフェース(API)の使用は、特に情報を明かす場合のある計算がAPIの背後で、及び/または別様には信用できないクライアント側コードの範囲外で行われたときに、直接アクセスモデルよりも強力な機密データの保護を提供することができる。しかしながら、このような計算の全てを不明瞭にするAPIを設計することは、信用できないコードが中間の計算結果及び/または生成物への望ましくないアクセスを有する場合があるので、必要とされ得るよりも、及び/または所望され得るよりも多くの機密データを潜在的に明かす。本明細書で開示される実施形態と一致して、汎用計算能力は、ゲノムデータサービスの信用できる境界内で作成することができ、それによって、機密データを明かす潜在性を低減させる。
図3は、本開示の実施形態と一致する、サンドボックス化実行環境302及びデータアクセスプロキシ304を使用して機密データをやりとりするための例示的なアーキテクチャを例示する。ある特定の実施形態において、例示されるアーキテクチャは、データサービス300(例えば、ゲノムデータ記憶装置及び/若しくは処理システム上で、または同類のもので実行するゲノムデータサービス)と関連して実施することができる。とりわけ、例示されるアーキテクチャは、信用できるデータストア305によって管理される機密データと関連して行われる計算を、(潜在的に信用できない)コード及び/またはアプリケーション301に開示される情報のより正確な制御を可能にする、信用できる環境に移動させることができ、これは、サンドボックス化及び/または仮想化実行環境302において実行することができる。ある特定の実施形態において、計算の最終結果に含まれる情報は、アプリケーション301に提供することができ、一方で、関連する計算の中間結果は、信用できる境界内で公表することができるが、信用できる境界(例えば、サンドボックス化実行環境302内)の外では公表することができない。
いくつかの実施形態において、例示されるデータサービス300は、例えば以下の一部または全部を含むが、それらに限定されない、機密データへの望ましくないアクセスと関連するセキュリティ及び/またはプライバシーの脅威を緩和するために、様々な特徴及び/または関数を実施することができる。
・コード301が、コンピテント及び/または別様には信用できる当局によって署名されることを確実にするために、該コードを検査することができる。このような事例では、シグネチャの確認に成功することを、コード301をロードするための、及び/または実行するための条件とすることができる。
・コード(例えば、潜在的に信用できない、サードパーティの、及び/または外部供給されたコード301)と関連するシグネチャは、どのコードが機密データにアクセスしたか、及び/または別様には該機密データをやりとりしたかを正確に識別することができる監査アクティビティを可能にすることができる。
・コード301は、サンドボックス化実行環境302内で実行することができ、該環境は、任意のコンピューティングリソース、記憶装置、及び/若しくはネットワークロケーションに、並びに/または信用できない若しくは保護されていない実行環境にアクセスすることを阻止することができる。
・コード301は、きめ細かいAPIを通してデータをやりとりすること、及び/または別様にはデータにアクセスすることを必要とすることができ、それによって、このようなやりとりの監査能力を向上させ、また、その(または関連する)データを使用して行われる計算と関連して危殆化され得る機密情報の量を低減させる。
ある特定の実施形態において、プログラム(例えば、コード301)は、信用できない環境(例えば、ユーザのクライアントシステム)においてデータサービス300と関連して使用するように開発することができる。プログラムは、開発したプログラム及び/またはアプリケーションが望む通りに動作することを検証するために、パブリックデータを使用して(例えば、安全でないHTTPまたは同類のものを通じて)開発者によって試験することができる。プログラムが検証されると、該プログラムをデータサービス300にアップロードすることができる。いくつかの実施形態において、プログラムをデータサービス300にアップロードすることは、開発者が認証されること(例えば、信用できる当局及び/または同類のものによって発行される証明書を保有すること)を検証すること、及び/または開発者が、アップロードしたプログラムの使用を管理するある特定のポリシーを設定することを可能にすることを更に含むことができる。例えばプログラムと関連付けられるある特定のプロパティをアサートするデジタル署名を含む、プログラムに関する様々なアサーションを、アップロード時に、及び/または後ほど加えることができる。
ある特定の程度の隔離及び/またはセキュリティを提供するために、いくつかの実施形態において、データサービス300にアップロードされるプログラムは、仮想化コンテナにおいて、及び/またはサンドボックス化実行環境302(例えば、限定された仮想化実行環境及び/またはマシン)において実行することができる。サンドボックス化実行環境302において実行するプログラム及び/またはソフトウェアコードは、データサービス300と関連する、リソース、関数、及び/またはサービスの制御されたセットに制限することができる。例えば、サンドボックス化実行環境302は、そこで実行するソフトウェアコードが、データサービス300によって管理されるデータソースのある特定のサブセットだけにアクセスすることを許可することができる。ある特定の入力/出力チャネル、API、ネットワーキングリソース、処理リソース、一時記憶装置、及び/または同類のものへのアクセスも同様に、制御及び/または制限することができる。
仮想化及び/またはサンドボックス化は、任意の適切な方式で実施することができる。いくつかの実例となる実施形態において、仮想化は、Docker(商標)(例えば、Linuxコンテナ機構(「LXC」)に基づくシステム)を使用して実施することができる。ユーザが開発したプログラムをデータサービス300にロードするときに、システムは、プログラムの実行可能な画像を作成し、実行時に取り出すために、該画像をリポジトリに保存することができる。いくつかの実施形態において、このような実行可能な画像は、データサービス300にロードされているプログラムに応じて、自動的に作成することができる。
図3に例示されるように、特定のプログラム、例えばコード301を実行する要求は、ユーザのシステムからデータサービス300によって受信することができる。ある特定の実施形態において、要求は、データサービス300と関連するシステムから離れている、及び/または別様には分散している場合があるクライアントシステムから発行することができる。いくつかの実施形態において、要求は、所与の計算の実行を要求するプリンシパルがポリシーによって計算を実行することを可能にされることを確実にするために、認証及び/または承認プロセスを通過させることができる。
要求は、データサービス300の実行マネージャ構成要素308によって受信することができる。とりわけ、実行マネージャ308は、データサービス300上で動作する計算のライフサイクルを管理するように、ユーザとデータサービス300とのやりとりを管理するように、及び/またはデータサービス300の使用に関する監査及びアカウンティングアクティビティに従事するように構成することができる。例えば、実行マネージャ308は、開示されるシステム及び方法の実施形態と関連して、クライアントシステムから要求を受信するように、関連する応答をクライアントシステムに送信するように、並びに/またはサンドボックス化実行環境302及び/若しくはそこで実行するコード301、データアクセスプロキシ304、並びに/または監査及び/若しくはアカウンティングモジュール307とやりとりするように構成することができる。
要求を受信することに応じて、実行マネージャ308は、要求されたプログラム301をサンドボックス化実行環境302にロードすることができる。いくつかの実施形態において、実行マネージャ308は、ポリシーの識別及び/または施行プロセスを更に行うことができ、それに応じて、要求されたプログラム301に1つ以上の条件を配置することができる。例えば、要求されたプログラム301を実行する前に、実行マネージャ308は、要求されたプログラム301が信用できる当局によってデジタル署名されていることを検証することを必要とすることができる。
実行コンテキストは、プログラム301の要求された実行のために、実行マネージャ308によって生成することができる。いくつかの実施形態において、実行コンテキストは、データサービス300が、(例えば、サンドボックス化実行環境302内で)脆弱であり得るプログラム301のアドレス空間に機密情報を配置することなく、機密情報(例えば、データストア305によって管理されるゲノムデータ)と実行プログラム301とを関連付けることを可能にすることができる。
一例として、図4に例示される例示的なプログラム400は、その第1の引数としてゲノムIDを渡すことができる。いくつかの実施形態において、プログラム400は、PIK3CA及びPTEN遺伝子の特定のエクソンにおけるバリアントを確認することができる。悪意のある、または誤ったプログラムは、このゲノムIDを明かすかもしれず、これは、いくつかの脅威モデルの下で、攻撃者が、プライベート情報及び/または別様には機密情報をつなぎ合わせることを容認するかもしれない。この脅威を緩和するために、プログラム400は、その実行中に使用する一時的な識別子を渡すことができる。いくつかの実施形態において、この識別子は、ランダムな識別子とすることができる。更なる実施形態において、識別子は、比較的逆算が困難な関数(例えば、暗号化関数、ハッシング関数など)を実際の識別子に適用した結果を含むことができる。いくつかの実施形態において、実際の識別子と一時的な識別子との間のマッピングは、実行マネージャ308によって生成される実行コンテキストの一部として維持することができる。
更なる実施形態において、実行マネージャ308によって生成される実行コンテキストは、データを匿名化するために使用される情報、及び/またはデータストア305からの応答を含むことができる。例えば、いくつかの実施形態において、実行コンテキストは、返されるデータ及び/または応答を匿名化するように設計されるデータ305からのデータ及び/または応答にノイズを導入するために使用される情報を含むことができる。例えば、624号出願で説明されるような技法を使用することができる。
図3に戻って参照すると、実行マネージャ308は、仮想マシンインスタンス(例えば、仮想化及び/またはサンドボックス化実行環境302)を初期化し、要求されたプログラム301を開始することができる。実行マネージャ308は、仮想化実行環境302内のプログラム301に、任意の必要な実行パラメータを更に渡すことができる。ある特定の実施形態において、パラメータは、プログラム301が機密情報にアクセスすることを可能にすることを回避するために、変換された状態でプログラム301に渡すことができる。
プログラム301を実行するときに、データストア305からデータを要求することができる。ある特定の実施形態において、これらの要求は、図4に例示される例示的なプログラム400と関連して示されるように、HTTPコールを含むことができる。プログラム301は、仮想化実行環境302内で実行することができるので、プログラム301が指定されたリソースのセットの外にある特定のリソース(例えば、ネットワークリソース及び/またはエンドポイント)にアクセスする能力を制限することができる。
いくつかの実施形態において、プログラム301からのデータの要求は、データサービス300のデータアクセスプロキシ304を通してルーティングすることができる。とりわけ、データアクセスプロキシ304は、データストア305によって管理される機密情報の完全性を保護するために、仮想化実行環境302において実行するプログラム301から受信する、及び/または該プログラムに送信する要求及び/または応答を変換することができる。ある特定の実施形態において、データアクセスプロキシ304は、プログラム301に対して透過的とすることができる。例えば、プログラム301の観点から、プログラム301は、あたかもそれがデータストア305と直接通信しているかのように、要求を開始し、応答を受信することができる。
いくつかの実施形態において、データアクセスプロキシ304は、変換及びポリシー施行モジュール306を備えることができる。変換及びポリシー施行モジュール306は、プログラム301から受信した要求を安全なデータの要求に変換すること、応答をプログラム301に返す前に、データストア305から受信した応答を変換すること、プログラム301とデータストア305とのやりとりに関する適用可能なポリシーを施行すること、及び/または同類のことを行うことができる。ある特定の実施形態において、変換及びポリシー施行モジュール306は、その様々なアクティビティと関連して実行マネージャ308によって提供される実行コンテキストを使用することができる。例えば、いくつかの実施形態において、実行コンテキストは、変換及びポリシー施行モジュール306によって行われる変換及び/またはポリシー施行アクションを達成するために使用される情報を含むことができる。
いくつかの実施形態において、変換及びポリシー施行モジュール306は、データストア305に記憶されるデータの発信元、代わりにプログラム301を実行しているプリンシパル、プログラム301の作成者、及び/または同類のものの関係に基づいて、データストア305の情報へのアクセスを禁止または修正することができる。例えば、データストア305の特定のデータが、特定の個人の医師を除いて、全てのプリンシパルによるゲノム情報の特定のサブセットへのアクセスを阻止するポリシーを確立した該特定の個人に関係する場合、変換及びポリシー施行モジュール306は、プログラム301が、禁止された情報へのアクセスを要求したが、個人の医師の代わりに実行していないと判断することができ、したがって、このデータへのアクセスを阻止することができる。
いくつかの実施形態において、要求及び/若しくは応答の変換並びに/またはポリシー施行アクティビティと関連して、データアクセスプロキシ304並びに/または変換及び/若しくはポリシー施行モジュール306によって行われる関数には、以下のうちの一部または全部が含まれるが、それらに限定されない。
・要求は、実行マネージャ308によって提供される実行コンテキストに含まれる情報を使用して変換することができる。例えば、変換及び/またはポリシー施行モジュール304は、どのようにデータストア305の実際の識別子に対するパラメータマップとして一時的な識別子をプログラムに与えるのかを決定することができる。いくつかの実施形態では、実行マネージャ308によって提供される実行コンテキストを、安全な要求と関連して変換及び/またはポリシー施行モジュール304によって、データストア305に更に提供することができる。
・第1のレベルのセキュリティを有するプログラム301からの要求は、データストア305に伝送する前に、第2のより高いレベルのセキュリティに高めることができる。例えば、HTTPを通じて行われる要求は、クライアント及びサーバの双方において、証明書を有する安全なHTTP要求に変換することができる。ある特定の実施形態において、これは、正当と証明されたシステムだけがデータストア305と直接相互やりとりすることを確実にすることができる。
・ポリシーは、プログラム301によって発行される要求を承認することと関連して適用すること、及び/または別様には施行することができる。いくつかの実施形態において、ポリシーは、計算を開始する直前ではなく計算を始めるときに適用することができるように、機密データへのアクセスのきめ細かい制御を提供することができる。例えば、ある特定の実施形態において、施行されたポリシーは、プログラムが行う要求のセットを前もって決定することができない場合であっても、計算を始める方式に応じることができる。
・要求の宛先を書き直すことができる。例えば、多数の異なるサーバ及び/またはデータストア305によって要求を満たすことができる場合、データアクセスプロキシ304は、最も近いまたは別様にはより適切なサーバ及び/またはデータストア305に要求を導くことができる。
・要求及び/または関連する応答は、監査する目的でログを取ることができる。
安全な要求に応じて生成されるデータストア305からの結果は、データアクセスプロキシ304並びに/または変換及び/若しくはポリシー施行モジュール306によって受信することができる。ある特定の実施形態において、応答を受信すると、データアクセスプロキシ304並びに/または変換及び/若しくはポリシー施行モジュール306は、仮想化実行環境302において実行するプログラム301に応答を返す(例えば、プログラム301のアドレス空間に応答を返す)前に、関連するポリシーを施行すること、及び/または応答を変換することができる。いくつかの実施形態において、このポリシーの施行及び/または変換は、実行マネージャ308によって生成される実行コンテキストに含まれる情報に少なくとも部分的に基づくことができる。
いくつかの実施形態において、変換及び/またはポリシー施行モジュール306は、プログラム301のアドレス空間に返される機密情報の量を管理するために、データストア305から返される結果を変換することができる。このような変換としては、例えば、データストア305からのある特定のフィールドを排除すること、その応答のある特定の値に対するランダム性を変更または加えること、応答の値の精度を低減させること、または有効な応答の代わりにプログラム301にエラーを返すこと、を含む。
プログラム301の終了に応じて、その出力、その変換されたバージョン、及び/または返り値は、実行マネージャ308によって取り込むことができ、そして、元々の要求側(例えば、ユーザ、及び/またはデータサービス300とインターフェースする分散クライアントシステム)に返すことができる。更なる実施形態において、データサービス300の様々な要素間のやりとり及び/または該要素の動作に関する監査情報は、サービス300の監査及び/またはアカウンティングモジュール307に提供することができる。ある特定の実施形態において、監査情報は、その確実性を後で検証することができるように、デジタル署名することができる。更に他の実施形態では、データサービス300が既知の仮想マシン上での仮想化を使用することができ、また、その動作と関連する様々な状態情報を記憶すること、署名すること、及び/またはタグ付けすることができるので、様々な監査情報を確認するために、後ほど計算を再作成する(例えば、後ほど異なるシステムまたは同類のものに対して再作成する)ことができる。
いくつかの実施形態において、いくつかのプログラム301は、単一の結果を計算した後に終了しない、連続計算を含むことができる。このような計算は、例えば、計算がシステムに加えられたときに情報を収集し、新しく取り込まれたデータに従って実行マネージャ308に出力を返すことができる。例えば、プログラム301は、癌診断のために、データストア305を監視することができる。新しい診断に応じて、計算は、第2のデータストアの中の患者の遺伝情報をルックアップし、癌の遺伝的予測のモデルを精緻化することができる。新しい診断をデータストアに入力したときに、サイクルを繰り返し、モデルを更に精緻化する。
いくつかの実施形態において、いくつかのプログラム301は、異なるポリシーのセットの下で、または異なるデータのセットを通じて計算を行うために、計算の自然な成り行きにおいて、または実行マネージャ308の制御の下で、一時停止していくつかのイベントにわたって待機させるか、または別のデータサービス300に移動させることができる。例えば、ローカルポリシーを満たすために、及び/または異なるデータストアにアクセスするために、大陸中国の人口とアイスランドの人口とのAPOE状態を比較するプログラムを、中国に位置するデータサービスとアイスランドに位置するデータサービスとの間で複数回移動させることができる。
いくつかの実施形態において、プログラム301のいくつかの部分は、特定の目的で、最適なデータサービス300の場所を決定する際に関与させることができる。例えば、プログラム301は、データストア305において利用できるデータポイントの数とそれらの精度との関係を考慮することができる。例えば、幼少期のミトコンドリア病の進行をモデル化するプログラムは、データの精度が低いがはるかに数が多い場所へ移動するように決定することができる。
データサービスAPI
上で論じられるように、開示されるシステム及び方法のいくつかの実施例において、機密データにアクセスするための、及び/またはこのようなデータを使用して行われる計算のためのアプリケーションによる要求は、関連するシステムによって意味論的に定義することができるAPIを通してルーティングすることができる。ある特定の実施形態において、要求された機密データを使用して情報を明かす計算は、信用できないアプリケーションの直接アクセス外の、APIの背後の安全な環境において行うことができる。開示されるシステム及び方法のある特定の実施形態は、ゲノムデータのやりとりと関連して、REST APIを使用することができる。図5は、APIを介してバリアントデータを公表するサービスと、要求プログラムとの間の例示的な交換500を例示する。
いくつかの実施形態において、開示されるデータサービスは、言語を問わないものとすることができ、機密データをやりとりするための関連するプログラムは、HTTP APIを介してデータサービスとインターフェースすることができる。ある特定の実施形態において、機密データをやりとりするために使用されるプログラムは、標準のstdin、stdout、及びstderr機能を使用してユーザI/Oを取り扱うことができる。例えば、上で論じられるように、図4において例示される例示的なプログラム400は、所与の遺伝子及びエクソンのセットのバリアントを確認することができる。いくつかの実施形態において、プログラム400は、その第1のコマンドのライン引数としてゲノム記録の識別子を受信することができ、その結果をstdoutに書き込むことができる。
管理された実行の実施例
図10は、本発明の作用の主体のある特定の実施形態に従って、データサービス(例えば、データサービス300)によってプログラムまたは他の計算(例えば、プログラム301)の管理された実行を例示するフローチャートである。図10を参照すると、1100で、管理された計算の処理が始まる。1105で、おそらくはプログラムを実行するシステムの外部の、例えばプログラムストアから、プログラムがロードされる。このプログラムは、コードバンドルにメタデータを加えたもの、所望のプログラムを予めロードした仮想マシン、または計算のための任意の他のパッケージング若しくはカプセル化機構といった形態をとることができる。1110で、必要とされる認証ポリシーを説明するポリシーがロードされる。例えば、これは、外部ポリシーストアに記憶されるポリシー文書とすることができ、または実行を要求するプリンシパル、アクセスされるデータリソースなどと関連するポリシーのデータベースをルックアップすることができる。1120で、シグネチャ−または他のアサーション−が、以前のステップでロードされたポリシーに対して評価される。シグネチャまたは他のアサーションが、ポリシー要件を満たしている(すなわち、ブロック1125を出る「はい」)場合は、実行を進める。満たしていない場合は、実行を停止する(1130)。
1120/1125でポリシーの確認に成功した後に、1200で、実行コンテキストが初期化される。本明細書の他の場所で説明されるように、いくつかの実施形態において、これは、計算に関する情報を保持するデータ構造(例えば、実行コンテキスト)を作成またはポピュレート(追加投入)することを含むことができる。いくつかの実施形態において、実行コンテキストは、例えばリソースについて生成される一時的な識別子と、こうしたリソースの真の識別子との間のマッピングを含む、行われている計算に関するメタデータを含むことができる。
1205で、プログラムの実行が始まる。これは、仮想マシンまたは他の実行コンテナを開始すること、スクリプトを動作させること、バイトコードインタプリタに対してプログラムを実行すること、及び/または同類のことを含むことができる。このプログラムには、動作させるために必要な引数、必要とするリソースを何処でフェッチするのかに関する情報、出力する場所、などが提供される。
計算の実行が始まると、実行環境は、データへのアクセスをリッスンし、インターセプトし、そして、要求する(1210)。管理された計算に由来する要求をインターセプトすることによって、ポリシーを適用すること、結果を不明瞭にすること、識別子を再配置すること、などができる。基本的には、この段階で、計算に送達される情報がいくつかのポリシーのセットの下で適切であることを確実にするための技法が適用される。
要求は、1つ以上の異なる技法を使用してインターセプトすることができる。1つの実現形態は、計算を実行する仮想マシンまたはコンテナと同じサブネット上で透過的なプロキシを使用することができる。コンテナ内部で実行するプログラムは、通常のURLにアクセスしていると考えているが、実際には、その要求は、1300〜1350で示されるように、要求及び応答の双方に対してステップを行うプロキシサーバによってインターセプトされ、処理される。
例えば、安全な実行コンテキストがデータの要求を受信した場合は、最初に、おそらくは任意の適切な変換を要求に適用するように実行コンテキストの情報を使用して、任意の適切な変換を要求に適用する。例えば、いくつかの実現形態において、プログラムは、REST APIを使用するリソースへのアクセスを要求することができる。プログラムは、次のような特定のゲノムバリアントを依頼することができる。
http://geneserver.genecloud.com/genome/123/variant/rs93458
URIは、このゲノムの真の識別子を置換するために、実行コンテキストの情報を使用して変換することができる。例えば、URIは、次のようになり得る。
http://geneserver.genecloud.com/genome/98482842872348/variant/rs93458
ここで、一時的な識別子「123」と真の識別子「98482842872348」との間のマッピングが実行コンテキストの一部である。
他の変換、例えば1つの名前空間のリソース指示子を別の名前空間にマッピングすることが可能であることが、認識されるであろう。多くのオンラインリソースは、遺伝子について該リソース自体の一意の名前を使用し、これらの名前は、より標準化された名前にマッピングすることができる。
更なる一実施例として、真の識別子の代わりに一時的な識別子を使用するのではなく、システムは、ハッシュまたは暗号化したバージョンの真の識別子を、プログラムを実行するための因数として使用することができ、この変換ステップは、宛先サーバが真の識別子を決定することを可能にするHTTPヘッダを要求に加えることを含むことができる。
いくつかの実施形態において、要求の宛先はまた、規制ランドスケープ、最も好都合なデータのコピー、所望の情報を含むことが知られている特定のデータベース、及び/または同類のものについての知識を反映するように変更することもできる。
1305で示されるように、いくつかの実施形態において、要求は、監査される。監査は、元々の要求、変換された要求、(例えば、監査を介して、不適切なパーティに情報が漏洩することを阻止するために)暗号化によって不明瞭にされた要求などを含むことができる。
1310で、ポリシーが要求に適用される。例えば、特定のアクセスが許可されたかどうかを判定するために、リソースへのアクセスを管理するポリシーが要求に適用される。一実施形態において、ポリシーは、事前にではなく、計算の実行中に適用される。このセットアップの利益は、計算を、リソースがアクセスされるその実行の一部として、前もって認証を決定することができないようにその識別子を知ることができないリソースを決定することができることである。
例えば、プログラムは、特定の基準に適合する、例えばバリアントrs1234を有する、ゲノムのリストをサーバから要求することができる。その後のステップは、次いで、バリアントrs1234とrs5678との間の相関を調査するために、動的に決定されたコホートに問い合わせることができる。この計算の第2のステップで要求される特定のアクセスは、前もって知られていない(また、該アクセスが、クエリが行われている特定のゲノムデータベースの状態に依存するので、概して、知ることができない)。このような環境において、このような要求の承認は、ランタイムで行われるべきである。
再度図10を参照すると、1315で、以前のステップのポリシーがアクセスを許可するかどうかに関する判定が行われる。アクセスが許可されている場合は、管理された情報を記憶する別のシステムに要求が転送される。例えば、リソースがREST APIを介して識別される場合、(1300)で概説されるように、要求がこのシステムに転送される。
1325で、該当する場合に、ポリシーが計算の結果に適用される。機密データソースから返される結果は、例えば、該結果自体を、結果が生成される前に評価することができない管理ポリシーに従わせることができる。例えば、識別の対象となる個々の被検体を表す方法で、コホートを単一の人にしぼる非常に特殊のクエリをブロックすることができる。
1330で、結果へのアクセスを許可するかどうかに関する判定が行われ、1335で、ポリシーによって命令された場合に、結果を変換することができる。変換は、いくつかの理由で、返された値に以下の(a)及び(b)を含み、適用することができる。(a)例えば、1300で、おそらくは実行コンテキストの情報を使用して、以前に作成したマッピングを反転させること、(b)過剰な個人情報を返すと判定される結果に対してランダム性を加えること、などを含む。
アクセスが許可されなかった(例えば、ブロック1315またはブロック1330を出る「いいえ」)場合は、1340で、無効/例外的な事例が起こったことを知らせる無効/例外的な結果を返す。あるときには、例外的な結果を返すことが、情報を漏洩する−例えば所与の個人がデータベースの一部でないことを示す−場合があるので、このステップも慎重に管理しなければならない。1345で、カジュアルなログビューアが見てはならない情報を見てしまうことを阻止するために、未処理の形式、変換された形式、更には暗号化または別様には不明瞭にされた形式での要求のような結果を監査することができる。システムはまた、明かされた特定のリソースに関する情報の量を決定し、記録する「情報アカウンティング」も行うことができる。これは、将来のポリシー決定において使用することができ、過剰な情報がいくつかのポリシーに従って明かされた場合に、システムは、更なる質問に答えることを拒否することができる。
1350で、実行中のプログラムに結果が返される。例えば、このステップにおいて、透過型プロキシによって要求がインターセプトされた場合、プロキシは、結果を要求者に返す。
1215で、管理されたプログラムの実行が終了したかどうかに関する判定が行われる。終了していない場合、プロセスは、ブロック1205で実行を続ける。
1220で、戻り値が構築される。例えば、一実施形態では、管理された計算が終了したときに、この計算ステップの最終結果が、計算を要求するプリンシパルに返されるデータ構造に組み立てられる。
1225で、ポリシーが潜在的戻り値に適用される。個々のリソース要求の各々の結果を管理し、監査したのと同じ方法で、いくつかの実施形態において、これらの結果の組み合わせも管理し、監査する。そうでなければ、プログラムは、非常に長い一連の表面上は無害なクエリを作成し、多くの情報を明かす何かに結果を組み合わせる場合がある。適用されるポリシーのタイプは、例えば、ブロック1325と関連して説明されるポリシーと類似し得るが、該ポリシーは、情報の組み合わせを考慮するのに役立つ。例えば、ポリシーは、「偶発的発見」の深刻度に応じて、こうした偶発的発見が明かされること、または抑制されることが必要であり得る。これは、例えば、(現在、医学的に実績のある行動方針がない)アルツハイマー病のような特定の疾患に対する可能性が増加したことを示す、検出されたバリアントが、最終結果において抑制されることを意味し得る。この抑制は、組織ポリシーの結果、またはデータが収集されたプリンシパルの個人的選好とすることができる。
1230で、結果がポリシーによって許可されるかどうかに関する判定が行われ、1235で、最終結果以外はブロック1335と同様に、返り値を変換することができる。例えば、各返り値は、結果の統計(例えば平均、分散)を保つ一方で、秘匿性を維持するために僅かに修正することができる。
アクセスが許可されていない場合は、ブロック1340と同様に、無効/例外的な結果を返すことができ、そして1245で、実行監査を作成することができる。当然、最終結果は、監査することができるが、いくつかの実施形態では、入力の一部若しくは全部、及びこの計算の結果としてのシステム全体の状態も同様に監査される。このステップは、過去に取得した結果を再作成するための、フォレンジック目的に望ましくなり得る。例えば、薬剤を投与するために計算を使用し、患者が拒絶反応を起こしたと仮定する。計算が正しく行われたこと、及びこの事実を実証できることが分かっていることが重要である。これを行うための1つの方法は、おそらくはデジタル署名の形式による、入力及び全ての暗示の入力状態、入力自体の計算、並びに出力結果に関するハッシュを計算し、記憶することを含む。入力及び出力データ、状態データ、及び結果とともにハッシュを記憶することによって、膨大なクラスの計算(例えば、決定論的であり、参照透過的であるもの)を正確に再作成することができる。
1250で、結果が要求者に返されるか、または後の処理段階のために、明確に定義された場所に記憶され、1255で、実行コンテキストがクリーンアップされる。例えば、この計算に関するメタデータを含む実行コンテキストは、破壊することができ、その後に、処理は停止する。
図10は、例示の目的で提供されており、限定されるものではないこと、及び本発明の作用の主体の原理を逸脱しない範囲で、図10に示される例示的なプロセスに対して多数の変更を行うことができることが認識されるであろう。例えば、いくつかの実施形態では、様々なブロックを省略することができ、他のブロックを加えることができ、異なる順序でステップを行うことができ、及び/または同類のことを行うことができる。
上で説明される例示的なプロセスの追加的な詳細、及び可能な変形のいくつかの実施例が下で提供される。
計算に対するリソースの識別
いくつかの実施形態が計算を仮想化する理由の1つは、偶然か故意かにかかわらず、計算自体に与えられる任意の情報が潜在的に漏洩するというセキュリティ上の想定に基づいている。この事態から保護するためのいくつかの機構がある。
図10のブロック1200で、(とりわけ)システムに知られている識別子と、計算に与えられる識別子との間のマッピングを含むことができる、実行コンテキストが作成される。いくつかの実施形態において、計算は、この特定の実行のコンテキストのリソースについて、ランダムで一時的なエイリアスが与えられる。例えば、実際のアイデンティティ12345678を有するリソースに、ランダムな識別子072963429を割り当てることができる。このリソースに関する情報を計算が要求するときには、072963429を依頼する。システムは、実行コンテキストを使用して、この識別子を真の識別子12345678にマッピングする。
追加的な手法は、機密データをホストするサーバに知られている(または該サーバが発見できる)鍵を使用して、真の識別子を暗号化することである。一変形例は、鍵付きハッシュ関数(HMACなど)を使用し、リソース識別子としてハッシュを使用することである。当業者は、識別子を不明瞭にするための多くの潜在的な方法があること、及び任意の適切な技法を使用することができることを認識するであろう。
この手法の1つの利益は、信用できる実行コンテキストの外で動作している計算により、試験データに対する試験的な計算と適合することである。このような場合は、いかなる実行コンテキストもなく、いかなるプロキシもなく、それ故にいかなる変換もない。試験者が、パブリックにされたいくつかのゲノム識別子を知っている場合、計算は、信用できる実行コンテキストの外で試験することができ、次いでその後に、信用できるコンテキストにアップロードすることができる。
計算ネットワーク
開示される実施形態と一致して、機密情報を潜在的に明かすことができる計算は、隔離することができ、並びに/または別様には仮想化及び/若しくは保護された実行環境で(例えば、サンドボックス化環境で)行うことができる。更なる実施形態において、より複雑な計算は、保護された処理環境において更に個別に隔離することができる、複数の段階を使用することができる。いくつかの実施形態では、計算の段階を隔離することは、とりわけ、計算のセキュリティを改善すること、並びに/または機密情報及び/または中間の計算情報が不所望に明かされることの潜在性を低減させることができる。
一例として、計算は、キャリアの適合性を決定することができる。計算を実施するように構成されるプログラムは、表現型識別子によって2つの被験体を識別し、特定のバリアントが存在するか、しないかについて被検体を調べること、及び2つの被検体がキャリアであるかどうかを判定することができる。しかしながら、このような計算は、個人的に識別可能な情報及び/または別様には機密情報を潜在的に明かす場合がある。この危険性を低減させるために、本明細書で開示されるある特定の実施形態と一致して、それぞれが隔離した状態で動作し、遺伝子型と表現型とを結び付けることができないように、3つの別個のプログラムのネットワークを使用してプログラムを実施することができる。
図6は、一貫したゲノムデータと関連して計算を行うための例示的な計算ネットワーク600を例示する。特に、例示される計算ネットワーク600は、キャリアの適合性を決定するために、上で説明される計算を実施することができる。示されるように、計算ネットワークは、異なる計算(例えば、計算602〜608)を隔離されたアドレス空間に分離することができる。例えば、選択計算602は、表現型基準及び/または任意の他の適切な方法に基づいて、2つの被験体を識別することができる。選択された被験体と関連する識別子は、選択計算602を実施するプログラムのアドレス空間の外で、ゲノム識別子にマッピングすることができる。次いで、各ゲノムを、特定のバリアントが存在するかどうかを確認するために、スクリーン計算604、606において別々に評価することができる。スクリーン計算604、606は、組み合わせ計算608(例えば、バリアントが存在しているか、及び/または存在していないかを示すブール値)に結果を渡すことができ、(例えば、論理ANDまたは同類のものを行うことによって)結果に基づいてキャリアの適合性を判定することができる。例示される計算ネットワーク600は、別様には、単一のプログラムを使用して実施することができるが、おそらく明かされ得る個人的に識別可能な情報及び/または別様には機密情報の量が低減される。
いくつかの実施形態において、計算602〜608の各々は、図3に例示されるように、サンドボックス化実行環境の内側で行うことができ、実行マネージャ308が、個々にサンドボックス化した計算の各々の間のやりとりを管理する。例えば、計算602は、サンドボックス化実行環境302の内側で動作させた場合に、その結果を実行マネージャ308に返すことができ、次いで、こうした結果を、おそらくいくつかの変換の後に、プログラム604及び606に提供し、各プログラムは、それら自体のサンドボックス化実行環境の内側で動作する。
開示されるデータサービスのある特定の実施形態は、例えば図6と関連して例示されるような計算ネットワークを含む、計算ネットワークを指定するための様々な機構を提供することができる。ある特定の実施形態において、開示されるデータサービスは、とりわけ、モジュール間の変換、計算ライフサイクルの管理、中間計算生成物の記憶及び/若しくはトランスポート、並びに/または安全な方式で最終計算結果を返すことを容易にすることができる。
モデル/ビュー/コントローラアーキテクチャ
いくつかの実施形態では、モデル/ビュー/コントローラウェブアプリケーションアーキテクチャを、開示されるデータサービスフレームワークの実施形態と関連して実施することができる。図7Aは、本明細書で開示される実施形態と一致する、ゲノムデータサービス702とインターフェースするように構成される、例示的なモデル/ビュー/コントローラウェブアプリケーション700を例示する。いくつかの実施形態において、ゲノムデータサービス702は、そこで管理されるゲノムデータのやりとりを容易にするために、安全なAPI(例えば、REST API)を公表することができる。
ある特定の実施形態では、ウェブアプリケーション700と関連して実施されるオブジェクトリレーショナルモデル(「ORM」)を、安全なAPIとやりとりするように適合させることができる。いくつかの実施形態において、ORMシステムは、アプリケーションの開発者が、Ruby on RailsまたはDjangoなどのウェブサービスフレームワークを使用して、自動生成モデルオブジェクトをやりとりすることを可能にするように設計することができ、該オブジェクトのクラスがデータベーステーブルに対応し、該オブジェクトのオブジェクトインスタンスがテーブル内の行に対応する。更なる実施形態において、ウェブフレームワークは、サポーティングコンポーネントを使用することができ、これは、開発者が、ローカルデータベースのオブジェクトに関して、同様の方式で、REST APIを通じてリモートサービスで記憶されるモデルオブジェクトと透過的にやりとりすることを可能にする。
オブジェクト/RESTマッピングの一例として、データベースレコードを取り出すステートメントをURLに翻訳することができる。例えば、データベースレコードpatient.rsid(1933437)を取り出すというステートメントは、URL http://.../genome/5685c028bf7811e3a21a12470ec1d3b5/variant/rsid/rs1933437に翻訳することができ、ここで、ゲノムIDは、ローカルデータベースの中の患者オブジェクトと関連付けられ、オブジェクトによって、RESTマッピング層への経路が自動的に構築される。いくつかの実施形態において、このような要求は、要求を行うコードを識別すること、及び/または監査することを可能にする認証機構と連結することができる。
開示されるシステム及び方法のある特定の実施形態は、関連するモジュールが次のような状態であることが含まれるが、それらに限定されない、様々な環境において、APIレベルで統合することができる。
・移行中に認証する必要がない場合のある信用できるソースに由来する、
・望ましくない挙動について分析されている、
・ゲノムデータなどの機密データへのアクセスに対する完全性の証明を必ずしも必要としない、
・モジュールによって取り出されている機密データが他の構成要素によって危殆化することができないことを確実にすることができる、信用できる環境で実行される、及び/または
安全に及び/または別様には機密データの完全性を危殆化することなく、様々な計算モジュール間で中間生成物を渡すことができる。
更なる実施形態では、上記の環境のうちの1つ以上を適用しないときなどに、開示されるシステム及び方法の他の実施形態と一致する個々のモジュールレベルで、サンドボックス化技法及び/または仮想化実行環境技法を適用することによって、ある特定の保護を達成することができる。図7Bは、保護された実行環境を使用するゲノムデータサービス702とインターフェースするように構成される、例示的なウェブアプリケーション700を例示する。
いくつかの実施形態において、サンドボックス化モジュールは、制御コードによって直接呼び出することができる。例えば、モジュール自体は、上で説明されるように、オブジェクト/RESTマッピングを使用することができ、アダプタが依存性として仮想化コンテナに投入される。ある特定の実施形態において、この手法は、他のモジュールオブジェクトに対して多くの依存性がない場合、及び/または必要なパラメータをサンドボックス化モジュールにパラメータとして渡すことができる場合、といった環境で実施することができる。
更なる実施形態では、あるレベルの間接指定を実施することができる。例えば、オブジェクトマッピングは、任意の必要なパラメータで渡す、サンドボックス化モジュールを実行するために、インスタンス変数及びこうしたアイテムを返すRESTコールにアクセスする方法をマッピングするのではなく、こうした要求をコマンドに変換することができる。
モジュールレベルのサンドボックス化を利用することで、とりわけ、ゲノムデータサービス702が、サードパーティのコードをより安全に取り扱うこと、コードの完全性を暗号によって検証すること、及び/または同類のことを行うことを可能にする。ある実施形態において、中間生成物及び/または計算情報(例えば、ある特定のアーキテクチャでウェブアプリケーションに返すことができる)に対する危険性を緩和するために、計算ネットワークをゲノムデータサービス702のフレームワークと関連して使用することができる。特に、上で論じられるように、計算ネットワークは、計算及び/またはプログラムのある特定の中間計算を隔離するように指定することができる。開示される実施形態と一致して、様々な中間計算を様々な保護された実行環境内で実行することができ、それによって、中間計算結果の完全性を保護する。
図8は、本明細書で開示される実施形態と一致する、ゲノムまたは他の機密データをやりとりする例示的な方法800のフローチャートを例示する。例示される方法800は、ソフトウェア、ファームウェア、ハードウェア、及び/またはこれらの任意の他の組み合わせを使用することを含む、様々な方法で実施することができる。ある特定の実施形態では、方法800及び/またはその構成ステップのいずれかを、ある特定の開示される実施形態と一致するデータサービスを実施するシステムによって行うことができる。
802で、ゲノムデータセットを使用して計算を行う要求をユーザから受信することができる。いくつかの実施形態において、開示されるゲノムデータサービスのある特定の実施形態を実施するシステム上で実行する実行マネージャによって、要求は、受信されることができる。要求は、例えば、ゲノムデータへのアクセスの要求、及び/またはゲノムデータセットに基づく計算結果の要求を含むことができる。
要求を受信することに応じて、804で、要求された計算と関連する1つ以上のプログラムを、1つ以上の仮想化及び/若しくは別様にはサンドボックス化した、または限定された実行環境にロードすることができる。いくつかの実施形態では、元々の要求をユーザから受信することに応じて、1つ以上の仮想化実行環境を初期化することができる。更なる実施形態では、1つ以上の仮想化実行環境を、ゲノムデータセットを管理するように構成されるデータストアとは異なるアドレス空間(複数可)と関連付けることができる。
806で、実行マネージャによって、1つ以上のプログラムのための1つの実行コンテキスト及び/または複数の実行コンテキストを生成することができる。ある特定の実施形態において、実行コンテキスト(複数可)は、ゲノムデータセットと関連する実際の識別子のセットと、要求元プログラムに提供される一時的な識別子のセットとの間のマッピングを含むことができる。これらの識別子は、例えばランダムに生成すること、及び/または逆算が困難な関数(例えば、暗号化関数、ハッシング関数など)に基づいて生成すること、を含む、様々な方法で生成することができる。
808で、ゲノムデータセットにアクセスする、及び/または該ゲノムデータセットを使用する、プログラム(複数可)からの要求(複数可)を、システム上で実行するデータアクセスプロキシモジュールによって受信することができる。810で、実行コンテキスト(複数可)を使用することで、データアクセスプロキシモジュールは、要求(複数可)を、生成すること、及び/または別様には安全なデータ要求(複数可)に変換することができる。更なる実施形態では、1つ以上の識別されたポリシー(例えば、ゲノムデータセット、要求元ユーザ、及び/または要求元プログラム(複数可)と関連するポリシー)を、安全なデータ要求(複数可)を生成することと関連して使用することができる。
812で、生成された安全なデータ要求(複数可)を、データアクセスプロキシモジュールによって、ゲノムデータセットを管理するデータストアに送信することができる。814で、データアクセスプロキシモジュールは、安全なデータ要求(複数可)に応じて、データストアから安全なデータ応答(複数可)を受信することができる。816で、実行コンテキスト(複数可)及び識別されたポリシーに基づいて、データアクセスプロキシモジュールは、安全な応答を変換することができ、818で、変換した応答を、仮想化実行環境(複数可)において実行するプログラム(複数可)に提供することができる。820で、データアクセスプロキシモジュールから受信する情報に基づいて1つ以上のプログラム(複数可)によって生成されるユーザの元々の要求に対する応答を、ユーザに送信することができる。
図9は、本明細書で開示されるシステム及び方法の実施形態を実施するために使用することができる、例示的なシステム900を例示する。例示的なシステム900は、本明細書で開示される動作を行うことができるデバイス及び/またはコンピュータシステムを備えることができる。例えば、システム900は、開示されるシステム及び方法と一致するゲノムデータサービスを実施するように構成される、ゲノムデータ記憶装置及び/または処理システムのうちの少なくとも一部を備えることができる。
図9に例示されるように、システム900は、処理ユニット902と、処理ユニット902によって使用し、実行するためのプログラム及び他のデータを記憶するための、高速ランダムアクセスメモリ(「RAM」)、不揮発性メモリ(「ROM」)、及び/または1つ以上の大容量不揮発性コンピュータ読み出し可能な記憶媒体(例えば、ハードディスク、フラッシュメモリなど)を含む、システムメモリ904と、1つ以上のディスケット、光記憶媒体(例えば、フラッシュメモリ、サムドライブ、USBドングル、コンパクトディスク、DVDなど)、及び/または他のコンピュータ読み出し可能な記憶媒体を含む、リムーバブルメモリ908とインターフェースするための、ポート906と、1つ以上の通信技術を使用して、1つ以上のネットワーク接続102を介して他のシステムと通信する(例えば、1つ以上のクライアントシステム及び/またはリモートデータストアと通信する)ための、ネットワークインターフェース910と、ディスプレイ、及び/または例えばタッチスクリーン、キーボード、マウス、トラックパッド、及び同類のものなどの1つ以上の入力/出力デバイスを含むことができる、ユーザインターフェース916と、システム900の要素を通信可能に連結するための、1つ以上のバス930とを含むことができる。
いくつかの実施形態において、システム900は、代替として、または加えて、安全な物理的及び/または仮想的なセキュリティ技法を利用することによって、システム914または他のエンティティのユーザによる改竄から保護する、SPU914を含むことができる。SPU914は、信用できる証明書及び/または鍵の管理、安全なゲノムデータの管理、並びに本明細書で開示されるシステム及び方法の他の態様などの、機密動作のセキュリティを強化するのを補助する。ある特定の実施形態において、SPU914は、論理的に安全な処理ドメインにおいて動作することができ、また、機密情報を保護し、該機密情報に対して動作するように構成することができる。いくつかの実施形態において、SPU914は、SPU914が安全な動作を行うことを可能にするように構成される実行可能な命令またはプログラムを記憶する、内部メモリを含むことができる。更なる実施形態において、SPU914は、本明細書で説明されるようにゲノムデータに対して計算を行うための保護された実行環境を実施するために使用することができる。例えば、いくつかの実施形態では、同一出願人による米国特許第7,430,585号(「585号特許」)及び/または米国特許第5,892,900号(「900号特許」)において説明されているように、SPU914を使用することができる。
システム900の動作は、概して、システムメモリ904(及び/またはリムーバブルメモリ908などの他の非一時的なコンピュータ読み出し可能な媒体)に記憶されるソフトウェア命令及びプログラムを実行することによって動作する、処理ユニット902及び/またはSPU914によって制御することができる。システムメモリ904は、システム900の動作を制御するための様々な実行可能なプログラムまたはモジュールを記憶することができる。例えば、システムメモリ904は、システムハードウェアリソースを少なくとも部分的に管理し、協働させることができ、また、様々なアプリケーションを実行するための共通のサービスを提供することができる、オペレーティングシステム(「OS」)918と、ゲノムデータ及び/または他の機密データと関連するポリシーを管理及び/または施行するように構成される、ポリシー管理モジュール920とを含むことができる。システムメモリ904は、限定されることなく、システム900内の、及び該システムによる通信を部分的に可能にするように構成される、通信ソフトウェア922、計算924(例えば、いくつかの状況において信用できない場合があるゲノムデータまたは同類のものに対して動作するように構成されるプログラム、計算、及び/またはアプリケーション)、本明細書で開示される実施形態と一致する、仮想化及び/または別様には保護された及び/またはサンドボックス化実行環境及び/またはマシンの生成を実施するように構成される、仮想マシンモジュール926、開示される信用管理プロセスの実施形態を実施するように構成される、信用管理モジュール928、開示される実施形態と一致する監査及び/またはアカウンティングプロセスを実施するように構成される、監査及びアカウンティングモジュール930、及び/またはローカルに記憶されたゲノムデータ932、を更に含むことができる。
本明細書で開示されるシステム及び方法は、任意の特定のコンピュータ、電子制御ユニット、または他の装置に本質的に関連するものではなく、また、ハードウェア、ソフトウェア、及び/またはファームウェアの適切な組み合わせによって実現され得る。ソフトウェアの実現形態は、コンピュータシステムのプロセッサによって実行されたときに、実行可能な命令によって少なくとも部分的に定義される方法をコンピュータシステムに行わせることができる実行可能なコード/命令を備える、1つ以上のコンピュータプログラムを含み得る。コンピュータプログラムは、コンパイル型言語またはインタプリタ型言語を含む、任意の形式のプログラミング言語で記述することができ、また、スタンドアロンのプログラムとしての形式、またはコンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、若しくは他のユニットとしての形式を含む、任意の形式で展開することができる。更に、コンピュータプログラムは、1つのサイトで1つのコンピュータ上でまたは複数のコンピュータ上で実行するように展開するか、または複数のサイトにわたって分散させ、通信ネットワークによって相互接続することができる。ソフトウェアの実施形態は、コンピュータシステムのプロセッサによって実行されたときに、命令に従って方法をコンピュータシステムに行わせるように構成されるコンピュータプログラム及び命令を記憶するように構成される非一時的な記憶媒体を備える、コンピュータプログラム製品として実現され得る。ある特定の実施形態において、非一時的な記憶媒体は、プロセッサ読み出し可能な命令を非一時的な記憶媒体に記憶することができる、任意の形式をとり得る。非一時的な記憶媒体は、コンパクトディスク、デジタルビデオディスク、磁気テープ、磁気ディスク、フラッシュメモリ、集積回路、または、任意の他の非一時的なメモリデバイスによって具現化され得る。
上述のものは、明確にする目的でいくらか詳細に説明されているが、その原理から逸脱することなく、特定の変更及び修正が行われ得ることが明らかになるであろう。本明細書で説明されるシステム及び方法の双方を実現する数多くの代替の方法があることに留意されたい。故に、本実施形態は、限定的なものではなく例示的なものであるとみなされるべきであり、また本発明は、本明細書に与えられる詳細に限定されるものではなく、添付の特許請求の範囲及びその均等物の範囲内で変更され得るものである。

Claims (20)

  1. プロセッサと、命令を記憶する非一時的なコンピュータ読み出し可能な記憶媒体とを備えるシステムによって行われる、機密データに対して信用できる計算を行うための方法であって、該命令が前記プロセッサによって実行されたときに、前記システムに前記方法を行わせ、前記方法が、
    前記システム上で実行する実行マネージャによって、ゲノムデータセットを使用して計算を行う要求をユーザから受信することと、
    前記計算と関連する第1のプログラムを、前記システム上で実行する第1の仮想化実行環境内にロードすることと、
    前記実行マネージャによって、前記第1のプログラムの第1の実行コンテキストを生成することと、
    前記システム上で実行するデータアクセスプロキシモジュールによって、前記ゲノムデータセットを使用する第1のデータ要求を前記第1のプログラムから受信することと、
    前記データアクセスプロキシモジュールによって、前記第1の実行コンテキストに基づいて生成される第1の安全なデータ要求を生成することと、
    前記データアクセスプロキシモジュールによって、前記第1の安全なデータ要求を、前記ゲノムデータセットを管理するデータストアに送信することと、を含む、方法。
  2. 請求項1に記載の方法であって、
    前記データアクセスプロキシモジュールによって、前記第1の安全なデータ要求に基づいて、前記データストアから第1の安全なデータ応答を受信することと、
    前記データアクセスプロキシモジュールによって、前記第1の安全なデータ応答及び前記第1の実行コンテキストに基づいて生成される前記第1のデータ要求に対する第1の応答を、前記第1のプログラムに送信することと、
    前記実行マネージャによって、前記第1の応答に基づいて生成される前記ユーザからの前記要求に対する応答を送信することと、を更に含む、方法。
  3. 請求項1に記載の方法であって、
    前記ユーザから前記要求を受信することに応じて、前記第1の仮想化実行環境を初期化することを更に含む、方法。
  4. 請求項1に記載の方法であって、
    前記データアクセスプロキシモジュールによって、前記第1のデータ要求と関連するポリシーを識別することを更に含み、
    前記安全なデータ要求が、前記識別されたポリシーに基づいて更に生成される、方法。
  5. 請求項4に記載の方法であって、前記ポリシーは、前記第1のプログラムに基づいて識別される、方法。
  6. 請求項4に記載の方法であって、前記ポリシーは、前記ゲノムデータセットに基づいて識別される、方法。
  7. 請求項4に記載の方法であって、前記ポリシーは、前記ユーザのアイデンティティに基づいて識別される、方法。
  8. 請求項1に記載の方法であって、前記第1の仮想化実行環境は、限定された実行環境を備える、方法。
  9. 請求項8に記載の方法であって、前記第1の仮想化実行環境は、前記データストアとは異なるアドレス空間と関連付けられる、方法。
  10. 請求項1に記載の方法であって、前記データストアは、ローカルデータストアを備える、方法。
  11. 請求項1に記載の方法であって、前記データストアは、分散データストアを備える、方法。
  12. 請求項1に記載の方法であって、前記第1のデータ要求は、前記ゲノムデータセットにアクセスする要求を含む、方法。
  13. 請求項1に記載の方法であって、前記第1のデータ要求は、前記ゲノムデータセットに基づいて生成される結果の要求を含む、方法。
  14. 請求項に記載の方法であって、
    前記計算と関連する第2のプログラムを、前記システム上で実行する第2の仮想化実行環境内にロードすることと、
    前記実行マネージャによって、前記第2のプログラムの第2の実行コンテキストを生成することと、
    前記システム上で実行する前記データアクセスプロキシモジュールによって、前記ゲノムデータセットを使用する第2のデータ要求を前記第2のプログラムから受信することと、
    前記データアクセスプロキシモジュールによって、前記第2の実行コンテキストに基づいて生成される第2の安全なデータ要求を生成することと、
    前記データアクセスプロキシモジュールによって、前記第2の安全なデータ要求を、前記データストアに送信することと、を更に含む、方法。
  15. 請求項14に記載の方法であって、
    前記データアクセスプロキシモジュールによって、前記第2の安全なデータ要求に基づいて、前記データストアから第2の安全なデータ応答を受信することと、
    前記データアクセスプロキシモジュールによって、前記第2の安全なデータ応答及び前記第2の実行コンテキストに基づいて生成される前記第2のデータ要求に対する第2の応答を、前記第2のプログラムに送信することと、を更に含み、
    前記ユーザからの前記要求に対する前記応答は、前記第2の応答に基づいて更に生成される、方法。
  16. 請求項1に記載の方法であって、前記第1の実行コンテキストは、第1の識別子セットと第2の識別子セットとの間のマッピングを備える、方法。
  17. 請求項16に記載の方法であって、前記第1の識別子セットは、前記ゲノムデータセットと関連する保護された実際の識別子を含み、前記第2の識別子セットは、前記第1のプログラムによってアクセスできる一時的な識別子を含む、方法。
  18. 請求項17に記載の方法であって、前記第2の識別子セットは、ランダムに生成される、方法。
  19. 請求項18に記載の方法であって、前記第2の識別子セットは、前記第1の識別子セットに関数を適用することによって生成される、方法。
  20. 請求項19に記載の方法であって、前記関数は、暗号化関数及びハッシング関数のうちの少なくとも1つを含む、方法。
JP2016565139A 2014-05-01 2015-05-01 安全なコンピューティングシステム及び方法 Active JP6541688B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461987365P 2014-05-01 2014-05-01
US61/987,365 2014-05-01
US201462077691P 2014-11-10 2014-11-10
US62/077,691 2014-11-10
PCT/US2015/028949 WO2015168654A1 (en) 2014-05-01 2015-05-01 Secure computing systems and methods

Publications (2)

Publication Number Publication Date
JP2017515233A JP2017515233A (ja) 2017-06-08
JP6541688B2 true JP6541688B2 (ja) 2019-07-10

Family

ID=54355448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016565139A Active JP6541688B2 (ja) 2014-05-01 2015-05-01 安全なコンピューティングシステム及び方法

Country Status (4)

Country Link
US (5) US9558322B2 (ja)
EP (1) EP3138231A4 (ja)
JP (1) JP6541688B2 (ja)
WO (1) WO2015168654A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152605B2 (en) 2014-05-21 2018-12-11 Siddharth Shetye Systems and methods for front-end and back-end data security protocols
US20160028735A1 (en) * 2014-07-28 2016-01-28 Max Planck Gesellschaft zur Förderung der Wissenschaften e.V. Private analytics with controlled information disclosure
IL251008B (en) * 2014-09-08 2022-08-01 Sybilsecurity Ip Llc A system and method for revealing sensitive information in a controlled manner
US9832199B2 (en) * 2015-09-25 2017-11-28 International Business Machines Corporation Protecting access to hardware devices through use of a secure processor
EP3449413A1 (en) 2016-04-25 2019-03-06 Intertrust Technologies Corporation Data management systems and methods
US10387631B2 (en) * 2016-05-06 2019-08-20 Enterpriseweb Llc Systems and methods for domain-driven design and execution of modular and dynamic services, applications and processes
US10985997B2 (en) 2016-05-06 2021-04-20 Enterpriseweb Llc Systems and methods for domain-driven design and execution of metamodels
US10158610B2 (en) 2016-07-06 2018-12-18 Adp, Llc Secure application communication system
US10708268B2 (en) * 2017-07-31 2020-07-07 Airwatch, Llc Managing voice applications within a digital workspace
US11030324B2 (en) * 2017-11-30 2021-06-08 Koninklijke Philips N.V. Proactive resistance to re-identification of genomic data
US11861024B1 (en) * 2018-01-26 2024-01-02 Wells Fargo Bank, N.A. Systems and methods for data risk assessment
US11188850B2 (en) * 2018-03-30 2021-11-30 Derek Alexander Pisner Automated feature engineering of hierarchical ensemble connectomes
US10990759B1 (en) * 2018-07-31 2021-04-27 Amazon Technologies, Inc. Deviation-based framework
US11102187B2 (en) * 2019-02-20 2021-08-24 Aetna Inc. Systems and methods for managing workflow transactions including protected personal data in regulated computing environments
US11409904B2 (en) * 2019-04-18 2022-08-09 Microsoft Technology Licensing, Llc User interface for building a data privacy pipeline and contractual agreement to share data
US20210141940A1 (en) * 2019-11-13 2021-05-13 Sensoriant, Inc. Method and system for enhancing the integrity of computing with shared data and algorithms
EP3839789B1 (en) * 2019-12-20 2023-06-28 Barclays Execution Services Limited Secure data leakage control in a third party cloud computing environment
US20210281548A1 (en) * 2020-02-27 2021-09-09 Virtru Corporation Methods and systems for securing containerized applications
WO2022013238A1 (en) * 2020-07-14 2022-01-20 Gapfruit Ag Computing device for establishing a trusted execution environment
US11361106B2 (en) 2020-09-01 2022-06-14 Microsoft Technology Licensing, Llc Chaining, triggering, and enforcing entitlements
WO2023102581A1 (en) * 2021-12-07 2023-06-15 Flugdachs Intellectual Property Gmbh Provable remote execution of a computer program
US11922145B2 (en) 2022-03-01 2024-03-05 Microsoft Technology Licensing, Llc Initiating data privacy pipelines using reusable templates
US11748630B1 (en) * 2022-09-29 2023-09-05 Bank Of America Corporation Optimized subscription access platform using DNA computing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640211B1 (en) * 1999-10-22 2003-10-28 First Genetic Trust Inc. Genetic profiling and banking system and method
US20050026117A1 (en) * 2000-12-04 2005-02-03 Judson Richard S System and method for the management of genomic data
US7694328B2 (en) * 2003-10-21 2010-04-06 Google Inc. Systems and methods for secure client applications
US20050165881A1 (en) * 2004-01-23 2005-07-28 Pipelinefx, L.L.C. Event-driven queuing system and method
US10503872B2 (en) 2006-09-29 2019-12-10 Gearbox Llc Computational systems for biomedical data
US20080281819A1 (en) * 2007-05-10 2008-11-13 The Research Foundation Of State University Of New York Non-random control data set generation for facilitating genomic data processing
US20110047189A1 (en) 2007-10-01 2011-02-24 Microsoft Corporation Integrated Genomic System
US9286108B2 (en) * 2008-10-30 2016-03-15 Oracle America, Inc. Method to track application context and application identification
CN104054084B (zh) * 2011-10-17 2017-07-28 英特托拉斯技术公司 用于保护和管理基因组及其它信息的系统和方法
US9413538B2 (en) * 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US11354612B1 (en) * 2012-04-13 2022-06-07 Blackhawk Network, Inc. System and method for localized prepaid gift account program utilizing open loop network systems without local merchant approval
JP5858308B2 (ja) * 2012-05-24 2016-02-10 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
US8418230B1 (en) * 2012-08-28 2013-04-09 Netcomm Wireless Limited Apparatus and method for mobile communications and computing
US9465837B1 (en) * 2012-10-15 2016-10-11 Google Inc. Processing data requests for a schemaless datastore in accordance with constraint information
US9250940B2 (en) * 2012-12-21 2016-02-02 Microsoft Technology Licensing, Llc Virtualization detection
US10489415B2 (en) * 2013-01-10 2019-11-26 Pvelocity Inc. Method and system for collating and presenting information
JP6640836B2 (ja) * 2014-05-02 2020-02-05 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. ゲノム情報科学サービス

Also Published As

Publication number Publication date
WO2015168654A1 (en) 2015-11-05
US11763917B2 (en) 2023-09-19
US10803975B2 (en) 2020-10-13
US20240006030A1 (en) 2024-01-04
EP3138231A1 (en) 2017-03-08
US20190065680A1 (en) 2019-02-28
US10083277B2 (en) 2018-09-25
JP2017515233A (ja) 2017-06-08
EP3138231A4 (en) 2017-12-20
US9558322B2 (en) 2017-01-31
US20170147749A1 (en) 2017-05-25
US20150317490A1 (en) 2015-11-05
US20200411139A1 (en) 2020-12-31

Similar Documents

Publication Publication Date Title
JP6541688B2 (ja) 安全なコンピューティングシステム及び方法
Miyachi et al. hOCBS: A privacy-preserving blockchain framework for healthcare data leveraging an on-chain and off-chain system design
Fabian et al. Collaborative and secure sharing of healthcare data in multi-clouds
Abouelmehdi et al. Big data security and privacy in healthcare: A Review
Dehling et al. Secure provision of patient-centered health information technology services in public networks—leveraging security and privacy features provided by the German nationwide health information technology infrastructure
AU2013235191A1 (en) Distributed computation systems and methods
Thilakanathan et al. SafeProtect: Controlled data sharing with user-defined policies in cloud-based collaborative environment
Pinto et al. A system for the promotion of traceability and ownership of health data using blockchain
Lee et al. Privacy Preservation in Patient Information Exchange Systems Based on Blockchain: System Design Study
Sharma et al. Tamper-proof multitenant data storage using blockchain
Taylor et al. Vigilrx: A scalable and interoperable prescription management system using blockchain
Kaur et al. Attribute-based access control scheme for secure storage and sharing of EHRs using blockchain and IPFS
Barbaria et al. Leveraging patient information sharing using blockchain-based distributed networks
Riadi et al. Developing data integrity in an electronic health record system using blockchain and InterPlanetary file system (Case Study: COVID-19 data)
Makinde et al. Integration of blockchain into medical data security: Key features, use cases, technical challenges, and future directions
Beaty et al. Managing sensitive applications in the public cloud
Liu et al. A Blockchain-Based Personal Health Record System for Emergency Situation
Jahan et al. Security and privacy protection for eHealth data
Daudén-Esmel et al. Blockchain-based access control system for efficient and GDPR-compliant personal data management
Abouakil et al. Data models for the pseudonymization of DICOM data
Marwan et al. Security in cloud-based medical image processing: requirements and approaches
Stingl et al. Health records and the cloud computing paradigm from a privacy perspective
Sandeepkumar et al. Blockchain Assisted Cloud Storage For Electronic Health Records
Andersson Securing Electronic Health Records: A Blockchain Solution
Vinnarasi et al. E-Health Security on Could Computing and its Challenges

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180410

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190402

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: 20190514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190611

R150 Certificate of patent or registration of utility model

Ref document number: 6541688

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250