天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

.NET : 如何保護內存中的敏感數據?

      我們程序的威脅來自于各個方面.在互聯網高度發達的今天, 安全性問題已經是企業軟件開發所必須面對的最重要的問題. 從安全學的一般意義上來講,安全性主要體現在兩個方面:

  • 敏感數據的泄露
  • 敏感數據的破壞

      從具體上來說, .NET 元數據機制的設計, 既方便了反射等強大特性的實現, 又同時給代碼安全及程序運行時安全帶來了巨大的隱患.迄今為止, 還未發現比較有效元數據可見性控制方法. 當然, 這不在本文的討論范圍之內. 我還是更愿意在這篇文章在針對.NET的內存分配機制討論一個更具體的問題: 如何保護在內存中存儲的敏感數據?

String的駐留機制帶來的安全性問題

      String是代碼中使用頻率很高的對象類型. 為了提高字符串的處理速度, 節省內存空間, Microsoft為.NET String類設計了駐留機制. 其大概的邏輯模型是, 大部分String存儲在一個類似的Hash Table中, string的內容是哈希表的key, 該key對應的value是string的內存地址. 這樣內容相同的string實際上只是對應內存堆上同一個字符串.之所以說是大部分而不是全部, 是因為有一部分動態創建(concat)的string, 是不會進入這樣一個虛擬的hash Table中的. 本文的最后附上String類的源代碼, 有興趣的同學可以研究研究:D

      這就帶來了最主要的問題, 你無法準確控制或者預測一個特定字符串的生命周期. 一個以string形式呈現的敏感數據(比如密碼)很有可能在內存中一直存在, 而你卻預測它在超出某個特定函數的作用域的時候就被垃圾回收了. 這樣, 當發生操作系統換頁的時候(而這也往往是可能發生的), 這個敏感數據就被保存到本地文件pagefile.sys當中, 或者當操作系統休眠的時候, 敏感數據進入hiberfil.sys中.一個可能的敏感數據泄漏過程是:

 

Drawing1

 

使用SecureString類

      現在既然String靠不住了,我們能有什么簡單的方法來特別的保護我的敏感數據嗎? 幸運的是, .NET從Version 2.0開始, 為我們提供了一套基于DPAPI的解決方法 - SecureString.

      SecureString類具有以下特性:

  • SecureString中的內容是加密之后的,而不是平文;

  • 使用windows的加密方案DPAPI ;

  • SecureString只能在基于NT的平臺上使用

C#代碼示例

NET技術.NET : 如何保護內存中的敏感數據?,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 纲手裸乳被爆白浆 | 精品国产品国语在线不卡 | 天堂tv免费tv在线tv香蕉 | 岛国在线无码免费观 | 国产成人啪精视频精东传媒网站 | 波多野结衣的AV一区二区三区 | 亚洲阿v天堂在线2017 | 麻豆精品一卡2卡三卡4卡免费观看 | 国产在线播放KKK | 妖精视频一区二区免费 | 久久夜色撩人精品国产 | 色狠狠婷婷97 | 久久人人爽人人片AV人成 | 精品一卡2卡三卡4卡乱码精品视频 | 打卡中国各地奋斗第一线 | 国产专区青青草原亚洲 | 耻辱诊察室1一4集动漫在线观看 | 一区二区三区福利视频 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 久久人妻无码毛片A片麻豆 久久人妻熟女中文字幕AV蜜芽 | 乳巨揉みま痴汉电车中文字幕动漫 | 日本漫画母亲口工子全彩 | 久久AV国产麻豆HD真实 | 精品国产午夜肉伦伦影院 | 亚洲第一区欧美日韩精品 | 2019欧洲hd| 国产亚洲欧美在线中文BT天堂网 | 免费女人光着全身网站 | 99免费在线| 狠狠色狠色综合曰曰 | 久久机热视频免费 | 久99久热只有精品国产99 | 最近中文字幕MV免费高清视频8 | JIZJIZJIZ 日本老师水多 | 欧美人与禽zoz0性伦交app | 麻豆免费高清完整版 | 在线观看免费亚洲 | 18videosex性欧美黑色 | 俄罗斯9一14 young处 | 在线观看亚洲AV无码每日更新 | 欧美GV肉片视频免费观看 |