摘要:為了提高網上書店交易過程的安全性,利用ASP.NET提供的安全技術,構建了基于RSA公鑰密碼體系的安全網上書店系統。在系統中設計了一個CA認證子系統,給交易雙方頒發數字證書,CA對含有公鑰的證書進行數字簽名,使證書無法偽造,用戶使用私鑰對所下訂單進行數字簽名,保證信息的完整性、真實性,從而防止交易抵賴。最后對CA認證子系統的關鍵技術,包括客戶數字證書的生成、訂單的生成給出具體的實現方法。該系統對網上書店的健康發展起到促進作用。
關鍵詞:安全性; 網上書店系統; 數字證書; 數字簽名
中圖分類號:TN91134; TP311文獻標識碼:A文章編號:1004373X(2012)04003503
Security research of online bookstore system based on ASP.net
CHEN Mingzhong
(Shantou Polytechnic College, Shantou 515078, China)
Abstract: In order to improve the security of online bookstore transaction process, a safety online bookstore system based on RSA public key password system was constructed with the security technology provided by ASP.net. A CA certification subsystem was designed in the system to issues digital certificates to both sides in transaction. The digital signature for the certificate with public key is executed by CA to avoid the appearance of any faked certificate. Users order goods with their private keys and make digital signature to ensure the integrity and authenticity of the information, and prevent transaction repudiation. The implementation measures of CA authentication subsystem key technologies, including the generation of digital certificates and customer orders are given. The online bookstore transaction system plays a promoting role in the healthy development of online bookstores.
Keywords: safety; online bookstore system; digital certificate; digital signature
收稿日期:201109260引言
書店擔心讀者提交訂單卻不付款,或收到假訂單;而讀者擔心付款后收不到書,或自己的金融信息被別人竊取等。在傳統的購書過程中,買賣雙方是面對面的,很容易建立起信任關系,但是在網上書店交易過程中,彼此遠隔千山萬水,由于互聯網絡既不安全,也不可信,很難建立起交易雙方的信任。網上書店從最初發展開始,就擺脫不了網絡帶給它的安全問題。
隨著信息化的深入,制約網上書店發展的安全問題更為突出。因此,本文著重在網上書店交易時引入CA認證系統而使交易雙方不能抵賴[1],從而提高網上書店交易過程中的安全性。這將對網上書店的發展起到促進作用。
1ASP.NET提供的安全技術
ASP.NET是Microsoft公司于2000年推出的一種Internet編程技術,是.NET Framework的組成部分,.NET Framework具有兩個主要組件:公共語言運行庫(CLR)和.NET Framework基礎類庫(BCL)。CLR的主要功能是把.NET語言編譯成與機器無關的中間語言MSIL(Microsoft Intermediate Language),然后在執行代碼時再用即時編譯器JIT(Just In Time)將MSIL翻譯成面向機器的二進制代碼。BCL是一個綜合性的、面向對象的和可重用類型的集合,可以使用它開發多種應用程序。
.NET Framework包括兩種支持數字簽名的非對稱算法。一種是RSA算法:RSA支持數據加密和數字簽名;另一種是數字簽名算法(DSA):DSA僅支持數字簽名,不支持數據加密[2]。DSA的應用沒有RSA廣泛。
目前RSA公鑰密碼算法在網絡上廣泛應用于保密通信和數字簽名。RSA算法的安全性是基于數論中大素數分解的困難,所以RSA需采用足夠大的整數。因子分解越困難,密碼就越難以破譯,加密強度就越高。RSA算法如下所述:
1.1作為通信一方的A方生成公鑰及私鑰
(1) 選擇兩素數p,q,這兩個素數一定要保密,且要求一般為100~200十進制數,甚至更大,目的是使解密者難于分解p與q的乘積;計算n=pq。
(2) 計算n的歐拉函數Φ(n)=(p-1)(q-1)(即n的Euler函數)。選擇整數e,使e與Φ(n)互質,且1 (3) 計算d,使d×e=1 mod Φ(n),即求e的逆。然后A方將以下數對作為公鑰及私鑰:公鑰(Public Key):PK=e,n,私鑰(Secret Key):SK=d,n。 1.2加密/解密過程[3] 利用RSA加密,首先需將明文數字化,取長度小于log n位的數字作為明文塊。對于明文塊M和密文塊C,加/解密的形式如下: (1) B方若給A方傳遞秘密信息,則可能用A方產生的公鑰進行加密如下: 加密:C=Me mod n; 此時,由于沒有解密密鑰d,因此即使是加密者B也不能將此密文C再解密為明文M,這就是公鑰密碼的特點。 (2) A方在收到B傳來的信息C后,用其自己的私鑰(也稱秘密鑰)d進行解密如下: 解密:M=Cd mod M; 1.3數字簽名過程 若A方用自己的私鑰對明文進行加密:S=Md mod n,則任何人(知道A方公鑰的人)都可以進行解密,如:M=Se mod n,但是由于只有A方才能將信息M轉變為S,因此S相當于A方對信息M的數字簽名,是RSA最基本和原始的數字簽名方案。這也是RSA既作為數據加密算法,又可以作為數字簽名算法的原因。 相對于散戶而言,有一些網上書店的客戶是長期、業務量大的合作伙伴,比如院校、個體書商、中小型書店等。這些客戶的每筆業務量通常較大,要求網上書店所給予的服務應該是快捷、準確、無誤的。伴隨著業務量的增大,雙方結賬可能并不及時,這就要求這些大的客戶在與網上書店進行電子交易的時候,雙方的認證及信息都不可抵賴是至關重要的。為此,該系統采用ASP.NET作為開發工具,利用.NET提供的安全技術,構建基于RSA公鑰密碼體系的安全網上書店。在網上書店系統中設計了一個CA認證子系統,可以給交易雙方頒發數字證書,并可以對訂單進行數字簽名,從而防止交易抵賴。 2CA認證子系統的設計 網上書店系統劃分為若干個子系統,包括前臺銷售子系統、后臺管理子系統、網上銀行子系統和CA認證子系統[45]。電子證書及其認證系統的設計是網上書店的重要安全保障,本文只討論CA認證子系統的設計與實現。 CA認證子系統是保證書店安全的關鍵,在書店交易中,消費者、商家、銀行都應向CA中心申請數字證書,并在交易中使用數字證書,以確保交易過程中各方身份的真實性,保證信息安全性和交易的不可抵賴性[6]。CA對含有公鑰的證書進行數字簽名,使證書無法偽造,每個用戶可以獲得CA的公開密鑰,驗證任何一張數字證書的數字簽名,從而確定證書是否合法,在這樣的安全體制保證下,消費者就可以放心地在網上購書了[7]。 下面是系統設計的CA認證系統的工作步驟: CA認證子系統的工作包括如下步驟:申請證書、下載訂單、給訂單簽名、更新證書、撤銷證書。 用戶首先下載數字簽名軟件,然后安裝在個人電腦上。在產生密鑰對后,軟件自動向外界傳送公開密鑰。用戶在獲取公開密鑰時,首先向鑒定中心請求數字確認,鑒定中心確認用戶身份后,發出數字確認,同時鑒定中心向數據庫發送確認信息。然后用戶使用私有密鑰對所下訂單簽名,保證信息的完整性、真實性,也使發送方無法否認信息的發送,之后上傳到網上書店;書店方工作人員接收到信息后,使用公開密鑰確認數字簽名,進入數據庫檢查用戶確認信息的狀況;之后數據庫返回用戶的確認信息。如果驗證簽名成功,書店方就對訂單附加一些確認信息,并使用自己的私鑰對信息簽名,然后放到網站上供用戶下載,這就完成了數字簽名過程,可以防止雙方的抵賴。不過,在使用這種技術時,簽名者必須注意保護好私有密鑰,因為它是公開密鑰體系安全的重要基礎。如果密鑰丟失,應該立即報告鑒定中心取消認證,將其列入確認取消列表之中。 3CA認證子系統關鍵技術的實現 3.1客戶數字證書的生成過程[8] (1) 注冊客戶信息 由客戶本身填寫客戶注冊信息,并與網上書店經營方一起提供:主體名稱(SubjectName)、證書注冊日期(CreateDate)、有效期限(ValidDate),包括附加一些雙方約定的信息(AddInfo)等,然后生成惟一的客戶數字證書編碼(SerialNumber)。 (2) 生成客戶惟一RSA公/私鑰對 RSACryptoServiceProvider RSASubject=new RSACryptoServiceProvider(); SubjectPK=RSASubject.ToXmlString(1);//導出公鑰 string SubjectPrivateKey=RSASubject.ToXmlString(true);//導出私鑰 (3) 將信息進行鏈接,以便計算數字摘要算法SHA1 sMSG=證書標識||版本號||證書序列號||發行者名稱||主體名稱||附加信息||建立日期||有效日期||主體公鑰 即算法為: sMSG=\"CA\"+Version.ToString()+SerialNumber.ToString()+IssuerName+SubjectName+AddInfo+CreateDate+ValidDate+SubjectPK; (4) 對鏈接的信息進行數字簽名 ① 發送方將此信息轉換為字節序列; ② 計算數字摘要SHA1,將信息存入內存文件,然后以字節的形式讀出,再計算數字摘要SHA1值; ③ 建立一個發送方RSA加密服務對象,并將自身的私鑰導入; ④ 約定采用SHA1 Hash算法,將數字摘要進行私鑰加密,即數字簽名; (5) 計算各信息段的字符長度,并依次寫入數字證書文件。 至此,整個數字證書文件即告生成。該證書同時在網上書店的服務器上保留一個副本,由于此證書含有客戶的基本信息及公鑰,書店方可憑此證書驗證客戶對信息的數字簽名,客戶方可對書店方的確認信息的數字簽名進行驗證。 3.2訂單的生成[9] 大客戶在生成數字證書之前,已經將自己的信息注冊到網上書店的服務器中。客戶可在任何一臺計算機上登錄,進入自己的訂單填寫界面,用戶在確定所購圖書后,提交訂單。一般情況下,訂單的數量可能較大,為避免不必要的糾紛,以及防止惡意的攻擊、信息變更、偽造假訂單等,在這里要充分利用所簽發數字證書的功能進行驗證,而且雙方都要進行簽名,其基本步驟及協議如下: (1) 用戶打開瀏覽器登錄網站; (2) 填寫訂單信息,由服務器端程序自動生成一份訂單的詳細信息,分別用數據庫的字段形式及文件形式進行存儲; (3) 用戶下載文件形式的訂單信息,并采用生成數字證書時獲得的本用戶的私鑰對此信息進行簽名,將此文件及其簽名鏈接后,上傳至服務器; (4) 網上書店的工作人員登錄進入服務器;檢查大客戶的訂單,并對客戶的訂單信息進行核對及數字簽名的驗證。驗證后,將所回復的信息及對信息的簽名一并放入服務器,讓客戶下載; (5) 客戶下載經店方簽名的信息文件,并進行簽名驗證。通過后,保存此文件,以備以后發生糾紛時作為證據。 4結語 網上書店系統包括前臺銷售子系統、后臺管理子系統、網上銀行子系統和CA認證子系統[10]幾個不可或缺的子系統。在此只討論CA認證子系統的設計與實現。這里將ASP.NET提供的安全技術結合RSA公鑰密碼體系技術構建了安全網上書店,并將CA認證技術應用于網上書店。這里介紹CA證書的實現過程以及應用流程,該研究內容對電子商務安全有促進作用,能夠推動電子商務的發展。 參考文獻 [1]陳流星..NET框架下的電子商務系統安全性研究\\[J\\].商場現代化,2006(7):5051. [2][美]弗里曼 A,瓊斯 A..NET安全編程[M].靳京,譯.北京:清華大學出版社,2007. [3]STALLINGS Wiili,劉玉珍,王麗.密碼編碼學與網絡安全:原理與實踐\\[M\\].北京:電子工業出版社,2005. [4]陳澤燁.我國網上書店現狀發展分析[J].大眾科學,2007(17):3940. [5]尹傳勇,劉壽強.網上書店安全體系結構設計與實現\\[J\\].計算機安全,2005(5):3840. [6]李艷.電子商務信息安全策略研究[J].甘肅科技,2005(4):2627. [7]甘悅.淺議電子商務信息安全體系的構建\\[J\\].西北成人教育學報,2007(6):2127. [8]胡建偉.網絡安全與保密[M].西安:西安電子科技大學出版社,2003. [9]闞曉初.電子商務安全中數據加密技術\\[J\\].計算機教育,2007(9):166168. [10]潘曉勇,張蕾,樊學會.使用數字證書增強RFID系統的通信安全性\\[J\\].電子科技,2010(11):123124.