999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ERP工作流引擎中的數(shù)字簽名技術(shù)

2007-01-01 00:00:00杜平安
計算機(jī)應(yīng)用研究 2007年4期

摘要:論述了工作流引擎在企業(yè)資源規(guī)劃(ERP)系統(tǒng)中的主要功能后,為了能解決工作流運(yùn)行過程中可能遇到的網(wǎng)絡(luò)安全#65380;法律效力等問題,提出了結(jié)合數(shù)字證書與數(shù)字簽名技術(shù)的B/S解決方案,并結(jié)合Java授權(quán)與認(rèn)證服務(wù)(Java Authentication and Authorization Service,JAAS)保證了工作流引擎更加安全可靠地運(yùn)行#65377;

關(guān)鍵詞:工作流引擎; 數(shù)字證書; 數(shù)字簽名; 信息安全; 企業(yè)資源規(guī)劃

中圖分類號:TP309.2文獻(xiàn)標(biāo)志碼:A

文章編號:10013695(2007)04013003

0引言

工作流引擎在現(xiàn)代企業(yè)運(yùn)作與ERP中起著重要的作用#65377;1993年工作流管理聯(lián)盟(WfMC)成立并將工作流定義為:工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程;它根據(jù)一系列過程規(guī)則#65380;文檔#65380;信息或任務(wù)能夠在不同的執(zhí)行者之間進(jìn)行傳遞與執(zhí)行#65377;對企業(yè)而言則可簡單概括為各種業(yè)務(wù)實(shí)施的程序流程#65377;具體體現(xiàn)為企業(yè)的各種報表#65380;單據(jù)等有效文件從制作#65380;填寫數(shù)據(jù)#65380;審核#65380;審批至最后生效的全過程#65377;工作流中的不同活動稱為流程節(jié)點(diǎn),如制單#65380;審批等#65377;

工作流引擎是ERP系統(tǒng)中業(yè)務(wù)流程正常運(yùn)轉(zhuǎn)的內(nèi)核,是一套保障業(yè)務(wù)數(shù)據(jù)完整無誤地在不同執(zhí)行者之間傳遞和執(zhí)行的機(jī)制#65377;其主要功能可概括為:工作流程的定義#65380;解釋和維護(hù),流程節(jié)點(diǎn)的定義及維護(hù),對每一個節(jié)點(diǎn)數(shù)據(jù)進(jìn)行維護(hù),進(jìn)一步對流程的運(yùn)行狀況進(jìn)行全局掌控和管理,包括流轉(zhuǎn)#65380;回退#65380;撤銷及凍結(jié)等#65377;

將企業(yè)中普遍使用的物資出庫單據(jù)經(jīng)工作流引擎驅(qū)動#65377;其流轉(zhuǎn)過程如圖1所示#65377;

在傳統(tǒng)生產(chǎn)過程中,流程的每一步都經(jīng)過相關(guān)負(fù)責(zé)人在紙質(zhì)單據(jù)上的親筆簽名或蓋章,簽名者會確保單據(jù)數(shù)據(jù)的正確性#65380;有效性并對之負(fù)責(zé),具有法律效力#65377;

建立基于網(wǎng)絡(luò)與B/S多層結(jié)構(gòu)的ERP信息系統(tǒng)是對傳統(tǒng)工作流的挑戰(zhàn)#65377;隨著信息與網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,企業(yè)建立Intranet并與Internet互連,使得企業(yè)內(nèi)部各子公司#65380;部門之間,企業(yè)與企業(yè)之間的業(yè)務(wù)聯(lián)系與需求擴(kuò)張更加快捷,大大提高了生產(chǎn)效率#65377;

為提高市場競爭力,越來越多的企業(yè)應(yīng)用PC與網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)了無紙化與網(wǎng)絡(luò)辦公#65377;工作流引擎技術(shù)已成為網(wǎng)絡(luò)化辦公的平臺與保障#65377;然而,網(wǎng)絡(luò)辦公中數(shù)據(jù)的安全#65380;完整性與流程節(jié)點(diǎn)簽名的法律效力等問題突現(xiàn)而出,開發(fā)實(shí)用和穩(wěn)固的ERP系統(tǒng)勢必確保工作流引擎中的單據(jù)同樣具有法律效力#65377;

1工作流引擎技術(shù)的安全問題

