SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

HGS を使用しない Always Encrypted Secure Enclaves について

leave a comment

私もきちんと理解できておらず、最近まで把握できていなかったのですが、Always Encrypted Secure Enclaves を使用するためには、HGS (Host Guardian Service) による構成証明は必須ではないようです。(実運用環境では構成したほうが良いと思いますが、機能検証をしたい場合には HGS を構成しなくても検証が可能です)

最近、SQL Database で VBS (Virtualization based security) Enclaves を使用した Always Encrypted のサポートがプレビューで開始され、次のアナウンスがありました。

これに伴い、Always Encrypted Secure Enclaves のドキュメントを見直していて必須でないことに気づきました。

Always Encrypted Secure Enclaves のドキュメント

Always Encrypted Secure Enclaves については次のドキュメントが起点となるかと思います。

最新のドキュメントでは、次の記載が追加されています。

image

Box の SQL Server を使用した場合、サポートされている構成証明プロトコルでは、HGS だけでなく、「構成証明無し」(SQL Database の VBS Enclaves で使用される構成証明プロトコルと同一) が記載されています。

日本語版のドキュメントでいつ追加されたかは確認ができなかったのですが、原文では 2023/1/6 の 6ce1a86 のコミットから追加が行われたようです。

更新が行われるまでは、次の記載となっていたようですが、更新が行われたタイミングで現在の表形式の記載に変更が行われたようです。

  • VBS enclaves in require Windows Defender System Guard runtime attestation using Host Guardian Service (HGS) as an attestation service. For more information, see Plan for Host Guardian Service attestation.

 

このドキュメント更新に合わせ、次のドキュメントも合わせて公開 / 更新が行われています。

  1. 構成証明なしでSQL Serverでセキュリティで保護されたエンクレーブを使用してAlways Encryptedを計画する
  2. SQL Server でセキュリティで保護されたエンクレーブを構成する

「1.」のドキュメントは、構成証明書なし (HGS を使用しない) で構成する場合の手順が新規に公開されています。

このドキュメントの手順で作業を実施することで、HGS を構成しなくても、Always Encrypted Secure Enclaves の検証を行うことが可能となります。実際に、2022 CU1 で試したところ HGS なしで動作させることができました。

 

「2.」のドキュメントについては、以前は次の記載になっていました。

The supported enclave type for or later is virtualization based security (VBS). If you require attestation, we recommend you set up attestation with Host Guardian Service (HGS) for the computer hosting your instance before configuring the VBS enclave type. To get started with HGS, see Plan for Host Guardian Service attestation.

以前のドキュメントを改めて読むと、HGS の設定について触れられているのですが、必須ではなく省略することができるという文面が記載されていたんですね。
Secure Enclaves を動作させている環境の証明について行う場合に HGS が必要となり、証明しなくてもよい (セキュリティレベルは落ちる) のであれば、HGS を構成しなくても機能を使用することはできたんですね。

 

構成証明の必要性について

現時点での Always Encrypted Secure Enclaves は実行環境に応じて、構成証明に必要性が変わってきます。

  • SQL Server
    • VBS エンクレーブのみが可能
    • 構成証明にHGS を使用する、または、構成証明を使用しない構成が可能
  • SQL Database :
    • DC シリーズを使用した場合
      • SGX エンクレーブが使用可能
        • VBS エンクレーブも使用可能だと考えられるが、SGX が使用できる状態では使用する必要なさそう
      • 構成証明に Azure Attestation を使用する
    • それ以外のシリーズ
      • VBS エンクレーブのみが使用可能
      • 構成証明を使用しない構成のみ利用可能

構成証明の必要性については、次のドキュメントの内容を把握する必要があります。

エンクレーブ構成証明を使用すると、クライアント アプリケーションは、機密データの処理にエンクレーブを使用する前に、アプリケーションが接続されているデータベースのセキュリティで保護されたエンクレーブとの信頼を確立できます。

単純に暗号化機能を使用するだけでなく、機密データを処理する前にアプリケーションとデータベースの信頼性を確立するためにエンクレーブ構成証明 (エンクレーブ自身の正当性を証明することによる改ざんの防止) を確認することで、より厳格な暗号化通信を行うことができるのが構成証明の必要性のポイントになるのではないでしょうか。

シンプルな暗号化機能として使用するか、厳密なセキュリティを持つ (ホスト OS 管理者からの分離) 暗号化機能として利用するかによって、構成証明の利用性は変わってくるのではないかと思っています。

  • Always Encrypted の暗号化機能のシンプルな強化として使用する
  • Always Encrypted Secure Enclaves によってどのような暗号化が可能となるかの概念検証 (PoC)

であれば、HGS を使用しない構成をとることもできるのでは考えています。

Bing と ChatGPT で必須かの確認をした際の内容も、構成証明の利用を検討するうえでは参考になる回答となっているようにも思えました。

画像

 

まとめ

今回の機会で、今まで Always Encrypted Secure Enclaves は、どのような構成でも HGS が必要となると思っていたのですが、それは誤りであったことを把握することができました。

2023/1 がドキュメントの変化点になり、その前後で HGS を構成しない記載がかなり増えていますので、この時期のドキュメントを確認することで記載の変遷をたどることができそうです。

セキュアな本番環境を構築する場合には、構成証明プロトコルを有効にすることは重要だと思いますが、Always Encrypted Secure Enclaves という暗号化機能にフォーカスを当てた検証であれば、HGS を構築しなくても容易に検証ができるということが分かったのは個人的には大きな収穫ですね。

Share

Written by Masayuki.Ozawa

2月 19th, 2023 at 5:45 pm

Leave a Reply