1. 程式人生 > >LSA Authentication Packages -- LSA 驗證包

LSA Authentication Packages -- LSA 驗證包

Authentication Packages  -- 翻譯自MSDN

  驗證包被包含在DLL中。LSA使用儲存在登錄檔中的配置資訊載入驗證包。載入多個驗證包允許LSA支援多個登入程序和多個安全協議(security protocols)。   登入程序使用驗證包來分析登入資料。新的登入程序通過新增一個GINA的方式被新增到系統中用來收集所需的登入資料,並且如果需要的話,通過新增一個新的驗證包的方式來分析資料。   安全協議由驗證包實現。一個驗證包通過下列安全協議中宣告的規則和過程來分析登入資料。   驗證包負責下列的任務:   分析登入資料,決定是否允許一個security principal 登入到系統中。   為成功登陸的princiapl建立一個新的登入會話(logon session )並且建立一個唯一的登入識別符號(logon identifier)   將安全資訊傳遞到LSA供principal的安全令牌使用。 當一個使用者嘗試互動式登入,LSA就會呼叫一個驗證包來決定是否允許使用者登入。例如,MSV1_0是一個隨作業系統安裝的驗證包。MSV1_0接受一個使用者名稱和經過HASH處理的密碼(hashed password)。它在安全帳號管理器(Security Accounts Manager (SAM))資料庫中查詢使用者名稱和hashed密碼的組合,如果登入資料與儲存的證書相匹配,驗證包就會允許登入成功。   Windows Me/98/95: MSV1_0 沒有隨作業系統安裝。   成功驗證一個secruity principal的證書之後,驗證包就會負責為principal建立一個新的登入會話,並且分配一個登入識別符號來唯一標明登入會話。驗證包可能會為後繼的驗證請求將證書資訊和登入會話關聯起來。例如,MSV1_0驗證包(由微軟提供)就將使用者帳戶名和hashed密碼與每一個登入會話關聯起來。   驗證包也提供一個安全識別符號(security identifiers (SIDs))的集合和其他的資訊,這些資訊適用於由LSA建立的安全令牌所包含的內容。這個令牌將會作為用於訪問WINDOWS操作的principal的安全上下文(context)。   在登入會話建立完畢並且關聯到principal之後,隨後principal的驗證請求的處理不同於最初的登入。驗證包不會再為建立一個令牌而建立一個新的登入會話和返回資訊。然後,驗證包能夠將在隨後的驗證中得到的補充證書(supplemental credentials )與principal現存的登入會話關聯起來。當訪問一個資源所需的資訊超過了在初始登入階段所建立的證書時,就會得到一個補充證書。例如,當一個已登入的使用者請求一個novell網路連線,一個novell所指明的驗證包就會被呼叫並且novell所指明的證書就會被驗證並且會被關聯到登入會話。這些證書會在使用者訪問novell網路時被novell重定向器所參考(通過novell驗證包所提供的方法)。   Windows Authentication Packages Windows驗證包通過實現驗證包所指明的功能來實現驗證服務,這些功能供LSA提供的LsaLogonUser和LsaCallAuthenticationPackage函式所使用。   MSV1_0是一個Windows驗證包的例子。MSV1_0接受使用者名稱和hashed密碼,它會查詢SAM資料庫。根據查詢結果,MSV1_0驗證包接受或拒絕驗證請求。   Security Support Provider/Authentication Packages Windows支援使用安全包,安全包可以具有SPI和驗證包的功能. 安全包提供WINDOWS驗證包的登入過程支援服務,也通過實現一組對映到安全支援提供器介面(SSPI)的函式來提供驗證應用程式的服務。 一個即具有驗證包的功能,也實現了SSPI所需的函式的安全包被稱作 security support provider/authentication package (SSP/AP).   Authentication Packages Provided by Microsoft 下列是由微軟所提供的驗證包: Kerberos SSP/AP