ASP.NET實現了更好的加密算法

jopen 11年前發布 | 9K 次閱讀 ASP.NET

  原文鏈接:ASP.NET Gets Better Cryptography

  .NET 4.5 引進了一系列對 ASP .NET 處理加密的改進,并帶來了新的 ProtectUnprotect API,以及眾多不易察覺的更改。Levi Broderick 通過一系列文章介紹了其動機、改變及兼容問題。

  ASP.NET 需要兩個密鑰(解密鑰和驗證鑰)來加密,而這一對合起來就叫做機器鑰。機器鑰可以在不同組件間重用。Levi 的第一篇文章里解釋了 .NET4.0 的設計為何在某一組件上造成安全問題的同時,也給系統其他組件帶來了更大的影響。

  同樣,為開發者開放的 MachineKey.EncodeDecode API 也使用了同樣的機器鑰來加密。因此,開發人員將進一步引入來自他們本身的安全問題,從而再次造成了級聯效應。

  Duong 和 Rizo 在一篇 IEEE 論文里已經著重強調了這些顧慮的大部分(以及其它方面)。盡管論文里提到的大多數問題已經在論文里被解決了,但還有一些關鍵問題仍然存在。

  作為解決方案,.NET 4.5 引入了以下改變--

  • 機器鑰的轉換和上一版有顯著區別:通過改變機器鑰上某幾位就可將其作為鑰定義方法的鑰衍生鑰,以生成真正用于應用的密鑰。
  • ProtectUnprotect API 將 MACing 和 encrypting 并作一步,然后將其命名為“保護(protecting)” 。編碼(Encode)和解碼(Decode) API 仍然存在,但不推薦使用。
  • 引入一個名叫“目的(purpose)”的參數用來區分那些由于某些特定需要而進一步使用別的加密 API,以減少其它區域安全問題對其造成的影響。
  • </ul>

      所有這些改變在默認情況下是關閉的,必須在 web config 中明確設置后才能開啟(所有新的 ASP.NET 項目模板都使用該變化)。關于改變的所有細節都在 Levi Broderick 的第二篇文章里描述了。而第三篇文章則介紹了一些高級用法和使用技巧。

      應注意的是:本次改變不包括 membership 提供程序中的密碼加密,此功能將分開處理

    來自: InfoQ
     本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!