CAPICOM電子商務應用研究論文

時間:2022-03-16 03:40:00

導語:CAPICOM電子商務應用研究論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

CAPICOM電子商務應用研究論文

摘要電子商務的出現變革了貿易方式,在帶來便利的同時也帶了很多安全隱患,如何構建電子商務的安全性成為商務信息化的研究熱點。分析了電子商務交易模型的安全需求,探討了密碼中間件capicom在安全交易模型中的應用,討論CAPICOM的數據結構和COM對象,指出使用標準接口的密碼中間件能使電子商務應用零開銷地本地化CSP。

關鍵字密碼中間件;電子商務;交易模型;信息安全;CAPICOM

隨著Internet的不斷普及,人們的消費觀念和商務模式也發生了巨大了變化,人們更希望通過網絡的便利來進行網絡采購和交易,從而導致了(ElectronicCommerce)電子商務的出現,并在世界范圍內掀起了一股熱潮。但是,美國密執安大學一個調查機構通過對23000名因特網用戶的調查顯示[1],超過60%的人由于擔心電子商務的安全問題而不愿進行網上購物。因此,研究和分析電子商務的信息安全問題,特別是針對我國國情,充分借鑒國外的先進技術和經驗,開發和研究出具有獨立知識產權的電子商務信息安全產品,成為目前我國電子商務的熱點。

電子商務中的安全隱患可分為如下幾類[2],1.信息截獲和竊取。如果沒有采用加密措施或加密強度不夠,攻擊者可能通過因特網、電話網、電磁波輻射域內安裝截收裝置或在網關和路由器上截獲數據等方式,竊取機密信息,或通過對信息流量和流向、通信頻度和長度等參數的分析,導出有用信息,如銀行帳號、密碼等;2.信息篡改。如果攻擊者熟悉了網絡信息格式,可對網絡傳輸的信息進行中途修改,并發往目的地,從而破壞信息完整性。如篡改信息流的次序,更改信息內容;3.信息假冒。當攻擊者掌握了網絡信息數據規律或解密了商務信息以后,可以假冒合法用戶來欺騙其他用戶,例如偽造電子郵件,虛開網站和商店,發送電子郵件,收定貨單;偽造大量用戶窮盡商家資源,使合法用戶不能正常訪問網絡資源,使有嚴格時間要求的服務不能及時得到響應等;4.交易抵賴。交易抵賴包括多個方面,如發信者事后否認曾經發送過某條信息或內容,收信者事后否認曾經收到過某條消息或內容,購買者做了定貨單不承認,商家賣出的商品因價格差而不承認原有的交易。

電子商務面臨的威脅直接導致了電子商務對于信息安全的需求,也就是實現一個安全電子商務系統務必具備的信息安全品質,主要包括機密性、完整性、認證性和不可抵賴性。1.秘密性(Confidentiality),電子商務作為貿易的一種手段,其信息直接代表著個人、企業或國家的商業機密。傳統紙面貿易都是通過郵寄封裝的信件或通過可靠的通信渠道發送商業報文來達到保守機密的目的。電子商務是建立在一個較為開放的網絡環境上的如Internet,維護商業機密是電子商務全面推廣應用的重要保障。因此,要預防非法的信息存取和信息在傳輸過程中被非法竊取。2.完整性(DataIntegrity),電子商務簡化了貿易過程,減少了人為的干預,同時也帶來維護貿易各方商業信息的完整、統一的問題。由于數據輸入時的意外差錯或欺詐行為,可能導致貿易各方信息的差異。此外,數據傳輸過程中信息丟失、信息重復或信息傳送的次序差異也會導致混亂。因此,要預防對信息的隨意生成、修改和刪除,同時要防止數據傳送過程中信息的丟失和重復并保證信息傳送次序的統一。3.認證性(VerificationofIdentity),網絡電子商務交易系統的特殊性,企業或個人的交易通常都是在虛擬的網絡環境中進行,所以對個人或企業實體進行身份性確認成了電子商務中得很重要的一環。對人或實體的身份進行鑒別,為身份的真實性提供保證,即交易雙方能夠在相互不見面的情況下確認對方的身份。這意味著當某人或實體聲稱具有某個特定的身份時,鑒別服務將提供一種方法來驗證其聲明的正確性。4.不可抵賴性(Non-repudiationofDisputedCharges)。電子商務可能直接關系到貿易雙方的商業交易,如何確定要進行交易的貿易方的確是進行交易所期望的貿易方這一問題則是保證電子商務順利進行的關鍵。在傳統紙面貿易中,雙方通過在交易合同、契約或貿易單據等書面文件上手寫簽名或印章來鑒別貿易伙伴,確定合同、契約、單據的可靠性并預防抵賴行為的發生。這也就是人們常說的"白紙黑字"。在無紙化的電子商務方式下,通過手寫簽名和印章進行貿易方的鑒別已是不可能的。因此,要在交易信息的傳輸過程中為參與交易的個人、企業或國家提供可靠的標識[3]。

