MongoDB、暗号化したままのデータベースを検索「Queryable Encryption」発表。データ格納時、メモリ上、データ転送、ログ、バックアップのすべてが暗号化データのまま
MongoDBは、6月7日から9日にかけて米ニューヨークで開催されたイベント「MongoDB World 2022」で、データを暗号化したまま検索できるMongoDBの新機能「Queryable Encryption」を発表しました。
現代の主要なデータベースであれば、データベース内にデータを暗号化して格納する機能を備えていますが、データ格納時に暗号化して格納し(Encryption at Rest)、検索時にはメモリ上でデータを復号して操作する実装が一般的です。
今回のMongoDBが実装を発表したQueryable Encryptionは、データ格納時に暗号化するだけでなく、復号することなく暗号化したままのデータに対して検索を実行し、メモリ上でも暗号データのまま操作し、暗号データのまま転送。クライアント側のMongoDB Driver内で復号するというもの。
同社によるとデータはログ内でもバックアップでも暗号化されたままであり、より安全にセンシティブなデータを扱えるようになっていると説明。市場においてこうした実装を実現する唯一のデータベースだとしています。
Announcing the Preview release of Queryable Encryption
— MongoDB (@MongoDB) June 10, 2022
Encrypt sensitive data from the client side
Store it as fully randomized encrypted data on the database server side
Run expressive queries on the encrypted datahttps://t.co/Ec3g86R8DA
Queryable Encryptionは以下のように動作します。
1)アプリケーションがクエリを発行すると、MongoDBドライバがクエリを分析。
2)暗号化されたフィールドに対しての検索であることが認識されると、MongoDBドライバが暗号化キーを暗号化キー管理サービス(AWS KMS、Google Cloud KMS、Azure Key Vault、HashiCorp Vaultなどさまざまなサービス)に対して要求。
3)MongoDBドライバは暗号化されたフィールドに対応するクエリの部分を暗号化し、MongoDBにクエリを送信。
4)MongoDBサーバのQueryable Encryptionは、暗号化されたデータに対して、暗号化されたままクエリを処理。
5)暗号化されたまま結果を送信。
6)MongoDBドライバが結果を復号しアプリケーションへ平文で返信。
Queryable Encryptionはプレビューリリースとして公開されており、現時点では完全一致のみ実現。範囲や部分一致などそれ以外のクエリは今後対応する予定とのことです。
関連記事
あわせて読みたい
MongoDBが時系列データ対応、サーバレス対応、HTTPS経由でのAPI操作対応など機能強化を相次いで発表
≪前の記事
GitHub、プロフィール欄に「Achievements」(実績)を示す各種バッジの表示をスタート