では、どう打開するか?答えは**エンベロープ暗号化**(Envelope Encryption)モデルを採用することです。ロジックはそれほど複雑ではありません:Walrus に保存するのは直接暗号化されたファイルではなく、「データ暗号化キー(DEK)」で暗号化されたファイルです。その後、この DEK を「キー暗号化キー(KEK)」で暗号化し、より簡単に更新できる場所に保存します——Sui のチェーン上オブジェクトまたはチェーン外の KMS システムなど。
実際にキーローテーションが必要な場合、小さなサイズの DEK だけを再度暗号化すればよく、Walrus 上の膨大なファイルは変わらないままです。これにより、セキュリティが確保されると同時に、ストレージコストが大幅に削減されます。つまり、Walrus のようなストレージシステム上でセキュリティソリューションを設計する際の必須科目です。
Walrus に保存された暗号化データのキーを更新したい?簡単そうに聞こえますが、実際にはやっかいな落とし穴があります。
従来のエンタープライズレベルのセキュリティ規格では、暗号化キーの定期的なローテーションは標準的な操作です。しかし Walrus のアーキテクチャでは、事態がはるかに高くつきます。コアの問題は単純明快です——データは既に暗号化されてアップロードされており、キーを変更すると、古いデータスライスは復号化できないゴミになってしまいます。チェーン上で直接暗号化アルゴリズムを修正したい?できません。唯一の方法は、ファイルをダウンロードして、新しいキーで復号化し、再度暗号化してから、新しいファイルと同じようにネットワークに再度アップロードすることです。
このプロセスはどのくらい無駄でしょうか?帯域幅の消費が2倍、計算リソースも2倍、さらに新旧データの接続問題を処理する必要があります。データ量が TB レベルの場合、キーローテーション全体のコストは、チームが負担できないほど高くなる可能性があります。結果はどうなるか?多くのチームは古いキーを長期間使用し続けることを余儀なくされ、セキュリティリスクが徐々に蓄積されていきます。
では、どう打開するか?答えは**エンベロープ暗号化**(Envelope Encryption)モデルを採用することです。ロジックはそれほど複雑ではありません:Walrus に保存するのは直接暗号化されたファイルではなく、「データ暗号化キー(DEK)」で暗号化されたファイルです。その後、この DEK を「キー暗号化キー(KEK)」で暗号化し、より簡単に更新できる場所に保存します——Sui のチェーン上オブジェクトまたはチェーン外の KMS システムなど。
実際にキーローテーションが必要な場合、小さなサイズの DEK だけを再度暗号化すればよく、Walrus 上の膨大なファイルは変わらないままです。これにより、セキュリティが確保されると同時に、ストレージコストが大幅に削減されます。つまり、Walrus のようなストレージシステム上でセキュリティソリューションを設計する際の必須科目です。
Walrus に基づくシステムアーキテクチャを計画しているなら、このアプローチは設計段階の初期に組み込む価値があります。