網(wǎng)絡(luò)中流轉(zhuǎn)的單據(jù)要具有法律效力,等同于兩個條件的成立:①單據(jù)數(shù)據(jù)在流程各節(jié)點(diǎn)的正確性與有效性;②簽名人對其簽名行為的不可抵賴性與不可替代性#65377;

11單據(jù)數(shù)據(jù)的正確性與有效性

從庫存提取物資時,物資的名稱#65380;規(guī)格型號#65380;數(shù)量#65380;單價#65380;金額及時間等數(shù)據(jù)形成了物資出庫單據(jù)#65377;ERP系統(tǒng)必須保證單據(jù)中的數(shù)據(jù)在工作流各節(jié)點(diǎn)處一致,簽名者對其看到的數(shù)據(jù)正確性與有效性確認(rèn)后,方可簽名#65377;由于軟/硬件設(shè)施或網(wǎng)絡(luò)故障甚至人為的惡意竄改均會導(dǎo)致數(shù)據(jù)失真,錯誤的數(shù)據(jù)將給企業(yè)帶來災(zāi)難性的損失#65377;然而,上述現(xiàn)象又往往無法避免,那么企業(yè)的ERP系統(tǒng)就必須具有判斷出數(shù)據(jù)竄改#65380;中止流程流轉(zhuǎn)并恢復(fù)原有正確數(shù)據(jù)的能力#65377;

1.2簽名人對其簽名行為的不可抵賴性與不可替代性

工作流節(jié)點(diǎn)代表一項業(yè)務(wù)活動,各節(jié)點(diǎn)經(jīng)辦人的簽名應(yīng)具有不可抵賴性和不可替代性#65377;查看流程流轉(zhuǎn)的過程首先由領(lǐng)料人填寫單據(jù)數(shù)據(jù)并簽名;接著單據(jù)流轉(zhuǎn)到審核節(jié)點(diǎn),審核人確認(rèn)單據(jù)數(shù)據(jù)正確有效后簽名,應(yīng)該卻也只能對他當(dāng)前看到的數(shù)據(jù)負(fù)責(zé)#65377;這是由于單據(jù)在網(wǎng)絡(luò)中從制單節(jié)點(diǎn)流轉(zhuǎn)到審核節(jié)點(diǎn)時,其數(shù)據(jù)可能已部分丟失或在數(shù)據(jù)庫層面被人為竄改;甚至簽名人抵賴其簽名行為#65377;那么,數(shù)據(jù)前后不一致又該追究誰的責(zé)任?網(wǎng)絡(luò)上經(jīng)辦人的簽名怎樣才能不可抵賴,同時又不可替代?

2解決方案

將數(shù)字證書與數(shù)字簽名技術(shù)與工作流引擎結(jié)合,能夠很好地解決上述問題#65377;為方便闡述,下面將使用A代表數(shù)據(jù)(報文)發(fā)送方,B代表接收方,CA(Certificate Authority)代表證書頒發(fā)機(jī)構(gòu)#65377;

2.1消息摘要

給定字符串的消息摘要被定義為唯一能與之對應(yīng)的值,即該給定字符串(數(shù)據(jù)或報文)與其消息摘要之間是一對一的關(guān)系#65377;能夠?qū)崿F(xiàn)這一功能的算法稱為消息摘要算法#65377;目前在Internet上廣泛使用的有MD5與SHA1#65377;它們是單向的Hash加密函數(shù),任意長度的報文均求得固定長度的消息摘要,如MD5算法產(chǎn)生16個字節(jié)(128位)的摘要,SHA1算法產(chǎn)生20個字節(jié)(160位)的摘要#65377;

正是由于摘要算法的不可逆性以及報文與其摘要的唯一對應(yīng)關(guān)系,它可以被利用來保證數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的完整性#65377;實(shí)現(xiàn)過程為:A在傳送報文之前先求出其消息摘要a,并將它與報文一同傳送;B收到報文后求出消息摘要b,對比前后兩次摘要即可判斷出數(shù)據(jù)是否完整無誤#65377;

但是,這樣直接傳輸報文和消息摘要存在極大的安全隱患——數(shù)據(jù)可能在傳輸過程中被攔截并傳給B另一套匹配的數(shù)據(jù)與摘要#65377;嚴(yán)格說來對比消息摘要只能保證數(shù)據(jù)的完整性,而無法保證數(shù)據(jù)的真實(shí)性,即數(shù)據(jù)是否來自于A#65377;數(shù)字簽名技術(shù)可以解決這個問題#65377;

