VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
  • ASP.net教程之馳騁工作流引擎-流程數據md5加密

  • 2019-04-18 14:08 來源:未知
關鍵字:工作流程數據加密  md5  數據保密流程數據防篡改軟加密
設置方式: 對工作流引擎的數據加密研究, 流程數據的加密方案與實現過程.
1555121728(1)
輸入圖片說明
需求背景
1, 流程數據加密是為了防止流程數據被篡改的需要,從而造成對單位的不必要損失。
2, 流程數據篡改是具有管理員身份與非法入侵者,尤其是防范業務人員與具有系統管理員結合做壞事情。
比如: xxx公司在xx年曾經出現過這樣的情況, 業務人員與管理員勾結,導致單位200萬元損失,雖然最后查出來,??釓行?但是這是事后處理.
3, 并非所有的流程數據都需要加密, 比如請假流程就不需要,但是報銷或者其它具有敏感數據的流程就需要了。
4, 被篡改后的數據需要警報,并寫入log日志,還要不能被執行下去。
5, 要求每個節點的數據都要加密,整體流程數據也要加密。
處理方案:
1, 在流程中增加一個屬性 IsMD5 是否要加密. 默認是否, 不加密.
2, 用戶信息中包括一個鹽值,用于后期的加密運算。
3, 凡是加密過的流程在每個節點表單上增加字段MD5 長度為 char(36) 的字段,這個字段用于存儲這個節點數據的MD5值.
4,在NDxxRpt 表中增加字段MD5 用于存儲流程數據加密。
5,生成MD5值: 在如下兩個步驟中生成MD5值,并存儲到相關的物理表中.
   1, 節點發送成功后.
   2, 節點發送失敗時.
6, 生成MD5值的方法.
   1, 把節點表單字段排除有些字段是默認值的隨即獲取的字段(比如:獲取當前時間,當前操作員....),組合成一個大的文本, 然后通過獲取審批用戶鹽值,一起MD5加密.
   2, 加審批用戶鹽值意義是防止通過彩虹表暴力破解.
7, 檢查是否被篡改的步驟.
   1,獲得節點與流程數據表的數據, 排除關鍵性的字段.
   2, 執行MD5加密。
   3,將兩者串比較。
8, 在如下情況下檢查MD5值是否正確.
有涉及到打開節點表單的地方:
   1, 打開待辦工作時. 
   2, 通過流程日志打開節點表單時.
   3, 打開抄送工作時.
   4,打開地途工作時.
有涉及到打開流程數據的地方.
   1, 打開工作軌跡時的流程數據時.
以上有任何不對地方,都要禁止打開并寫入log的文本日志中.
對應的流程Demo: \流程樹\表單解決方案\請假流程(軌跡模式)
相關教程