1. 程式人生 > 實用技巧 >工作流引擎,工作流程管理系統,流程資料加密處理方案.

工作流引擎,工作流程管理系統,流程資料加密處理方案.

>>> hot3.png

1關於流程資料的加密方案與實現過程.

1.1需求背景

1, 流程資料加密是為了防止流程資料被篡改的需要,從而造成對單位的不必要損失。

2, 流程資料篡改是具有管理員身份與非法入侵者,尤其是防範業務人員與具有系統管理員結合做壞事情。

比如: xxx公司在xx年曾經出現過這樣的情況, 業務人員與管理員勾結,導致單位200萬元損失,雖然最後查出來,罰款判刑,但是這是事後處理.

3, 並非所有的流程資料都需要加密, 比如請假流程就不需要,但是報銷或者其它具有敏感資料的流程就需要了。

4, 被篡改後的資料需要警報,並寫入log日誌,還要不能被執行下去。

5, 要求每個節點的資料都要加密,整體流程資料也要加密.

1.2處理方案

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的文字日誌中.

執行效果如下.

image

轉載於:https://my.oschina.net/ccflow/blog/62957