2.2數(shù)字簽名

數(shù)字簽名是一種加密技術(shù)#65377;Internet上廣泛使用RSA非對稱加密算法并結(jié)合消息摘要來實(shí)現(xiàn)數(shù)字簽名#65377;此算法產(chǎn)生一對配對的密鑰,由于公鑰和私鑰的數(shù)學(xué)邏輯,使用其中一個密鑰加密數(shù)據(jù)只能用另一個解開#65377;私鑰由A自己保管,其配對的公鑰則由接收方保管#65377;A用私鑰加密消息摘要后傳給B,B只有用A的公鑰才能解開密文,也就確定消息必然來自于A#65377;這樣既保證了數(shù)據(jù)的完整又讓A的簽名不可抵賴#65380;不可替代#65377;

然而,僅僅是運(yùn)用數(shù)字簽名技術(shù)仍然有安全漏洞#65377;如果A將其公鑰通過網(wǎng)絡(luò)傳給B,中途被第三方C截獲,C用其私鑰把報文摘要加密并連同C的公鑰傳給B,將導(dǎo)致B誤認(rèn)為得到的是A的公鑰和數(shù)據(jù),由于解密過程無誤而掉入陷阱#65377;數(shù)字證書將解決這一問題#65377;

2.3數(shù)字證書

數(shù)字證書是用戶在網(wǎng)絡(luò)中的身份象征#65377;A的個人證書是證書頒發(fā)機(jī)構(gòu)對其密鑰#65380;個人信息及CA機(jī)構(gòu)信息用CA的私鑰加密后得到的文件,A身份的真實(shí)性由CA擔(dān)保#65377;B用CA公開的根證書(其中包括CA的公鑰)來校驗A的個人證書,從中獲取并核對A的信息,從而確定數(shù)據(jù)發(fā)送方的身份#65377;最后,再用A的個人證書中的公鑰對密文解密,進(jìn)一步校驗數(shù)據(jù)的完整性#65377;

至此,建立數(shù)據(jù)在工作流中安全流轉(zhuǎn)的過程如圖2所示#65377;

(1)發(fā)送方A向CA機(jī)構(gòu)遞交證書申請,獲得個人證書;

(2)A將報文用MD5或SHA1算法求得消息摘要a;

(3)A用其個人證書中的私鑰對消息摘要進(jìn)行數(shù)字簽名,得到簽名密文;

(4)A將報文#65380;密文(數(shù)字簽名)通過網(wǎng)絡(luò)傳輸?shù)浇邮辗紹;

(5)B通過CA根證書校驗A個人證書的身份合法性與時間有效性,合法則進(jìn)一步校驗數(shù)據(jù);

(6)B求出報文的消息摘要b;

(7)B用A的證書中的公鑰對密文解密,得到消息摘要a;

(8)比較消息摘要a和消息摘要b來確定報文數(shù)據(jù)的完整性;

(9)數(shù)據(jù)真實(shí)且完整,即得到可靠數(shù)據(jù)#65377;

3具體實(shí)施

首先使用Java開發(fā)了B/S的ERP信息管理系統(tǒng)#65377;其核心包含角色與授權(quán)控制#65380;單據(jù)制作與工作流引擎,再結(jié)合AIAK控件#65380;Microsoft的Crypto API及CAPICOM控件,融入數(shù)字證書及簽名技術(shù)#65377;所有校驗工作均在服務(wù)器端實(shí)現(xiàn),使系統(tǒng)能及時準(zhǔn)確地檢測到客戶端和數(shù)據(jù)庫端的數(shù)據(jù)變化#65377;

從領(lǐng)料人填寫出庫單到單據(jù)生效并領(lǐng)走物資,其規(guī)格#65380;單位#65380;數(shù)量及金額等數(shù)據(jù)至關(guān)重要,必須通過系統(tǒng)的安全控制來杜絕循私舞弊的行為#65377;用數(shù)字證書及數(shù)字簽名技術(shù)跟蹤工作流的每一個節(jié)點(diǎn)#65377;如有數(shù)據(jù)竄改的情況發(fā)生,就可以及時準(zhǔn)確地查出弄虛作假者,依法處理#65377;同時,工作流引擎提供回退功能,確保當(dāng)出現(xiàn)錯誤數(shù)據(jù)時立即進(jìn)行事務(wù)回滾,并將流程節(jié)點(diǎn)回退到有效狀況,準(zhǔn)備新的流轉(zhuǎn)#65377;

