Windows Communication Foundation (WCF) 是以 SOAP 訊息為基礎的分散式程式設計平臺,而且保護用戶端與服務之間的訊息對於保護數據至關重要。 WCF 提供多用途且互通的平臺,可根據現有的安全性基礎結構和SOAP訊息的已辨識安全性標準來交換安全訊息。
WCF 使用的概念對於已經利用 HTTPS、Windows 整合式安全性,或使用者名稱和密碼來建構安全分散應用程式的用戶來說是非常熟悉的。 WCF 不僅與現有的安全性基礎結構整合,還透過使用安全的 SOAP 訊息,將分散式安全性擴展至不僅限於 Windows 的網域。 請考慮 WCF 為現有安全性機制的實作,其主要優點是使用 SOAP 做為通訊協定,這是除了現有通訊協定之外的一項額外優勢。 例如,識別客戶端或服務的認證,例如使用者名稱和密碼或 X.509 憑證,具有可互通的 XML 型 SOAP 配置檔。 使用這些配置檔時,會利用 XML 數位簽名和 XML 加密等開放規格安全地交換訊息。 如需規格清單,請參閱 System-Provided 互作性系結支援的 Web 服務通訊協定。
另一個平行是 Windows 平臺上的元件物件模型(COM),可啟用安全分散式應用程式。 COM 具有完整的安全性機制,可在元件之間流動安全性內容;此機制會強制執行完整性、機密性和驗證。 不過 COM 不會啟用跨平臺的安全傳訊,就像 WCF 一樣。 使用 WCF,您可以建置橫跨因特網之 Windows 網域的服務與用戶端。 WCF 的互通訊息對於建置動態、商業導向的服務至關重要,可協助您對資訊的安全性充滿信心。
Windows Communication Foundation 安全性優點
WCF 是以 SOAP 訊息為基礎的分散式程式設計平臺。 使用 WCF,您可以建立同時作為服務與服務用戶端的應用程式,從無限數目的其他服務和用戶端建立和處理訊息。 在這類分散式應用程式中,訊息可以從節點流向節點、透過防火牆、到因特網,以及透過許多SOAP媒介。 這引進了各種訊息安全性威脅。 下列範例說明 WCF 安全性在實體之間交換訊息時可協助減輕的一些常見威脅:
觀察網路流量以取得敏感性資訊。 例如,在在線銀行案例中,客戶會要求將資金從一個帳戶轉移到另一個帳戶。 惡意使用者攔截訊息,並擁有帳戶號碼和密碼,稍後會從遭入侵的帳戶執行資金轉移。
表現為服務但沒有客戶意識的流氓實體。 在此案例中,惡意使用者 (Rogue) 會作為在線服務,並攔截來自用戶端的訊息以取得機密資訊。 然後,流氓會使用遭竊的數據,從遭入侵的帳戶轉移資金。 此攻擊也稱為 網路釣魚攻擊。
變更訊息,以取得與呼叫端預期的不同結果。 例如,竄改存款的帳戶號碼使資金進入不法帳戶。
重演在其中擾人的駭客重播相同的採購單。 例如,在線書店會收到數百份訂單,並將書籍傳送給沒有訂購訂單的客戶。
服務無法驗證用戶端。 在此情況下,服務無法確保適當的人員執行交易。
總而言之,傳輸安全性提供下列保證:
服務端點(受訪者)驗證。
用戶端主體(啟動器)驗證。
訊息完整性。
郵件機密性。
重新執行偵測。
與現有安全性基礎結構整合
Web 服務部署通常會有現有的安全性解決方案,例如安全套接字層 (SSL) 或 Kerberos 通訊協定。 有些會利用已部署的安全性基礎結構,例如使用 Active Directory 的 Windows 網域。 在評估和採用較新的技術時,通常必須與這些現有技術整合。
WCF 安全性能夠與現有的傳輸安全性模型整合,並可利用現有的基礎設施來支持基於 SOAP 訊息安全性的較新傳輸安全性模型。
與現有驗證模型整合
任何通訊安全性模型的重要部分,就是能夠識別及驗證通訊中的實體。 通訊中的這些實體會使用「數位身分識別」或認證,向通訊對等進行自我驗證。 隨著分散式通訊平臺的演進,已實作各種認證驗證和相關安全性模型。 例如,在因特網上,使用使用者名稱和密碼來識別用戶是常見的。 在內部網路上,使用 Kerberos 域控制器來備份使用者和服務驗證會變得很常見。 在某些情況下,例如在兩個商務夥伴之間,憑證可用來相互驗證合作夥伴。
因此,在 Web 服務世界中,相同服務可能會向內部公司客戶以及外部合作夥伴或因特網客戶公開,因此基礎結構必須提供與這些現有安全性驗證模型的整合。 WCF 安全性支援各種不同的認證類型(驗證模型),包括:
匿名來電者
用戶名稱客戶端憑證。
客戶端憑證認證。
Windows (Kerberos 通訊協定和 NT LanMan [NTLM])。
標準和互作性
在具有大型現有部署的世界里,同質性很少見。 分散式運算/通訊平臺需要與不同廠商所提供的技術互作。 同樣地,安全性也必須互通。
為了啟用互通的安全性系統,活躍在 Web 服務產業中的公司已撰寫各種標準。 具體來說,關於安全性,已經提出了一些值得注意的標準:WS-Security:SOAP 訊息安全性(由 OASIS 標準主體接受,先前稱為 WS-Security)、WS-Trust、WS-SecureConversation 和 WS-SecurityPolicy。
WCF 支援各種不同的互作性案例。 類別 BasicHttpBinding 是以基本安全性配置檔 (BSP) 為目標,而 類別 WSHttpBinding 是以最新的安全性標準為目標,例如 WS-Security 1.1 和 WS-SecureConversation。 藉由遵守這些標準,WCF 安全性可以互作並整合裝載於 Microsoft Windows 以外的作系統和平臺上的 Web 服務。
WCF 安全性功能區域
WCF 安全性分為三個功能區域:傳輸安全性、訪問控制和稽核。 下列各節會簡短討論這些區域,並提供詳細信息的連結。
傳輸安全性
傳輸安全性包含三個主要的安全性功能:完整性、機密性和驗證。 完整性 是偵測訊息是否遭到竄改的能力。 機密性 是讓預定收件者以外的任何人無法讀取郵件的能力;這可透過密碼編譯來達成。 身份驗證 是核實宣稱的身份的能力。 這三個函式一起有助於確保訊息安全地從一個點到達另一個點。
傳輸和訊息安全性模式
兩個主要機制可用來在 WCF 中實作傳輸安全性: 傳輸 安全性模式和 訊息 安全性模式。
傳輸安全性模式 會使用傳輸層級通訊協定,例如 HTTPS 來達成傳輸安全性。 傳輸模式的優點是被廣泛採用、在許多平台上可用,而且計算上比較簡單。 不過,它只能從點對點保護訊息的缺點。
另一方面,訊息安全性模式會使用 WS-Security(和其他規格)來實作傳輸安全性。 由於訊息安全性會直接套用至 SOAP 訊息,且包含在 SOAP 信封內,以及應用程式數據,因此它的優點是傳輸通訊協議獨立、更具擴充性,並確保端對端安全性(與點對點):其缺點是比傳輸安全性模式慢數倍,因為它必須處理SOAP訊息的 XML 本質。
如需這些差異的詳細資訊,請參閱 保護服務和用戶端。
第三個安全性模式同時使用先前的模式,並帶來兩者的優點。 這個模式稱為 TransportWithMessageCredential。 在此模式中,訊息安全性是用來驗證客戶端,傳輸安全性是用來驗證伺服器,並提供訊息機密性和完整性。 因此, TransportWithMessageCredential 安全性模式幾乎與傳輸安全性模式一樣快,並以與訊息安全性相同的方式提供客戶端驗證擴充性。 不過,不同於訊息安全性模式,它不提供完整的端對端安全性。
存取控制
訪問控制 也稱為授權。 授權 可讓不同的用戶擁有不同的許可權來檢視數據。 例如,由於公司的人力資源檔案包含敏感性員工數據,因此只允許經理檢視員工數據。 此外,管理員只能檢視其直接報告的數據。 在此情況下,訪問控制是以角色(「經理」)以及經理的特定身分識別為基礎(以防止一位經理查看另一位經理的員工記錄)。
在 WCF 中,訪問控制功能是透過與 Common Language Runtime (CLR) PrincipalPermissionAttribute 整合,以及透過一組稱為 身分識別模型的 API 來提供。 如需訪問控制和宣告型授權的詳細資訊,請參閱 延伸安全性。
審計
稽核 是將安全性事件記錄到 Windows 事件記錄檔。 您可以記錄安全性相關事件,例如驗證失敗(或成功)。 如需詳細資訊,請參閱稽核。 如需程式設計詳細數據,請參閱 如何:稽核安全性事件。