首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF NetTcpBinding 傳輸安全模式深度解析(三):ProtectionLevel 保護等級控制

     編輯:關於.NET

承接前文,究竟是哪項配置觸發了 WCF 對傳輸訊息的加密?關鍵在於 <transport> 元素的 protectionLevel 屬性。本節透過將其設為 None 來觀察明文傳輸效果,驗證預設加密行為。

客戶端與服務端同步調整 ProtectionLevel

雙端綁定配置皆將 protectionLevel="None",關閉簽名與加密:

客戶端配置片段

<bindings>
  <netTcpBinding>
    <binding name="tcpWindowsSecurity">
      <security mode="Transport">
        <transport protectionLevel="None" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

服務端配置片段

<bindings>
  <netTcpBinding>
    <binding name="tcpWindowsSecurity">
      <security mode="Transport">
        <transport protectionLevel="None" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

TcpTrace 抓包驗證:明文可見

啟動 TcpTrace 監聽後,傳輸封包不再加密,服務回傳的字串內容清晰可見:

TcpTrace 顯示明文傳輸

圖 1 設定 ProtectionLevel=None 後的明文傳輸抓包結果

結論:預設 ProtectionLevel.EncryptAndSign 會對訊息進行加密與簽名;設為 None 則完全關閉保護,僅適合除錯或受信任內網環境。


作者:玄魂
出處:https://www.cnblogs.com/xuanhun/

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved