日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

構建TDX機密計算環境

本文介紹如何在基于Intel? Trusted Domain Extension(Intel? TDX)技術的ECS實例(下文簡稱為TDX實例)中構建TDX機密計算環境,并演示如何運行實例代碼以驗證TDX功能。

背景信息

Intel? TDX是一項基于CPU硬件的云服務器ECS保護技術,TDX實例的CPU寄存器、內存數據、中斷處理等均受到CPU硬件的機密保護,云廠商和外部攻擊者均無法監控或篡改TDX實例的內部運行狀態(如運行的進程、計算中的敏感數據等)。關于Intel? TDX技術的更多信息,請參見Intel? Trusted Domain Extension(Intel? TDX)

Intel? TDX可以為您的實例和應用提供默認的安全保護,即您可以將現有應用直接遷移至TDX實例上并獲得TDX能力帶來的安全保護,而無需重新開發現有的應用程序。

image

創建TDX實例

通過控制臺創建

在控制臺創建具備TDX特性的實例步驟與創建普通實例類似,但需要注意一些特定選項。本步驟重點介紹TDX實例相關的特定配置,如果您想了解其他通用配置,請參見自定義購買實例

  1. 登錄ECS管理控制臺

  2. 在左側導航欄,選擇實例與鏡像 > 實例

  3. 在頁面左側頂部,選擇目標資源所在的資源組和地域。地域

  4. 單擊創建實例,按照以下配置創建對應實例。

    配置項

    說明

    地域與可用區

    當前僅支持華北2(北京)可用區I

    實例規格

    當前僅支持ecs.g8i.xlarge及以上實例規格

    鏡像

    選擇Alibaba Cloud Linux 3.2104 LTS 64位 UEFI 版鏡像,并選中機密虛擬機復選框。

    image

  5. 根據界面提示,完成創建實例。

通過OpenAPI或阿里云CLI創建

您可以調用RunInstances或阿里云CLI創建支持TDX安全特性的ECS實例,需要注意的參數如下表所示。

參數

說明

示例

RegionId

華北2(北京)

cn-beijing

ZoneId

可用區I

cn-beijing-i

InstanceType

選擇ecs.g8i.xlarge及以上實例規格

ecs.g8i.2xlarge

ImageId

指定支持TDX的鏡像ID,當前僅內核版本大于等于5.10.134-16.al8.x86_64的Alibaba Cloud Linux 3.2104 LTS 64位 UEFI 版鏡像支持。

aliyun_3_9_x64_20G_uefi_alibase_20231219.vhd

SecurityOptions.ConfidentialComputingMode

配置機密計算模式。

TDX

CLI示例

aliyun ecs RunInstances \
  --SecurityOptions.ConfidentialComputingMode TDX \
  --Region cn-beijing \
  --ZoneId cn-beijing-i \
  --SystemDisk.Category cloud_essd \
  --ImageId 'aliyun_3_9_x64_20G_uefi_alibase_20231219.vhd' \
  --InstanceType 'ecs.g8i.2xlarge' \
  --SecurityGroupId 'sg-[SecurityGroupId]' \
  --VSwitchId 'vsw-[VSwitchID]' \
  --KeyPairName [KEY_PAIR_NAME] \
  

操作步驟

步驟一:檢查TDX使能狀態

在使用TDX機密計算環境前,建議您先檢查對應實例的TDX使能狀態,以確保對應實例處于安全保護中。

  1. 檢查TDX使能狀態。

    lscpu |grep -i tdx_guest

    下圖所示表示TDX已經被正確使能。tdx-install

  2. 檢查TDX相關驅動安裝情況。

    ls -l /dev/tdx_guest

    下圖所示表示已經安裝TDX相關驅動。image

步驟二:構建TDX機密計算環境

說明

正常情況下,運行于非TDX環境下的程序可直接遷移至TDX實例中,而無需額外開發,且您可以像使用普通實例一樣使用TDX實例。阿里云建議您利用下文所述的相關功能,以充分利用TDX所提供的額外安全能力,并更好地保護實例的安全。

