1 / 49

新一代身份驗證機制 - Windows Card Space

新一代身份驗證機制 - Windows Card Space. 曹祖聖 台灣微軟資深講師 jimycao@syset.com http://teacher.allok.com.tw MCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP. 大綱. Web 應用程式身份驗證所面臨的問題 過去的身份驗證機制 什麼是 CardSpace ? CardSpace 的運作機制 各種應用方式 登入頁面的改變. 大綱. Web 應用程式身份驗證所面臨的問題 過去的身份驗證機制 什麼是 CardSpace ?

blade
Download Presentation

新一代身份驗證機制 - Windows Card Space

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 新一代身份驗證機制- Windows Card Space 曹祖聖 台灣微軟資深講師 jimycao@syset.com http://teacher.allok.com.tw MCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP

  2. 大綱 • Web 應用程式身份驗證所面臨的問題 • 過去的身份驗證機制 • 什麼是 CardSpace ? • CardSpace 的運作機制 • 各種應用方式 • 登入頁面的改變

  3. 大綱 • Web 應用程式身份驗證所面臨的問題 • 過去的身份驗證機制 • 什麼是 CardSpace ? • CardSpace 的運作機制 • 各種應用方式 • 登入頁面的改變

  4. 身份識別上面臨的問題 • Internet 太危險了 ! • 小偷、身份偽造、釣魚網站 … • username + password 的保護太弱 • 企業面臨管理大量身份識別資料的問題 25% 不瀏覽 22% 不購買 www.antiphishing.org

  5. 我們需要什麼 ? • 任何人在任何地點都可以使用 • 讓使用者可以 100% 控管自己的身份資料  移除系統之間身份識別障礙 簡單、一致、安全的身份識別系統

  6. 大綱 • Web 應用程式身份驗證所面臨的問題 • 過去的身份驗證機制 • 什麼是 CardSpace ? • CardSpace 的運作機制 • 各種應用方式 • 登入頁面的改變

  7. IIS 7.0 存取控制 • 檢查來源 IP • 檢查使用者 • 檢查伺服器存取權限 • 檢查共用權限 (如果是 UNC 路徑) • 檢查 NTFS 權限

  8. 身份驗證介紹 IIS 中的身份驗證 要求進入 IIS IIS 將要求轉送到匿名 provider: IIS 建立路徑(w3svc/1/root) 並且檢查匿名證是否有啓用 是: 提供路徑與Anon.users token 給authorization manager 否: IIS 將路徑交給其它每一個 provider,檢查該路徑是否啓用該 provider 提供的驗證 每一個有啓用的 provider 檢查查使用者身份 之後,會回傳適當的表頭給 IIS Server Core 匿名 基本 Kerberos NTLM 摘要

  9. IIS 7.0 身份驗證流程 Request received by IIS Authentication Providers IIS Server Core Anonymous Basic Kerberos NTLM Digest Passport

  10. 匿名驗證流程 Client IIS 伺服器 Web 瀏覽器 default.htm

  11. 匿名驗證帳號 匿名帳號: IUSR_[電腦名稱] IIS 安裝時建立,並加入 Guests 系統群組 請注意套用到 Guests 的自訂原則 預設狀況下,IUSR 帳號被授予所有資料夾的讀取權限 IUSR 帳號也使用在 FTP 伺服器的匿名驗證上 IIS Sub-authentication 避免密碼同步的問題

  12. 基本驗證流程 401 Error IIS 伺服器 Base64 編碼的使用者名稱和密碼 Web 瀏覽器 default.htm

  13. 基本驗證 使用 Base64 編碼來傳送密碼 優點 RFC 相容(RFC 2617) 支援透過 Web Proxy 瀏覽器支援廣泛 如果配合 SSL,是很好的驗證方式 缺點 使用者需要輸入 Windows 帳號 密碼直接傳送,如果沒有 SSL 配合,非常不安全

  14. 整合式 Windows 驗證 要求 Negotiate 接下來再試 首先試試 NTLM Kerberos 也可以只用 NTLM,但不能只用 Kerberos 兩者都不支援 Web Proxy

  15. 整合式 Windows 驗證 MetaBase 屬性: AuthNTLM 如果同時啓用基本驗證和 整合式 Windows 驗證,Internet Explorer 會使用 整合式 Windows 驗證 NTAuthenticationProviders 屬性: Negotiate,NTLM NTLM NTAuthenticationProviders 沒有任何管理介面,必須使用 adsutil.vbs 工具或 Metabase Explorer 來修改

  16. NTLM 的行為 連線導向 每個要求永遠使用相同連線 必須啓動 HTTP Keep-Alives 功能 驗證對話方塊 NTLM, 預設不會顯示 如果原本要求傳回 401.1 錯誤,則會顯示對話方塊 NTLM 如何使用 Domain \ Username \ Password Domain 和Username 永遠會在 client 與 server 之間分享 Password 則不會,會使用密碼的雜湊碼 驗證標頭中會包含: Domain \ Username \ HashedPassword

  17. NTLM 的安全性 駭客無法透過封包擷取,來得知密碼的雜湊演算法 如果連線斷掉、被修改 (透過 Web Proxy),那麼 NTLM 就會失敗 NTLM 版本 Lan Manager – Windows 95 NTLM v1 – NT 4.0 NTLM v2 – Windows 2000 / 2003

  18. NTLM 的驗證過程 Get /Default.HTM Get /Default.HTM w/ AuthNTLM Client Get /Default.HTM w/ AuthNTLM Hashed IIS Server 401 – Access Denied Client 401 – WWW Auth: NTLM 200 - OK IIS Server

  19. Kerberos 為什麼要另外建立出一個驗證協定 NTLM 的限制 NTLM Tokens 無法被委派 NTLM 只支援 Windows 平台 NTLM 不支援其它瀏覽器 這是全新的協定嗎 ? 不是,它只是一個轉換介面,根據用戶端的要求來決定要使用 Kerberos 或 NTLM

  20. Kerberos 用戶端: Internet Explorer 伺服端: IIS Server (Active Directory 網域成員) Active Directory: Key Distribution Center (KDC) Ticket Granting Service: 負責發出所有的tickets (aka tokens)

  21. Kerberos 運作機制 IIS Server IIS 啓動後,當伺服器跟 KDC 做驗證成功後,會取得 ticket Domain Controller (KDC) Ticket Granting Services

  22. Kerberos 運作機制 Domain Controller (KDC) 用戶端使用匿名身份連線至 IIS IIS 回傳 401 錯誤,加上 WWWAuth 標頭,要求進行協調 用戶端向 KDC 要求 存取 IIS 的的 ticket 如果 IIS 是 AD 成員, KDC 會發出 shared key Shared 用戶端使用這支 shared key 來建立雜湊碼,並且傳送到 IIS IIS 使用 shared key 來檢查密碼是否正確 IIS Server

  23. 摘要式驗證流程 IIS 伺服器 網域控制站 Active Directory 資料庫 Web 瀏覽器

  24. 摘要式驗證 使用雜湊演算法傳送密碼的雜湊碼 必要條件 IIS Sub-Auth (iissuba - LocalSystem) Active Directory 密碼使用可逆式加密儲存在 AD 資料庫上 支援平台 Windows 2000 Windows 2003

  25. 進階式摘要式驗證 什麼是進階式摘要式驗證 ? 使用 MD5 雜湊 必要條件 IIS 6.0 (全新安裝,非升級 !) 2003 Active Directory Forest IIS Sub-Authentication 建立使用者帳號時事先編譯好雜湊碼 RFC 2617 UseDigestSSP Metabase 屬性 1: 使用進階式摘要式驗證 0: 使用摘要式驗證

  26. 憑證驗證 Request: Welcome.aspx Response: Certificate request Request: Login.aspx + Certificate Response: Welcome.aspx Certificate Validation • 在用戶端安裝有憑證,需要 SSL • 憑證在伺服端可以對應到使用者帳戶 Web Server Client DomainController

  27. IIS 7.0 驗證比較表

  28. IIS 與 ASP.NET 身份驗證流程 Web 瀏覽器 IIS 允許該 IP address 和 domain? 拒絕存取 否 是 使用者身份驗證通過 ? 否 是 執行 ASP.NET 程式 有設定 ASP.NET impersonation ? ASP.NET 使用應用 程式集區帳號 沒有 有 ACL 檢查通過 ? 使用指定帳號 否 允許存取 是

  29. ASP.NET Authentication Providers • ASP.NET 2.0 支援 4 種驗證 Provider • Windows – 由 IIS 與 AD 處理驗證 • Forms – 使用表單與 Cookies • Passport – 使用 Passport 服務 • 自訂 • 在 Web.config 中設定 <!-- web.config file --> <authentication mode = "[Windows|Forms|Passport|None]"> </authentication>

  30. 大綱 • Web 應用程式身份驗證所面臨的問題 • 過去的身份驗證機制 • 什麼是 CardSpace ? • CardSpace 的運作機制 • 各種應用方式 • 登入頁面的改變

  31. CardSpace 的目標 • 讓網際網路存取更安全 • 讓使用者可以安全的識別與使用網站… • 讓系統與系統之間的連接更安全 • 不論是對內還對外.

  32. .NET Passport ? • Windows Live ID • http://www.passport.net • 疑慮 ?

  33. 什麼是 Windows CardSpace ? SecurityToken Service 使用者經驗 服務提供者 • Windows 平台上的身份識別選擇器 • 以卡片的方式呈現出使用者的數位身份 • 當使用選擇卡片時 … • 從 Identity Provider 取得 token • 在使用者確認之後,送交給 Relying Party • 使用者 100% 控制整個流程 !

  34. Windows CardSpace • 容易且安全的管理使用者自己的身份識別資料 • 使用在網站與 web services 的身份驗證上 安全 簡單 不再需要 usernames 與 passwords 一致的登入與註冊方式 防止釣魚 多重驗證 架構在 WS-* Web Service 通訊協定之上

  35. demo 管理 Windows CardSpace

  36. 大綱 • Web 應用程式身份驗證所面臨的問題 • 過去的身份驗證機制 • 什麼是 CardSpace ? • CardSpace 的運作機制 • 各種應用方式 • 登入頁面的改變

  37. 真實世界的 STS RP token token STS token STS token

  38. CardSpace 運作流程 使用者 使用者決定可以送出 token 7 Client 使用者要存取某項資源 1 使用者選擇 IP 4 5 檢查那些 IPs 可以滿足要求 ? 3 向該 IP 要求 token RP 提出身份識別要求 2 6 根據 RP 要需求傳回 token Token 送交給 RP 8 Identity Provider(IP)Security Token Service (STS) Relying Party (RP)

  39. 選擇卡片 – 安全性 • 使用者自行決定是否要信任 • Relying Party • Identity Provider • 使用X.509 憑證進行識別 • 進一步進行對象確認 • 使用 Logos • Windows CardSpace 會負責追蹤卡片用到那裡去了 !

  40. demo 使用 Windows CardSpace 登入網站

  41. 大綱 • Web 應用程式身份驗證所面臨的問題 • 過去的身份驗證機制 • 什麼是 CardSpace ? • CardSpace 的運作機制 • 各種應用方式 • 登入頁面的改變

  42. Federation by STS Fabrikam Contoso AD/STS LinuxSTS “請給我一個 Fabrikam token !” SAML “請給我一個 token !” Contoso\Lisa Fabrikam App “請出示您的身份 !” “請出示您的身份 !” SAML Fabrikam “能不能幫我 …” Fabrikam “先從 Fabrikam STS 拿到 token 再說 !” “Lisa 您好,有什麼可以為您服務的嗎 ?”

  43. 網站應用 1 HTTP/GET (保護頁面)   轉向到登入頁面 6 HTTP/GET (登入頁面)  2 登入頁面 (HTML) + x-informationcard 標籤 客戶資料庫 5 HTTP/GET|POST 目標頁面 + token 4 透過 WS-Mex 與 WS-Trust 取得 token 網站 前端 Web 網站 3 使用者選擇卡片 Relying Party STS Identity Provider

  44. 網站應用 – 減少對網站的影響 1 HTTP/GET (保護的頁面)   轉向到登入頁面 7 2 HTTP/GET (登入頁面)  傳出登入頁面 HTML 客戶資料庫 8 HTTP/GET|POST 目標頁面 + token 3 WS-Mex 6 透過 WS-Trust/RST 傳送 token 透過 WS-Trust/RSTR 取得 token 5 透過 WS-Mex 與 WS-Trust 取得 token 網站 前端 Web 網站 4 使用者選擇卡片 STS STS Identity Provider Relying Party

  45. 大綱 • Web 應用程式身份驗證所面臨的問題 • 過去的身份驗證機制 • 什麼是 CardSpace ? • CardSpace 的運作機制 • 各種應用方式 • 登入頁面的改變

  46. Login Page <buttononclick="javascript:return infocardlogin.submit();"> Sign in with your Information Card </button> <formname="infocardlogin"target="_self"method="post"> <objecttype="application/x-informationcard"name="xmlToken"> <paramname="tokenType" value="urn:oasis:names:tc:SAML:1.0:assertion" > <paramname="issuer" value="http://schemas..../identity/issuer/self" > <paramname="requiredClaims" value="http://.../claims/givenname, http://.../claims/surname, http://../claims/emailaddress, http://.../claims/privatepersonalidentifier" > </object> </form> publicpartialclassLogin_aspx : System.Web.UI.Page { protectedvoid Page_Load(object sender, EventArgs e) { string xmlToken = Request["xmlToken"]; Token token = newTokenProcessor.Token(xmlToken); // Lookup the account using the uniqueId string username = MembershipHelper.GetUser(token.UniqueID); if (username != null) { MembershipUser user = Membership.GetUser(username); // give the cookie back to the browser FormsAuthentication.SetLoginCookie(user.UserName, false); } } }

  47. 結論 • CardSpace 是全新的身份驗證機制 • 使用者身份資料由使用者自行管理 • 滿足各類型應用程式身份驗證的需求

  48. 在何處取得TechNet相關資訊? • 訂閱 TechNet資訊技術人快訊http://www.microsoft.com/taiwan/technet/flash/ • 訂閱 TechNet Plus http://www.microsoft.com/taiwan/technet/ • 參加TechNet的活動http://www.microsoft.com/taiwan/technet/ • 下載 TechNet 研討會簡報與錄影檔http://www.microsoft.com/taiwan/technet/webcast/

More Related