医療×ブロックチェーン④ 医療データ保存問題

Pocket

医療データ保存問題

ブロックチェーン上に医療データを載せない場合、医療データをどこに保存するか問題が生じてくる。これは個人情報保護の観点からも重要である。
 
大きく3つの方法がある
 

1)1つのクラウドストレージで一元管理

これは、AWS、Dropbox、Google Driveなどと同様に、サービスを提供する1企業のクラウドストレージにデータを一元管理する中央集権的管理である。
この場合、標的型サイバー攻撃を受け登録データが流出するリスクがある。そして、現在(未来永劫)標的型サイバー攻撃を100%回避する手段はない。
 
標的型サイバー攻撃
サービス自体のセキュリティーよりも、ソーシャルエンジニアリングという手法による、データを管理する組織内部のヒューマンエラーによるセキュリティー漏洩が大きく、後者は人間の心理的な隙をついたものなので100%回避しようがない。
 
ソーシャルエンジニアリング
攻撃者は組織的に長時間にわたり段階的に攻撃を行う。標的の弱点となる組織内部の人間を徹底的に調べ上げた上で、組織内部の人間の関係者や関連業務を偽って組織内部の人間に近づき信用させ、もともと用意していた不正プログラム(マルウェア)を開かせることで組織内のサーバに侵入する。そのあとは不正プログラムを遠隔操作し情報を流出させる。データを管理している会社の社員1人1人が高いセキュリティ意識を持つ必要があるが、現実的には不可能でありソーシャルエンジニアリングを防ぐのは極めて難しい。

(出典:http://cybersalon.org/the-cloud-were-doing-it-wrong/
 


上記の問題が起こるのは、クラウドサービスを管理している組織内部の人間もデータ保持者のデータにアクセスできるからである。DropboxやGoogle Driveなどは、対象鍵暗号(データの暗号化と復号に同一の鍵を用いる暗号方式)を用いていて、データ保持者とクラウドサービス管理者が同じ鍵を共有しているために、暗号化してデータを保存していても組織側で複合化できてしまうことが欠陥で、組織側の人間に対してソーシャルエンジニアリングによってハックされたらおしまいということになる。
 
上記のセキュリティ問題に対して「Zero-Knowledge」クラウドサービスというデータ管理の仕方がある。暗号化に対象鍵暗号ではなく公開鍵暗号方式(暗号化と復号に別個の鍵を用いる方式)を採用し、全てのデータはデータ保持者のみが秘密鍵をもち(秘密鍵はデータ保持者のPCやスマートフォンなどのデバイスに保存される)、クラウドサービス提供者を含め他の誰も秘密鍵を持たないというデータ管理の仕方である。データにアクセスできるのはデータ保持者のみ。秘密鍵へのアクセス自体もデータ保持者以外できない。
 
これは、一見完璧な解決策に見える。だが、これにもいくつか欠点がある。
1)クラウドサービス提供者が「本当に」全てのファイルを公開鍵暗号方式で暗号化しているのか?問題
少なくともこの部分を信用する必要がある。スノーデンの告発で顕になった米国盗聴プログラム「プリズム」など、データを暗号化する前段階でのデータのアクセス権限を持っていたりすると、どうとでも操作できてしまう。
対策としては、クラウドにデータをアップロードする前にユーザー自身が自分でデータを秘密鍵を用いて暗号化する。そうすることで、第三者に信用を委ねる余地が全て排除される。
 
2)ユーザビリティとセキュリティのトレードオフ問題
データを毎回暗号化してSSL通信で安全に送られなければならず、データのアップロードとダウンロードには数分はかかってしまう。実運用では、データ保存の速度は重要になるが、セキュリティとトレードオフの関係に有る
 
3)データ保持者が秘密鍵をなくしたら誰も復元できない。データは未来永劫失われてしまう。
 
 
もう一つの対処法がが秘密分散ストレージである。

2)秘密分散ストレージ

データを細切れにして、ネットワーク参加者のPCの空きストレージ(1PCあたり8-32MBが推奨されている)、にファイルを保管する方法。暗号化され細切れになったファイルはデータを預けた人(秘密鍵を持っている人)しか取り出すことはできないし、見ることもできない

ネットワークの参加者はトークンを支払うことで、他のユーザーが提供しているストレージを使用することができる。逆に、ユーザーは自分の空いているストレージを提供することができ、その対価としてトークンを受け取ることもできる。ネットワーク参加者がハードウェアの空き容量を提供したくなるインセンティブ設計が重要になる

サービスとしては、Story, Sia, Filecoin, Swarm, IPFSなどあり

詳しい説明はこちら

 

 
メリット
1)セキュリティの強化
ネットワーク参加者が増えると、どこにデータが分散して保存されて有るかは、事前の情報なしには幾何級数的に分からなくなる
→ネットワーク参加者数の直線的増加に比して、データのセキュリティは幾何級数的に高まる
 
 
デメリット
1)データが容易に失われてしまう危険性
個々のネットワーク参加者のPCの空き容量にデータが保存されているため、その参加者が「このネットワークに参加するのメリットないから、やーめた」なんて言って離脱すると、データを取り戻せない
 
2)インセンティブ設計
ネットワークが大きくなるにつれて、データのやり取りも幾何級数的に大きくなるため、データを分散保存するために個々のノードへの転送する電気量(コスト)も幾何級数的に大きくなる
→ネットワークが大きくなった時に、ネットワーク参加者にとってコスパが合わない時点がいつかはやってくる危険性
 
3)データはHTTPでやりとりされている→ハッキングされる可能性
分散化された断片的なデータはHTTP経由でやりとりされているため、ハッキングされる可能性あり→少なくとも断片的な情報のみは取得されてしまう危険性あり(秘密分散ストレージのうちIPFSはHTTP経由でないデータのやり取りを用いてこの危険性を回避している)
 
 

そして、3つ目の方法

 

3)現状のまま、各電子カルテメーカーのDBに医療情報を保存

医療情報は各病院ごとに分断化されて保存されたまま。この点では上記の分散ストレージと似ている。
この場合、1番のように新しく個人医療情報を一元管理するのではなく、各病院ごとに分断化された患者情報をID連携などして共有して管理していきましょうという保存方式。思想的に必然的にプライベート型ブロックチェーンになり、オープン型では採用されない。
 

〜結論〜

医療情報保存問題に関しては、セキュリティ的な理想をいえば、
①「Zero-Knowledge」クラウドで一元管理 or ②秘密分散ストレージ
なのかもしれないが、
 
①では、医療系ブロックチェーンが新しく立ち上げるクラウドストレージにデータを移行しなければいけなくなり、各電子カルテメーカーが乗っかるとは思えないので非現実的。思想としては素晴らしいが、既存の電子カルテメーカーにとってのインセンティブがない
 
②では、デメリットで上げたように、ストレージ提供してもいいよという参加者が増えるにつれてコストが上がってしまい、インセンティブ設計が難しくなり途中でネットワークから離脱した際に、そこに保存されていたデータも失われてしまう問題があり、これは結構深刻な問題。
 
なので、3番にして対象鍵暗号ではなく公開鍵暗号方式で患者情報を保存するのがいいのかなと思うが、Medical Chainのwhite paperを見るに、病院を信頼して対象鍵暗号で患者情報を保存という方式をとっていて、病院の組織内部の人間(システム管理者など)が患者情報を漏洩してしまうリスクは避けられない。
 
次は医療データ標準化問題について
 
 
 
Pocket