TDX Report是由CPU硬件直接生成的代表了TDX實例身份的數據結構,其包含了TDX實例的屬性(ATTRIBUTES)動態度量值(RTMR)TCB SVN等關鍵信息,并以密碼學方法保護其完整性。更多信息,請參見Intel TDX Module

  1. 導入阿里云機密計算yum軟件源。

    • 公網地址格式:https://enclave-[Region-ID].oss-[Region-ID].aliyuncs.com/repo/alinux/enclave-expr.repo

    • VPC內網地址格式:https://enclave-[Region-ID].oss-[Region-ID]-internal.aliyuncs.com/repo/alinux/enclave-expr.repo

      請將上述地址中的[Region-ID]替換為TDX實例所在地域的ID。當前僅支持在華北2(北京)地域創建TDX實例,華北2(北京)地域中的VPC內網導入示例:

      region="cn-beijing"
      
      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://enclave-${region}.oss-${region}-internal.aliyuncs.com/repo/alinux/enclave-expr.repo
  2. 安裝編譯工具及相關示例代碼。

    sudo yum groupinstall -y "Development Tools"
    sudo yum install -y sgxsdk libtdx-attest-devel
  3. 編譯示例代碼TDXReportParse。

    1. 進入TDXReportParse目錄。

      cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/TDXReportParse
    2. 編譯TDXReportParse。

      sudo make
  4. 運行編譯出的可執行文件。

    sudo ./tdx_report_parse

    執行的樣例結果如下,attributes中的NO_DEBUG表示當前的TDX實例處于非調試狀態,即處于安全的受保護模式。image

驗證TDX遠程證明

