軟體限制原則
軟體限制原則 (SRP) 設定是在 Windows XP 版本引進的,可協助保護系統免於未知且可能危險的程式碼。 SRP 提供一種機制,其中只有信任的程式代碼可以不受限制地存取用戶的許可權。 未知的程式代碼可能包含與目前已安裝之程式衝突的病毒或程序代碼,只能在受限制的環境中執行(通常稱為 沙箱),不允許其存取任何安全性敏感性用戶許可權。 正確使用 SRP 可讓企業更靈活,因為它提供主動式架構來防止問題,而不是依賴在發生問題之後還原系統的成本高昂替代方案的回應式架構。
SRP 取決於將信任層級指派給可在系統上執行的程式代碼。 目前存在兩個信任層級:不受限制和不允許。 具有不受限制信任等級的程式代碼會獲得不受限制的使用者許可權存取權,因此此信任層級應該只套用至完全信任的程序代碼。 不允許具有不允許信任等級的程式代碼無法存取任何安全性敏感性的用戶許可權,而且只能在沙盒中執行,讓不受限制的程式碼無法將不允許的程式碼載入其位址空間。
個別 COM 應用程式的 SRP 組態是透過登錄中應用程式 AppID 機碼中的 SRPTrustLevel 值來完成。 如果未為 COM 應用程式指定 SRP 信任等級,則會使用不允許的預設值。 具有不受限制信任等級的 COM 應用程式具有不受限制的使用者許可權存取權,但只能載入具有不受限制信任等級的元件,而不允許的 COM 應用程式可以載入具有任何信任層級但無法存取任何安全性敏感性使用者許可權的元件。
除了個別 COM 應用程式的 SRP 信任層級之外,另外兩個 SRP 屬性會決定 SRP 如何用於所有 COM 應用程式。 如果 已啟用 SRPRunningObjectChecks,將會檢查嘗試連線到執行中的物件是否有適當的 SRP 信任層級。 執行中的物件不能有比客戶端物件更嚴格的SRP信任等級。 例如,如果客戶端物件具有不受限制的信任等級,則執行中的物件不能有不允許的信任等級。
第二個屬性會決定 SRP 如何處理啟動即啟動器連線。 如果 已啟用 SRPActivateAsActivatorChecks,則針對伺服器物件設定的 SRP 信任層級會與客戶端物件的 SRP 信任層級進行比較,而且會使用更嚴格的信任層級來執行伺服器物件。 如果未啟用 SRPActivateAsActivatorChecks,則不論其設定的 SRP 信任層級為何,伺服器對象都會以客戶端物件的 SRP 信任層級執行。 根據預設,會啟用 SRPRunningObjectChecks 和 SRPActivateAsActivatorChecks。