徐世英 孫曉范 王 威


摘要 作為一套完整的 Internet 安全解決方案,PKI技術在電子商務市場被廣泛應用。本文設計并實現了一種基于PKI技術的網上移動購物系統,它將PKI技術與移動通信相結合,對購物信息進行數字簽名加密。此系統實現了移動身份認證服務,確保了購物信息的安全性、完整性和不可否認性。
關鍵詞 PKI;動態口令;購物系統;移動通信;SSL協議
中圖分類號 TP393文獻標識碼 A 文章編號1674-6708(2009)07-0056-02
0 引言
隨著人們越來越多的使用網絡,包括有線網絡和無線網絡,去實體商店的傳統購物方式越來越多的轉變為在網上進行,網上購物這種新興方式有取代傳統購物的趨勢。據新生代市場監測機構2007年的調查,沃爾瑪、家樂福等大型賣場,一個門店一天的平均客流量低于1.5萬人,而淘寶網每天的用戶流量將近900萬人[1]。
為了確保網上信息的安全傳輸,人們進行了多年的研究,目前,被廣泛采用的是公鑰基礎設施(Public Key Infrastructure,PKI)技術。PKI技術采用數字證書管理公鑰,通過第三方的可信任機構—認證中心 (Certificate Authority,CA),把用戶的公鑰和用戶的其他標識信息捆綁在一起,在Internet網上驗證用戶的身份。
1 PKI 及動態口令技術簡介
PKI(Public Key Infrastructure),即“公開密鑰體系”,PKI 是一種基于公開密鑰體制的密鑰管理平臺,通過采用認證技術確保電子合同的完整性和抗抵賴性,通過對信息進行加密確保信息在傳輸過程中的保密性,同時,通過采用基于 PKI/CA 結構及用戶口令,可有效的對系統中的用戶進行身份認證,防止系統中出現非法用戶和偽造信息。PKI技術是信息安全技術的核心,也是電子商務的關鍵和基礎技術。其中,CA是PKI的核心執行機構,是PKI的主要組成部分,業界人士通常稱它為認證中心,它是保證電子商務、電子政務、網上銀行、網上證券等交易的權威性、可信任性和公正性的第三方機構。
動態口令(Dynamic Password),又稱一次性口令(0TP-One Time Password),是相對于傳統的靜態口令而說的。它一般由某種終端設備,根據動態口令生成算法產生的隨動態參數變化而變化的口令。動態口令是變化的密碼,其變化來源于產生密碼的運算因子是變化的。動態口令的生成算法一般都采用雙運算因子,一是用戶身份的識別碼,是固定不變的,如用戶的私有密鑰;二是變動因子[2]。
本文中將用戶已注冊成功的口令作為用戶身份的識別碼,并選定隨機數作為變動因子, 使得每次認證的用戶口令不同,同時,結合 Hellman 算法原理,在認證用戶和 AS 間安全交換一個密鑰。
2 購物系統的實現
2.1 系統結構
傳統網上購物系統的結構非常簡單,如圖 1 所示[3]。
圖 1 傳統網上購物系統的結構圖
用戶通過個人電腦或移動終端的瀏覽器,向購物網站發送購物請求信息,購物網站對購物請求進行相應的響應,完成交易行為。基于PIK技術的網上購物系統的結構,如圖 2 所示。
圖 2 基于 PIK技術的網上購物系統的結構圖
與傳統網上購物系統相比,系統增加了移動身份認證平臺(Key Center),來加強交易的安全性,完整性和不可否認性。移動身份認證平臺包括代理服務器(TR)和認證服務(CA)。代理服務器主要完成截獲用戶發向購物網站平臺認證的連接請求,將其轉發到認證服務器進行用戶的身份認證,它是實現客戶端和認證服務器認證連接轉發的中間環節,當用戶認證成功后為用戶建立訪問購物網站平臺的透明代理。使用代理服務器的主要目的是保證在正常傳輸信息時,實現用戶信息數據庫與認證服務器的分離,充分保證用戶信息的安全。認證服務器主要完成與客戶端的認證工作。各種用戶的身份認證信息和本地的一些安全參數信息,都存放在用戶信息數據庫中。
每一個用戶擁有一個認證令牌,認證令牌主要用于認證服務器發送的隨機動態數字和種子值,通過一個隨機函數生成算法,計算出相應的動態口令,每個隨機數都是唯一的,并且決不重復使用。這樣就保證了每次認證過程均生成一個唯一的與認證令牌對應的不可預測的令牌碼,提供給認證客戶端。認證客戶端將此碼與用戶碼一起提交給認證服務器端, 驗證用戶的身份。
2.2 系統工作流程
在注冊過程完成之后,如果用戶希望訪問購物網站平臺的資源,必須首先通過認證服務器的認證。用戶可以利用認證令牌中的認證信息向Key Center證明自己的身份。客戶端與移動身份認證平臺(KC)之間需要完成,如圖 3 所示的3個步驟以完成兩者之間的身份認證。
圖3 客戶端與移動身份認證平臺之間的認證過程
登陸過程:
當用戶在客戶端登錄并向服務平臺Server發出資源訪問請求時,系統提示用戶輸入用 戶名和口令,并將輸入結果( UserID,Psw)發送給代理服務器。其中客戶端與代理服務器之間采用安全傳輸通道SSL,代理服務器將該認證請求連接轉發到認證服務器,代理服務器和認證服務器之間采用明文傳輸TCP/IP協議。
認證服務器首先驗證用戶名和口令,如果正確,認證服務器和客戶端按照基于動態口令機制的認證協議進行雙向的身份認證。如果不正確,傳回提示用戶重新輸入的信息,讓用戶端重新輸入。
認證過程:
此認證協議的具體認證過程如下:
其中符號:K_pub表示公鑰,K_pri表示私鑰,y為整數、表示用戶注冊的口令的種子值,TS表示時間戳,EK為基于用戶口令的散列碼,Ka,b為由KC生成的a與b間安全交換報文共享密鑰,IDi為I的身份標示,lifetime為生存期。
step 1:User -> CA : EK_Pub_CA [M1;IDuser ;X;TS]
M1 = EK_Pri_user [IDuser ;d]
X=gx mod n /* x為user 選取的一個隨機整數。*/
d=gxy mod n/* y為用戶口令種子值。*/
用戶端將本次的動態密碼d用自己的私鑰加密成數據包M1 ,再同IDuser和x計算得到得 X一并用CA的公鑰加密后發送給CA。發送完畢后,客戶端會將X和d備份,并啟動計時器,若超過一定時間T后仍無收到CA的應答數據包則丟棄X和d ,或在T范圍之內收到CA應答數據包進行驗證后丟棄該隨機數X和d。
CA收到客戶端發過來的認證數據包后,先用自己的私鑰對收到的消息進行解密,得到用用戶私鑰加密的數據包M1,以及IDuser 和 X。CA根據得到的IDuser ,在數據庫中查找對應用戶的公鑰K_pub 。用此公鑰解密M1,得到IDuser 和本次的動態密碼d。CA根據數據庫中對應的本次用戶口令種子值,還原用戶注冊信息,并進行比較。若不同,拒絕客戶端的請求,向客戶端發送拒絕數據包;若相同,接受客戶端的請求,進入第2步。
step 2 : CA -> User : EK_Pub_User [M2;IDuser ; X;R;R1;TS ]
R= YS ⊕ X
R1 = YS⊕ X⊕ y
M2= EK_d[Kuser_TR ; IDTR ; R; R1; Lifetime; Ticket]
Ticket=EK_Pub_TR [KUser_TR ; IDUser ; IDTR ; TS; Lifetime]
CA收到消息后核對客戶端的ID,用與客戶端協商的秘密密鑰解密KUser(X)得到X。CA選擇一個隨機數 x CA向客戶端發送數據包,即將IDUser,IDTR, TS, R,R1,Lifetime,K_user_TR 和令牌ticket用基于本次動態密碼d來加密,而后連同客戶端發送過來的X用客戶端的公鑰K加密,其中Ticket用TR的公鑰加密。 客戶端在范圍之內收到CA應答數據包后,先用自己的私鑰解密得到M2,IDUser 和 X。將X和本身暫存的 X 進行比較,若不等則中斷認證,相等則取出 d 解密M2得到與 TR 的共享密鑰同時用R ⊕ R1得到下一次認證時要用到的新的種子值y,并更新。下一次認證時根據新的種子值y計算動態密碼。 Step3:將認證結果發送給代理服務器,此次認證結束。 當用戶身份為合法用戶時,代理服務器為客戶端發起的連接請求中繼到服務平臺,從而建立客戶端和服務平臺的透明代理,客戶端此時就可以訪問服務平臺的資源了。如果用戶身份為非法用戶,認證失敗,同時客戶端的訪問請求連接被拒絕。 3 結論 本文介紹了基于 PKI技術的網上購物系統,使用 PKI 技術確保了購物信息的安全性、完整性和不可否認性。這樣用戶不需要更換SIM卡,就能方便地確保自己信息的安全,而購物網站則可以通過移動身份認證平臺,來確認購物信息是哪個用戶提交的,讓購物信息具有不可否認性。 參考文獻 [1]http://news.iresearch.cn/0200/20080331/78433.shtml. [2]黃冠利,胡益.基于PKI的數字簽章安全系統設計[J].計算機安全,2008. [3]中廣瑞波公司.PKI-SIM 安全認證卡系統簡要說明.