電子商務的安全分析、設計及JAVA實現

時間:2022-03-13 11:28:00

導語:電子商務的安全分析、設計及JAVA實現一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

電子商務的安全分析、設計及JAVA實現

電子商務是交易當事人或參與人利用現代信息技術和計算機網絡(主要是Internet)所進行的各類商業活動,包括電子數據交換、電子郵件、電子資金轉帳等,是一種可能涉及到個人、企業、國家的無紙化數據交換。從國內外電子商務的現狀來看,電子商務是一把雙刃劍,一方面它造就了從傳統商務到現代商務的巨大飛躍,另一方面它也帶來了一些全新問題,如安全問題。從目前實踐證明,安全問題已成電子商務的核心問題和瓶頸問題之一,也是電子商務的客戶和商家所共有的關鍵需求之一。

電子商務安全的內涵及必要性

電子商務的安全,涉及到交易中各種數據的可靠性、完整性和可用性。就整個電子商務系統而言,安全性可以分為4個層次:(1)網絡節點的安全性(2)通信的安全性(3)應用程序的安全性(4)用戶的認證管理(5)安全管理。現分別敘述如下:

圖1:電子商務安全中間件的總體設計框架圖

●網絡節點的安全

網絡節點的安全性是指組成網絡節點的主機、路由器或交換設備及相關軟件的安全性,它處于安全級別的最基層,是網絡的第一道屏障。網絡節點的安全性主要依靠防火墻來保證。防火墻就是一個位于計算機和它所連接的網絡之間的軟件。它可以對流經的網絡通信進行掃描以便過濾掉一些攻擊;可以關閉閑置端口以減少攻擊的可能性;能禁止特定端口的流出通信,封鎖特洛伊木馬;能禁止來自特殊站點的訪問,從而防止來自不明入侵者的所有通信。一個防火墻可以是硬件自身的一部分,因特網連接和計算機都可以插入其中;也可以在一個獨立的機器上運行,成為它背后網絡中所有計算機的和防火墻。為了保證電子商務的安全,可使用獨立安裝防火墻的方法。防火墻可以自行開發,也可以購買商業防火墻。使用方法參考其使用說明書。

●數據通信的安全

數據通信的安全是指數據傳輸過程的安全性。它主要依靠對通信數據進行加密來保證,因而通信鏈路上的數據安全在一定程度上取決于加密的算法和加密的強度。電子商務系統的數據通信主要存在于3個方面:①客戶Browser端與電子商務Web服務器端的通信;②電子商務Web服務器與電子商務DB服務器的通信;③銀行內部網與業務之間的數據通信。其中客戶Browser與電子商務Web服務器之間采用SSL協議來建立安全鏈接。

●應用程序的安全性

各種程序bug都可能導致攻擊,所以應加強程序及系統測試,盡量減少漏洞。在編程之前,要強化系統分析及設計功能,設想各種可能的異常或錯誤,并采取相應對策;使程序中的類或組件盡可能封裝。在測試過程中要加強對邊界值、數據容量、用戶及權限分配、程序碎片、程序后門等環節的測試,尤其要遵循“最小權限原則”,合理設計用戶及權限;緊密跟蹤、嚴格監視系統的運行狀態,及時發現違反安全策略的行為,并及時采取措施予以解決。

●用戶的認證管理

用戶的認證管理用來在網上確認交易各方的身份以及保證交易的不可否認性。電子商務中企業用戶身份認證可以通過服務器CA證書與IC卡相結合來實現。CA證書用來認證服務器的身份,IC卡用來認證企業用戶的身份。個人用戶由于沒有提供交易功能,所以只采用ID號和密碼口令的身份確認機制。

●安全管理

為了確保系統的安全性,除了采用上述技術手段(即“技防”)外,還必須建立嚴格的內部安全機制(即“人防”)。“人防”措施包括:根據最小權限原則,結合分級管理來分配操作權限;嚴格管理內部用戶帳號和密碼;加強用戶的身份確認;對關鍵應用實施跟蹤;建立安全維護日志;后臺自動記錄運行痕跡;對重要數據進行備份。

一個實際電子商務安全項目的設計與實現

作者主持的湖南省教育廳資助項目“電子商務高級中間件的設計與開發”實際項目,采用安全中間件的解決方案,成功地完成了電子商務中業務處理的部分安全問題。所使用的開發平臺為:java(jsp)開發工具+tomcat服務器+SQLServer及access數據庫。其總體設計框架圖如圖1所示。

現將部分安全關鍵技術詳述如下:

●用RMI機制的3層模式結構來封裝加密算法

RMI即RemoteMethodInvocation(遠程方法調用),它提供了針對java對象的分布式計算的一種簡單而直接的模型。RMI使用Java內置的安全機制保證下載執行程序時用戶系統的安全,并使用專門為保護系統免遭惡意小程序侵害而設計的安全管理程序。RMI機制將表示層、處理層和數據層分開,一方面使得并發操作更易被處理,另一方面,使得安全控制更容易實現。RMI架構包括3部分:(1)樁/骨架層Stub/Skeleton;(2)遠程調用層RemoteReferenceLayer;(3)傳輸層TransportLayer。

