BITS 安全性、令牌和 管理員 istrator 帳戶

HTTP 伺服器證書回呼

正確驗證伺服器憑證是維護 HTTPS 安全性的關鍵部分。 BITS 可針對 SetSecurityFlags指定的需求清單,一律驗證伺服器憑證。 根據預設,BITS 會使用「瀏覽器」樣式憑證驗證。

您也可以指定要呼叫的自定義函式,以便進一步驗證憑證。 使用 SetServerCertificateValidationInterface 方法設定伺服器證書回呼。 只有在操作系統根據 SetSecurityFlag呼叫 驗證憑證之後,才會呼叫您的方法。

HTTP 用戶端憑證

您可以使用兩種不同的憑證設定方法,在 HTTP 作業上設定客戶端憑證。 您可以依標識碼或憑證主體名稱來設定憑證。 如果伺服器需要客戶端驗證,用戶端憑證將會在 TLS 交涉期間使用(或重新談判)。

僅限寫入 HTTP 標頭

BITS 可協助您保護 HTTP 驗證令牌免於不必要的存取。 HTTP 伺服器在下載或上傳檔案至 HTTP 伺服器時,通常需要某種安全性令牌或字串。

BITS 會以數種方式保護這些驗證令牌。

  • BITS 可讓您藉由指定 HTTPS URL,使用受 TLS 和 SSL 保護的 HTTP 連線。
  • 自定義標頭一律會以加密格式保存在磁碟上。
  • 您可以使用 IBackgroundCopyJobHttpOptions3::MakeCustomHeadersWriteOnly 方法,防止客戶標頭傳回其他程式

標準和 管理員 istrator 使用者

身在系統管理員群組中的使用者可以以標準使用者存取或提升許可權的狀態執行進程(具有系統管理員許可權)。 只要使用者登入計算機,BITS 就會以任一狀態執行作業。 不過,如果使用者建立作業或以提升許可權狀態取得作業的擁有權,則使用者必須處於提升許可權狀態才能擷取或修改作業(否則,呼叫會失敗並拒絕存取(0x80070005)。 若要判斷作業的提升狀態,請呼叫 IBackgroundCopyJob4::GetOwnerElevationState 方法。

標準用戶無法列舉或修改其他使用者所擁有的作業。

完整性層級

除了提高狀態之外,令牌的完整性層級還可以判斷使用者是否可以修改作業。 客戶端無法修改由具有較高完整性層級的令牌所建立的作業。 特別是,許多本機系統令牌的完整性層級高於提升許可權視窗的完整性層級,因此系統管理員無法從一般提升許可權的命令視窗進行修改。 例如,Windows Update 和 SMS 作業會以 LocalSystem 的形式執行,其完整性層級高於提高許可權的令牌,讓系統管理員無法修改或刪除這些作業。 若要修改這些作業,請建立以本機系統身分執行的工作排程器工作。 工作可以執行使用 BITS API 的控制台應用程式,或工作可以執行呼叫 Bits 的腳本 管理員.exe。 若要判斷所使用的完整性層級,請呼叫 IBackgroundCopyJob4::GetOwnerIntegrityLevel 方法。

服務身分識別

從 Windows 10 2019 年 5 月更新 開始 (10.0;組建 18362),從服務啟動的 BITS 作業將會維護服務身分識別。 這可讓想要使用 BITS 的服務,從系結至服務 SID 的目錄下載檔案或上傳檔案。 此外,網路流量會正確歸因於要求BITS作業的服務,而不是歸因於BITS。