中間件是獨立的系統軟件或服務程序,它屏蔽了操作系統和網絡協議的差異,并提供相應的平臺以滿足不同領域的需要。它成功地解決了網絡計算和分布計算環境下資源的通信,共享,管理,控制等問題[3]。其技術本身很復雜,技術標準多,產品多。在Windows技術體系下,應用最為廣泛的是DEC/RPC標準下的COM/DCOM,和DNA標準下的COM+。在諸多行業應用中,信息安全特性已成為軟件的一個重要品質,密碼服務也成為一個重要的構件支撐,基于中間件技術來構造密碼中間件成為當前的主流技術路線,涌現出相當成功的產品,如微軟的CAPICOM,SUN的CryptoJava。

Windows操作系統采用分層的加密體系模型CSP密碼服務提供者(CryptographicServiceProvider)架設系統安全。CSP提供了齊全的具有密碼功能的Win32API函數供程序員調用,稱為CryptoAPI。然而,調用CryptAPI完成密碼操作仍然相當復雜。[5]使用COM,開發人員可以把注意力集中在解決用戶所需要的問題上.而不用關心網絡協議等底層結構的細節。[4]微軟提供了CAPICOM組件,它以COM對象的形式封裝了上述的復雜操作,使用它獲取密碼服務更方便。因為在不同的開發環境中,往往先要對API函數進行某種封裝或轉換,這增加了使用難度,CAPICOM以中間件的形式提供了一個標準的密碼應用層接口,是介于應用與CSP之間的中間層,使得應用與CSP具有邏輯獨立性。

在工作時,CAPICOM按一定順序列檢索CSP。首先檢查缺省CSP是否支持用戶指定的算法及密鑰長度,如果失敗,則搜索系統提供的CSP,并判斷其是否支持指定的算法和密鑰長度,直至遍歷完所有CSP。兩者關系如圖1所示。

安全電子商務交易模型從組成來講一般有以下幾個組件[6]:(1)電子商店作為電子經濟中買賣發生的場所,它從傳統的市場渠道中取得價值。(2)信息中介是內容、信息、知識及經驗的商,能夠成為某一特定電子商務領域增加價值。(3)信用中介是在買賣雙方建立信用的機構。(4)電子商務實施者為其他電子商店或信息中介提供組件、功能及相關服務,使得電子商務得以進行或者進行得更好。(5)基礎設施供應商作為由跨越不同領域機構,如NII(國家信息化設施),PKI(公鑰基礎設施)等,它們來提供網絡應用平臺和安全交易全環境。