在阿里云TDX加密環境中,遠程證明可以用于驗證平臺的可信度和在該平臺中運行的代碼的完整性和機密性。更多遠程證明服務說明,請參見遠程證明服務

  • 平臺指阿里云所使用的硬件平臺及其虛擬化軟件棧。

  • 平臺中運行的代碼指運行在TDX環境中的操作系統(如Alibaba Cloud Linux)和應用(如Nginx、Java等)。

  1. 安裝TDX遠程證明所需依賴的包。

    sudo yum install -y gcc gcc-c++ make openssl-devel git jq
    sudo yum install -y tdx-quote-generation-sample tee-appraisal-tool libsgx-dcap-ql-devel libsgx-dcap-quote-verify-devel libsgx-dcap-default-qpl-devel tdx-quote-verification-sample
  2. 配置阿里云TDX遠程證明服務。

    配置/etc/sgx_default_qcnl.conf文件中的PCCS_URL,當前僅支持將PCCS_URL指向阿里云華北2(北京)的DCAP服務。

    sudo sed -i.$(date "+%m%d%y") 's|PCCS_URL=.*|PCCS_URL=https://sgx-dcap-server.cn-beijing.aliyuncs.com/sgx/certification/v4/|' /etc/sgx_default_qcnl.conf
  3. 進入tdx-quote-generation-sample目錄并編譯tdx-quote-generation-sample。

    cd /opt/alibaba/tdx-quote-generation-sample
    sudo make
  4. 生成遠程證明報告(Quote)。

    • 隨機生成report_data并簽發Quote。

      sudo ./app
    • 指定report_data并簽發Quote。

      sudo ./app -d <report_data_in_hex>
        說明
        • <report_data_in_hex>是一個16進制字符串,長度為64字節。

        • 您可以在report_data_in_hex中指定自定義數據,該數據將被包含在生成的Quote中。

        • report_data_in_hex因其長度有限,在實踐中通常是一個哈希值。例如,它是一個公鑰的哈希,并可以用于后續的密鑰協商流程。

        例如:

        sudo ./app -d 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
        sudo ./app -d $(cat data.dat | xxd -p)

    回顯類似如下所示時,表示遠程證明報告(Quote)已生成。

    image

  5. 驗證遠程證明報告(Quote)。

    1. 配置評估策略(Appraisal Policy)并簽名。

      重要

      建議您在已知的安全環境下進行,而非在生產環境中按需生成。

      您可以使用JSON格式描述您所需要的安全評估策略。

      • 例如您可以配置以下安全策略以驗證您的TDX ECS是否運行在加密且不可調試的狀態,即安全的受保護模式。

      • 您還可以在策略中配置額外參數以實現操作系統和應用的完整性校驗。關于該評估策略(Appraisal Policy)的詳細說明,請參考Intel DCAP Appraisal Engine Developer Guide

        {
            "policy_array":[
                {
                    "environment":{
                        "class_id":"45b734fc-aa4e-4c3d-ad28-e43d08880e68",
                        "description":"Application TD TCB 1.5"
                    },
                    "reference":{
                        "tdx_attributes":"0000000010000000",
                        "#NOTE": "0000000010000000 means for NO_DEBUG and SPTE_VE_DISABLE"
                    }
                }
            ]
        }

      您可以使用默認策略(位于/opt/alibaba/tdx-quote-verification-sample/Policies/tenant_td_policy.json)或編寫您的自定義策略,用于后續校驗的策略令牌(Policy Token),該策略令牌可以被傳輸至任何需要驗證遠程證明報告的環境中以進行后續的校驗流程。

      cd /opt/alibaba/tdx-quote-verification-sample
      sudo make Policies/tenant_td_policy.jwt

      回顯類似如下所示時,表示已生成策略令牌(Policy Token)。

      image

    2. 編譯TDX遠程證明所依賴的其他組件。

      cd /opt/alibaba/tdx-quote-verification-sample
      sudo make all

      回顯類似如下所示時,所依賴的組件已編譯完成

      image

    3. 驗證遠程證明報告(Quote)。

      重要

      以下命令中的<path_to_quote>請替換成實際Quote目錄,如本文示例中的/opt/alibaba/tdx-quote-generation-sample/quote.dat

      • 基于Policies/tenant_td_policy.json中的策略,驗證遠程證明生成的quote,并將對應的驗證結果以JSON Web Token (JWT)的形式輸出到標準輸出。

        ./verifier -quote <path_to_quote>

        回顯類似如下所示。

        image

      • 使用RelyingParty,進一步驗證JWT簽名的有效性。

        ./verifier -quote <path_to_quote> |./relying_party -v |grep "json payload" |awk -F 'payload:' '{print $2}'|jq 
        說明
        • 為簡單起見,您可以檢查appraisal_result中的overall_appraisal_result字段以確認認證者是否滿足您預先設置的評估策略(Appraisal Policy)。

          ./verifier -quote <path_to_quote> |./relying_party -v |grep "json payload" |awk -F 'payload:' '{print $2}'|jq '.[0].result.overall_appraisal_result'
        • 此外,在生成quote時所指定的report_data也會體現在遠程證明的驗證結果(tdx_reportdata字段)中,您可以使用該值進行密鑰交換等業務邏輯的實現。

          ./verifier -quote <path_to_quote> |./relying_party -v -a|grep "json payload" |awk -F 'payload:' '{print $2}'|jq '.. | .tdx_reportdata? | select(. != null)'

        回顯類似如下所示(部分字段被省略)。

        [
          {
            "result": {
              "appraisal_check_date": 1710400829000000000,
              "nonce": 502551065253582,
              "certification_data": [
                {
                  "certification_data": {
                    "qe_identity_issuer_chain": "LS0t...",
                    "root_ca_crl": "MzA4...",
                    "pck_crl": "LS0t...",
                    "pck_crl_issuer_chain": "LS0t...",
                    "tcb_info": "eyJ0...",
                    "qe_identity": "eyJl...",
                    "tcb_info_issuer_chain": "LS0t..."
                  }
                }
              ],
              "overall_appraisal_result": 1,
              "appraised_reports": [
                {
                  "appraisal_result": 1,
                  "detailed_result": [
                    {
                      "td_mrownerconfig_check": true,
                      "td_xfam_check": true,
                      "td_mrservicetd_check": true,
                      "td_attributes_check": true,
                      "td_rtmr3_check": true,
                      "td_mrtd_check": true,
                      "td_mrowner_check": true,
                      "td_rtmr0_check": true,
                      "td_mrconfigid_check": true,
                      "td_rtmr1_check": true,
                      "td_rtmr2_check": true
                    }
                  ],
                  "policy": {
                    "environment": {
                      "description": "Application TD TCB 1.5",
                      "class_id": "45b734fc-aa4e-4c3d-ad28-e43d08880e68"
                    },
                    "signature": "-6C0-...",
                    "reference": {
                      ...
                    },
                    "signing_key": {
                      "kty": "EC",
                      "crv": "P-384",
                      "alg": "ES384",
                      "y": "CeW8...",
                      "x": "NmSa..."
                    }
                  },
                  "report": {
                    "environment": {
                      "Description": "Application TD TCB",
                      "class_id": "45b734fc-aa4e-4c3d-ad28-e43d08880e68"
                    },
                    "measurement": {
                      "tdx_mrownerconfig": "0000...",
                      "tdx_mrservicetd": "3D03...",
                      "tdx_xfam": "00000000000642E7",
                      "tdx_mrtd": "0A40...",
                      "tdx_mrowner": "0000...",
                      "tdx_attributes": "0000000010000000",
                      "tdx_mrconfigid": "0000...",
                      "tdx_reportdata": "D98B...",
                      "tdx_rtmr3": "0000...",
                      "tdx_rtmr2": "0000...",
                      "tdx_rtmr1": "6368...",
                      "tdx_rtmr0": "D0FD..."
                    }
                  }
                },
                {
                  "appraisal_result": 1,
                  "detailed_result": [
                    {
                      "platform_provider_id_check": true,
                      "sgx_types_check": true,
                      "cached_keys_check": true,
                      "smt_enabled_check": true,
                      "accepted_tcb_level_date_tag_check": true,
                      "advisory_ids_check": true,
                      "expiration_date_check": true,
                      "tcb_eval_num_check": true,
                      "earliest_accepted_tcb_level_date_tag_check": true,
                      "tcb_status_check": true,
                      "dynamic_platform_check": true
                    }
                  ],
                  "policy": {
                    "environment": {
                      "description": "Alibaba Cloud Evaluation Num Policy for TDX Platform",
                      "class_id": "f708b97f-0fb2-4e6b-8b03-8a5bcd1221d3"
                    },
                    "signature": "l00p...",
                    "reference": {
                      "accepted_tcb_status": [
                        "UpToDate"
                      ],
                      "allow_dynamic_plaform": true,
                      "min_eval_num": 16
                    },
                    "signing_key": {
                      "kty": "EC",
                      "crv": "P-384",
                      "alg": "ES384",
                      "y": "7hlr...",
                      "x": "OSbD..."
                    }
                  },
                  "report": {
                    "environment": {
                      "description": "TDX Platform TCB",
                      "class_id": "f708b97f-0fb2-4e6b-8b03-8a5bcd1221d3"
                    },
                    "measurement": {
                      "earliest_issue_date": "2018-05-21T10:45:10Z",
                      "is_cached_keys_policy": true,
                      "fmspc": "90C06F000000",
                      "is_smt_enabled": true,
                      "earliest_expiration_date": "2024-04-02T10:22:51Z",
                      "root_ca_crl_num": 1,
                      "root_key_id": "9309...",
                      "pck_crl_num": 1,
                      "tcb_eval_num": 16,
                      "latest_issue_date": "2024-03-13T15:45:02Z",
                      "tcb_status": [
                        "UpToDate"
                      ],
                      "tcb_level_date_tag": "2023-08-09T00:00:00Z",
                      "is_dynamic_platform": true,
                      "sgx_types": 1
                    }
                  }
                },
                {
                  "appraisal_result": 1,
                  "detailed_result": [
                    {
                      "td_qe_expiration_date_check": true,
                      "td_qe_tcb_eval_num_check": true,
                      "td_qe_earliest_accepted_tcb_level_date_tag_check": true,
                      "td_qe_tcb_status_check": true,
                      "td_qe_accepted_tcb_level_date_tag_check": true
                    }
                  ],
                  "policy": {
                    "environment": {
                      "description": "Alibaba Cloud Num Policy for Verified TDQE",
                      "class_id": "3769258c-75e6-4bc7-8d72-d2b0e224cad2"
                    },
                    "signature": "l00p...",
                    "reference": {
                      "accepted_tcb_status": [
                        "UpToDate"
                      ],
                      "min_eval_num": 16
                    },
                    "signing_key": {
                      "kty": "EC",
                      "crv": "P-384",
                      "alg": "ES384",
                      "y": "7hlr...",
                      "x": "OSbD..."
                    }
                  },
                  "report": {
                    "environment": {
                      "Description": "RAW TDX QE Report",
                      "class_id": "3769258c-75e6-4bc7-8d72-d2b0e224cad2"
                    },
                    "measurement": {
                      "earliest_expiration_date": "2025-05-21T10:50:10Z",
                      "earliest_issue_date": "2018-05-21T10:45:10Z",
                      "root_key_id": "9309...",
                      "tcb_eval_num": 16,
                      "latest_issue_date": "2018-05-21T10:50:10Z",
                      "tcb_status": [
                        "UpToDate"
                      ],
                      "tcb_level_date_tag": "2023-08-09T00:00:00Z"
                    }
                  }
                }
              ]
            }
          }
        ]