實現RMI分3步進行:第一步是建立和編譯服務接口。這個接口定義了所有的提供遠程服務的功能;第二步是遠程服務的實現;第三步是使用RMI編譯器rmic來生成樁和框架文件;最后是建立服務器和客戶端。其中接口設計的源代碼如下:

//生成RMI接口的JAVA源代碼

//packagename:rmiinterface.rmi

Packagermiinterface.rmi

importjava.rmi.Remote;

publicinterfaceEncryptextendsRemote{

publicbyte[]Encode(StringsText)

throwsjava.rmi.RemoteException;

publicStringDecode(byte[]sText)

throwsjava.rmi.RemoteException;

}

需要說明的是,這個接口繼承自Remote,每一個定義的方法都必須拋出一個RemoteException異常對象。

●使用SSL加密來實現安全傳輸

SSL(SecureSocketLayer),安全套接字層,位于HTTP層和TCP層之間,用來建立用戶與服務器之間的加密通信,確保所傳遞信息的安全性。SSL是工作在公共密鑰和私人密鑰基礎上的,任何用戶都可以獲得公共密鑰來加密數據,但解密數據必須要通過相應的私人密鑰。

使用SSL安全機制時,首先客戶端與服務器建立連接,服務器把它的數字證書與公共密鑰一并發送給客戶端,客戶端隨機生成會話密鑰,用從服務器得到的公共密鑰對會話密鑰進行加密,并把會話密鑰在網絡上傳遞給服務器,而會話密鑰只有在服務器端用私人密鑰才能解密,這樣,客戶端和服務器端就建立了一個惟一的安全通道。加密解密通常用RSA算法來實現分3步完成:第一步:生成密鑰對;第二步:公鑰加密;第三步:私鑰解密。為簡單起見,這里只列出密鑰對的生成過程,源代碼如下:

//生成密鑰對的JAVA源代碼

publicintgenerateKeyPair(intlength){

BigIntegerp,q,n,d,e,pSub1,qSub1,phi;

BigIntegerdP,dQ,qInv;

intpbitlength=(length+1)/2;

intqbitlength=(length-pbitlength);

e=newBigInteger("65537",10);

//生成素數p,并且使p-1與e互素

for(;;){

p=newBigInteger(pbitlength,50,newSecureRandom());

if(e.gcd(p.subtract(ONE)).equals(ONE))break;

}

for(;;){

//生成素數q,并且使q-1與e互素,與p不相等

for(;;)

{

q=newBigInteger(qbitlength,50,newSecureRandom());

if(e.gcd(q.subtract(ONE)).equals(ONE)&&!p.equals(q))break;

}

//模數n=p*q

n=p.multiply(q);

if(n.bitLength()==length)break;

p=p.max(q);

}

pSub1=p.subtract(ONE);

qSub1=q.subtract(ONE);

phi=pSub1.multiply(qSub1);

d=e.modInverse(phi);

dP=d.remainder(pSub1);

dQ=d.remainder(qSub1);

qInv=q.modInverse(p);

pukParam=newRSAPublicKey(n,e);

pvkParam=newRSAPrivateKey(n,e,d,p,q,dP,dQ,qInv);

return1;

}

以上生成密鑰對的代碼中,生成p、q、e、d、n等數是核心。其算法為:先找出3個數p,q,e,其中p,q是兩個相異的質數,e是與(p-1)(q-1)互質的數,p,q,e這3個數便是PrivateKey;然后找出m,使得em==1mod(p-1)(q-1),再計算n=pq,則m,n這兩個數便是Publickey。運行時,需在地址欄前面輸入“https://”,而不是通常命名用的“”,這表明使用了SSL協議。

●構造數據庫連接池來優化安全穩定地訪問數據庫

在電子商務的交易過程中。可能出現多個用戶購買商品和付款,它們都需要頻繁地訪問數據庫,為了解決多用戶訪問及并發控制,提高用戶訪問速度,保持系統的穩健性,需設計一個數據庫緩沖池。數據庫緩沖池技術是將數據庫的連接進行統一管理的一種機制。它可以顯著改善連入數據庫的速度,而且可以跟蹤連接的狀態,為分析系統的運行狀態提供了參考。連接池的工作原理如圖2所示。源代碼從略。

圖2:連接池工作原理示意圖

結語

電子商務的安全作為電子商務的關鍵需求和核心問題之一,涉及到兩大因素5個層次,即技術因素和管理因素兩大因素;網絡結點的安全、數據通信的安全、公共程序的安全、用戶的認證管理、安全管理等5個層次。本文采用安全中間件的解決方案,通過使用RMI機制、RSA加密算法、數據庫連接池等多種關鍵技術相結合,成功地解決了電子商務交易過程中的安全問題,取得了較好的效果,作為一個實際課題的解決方案,電子商務安全中間件具有一定的應用價值。