實(shí)現(xiàn)的關(guān)鍵步驟及代碼如下:

(1)提取單據(jù)中的有效數(shù)據(jù)并求出其消息摘要a#65377;

①在JSP頁面中加載MS的CAPICOM控件

id=\"oCAPICOM\"

codeBase=\"http://download.microsoft.com/download/E/1/8/E18ED99480054377A7D70A8E13025B94/capicom.cab#version=2,0,0,3\"

classid=\"clsid:A996E48CD3DC424489F7AFA33EC60679\"

VIEWASTEXT>

//創(chuàng)建數(shù)字證書存儲對象

var MyStore=new ActiveXObject(\"CAPICOM.Store\"); 

//生成數(shù)字證書對象

var FilteredCertificates=MyStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH,szThumbprint); 

//創(chuàng)建數(shù)字簽名對象

var SignedData=new ActiveXObject(\"CAPICOM.SignedData\"); 

//創(chuàng)建簽名人對象

var Signer=new ActiveXObject(\"CAPICOM.Signer\"); 

//創(chuàng)建Hash數(shù)據(jù)對象

var HashedData=new ActiveXObject(\"CAPICOM.HashedData\"); 

//指定Hash算法為SHA1

HashedData.Algorithm=CAPICOM_HASH_ALGORITHM_SHA1;

②選擇數(shù)字證書

var SelectedCertificate=FilteredCertificates.Select();

③使用腳本語言(JavaScript)提取單據(jù)中的有效數(shù)據(jù)到變量:theData

(2)使用CAPICOM控件對消息摘要進(jìn)行加密,并將報文#65380;摘要a和密文發(fā)送到服務(wù)器#65377;

①求得theData的消息摘要a

HashedData.Hash(theData);

②用個人數(shù)字證書加密摘要a后得到密文:mySignedData

SignedData.Content=HashedData.Value;

var mySignedData=SignedData.Sign(Signer,1, CAPICOM_ENCODE_BASE64);

③提交表單:form.submit()

(3)服務(wù)器端使用AIAK控件從密文中解析出個人證書,調(diào)出服務(wù)器端CA根證書進(jìn)行驗證#65377;用戶證書確認(rèn)有效則進(jìn)一步驗證數(shù)據(jù);否則拋出異常,進(jìn)行事務(wù)回滾將流程回退到上一節(jié)點(diǎn)的有效狀態(tài)#65377;

①接收客戶端提交的數(shù)據(jù),包括報文和密文

String theData=(String) request.getParameter(\"theData\");

String mySignedData=(String) request.getParameter(\"mySignedData\");

②根據(jù)密文創(chuàng)建出ASN1對象,從密文中提取出證書信息#65377;ASN1對象用于解析密文(PKCS7數(shù)據(jù)編碼)并與(DER格式)證書建立聯(lián)系#65377;

ASN1 obj=new ASN1(new ByteArrayInputStream(mySignedData.getBytes());

ASN1Object asn1=(ASN1Object) obj.toASN1Object();

ContentInfo ci=new ContentInfo(asn1); /*從ContentInfo中提取SignedData,從中可分析出客戶端用戶證書與報文摘要a*/

SignedData signedData=(SignedData) ci.getContent(); 

//提取出客戶端用戶證書

X509Certificate userCert=(X509Certificate) signedData.getCertificates()[i];

③從數(shù)據(jù)庫服務(wù)器中取出CA根證書Cert,校驗用戶證書的合法性及時間有效性

userCert.verify(cert.getPublicKey()); //證書合法性校驗

userCert.checkValidity(systemTime); //證書時間有效性校驗

(4)接著從密文中解析出消息摘要a#65377;

signedData.getContent();

(5)對接收到的報文求出摘要b#65377;對比摘要a和摘要b,驗證數(shù)據(jù)的正確性和完全性#65377;

①求出報文摘要b

String dataVerify=SHA1.hex_sha1(theData);

②對比dataVerify和signedData.getContent()

以上就是以某企業(yè)的物資出庫領(lǐng)料單為例,說明數(shù)字簽名技術(shù)輔助工作流引擎控制業(yè)務(wù)的進(jìn)程,如圖3所示#65377;每一步校驗均應(yīng)用了Java的異常處理機(jī)制,一旦錯誤發(fā)生則拋出異常,并立即進(jìn)行事務(wù)回滾,將流程回退到有效節(jié)點(diǎn)狀態(tài),同時在客戶端給出詳盡的提示信息,直至流轉(zhuǎn)成功,實(shí)現(xiàn)工作流狀況的實(shí)時控制#65377;ERP系統(tǒng)后臺可進(jìn)一步采用JAAS(Java驗證和授權(quán)服務(wù))技術(shù)規(guī)范用戶的角色和權(quán)限,使得只有規(guī)定角色與被授權(quán)的用戶才可以訪問和處理某一流程節(jié)點(diǎn),從而讓整個工作流引擎運(yùn)行得更加安全可靠#65377;

4結(jié)束語

工作流引擎技術(shù)是ERP信息系統(tǒng)的運(yùn)轉(zhuǎn)平臺,是企業(yè)具體業(yè)務(wù)的真實(shí)體現(xiàn)#65377;數(shù)字證書及數(shù)字簽名技術(shù)的應(yīng)用保證了業(yè)務(wù)數(shù)據(jù)在流程流轉(zhuǎn)過程中真實(shí)完整,即便有人企圖竄改數(shù)據(jù),也可以及時發(fā)現(xiàn)并作出正確判斷,中止錯誤數(shù)據(jù)繼續(xù)流轉(zhuǎn)#65377;經(jīng)過實(shí)例應(yīng)用,表明此套技術(shù)方案可以保證數(shù)據(jù)的安全傳輸,確保企業(yè)工作高效#65380;順利地進(jìn)行#65377;

本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。

主站蜘蛛池模板: 亚洲欧洲一区二区三区| 国产福利微拍精品一区二区| 成人在线视频一区| 国产无码网站在线观看| 日本不卡免费高清视频| 亚洲日韩久久综合中文字幕| 国产情侣一区| 九九精品在线观看| 日韩成人在线网站| 国产99在线| 亚洲黄网在线| 色综合中文综合网| 国产精品精品视频| 日韩毛片基地| 中文字幕有乳无码| 亚洲欧美日韩视频一区| 久久精品国产在热久久2019| 亚洲男人天堂2020| 亚洲欧洲日产国产无码AV| 午夜啪啪网| 91久久青青草原精品国产| 91丝袜乱伦| 亚洲综合九九| 久久精品无码一区二区国产区| 亚洲色精品国产一区二区三区| 国产女人在线| 欧美国产成人在线| 中文字幕在线不卡视频| 成年人国产视频| 国产91九色在线播放| 亚洲成综合人影院在院播放| 久久动漫精品| 亚洲最大福利网站| 亚洲天堂啪啪| 国产自在线播放| 亚洲第一成年人网站| 久久久久免费精品国产| 国产乱子伦视频三区| 成人亚洲视频| 91久久精品日日躁夜夜躁欧美| 日本一区二区不卡视频| 国产又粗又猛又爽视频| 97视频在线观看免费视频| 亚洲婷婷六月| 久久国产精品波多野结衣| 国产欧美综合在线观看第七页| 一级黄色网站在线免费看| 在线日韩日本国产亚洲| 欧美va亚洲va香蕉在线| 666精品国产精品亚洲| 成年av福利永久免费观看| 亚洲手机在线| 99在线视频免费观看| 这里只有精品国产| 久久频这里精品99香蕉久网址| 亚洲美女操| 欧美成人日韩| 波多野结衣视频网站| 97视频精品全国免费观看| 女人18毛片久久| 国产黄色免费看| 全部无卡免费的毛片在线看| 极品国产在线| 18禁高潮出水呻吟娇喘蜜芽| 一级毛片中文字幕| 国产三级国产精品国产普男人| 精品国产免费第一区二区三区日韩| 亚洲V日韩V无码一区二区| 91久久精品日日躁夜夜躁欧美| 免费不卡在线观看av| 成人无码区免费视频网站蜜臀| 日韩福利在线视频| 欧美视频在线播放观看免费福利资源| 一级毛片免费播放视频| 亚洲狼网站狼狼鲁亚洲下载| 色婷婷色丁香| 无码免费视频| 亚洲一区毛片| 成人国产三级在线播放| 中文无码精品A∨在线观看不卡| 精品少妇人妻无码久久| 伊人狠狠丁香婷婷综合色|