已知功能限制

  • 開啟TDX特性的ECS的CPU寄存器和內存中的數據會通過CPU硬件進行加密保護,因此其性能相較普通ECS實例存在一定損失。

  • 受限于TDX動態度量值(RTMR)重置/中斷保護/寄存器狀態恢復等設計,開啟了TDX特性的ECS實例不支持內部重啟(即在操作系統內部不支持執行reboot命令)。

  • 暫不支持VNC登錄實例,但不影響SSH方式登錄,例如可以通過Workbench或第三方客戶端登錄。如需獲取實例運行時所打印的日志,請參見查看實例的系統日志和屏幕截圖GetInstanceConsoleOutput - 獲取實例系統命令行輸出

  • 鏡像限制:

    • 僅支持UEFI鏡像。

    • 暫不支持Windows。

    • 不支持內核版本過老的鏡像,內核版本需大于等于5.10.134-16.al8.x86_64。

  • 暫不支持eRDMA和各類加速器等。

  • Linux guest kernel SWIOTLB buffer已知問題:

    • 可見內存較常規實例較小,開啟了TDX特性的ECS實例內部將使用特定的非加密內存(SWIOTLB)用于外設通信,該內存區域的大小默認情況下為ECS實例可用內存的6%(但不大于1 GiB)。

    • 大規格插入多張ENI彈性網卡可能導致ECS實例崩潰,原因為網卡多隊列情況下SWIOTLB內存可能不足導致內存分配失敗,您可以在控制臺將對應ECS實例關機并卸載對應彈性網卡以從啟動失敗中恢復。

    • 如果您的實例負載涉及大量的IO通信,則可能遭遇由SWIOTLB不足導致的性能下降。您可以使用以下命令檢查此問題是否存在:

      dmesg| grep 'swiotlb buffer is full'
      重要

      錯誤配置SWIOTLB參數可能導致您的實例啟動失敗,建議您在操作前創建磁盤快照以方便在任何錯誤情況下可以安全回滾。具體操作,請參見創建快照

      如您確認該問題存在,您可以嘗試調大SWIOTLB大小以改善ECS的性能,具體操作如下:

      1. 打開/etc/default/grub文件。

        vim /etc/default/grub
      2. 在GRUB_CMDLINE_LINUX字段后加入"SWIOTLB"相關參數。

        例如將GRUB_CMDLINE_LINUX修改為GRUB_CMDLINE_LINUX=".... swiotlb=524288"以將SWIOTLB的大小修改為1 GiB。

        說明

        SWIOTLB參數取值的計算方法為:目標大小(以MiB為單位)* 512。更多信息,請參見The kernel's command-line parameters

      3. 更新grub.cfg配置文件使上述修改生效。

        grub2-mkconfig -o /boot/efi/EFI/alinux/grub.cfg