從電子商務系統的架構上來分類[6],主要有B2B和B2C。B2B模式下參與的雙方都是企業,特點是定單數量大,平均在75000美元,需要商業洽談,按照固定合同條款和商業規則進行交易。信用開始是依托信用卡,爾后需要更復雜的銀行信用管理系統,基礎設施包括局域網、定制的目錄和流程規則;B2C模式下是顧客直接與商家接觸,特點是定單數量小,平均在75美元,主要是按價目表或者固定價格,屬于沖動購買或者偶爾購買,所以廣告的作用很大。信用依靠消費者信用卡,基礎設施主要是互聯網的鏈接。

僅就交易工作流而言,它有很多業務需求如:客戶管理,商品瀏覽,身份認證,訂單管理,配送和轉賬等,本文當中,重點討論在密碼服務和安全性上的需求,通過實施安全性措施,確保在交易的生命周期當中,在交易信息的運動過程中,敏感信息不會喪失信息安全性。

在交易流程中,證書的操作主要有:證書庫的打開,證書檢索,證書驗證,證書加密數據和數字簽名CryptoAPI只提供了基本的密碼函數,對于數字證書很少涉及,而CAPICOM組件對這些高層應用服務提供了方便的接口。

圖2十六進制形式密文和解密結果

圖3簽名過程

圖4十六進制形式密文和解密結果

WINDOWS平臺中,證書存于證書庫CertStore的結構中,使用時必檢索證書庫,取得證書句柄,獲得證書的基本信息如:有效期,公鑰等,同時,還要對證書的有效性進行驗證。私鑰存于密鑰容器中(KeyContainer),有對應私鑰的證書,還存有私鑰容器的句柄。[4]默認的證書庫有4個:Trust,My,CA,Root,其中My存放了個人的證書,其中還有私鑰容器句柄,Trust存放了通信群體中其它人的證書,僅公鑰。證書的管理必須用到CAPICOM的幾個接口:IStorePtr指向證書庫,ICertificates2Ptr指向證書集合,ICertificatePtr指向證書,三個接口形成操作證書的三級索引。

圖5驗證過程

證書加密實際是用接收方證書的公鑰加密,過程有兩步:用公鑰加密對稱密鑰,用對稱密鑰加密數據如支付的信息:客戶帳號和PIN碼等。CAPICOM定義的對象IenvelopedDataPtr對兩步進行了包裝,對于編程人員是透明的。

⑴定義數據信封

IEnvelopedDataPtrpEncryptIEnvelopedData(__uuidof

(EnvelopedData));

IEnvelopedDataPtrpDecryptIEnvelopedData(__uuidof

(EnvelopedData));

⑵設定算法參數和對稱密鑰長度

CAPICOM對密碼算法的標識標準和密鑰長度進行了定義,以常量形式給出。這里以RC4為例。

pEncryptIEnvelopedData->Algorithm->Name=CAPICOM_ENCRYPTION_ALGORITHM_RC4;

pEncryptIEnvelopedData->Algorithm->KeyLength=CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS;

⑶加密

bstrtemp=SysAllocStringByteLen("HelloCapicom!",14);

_bstr_ta.Assign(bstrtemp);

pEncryptIEnvelopedData->Content=_bstr_ta;bstrciphertext

=pEncryptIEnvelopedData->Encrypt(

CAPICOM_ENCODE_BINARY);

⑷取出密文

bstrtemp是BSTR指針,指向雙字節的字符串,即以兩個Bytes來存一個ASCII字符,_bstr_t類型對雙字節字符串進行了對象裝箱,字節數是字符數據量的兩倍。加密"HelloCapicom!"后,以字符形式看密文則呈亂碼形式。二進制形式則如圖2所示。

PCHARpCiphertext=NULL;pCiphertext

=(PCHAR)bstrciphertext;printf("密文字符流:\n");

PVOIDpchartemp=malloc(24);

for(intk=0;k<bstrciphertext.length()*2;k++)

{if(k%24==0){memcpy((PVOID)pchartemp,pCiphertext,24);

}pCiphertext++;}

⑸解密

