S小魚仔S 網誌搜尋

2012年9月10日 星期一

S小魚仔S IIS 7 安全性 認證 筆記

新增「IIS」遇到「認證」時,總是會有許多「困惑」,這回我還是做做筆記吧,相信使用「Windows」系統,架設「IIS」遇到「安全性」功能時,裡面都有這三樣「Windows 驗證」、「基本驗證」、「摘要式驗證」。



PS.
當您新增「IIS」預設會啟用「匿名驗證


到底這四種「認證關係」有什麼樣的差別呢?
 我知道各位一定很好奇,因為我也很好奇,好奇之前,要花時間將下面看完。

匿名驗證
若「網站」啟用「匿名驗證」方法,則任何使用者都可以直接利用「匿名」來連接「網站」,不需要輸入「帳戶」與「密碼」,「Windows Server 2008 R2」 內建一個名稱為「IUSR」的「特殊群組帳戶」,當使用「匿名驗證」連接「網站」同時,網站則是使用「IUSR」,來代表這個「使用者」,因為使用者的「權限」就是與「IUSR」權限相同。

基本驗證
基本驗證」會要求「使用者」輸入「使用名稱」與「密碼」,絕大部份瀏覽器都支援此「方法」,但是「傳送給」「網站」的「使用者名稱」與「密碼」並沒有被「加密」,因此容易被居心不良者「攔截」資料,故若要使用「基本驗證」的話,應該要搭配「SSL」( Secure Sockets Layer ) 連線。

Windows 驗證
Windows」驗證,也會要求,輸入「使用名稱」與「密碼」,而且「使用者名稱」與「密碼」在透過「網路傳送前」,也會經過「雜湊」處理 (hashed),因此可以確保「安全性」。

Windows 驗證 支援以下「兩種」驗證通訊協定:

Kerberos v5」 驗證
如果「IIS」電腦是「Active Directory」網域成員,而且用戶端也支援「Kerberos v5」驗證的話,則「IIS」網站會採用「Kerberos v5」驗證方法。一般來說,「 Kerberos」 會被防火牆阻擋。

NTLM」驗證
如果「IIS」電腦不是「Active Directory」網域成員 或 用戶端不支援「Kerberos v5」驗證的話,則「IIS」網站,會採用「NTLM」驗證方法。一般來說,代理伺服器 ( Proxy Server ) 不支援「NTLM」。

由於「Kerberos」會被「防火牆」阻擋且「代理伺服器」不支援「NTLM」,因此「Windows 驗證」,比較適合用來「連接內部」網路。用戶端利用「Windows 驗證」,來連接「內部」網站時,會自動利用「目前」的「使用者」與「密碼」,連接「網站」,因此若「使用者」沒有「權利」連接網站的話,就會要求「使用者」自行另外輸入「使用者名稱」與「密碼」。

摘要式驗證
摘要式驗證」也會要求使「帳戶」與「密碼」,不過它比「基本驗證」更為安全,因為「使用者」的「帳戶」與「密碼」會經過「MD5」演算來處理,然後將處理後所產生的「雜湊」值 ( hash ) 傳送到網站。攔截此「雜湊」值得人,並無法從「雜湊」值得知「帳戶」與「密碼」。

必須具備以下條件,才可以使用「摘要式驗證
* 瀏覽器必須支援 「HTTP 1.1」,例如 Internet Explorer 5.0 (含) 以上的版本。
* IIS 電腦必須是 「Active Directory」 網域的「成員伺服器」或「網站控制站
* 使用帳戶必須是「Active Directory」網域使用者,而且此帳戶必須與「IIS」電腦位於同一個「網域」,或是「信任」的「網域

各種驗證方法的比較
驗證方法
安全等級
如何傳送密碼
是否可通過防火牆或代理伺服器
用戶端的要求
匿名驗證

任何瀏覽器皆可
基本驗證
明文 (未加密)
大部分的瀏覽器
摘要式驗證
雜湊處理
Internet Explorer5 ()以上
Windows驗證
Kerberos:
Kerberos  ticket
NTLM:
雜湊處理
Kerberos:
可通過代理伺服器,但會被防火牆阻擋

NTLM:
可通過防火牆,但是無法通過代理伺服器
Kerber:
Windows 2000以後的系統,且使用Internet Explorer5 ()以上

NTLM:
Internet Explorer 2.0()以上

靜思:  世上有兩件事不能等「孝順」與「行善」。

參考資料: