導入が容易なオラクルのブロックチェーン
2021年に入ってからも、毎月のように大規模な情報漏洩が発生しているが、情報漏洩を防止する基本的な対策はデータベースの保護だろう。オラクルは暗号化やアクセス管理など、Oracle Databaseに対しさまざまなセキュリティ機能を提供しているが、今年3月、「Crypto-Secure Data Management」というコンセプトを発表した。
Senior Director of Blockchain Product Managementのマーク・ラクミレビッチ氏は、「Crypto-Secure Data Management」が必要な理由について、「不正な変更や削除からデータを保護するため」と語った。「Crypto-Secure Data Management」では、ブロックチェーン技術を階層化することで、データの不正な変更や削除を防ぐための保護を提供する。
ブロックチェーンというと、仮想通貨の基盤技術のイメージが強いかもしれないが、エンタープライズ領域でも、高い信頼性を確保したい「企業間のデータ共有基盤」や「企業間のワークフロー基盤」において利用が進んでいる。
ラクミレビッチ氏は「オラクルのブロックチェーンは従来のブロックチェーンとは違う」と話す。何が違うのか。従来のブロックチェーンは実装が難しく、導入の障壁が高いが、オラクルのブロックチェーンはデータベースの設定を最小限に抑えた形で簡単に組み込めるという。
また、従来のPeer to Peerのブロックチェーンでは、データそのものがレプリケートされるが、「オラクルのブロックチェーンではデータのハッシュ値のみがコピーされるので安全」と、ラクミレビッチ氏は述べた。
Immutable Table - 内部の不正をブロック
「Crypto-Secure Data Management」はいくつかの要素から構成されているが、その1つが「Immutable Table」だ。Immutable Tableは内部の不正な変更を防ぐことを目的としている。
Immutable Tableを用いると、新しいデータ追加は行えるが、既存のデータの変更や削除したりできなくなる。また、Immutable Tableのテーブル定義の変更、更新可能なテーブルへの変換もできない。
一方、アプリケーションから、Immutable Tableは他のテーブルと同様に見え、インデックスやパーティションを作ったり、ビューの参照元として利用したりすることも可能だ。
Immutable Tableを利用する際は、「CREATE IMMUTABLE TABLE」という構文を入れるだけでよい。Immutable TableはOracle Database 19.11および21.3で利用でき、まもなくパッチがリリースされるという。
Blockchain Table - 改竄をブロック
2つめの要素が「Blockchain Table」だ。Blockchain Tableは不正なデータ改竄の防止を目的としており、テーブルの所有者も特権ユーザーも変更を加えることができない。
具体的には、最初の行以外の行をハッシュチェーンでつなぎ、Blockchain Table上のデータになんらかの改変を加えた場合、行のハッシュ値が変わるため、このハッシュ値のチェーンが崩れることになる。その結果、データの改竄を検知することができる。
なお、ハッシュチェーンの整合性の検証はDBMSBLOCKCHAINTABLE.VERIFY_ROWSプロシージャを呼び出すことで行えるが、ラクミレビッチ氏は「ハッシュチェーンの整合性の検証はデータベースに独立した形で行える」と述べた。
Blockchain Tableは既にリリースされており、Oracle Database 19.10以降および21.1以降で利用できる。
ブロックチェーンダイジェストの配布
Immutable TableやBlockchain Tableを用いても、データベースをまるごと作り直すといった大規模な不正な改竄が起きてしまう可能性がある。こうしたリスクへの対策として、Oracle Databaseでは、Blockchain Tableの暗号化ダイジェストを作って、ダイジェストを用いてデータが改ざんされていないかどうかを確認することができる。
ラクミレビッチ氏は「ダイジェストにはデータは入っていないので、安全に人に渡すことができる」と述べた。そのため、ダイジェストは、外部のパブリックなブロックチェーンに書き込んだり、メールで送信したりすることが可能だ。
エンドユーザーによるデータへの署名
そのほか、不正に入手した正規のユーザーの情報を用いてデータを追加することも考えられる。こうしたリスクを解消するため、秘密鍵を用いてエンドユーザーがデータに電子署名を追加するというオプションも提供している。
エンドユーザーが用いる秘密鍵はデータベースに渡されず、エンドユーザーはデータベースに公開鍵を含むデジタル証明書を登録しておく。データベースはデータが追加された時、デジタル証明書を用いて、署名が正しいかどうかを確認する。
クラウド分野におけるオラクルの最大の競合といえば、Amazon Web Servicesとなるが、ラクミレビッチ氏は「Amazon Web Servicesのサービスでブロックチェーンを実現しようとすると、複数の異なるタイプのデータベースが必要となる。Oracle Databaseなら、1つのデータベースで通常のBlockchain Tableを利用できるため、エンジニアリングという視点からシンプル。また、Amazon Web Servicesではデータのインポートやエクスポートが発生するが、Oracle Databaseではデータの移動が発生しない」と、オラクルのアドバンテージを語っていた。