pDecryptIEnvelopedData->Decrypt(bstrciphertext);printf("解密后:%s\n",

(PCHAR)pDecryptIEnvelopedData->Content.copy());結果如圖4所示。

簽名是對消息哈希值進行簽名,先算出數據的哈希值,再用簽名者的私鑰對哈希值簽名,通過這個過程來保證訂單信息如商品數量,品名等的完整性和非抵賴性。此步驟中,會檢索MY證書庫的證書,找證書公鑰對應的私鑰的容器句柄,再找到私鑰,這對于程序員是透明的。簽名和數據可以“依附”發送也可“獨立”發送,接收者收到數據和簽名后,重算數據的哈希值,將哈希值和數據的簽名送進驗證運算將會得出驗證結果。CAPICOM組件,用接口ISignedDataPtr和IHashedDataPtr來封裝此功能。

⑴定義哈希對象和設定哈希算法

IHashedDataPtrpIHashedDataPtr(__uuidof(HashedData));

pIHashedDataPtr->Algorithm=

CAPICOM_HASH_ALGORITHM_SHA1。

⑵哈希和取哈希值

哈希對象的哈希值是字符串形式的以十六進制的格式返回,SHA-1算法的哈希值為160位,即20字節,表示成HEX格式一個字節表示為兩個字符,共40個ASCII字符,再用雙字節字符表示。則為40個寬字符,80字節,所以哈希值的字節長度變成了80字節。如圖3所示。

bstrtemp=SysAllocStringByteLen("HelloCapicom!",14);_bstr

_ta.Assign(bstrtemp);

PCHARpchar=NULL;pIHashedDataPtr->Hash(_bstr_ta);

bstrHashValue=pIHashedDataPtr->Value;

⑶簽名

簽名加入時間戳和簽名者信息,還要編碼成一定的格式,有時還加入了簽名者的證書,故簽名消息的長度取決于多個因素。而不只取決簽名者的公鑰長度。如以二進制編碼為格式則為898字節,如圖5所示。

ISignedDataPtrpISignedDataPtr(__uuidof(SignedData));pISignedDataPtr->Content=pIHashedDataPtr->Value;

bstrSignature=pISignedDataPtr->Sign(0,TRUE,CAPICOM

_ENCODE_BINARY);

⑷驗證

pISignedDataPtr->Content=pIHashedDataPtr->Value;

pISignedDataPtr->Verify(bstrSignature,TRUE,

CAPICOM_VERIFY_SIGNATURE_ONLY);

如果驗證不通過則會拋出異常,驗證失敗。如圖3所示。

信息安全如果涉及到國家利益和經濟利益,密碼算法往往需要本地化,而算法模塊CSP的變動會對直接調用CSP的商務應用產生藕合變動,這是開發者所不愿見到的。有了CAPICOM中間件,[7]可以通過本地化CSP,實現本地化的密碼算法,將其設定為默認的CSP,只要其遵照CSP的規范,可以和CAPICOM無縫掛接,而對上層的電子商務交易模型不要做任何修改。做到密碼服務消費和密碼服務生產的分隔與獨立,從而實現CSP的零開銷本地化。文章創新性地將CAPICOM密碼中間件技術和電子商務交易模型相結合,很好地滿足了電子商務的信息安全保密需求,解決應用層安全需求和底層密碼服務模塊本地化之間的藕合矛盾。

參考文獻

1張碩陽等.電子商務交易中的風險來源與風險認知[A].廣東:中山大學出版社,2002:187~196

2張楚等.電子商務與交易安全[A].北京:中國法制出版社289~296

3/library/default.asp?url=/library/en-us/seccrypto/security/setting_the_computer_default_csp.asp

4微計算機信息(高世偉等,基于DCOM技術實現的控制系統,2005,21,1-2,23)

5張楚等.電子商務與交易安全[A].北京:中國法制出版社276~286

6馮登國.2001.密碼工程實踐指南.北京:清華大學出版社.[M]13~15.