前期準(zhǔn)備
WCF的安全性建立在各種安全基礎(chǔ)架構(gòu)上。他支持這些基礎(chǔ)結(jié)構(gòu)的其中一些,入HTTP上的安全套接字(SSL)HTTPS。但是,WCF也實(shí)現(xiàn)了針對(duì)SOAP編碼消息的更新的客戶(hù)操作安全標(biāo)準(zhǔn)(如WS-Security),因此已不再僅僅是支持現(xiàn)有安全基礎(chǔ)結(jié)構(gòu)。下面給出一些對(duì)現(xiàn)有概念和機(jī)制的概述:
1.業(yè)界級(jí)安全規(guī)范
公鑰基礎(chǔ)結(jié)構(gòu) (PKI) 是一種由數(shù)字證書(shū)、證書(shū)頒發(fā)機(jī)構(gòu)以及其他注冊(cè)機(jī)構(gòu)所組成的系統(tǒng),它通過(guò)使用公鑰加密對(duì)電子事務(wù)中所涉及的各方的有效性進(jìn)行檢驗(yàn)和身份驗(yàn)證。
B.Kerberos 協(xié)議
Kerberos 協(xié)議是一種規(guī)范,用于創(chuàng)建對(duì) Windows 域中的用戶(hù)進(jìn)行身份驗(yàn)證的安全機(jī)制。它允許用戶(hù)建立與域中的其他實(shí)體的安全上下文。Windows 2000 及更高的平臺(tái)默認(rèn)情況下使用 Kerberos 協(xié)議。在創(chuàng)建將與 intranet 客戶(hù)端進(jìn)行交互的服務(wù)時(shí),理解系統(tǒng)的機(jī)制非常有用。此外,由于 Web 服務(wù)安全 Kerberos 綁定的廣泛發(fā)布,可以使用 Kerberos 協(xié)議來(lái)與 Internet 客戶(hù)端(即 Kerberos 協(xié)議是可互操作的)通信。
C.X.509 證書(shū)
X.509 證書(shū)是安全應(yīng)用程序中使用的主要憑據(jù)形式。運(yùn)行 Windows 的計(jì)算機(jī)有多種存儲(chǔ)區(qū),每一個(gè)都針對(duì)不同的用途。
2.特定于 Windows 的安全機(jī)制
Windows 標(biāo)識(shí)
作為 Kerberos 保護(hù)域中的有效成員的用戶(hù)在通過(guò)身份驗(yàn)證之后,可能要使用該域的其他服務(wù)。為此,該用戶(hù)必須能將其 Internet 標(biāo)識(shí)映射為 Windows 標(biāo)識(shí)。
3.Web 服務(wù)安全規(guī)范
A.安全對(duì)話(huà)
安全對(duì)話(huà)是其中建立了客戶(hù)端和服務(wù)之間的安全上下文的對(duì)話(huà)。安全上下文使消息能在較長(zhǎng)的一段時(shí)間內(nèi)在客戶(hù)端和服務(wù)之間安全地流動(dòng)。安全對(duì)話(huà)的每條消息不僅受到保護(hù),而且與某個(gè)對(duì)話(huà) ID 關(guān)聯(lián),對(duì)話(huà)的任一方都可使用該 ID 來(lái)跟蹤協(xié)商的進(jìn)度。在需要建立擴(kuò)展通信會(huì)話(huà)時(shí),安全對(duì)話(huà)很有用。
換言之,在通信需要從客戶(hù)端到服務(wù)的多條單獨(dú)(一次性)消息時(shí),應(yīng)使用安全對(duì)話(huà)。
2.使用 Authenticode 創(chuàng)建證書(shū)
有關(guān) 使用 MakeCert.exe 和其他工具創(chuàng)建臨時(shí)證書(shū)的更多信息
3.授權(quán)管理器
授權(quán)管理器提供了一種用于將基于角色的訪(fǎng)問(wèn)控制集成到應(yīng)用程序中的靈活框架。它使得使用這些應(yīng)用程序的管理員能通過(guò)分配的與工作職能相關(guān)的角色來(lái)提供訪(fǎng)問(wèn)權(quán)限。授權(quán)管理器應(yīng)用程序以授權(quán)存儲(chǔ)區(qū)的形式存儲(chǔ)授權(quán)策略,授權(quán)存儲(chǔ)區(qū)存儲(chǔ)在 Active Directory 或 XML 文件中,并在運(yùn)行時(shí)應(yīng)用授權(quán)策略。
WCF安全概述
Windows Communication Foundation (WCF) 是一個(gè)基于 SOAP 消息的分布式編程平臺(tái),因此保護(hù)客戶(hù)端和服務(wù)之間的消息安全對(duì)于保護(hù)數(shù)據(jù)非常重要。WCF 基于現(xiàn)有安全性基礎(chǔ)結(jié)構(gòu)和 SOAP 消息的經(jīng)驗(yàn)證的安全標(biāo)準(zhǔn)提供可互操作的安全消息交換通用平臺(tái)。
WCF 是一個(gè)基于 SOAP 消息的分布式編程平臺(tái)。通過(guò)使用 WCF,您可以創(chuàng)建可用作服務(wù)和服務(wù)客戶(hù)端的應(yīng)用程序,從無(wú)限數(shù)量的其他服務(wù)和客戶(hù)端創(chuàng)建和處理消息。在此類(lèi)分布式應(yīng)用程序中,消息可以從一個(gè)節(jié)點(diǎn)流向另一個(gè)節(jié)點(diǎn),并在通過(guò)防火墻進(jìn)入 Internet 后再通過(guò)無(wú)數(shù)個(gè) SOAP 中間項(xiàng)。這會(huì)帶來(lái)各種不同的消息安全性威脅。下面的示例演示在實(shí)體間交換消息時(shí)可由 WCF 安全性幫助緩解的部分常見(jiàn)威脅:
· 觀(guān)測(cè)網(wǎng)絡(luò)流量以獲取敏感信息。以在線(xiàn)銀行為例,某個(gè)客戶(hù)端請(qǐng)求將資金從一個(gè)帳戶(hù)轉(zhuǎn)帳至另一個(gè)帳戶(hù)。一個(gè)惡意用戶(hù)截獲了此消息(具有賬號(hào)和密碼),隨后從盜用的帳戶(hù)將資金轉(zhuǎn)出。
· 欺詐性實(shí)體在客戶(hù)端未發(fā)覺(jué)的情況下起服務(wù)的作用。在此情況下,惡意用戶(hù)(欺詐方)充當(dāng)在線(xiàn)服務(wù),從客戶(hù)端截獲消息以獲取敏感信息。然后,欺詐方使用竊取的數(shù)據(jù)將資金從盜用的帳戶(hù)轉(zhuǎn)出。此類(lèi)攻擊也稱(chēng)為“釣魚(yú)攻擊”。
· 更改消息以獲取與調(diào)用方所需的結(jié)果不同的結(jié)果。例如,更改用于存款的賬號(hào)以便將資金轉(zhuǎn)移到惡意帳戶(hù)。
· 黑客重放,惡意黑客重放同一采購(gòu)訂單。例如,一家網(wǎng)上書(shū)店收到數(shù)百?gòu)堄唵尾?shū)籍發(fā)送給并未訂購(gòu)這些書(shū)籍的客戶(hù)。
· 使某項(xiàng)服務(wù)無(wú)法對(duì)客戶(hù)端進(jìn)行身份驗(yàn)證。在此情況下,服務(wù)無(wú)法確保相應(yīng)人員執(zhí)行該項(xiàng)事務(wù)。
總的來(lái)說(shuō),傳輸安全性可提供下列保障:
· 服務(wù)終結(jié)點(diǎn)(響應(yīng)方)身份驗(yàn)證。
· 客戶(hù)端主體(發(fā)起方)身份驗(yàn)證。
· 消息完整性。
· 消息保密性。
· 重放檢測(cè)。
WCF安全體系結(jié)構(gòu)
WCF 安全性跨越 WCF 體系結(jié)構(gòu)中的多個(gè)組件。WCF 中安全性的主要目的是,為建立在 WCF 框架基礎(chǔ)之上的應(yīng)用程序提供完整性、保密性、身份驗(yàn)證、授權(quán)和審核。WCF 體系結(jié)構(gòu)將這些功能拆分為以下部分:
· 傳輸安全 - 負(fù)責(zé)提供消息保密性、數(shù)據(jù)完整性和通信方的身份驗(yàn)證。
· 訪(fǎng)問(wèn)控制 - 負(fù)責(zé)為授權(quán)決策提供框架。
· 審核 - 負(fù)責(zé)將安全相關(guān)事件記錄到審核日志中。
傳輸(transfer)安全模式
在 WCF 中,兩個(gè)可用于實(shí)現(xiàn)傳輸安全性的主要機(jī)制分別為:傳送(transport)安全模式和消息安全模式。
· 傳送安全模式使用傳輸級(jí)協(xié)議(如 HTTPS)獲取傳輸安全性。傳送模式的優(yōu)點(diǎn)是可以被廣泛采用、可用于多個(gè)平臺(tái)以及計(jì)算較為簡(jiǎn)單。但是,它的缺點(diǎn)是只能保證點(diǎn)到點(diǎn)的消息安全。
· 另一方面,消息安全模式使用 WS-Security(和其他規(guī)范)實(shí)現(xiàn)傳輸安全性。因?yàn)橄踩灾苯討?yīng)用于 SOAP 消息并與應(yīng)用程序數(shù)據(jù)一起包含在 SOAP 信封內(nèi),它的優(yōu)點(diǎn)是獨(dú)立于傳輸協(xié)議、可擴(kuò)展性更強(qiáng)以及可確保端到端安全性(與點(diǎn)到點(diǎn)相對(duì));它的缺點(diǎn)是比傳輸安全性模式慢很多倍,因?yàn)樗仨毺幚?nbsp;SOAP 消息的 XML 特性。
第三種安全模式同時(shí)使用前兩種模式,并具備這兩種模式的優(yōu)點(diǎn)。此模式稱(chēng)為 TransportWithMessageCredential。在此模式下,消息安全性用于對(duì)客戶(hù)端進(jìn)行身份驗(yàn)證,而傳送安全性則用于對(duì)服務(wù)器進(jìn)行身份驗(yàn)證并提供消息機(jī)密性和完整性。得益于這一特點(diǎn),TransportWithMessageCredential 安全模式幾乎與傳輸安全模式一樣快,并且提供與消息安全性一樣的客戶(hù)端身份驗(yàn)證可擴(kuò)展性。但是,與消息安全性模式不同,它不提供完整的端到端安全性。
訪(fǎng)問(wèn)控制
訪(fǎng)問(wèn)控制也稱(chēng)為身份驗(yàn)證。身份驗(yàn)證使得不同的用戶(hù)可以具有不同的數(shù)據(jù)查看權(quán)限。例如,因?yàn)楣镜娜肆Y源文件包含敏感的員工數(shù)據(jù),只有管理人員才能查看員工數(shù)據(jù)。此外,管理人員只能查看他們的直接報(bào)告數(shù)據(jù)。在此情況下,訪(fǎng)問(wèn)控制將基于角色(“管理人員”)和管理人員的特定標(biāo)識(shí)(以避免管理人員查看其他管理人員的員工記錄)。
在 WCF 中,訪(fǎng)問(wèn)控制功能通過(guò)與公共語(yǔ)言運(yùn)行庫(kù) (CLR) PrincipalPermissionAttribute 以及一組稱(chēng)為“標(biāo)識(shí)模型”的 API 集成提供。有關(guān)訪(fǎng)問(wèn)控制和基于聲明的授權(quán)的詳細(xì)信息,請(qǐng)參見(jiàn)擴(kuò)展安全性。
審核
審核就是將安全事件記錄到 Windows 事件日志中。您可以記錄與安全相關(guān)的事件,例如身份驗(yàn)證失?。ɑ虺晒Γ?。有關(guān)更多信息,請(qǐng)參見(jiàn) 審核安全事件. 有關(guān)編程的詳細(xì)信息,請(qǐng)參見(jiàn)如何:審核 Windows Communication Foundation 安全事件。
參考:
聯(lián)系客服