專利名稱:建立數(shù)據(jù)交互通道的方法和系統(tǒng)、智能卡、服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種建立數(shù)據(jù)交互通道的方法和系統(tǒng)、智能卡、服務(wù)器,尤其是用于在 智能卡和遠(yuǎn)程服務(wù)器間建立遠(yuǎn)程數(shù)據(jù)交互通道的方法、系統(tǒng)、智能卡、服務(wù)器。
背景技術(shù):
近年來,智能卡(如手機(jī)SIM卡、U盾、銀行卡等)的功能迅速發(fā)展,許多智能卡已 經(jīng)可以通過智能卡網(wǎng)絡(luò)服務(wù)器(Smart Card Web Server)與遠(yuǎn)程服務(wù)器進(jìn)行數(shù)據(jù)交互。例 如,通過STK(USAT)或OTA通訊方式,使用(U) SIM卡的手機(jī)用戶可以享受手機(jī)銀行、手機(jī)證 券、網(wǎng)頁瀏覽等功能。因此,在智能卡和服務(wù)器間建立一個安全的數(shù)據(jù)交互通道以保證數(shù)據(jù) 在傳輸過程中的完整性、安全性就顯得十分重要。通常的數(shù)據(jù)交互通道包括握手層和記錄層;握手層主要是建立數(shù)據(jù)交互通道的過 程,用于智能卡和服務(wù)器的相互認(rèn)證,并確定在記錄層中用的傳輸協(xié)議版本、密鑰、向量等 參數(shù);記錄層利用握手層建立的數(shù)據(jù)交互通道傳輸數(shù)據(jù)。在握手層中智能卡和服務(wù)器通 常利用預(yù)存的密鑰進(jìn)行相互認(rèn)證;顯然,一旦該密鑰被盜取,之后的認(rèn)證過程就都不再安全 了。為解決這一問題,可使用一次一密的方式進(jìn)行認(rèn)證,即在智能卡和服務(wù)器中分別設(shè)置相 同的密碼列表,每次認(rèn)證時智能卡和服務(wù)器分別從中選擇相同的密碼進(jìn)行認(rèn)證。由于在一 次一密的認(rèn)證中每次認(rèn)證采用不同的密碼,故即使某次認(rèn)證中密碼被盜,也不會對之后的 認(rèn)證產(chǎn)生影響。發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題現(xiàn)有的一次一密認(rèn)證過程中,智能卡 和服務(wù)器中都要存儲密碼列表,這樣會占用智能卡和服務(wù)器中的大量存儲空間。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種建立數(shù)據(jù)交互通道的方法,其可減少對設(shè)備存儲空間的 占用。為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案—種建立數(shù)據(jù)交互通道的方法,包括智能卡和服務(wù)器交互握手消息,所述智能卡 和服務(wù)器交互握手消息包括在所述智能卡和服務(wù)器使用第一密鑰進(jìn)行一次相互認(rèn)證前更 新所述第一密鑰,所述更新所述第一密鑰具體包括所述智能卡和服務(wù)器同步隨機(jī)數(shù);所述智能卡和服務(wù)器分別用所述隨機(jī)數(shù)和各自存儲的第一密鑰按相同的算法生 成第二密鑰,并分別用所述第二密鑰替代所述第一密鑰。其中,“握手消息”是指在建立數(shù)據(jù)交互通道的過程中用的、除了下述的比較MAC值 (Message Authentication Codes,消息認(rèn)證碼)的消息外的其它全部消息,包括確定記錄 層中的參數(shù)用的消息、服務(wù)器和智能卡進(jìn)行相互認(rèn)證用的消息、更新第一密鑰用的消息等。由于在本發(fā)明實施例的建立數(shù)據(jù)交互通道的方法中,每次認(rèn)證用的密鑰都是由舊 密鑰和隨機(jī)數(shù)生成的,設(shè)備中不用存儲密碼列表,故設(shè)備所需的存儲空間較少。
本發(fā)明的實施例還提供一種智能卡,其所需的存儲空間較少。為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案一種智能卡,包括發(fā)送單元,用于發(fā)送握手消息;接收單元,用于接收握手消息;處理單元,用于處理所述握手消息;密鑰更新單元,用于確定隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰生成第二密 鑰,再用所述第二密鑰替代所述第一密鑰。其中,處理單元可通過處理所述握手消息進(jìn)行認(rèn)證、生成記錄層中用的參數(shù)等。由于在本發(fā)明實施例的智能卡中,每次認(rèn)證用的密鑰都是由舊密鑰和隨機(jī)數(shù)生成 的,智能卡中不用存儲密碼列表,故其所需的存儲空間較少。本發(fā)明的實施例還提供一種服務(wù)器,其所需的存儲空間較少。為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案本發(fā)明的實施例還提供一種服務(wù)器,其所需的存儲空間較少。為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案一種服務(wù)器,包括發(fā)送單元,用于發(fā)送握手消息;接收單元,用于接收握手消息;處理單元,用于處理所述握手消息;密鑰更新單元,用于確定隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰生成第二密 鑰,再用所述第二密鑰替代所述第一密鑰。由于在本發(fā)明實施例的服務(wù)器中,每次認(rèn)證用的密鑰都是由舊密鑰和隨機(jī)數(shù)生成 的,服務(wù)器中不用存儲密碼列表,故其所需的存儲空間較少。本發(fā)明的實施例還提供一種用于建立數(shù)據(jù)交互通道的系統(tǒng),其所需的存儲空間較 少。為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案一種用于建立數(shù)據(jù)交互通道的系統(tǒng),包括智能卡和服務(wù)器,其中,所述智能卡包括發(fā)送單元,用于向所述服務(wù)器發(fā)送握手消息;接收單元,用于接收來自所述服務(wù)器的握手消息;處理單元,用于處理所述握手消息;密鑰更新單元,用于與所述服務(wù)器同步隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密 鑰按第一算法生成第二密鑰,再用所述第二密鑰替代所述第一密鑰;所述服務(wù)器包括發(fā)送單元,用于向所述智能卡發(fā)送握手消息;接收單元,用于接收來自所述智能卡的握手消息;處理單元,用于處理所述握手消息;密鑰更新單元,用于與所述智能卡同步隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密 鑰按第一算法生成第二密鑰,再用所述第二密鑰替代所述第一密鑰。
由于在本發(fā)明實施例的用于建立數(shù)據(jù)交互通道的系統(tǒng)中,每次認(rèn)證用的密鑰都是 由舊密鑰和隨機(jī)數(shù)生成的,設(shè)備中不用存儲密碼列表,故其所需的存儲空間較少。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明實施例一的建立數(shù)據(jù)交互通道的方法的流程圖;圖2為本發(fā)明實施例一的建立數(shù)據(jù)交互通道的方法中更新第一密鑰步驟的流程 圖;圖3為本發(fā)明實施例二的建立數(shù)據(jù)交互通道的方法的過程示意圖;圖4為本發(fā)明實施例三的智能卡的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例的另一種智能卡的結(jié)構(gòu)示意圖;圖6為本發(fā)明實施例四的服務(wù)器的結(jié)構(gòu)示意圖;圖7為本發(fā)明實施例的另一種服務(wù)器的結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例五的用于建立數(shù)據(jù)交互通道的系統(tǒng)的結(jié)構(gòu)示意圖;圖9為本發(fā)明實施例的另一種用于建立數(shù)據(jù)交互通道的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例的技術(shù)方案進(jìn)行清楚、完整 地描述;顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其 它實施例,都屬于本發(fā)明保護(hù)的范圍。實施例一—種建立數(shù)據(jù)交互通道的方法,包括智能卡和服務(wù)器交互握手消息,如圖1所示, 所述智能卡和服務(wù)器交互握手消息包括在所述智能卡和服務(wù)器使用第一密鑰進(jìn)行一次相 互認(rèn)證前更新所述第一密鑰;如圖2所示,所述更新所述第一密鑰具體包括S11、所述智能卡和服務(wù)器同步隨機(jī)數(shù);S12、所述智能卡和服務(wù)器分別用所述隨機(jī)數(shù)和各自存儲的第一密鑰按相同的算 法生成第二密鑰,并分別用所述第二密鑰替代所述第一密鑰。由于在本發(fā)明實施例的建立數(shù)據(jù)交互通道的方法中,每次認(rèn)證用的密鑰都是由舊 密鑰和隨機(jī)數(shù)生成的,設(shè)備中不用存儲密碼列表,故設(shè)備所需的存儲空間較少。同時,傳統(tǒng) 的密碼列表中的密碼個數(shù)顯然有限,在多次認(rèn)證后還是要重復(fù)使用密碼,而本發(fā)明實施例 的建立數(shù)據(jù)交互通道的方法可完全避免這一問題。實施例二本發(fā)明實施例提供一種建立數(shù)據(jù)交互通道的方法,其中智能卡和服務(wù)器中分別預(yù) 設(shè)有相同的16字節(jié)的預(yù)共享密鑰(第一密鑰)、序列數(shù)算法、序列數(shù)初始值等。如圖3所 示,建立數(shù)據(jù)交互通道的方法包括
步驟1、服務(wù)器產(chǎn)生一個8字節(jié)的隨機(jī)數(shù),并將其以數(shù)據(jù)短信的形式發(fā)送給智能 卡。智能卡和服務(wù)器分別對該隨機(jī)數(shù)消息的數(shù)據(jù)做MAC (指服務(wù)器對其發(fā)送的消息的數(shù)據(jù) 做MAC,而智能卡對其接收到的相應(yīng)消息的數(shù)據(jù)做MAC),得到用于下一步MAC運算的中間值。步驟2、智能卡和服務(wù)器分別對該隨機(jī)數(shù)進(jìn)行運算(如MAC運算、哈希運算等)以 得到32字節(jié)的結(jié)果,智能卡和服務(wù)器分別取該結(jié)果的前16字節(jié)用各自的預(yù)共享密鑰采用 3DES CBC算法進(jìn)行加密,得到16字節(jié)的密鑰(第二密鑰),并分別用該密鑰替代各自的預(yù) 共享密鑰(即用該密鑰作為新的預(yù)共享密鑰,也即更新第一密鑰)。步驟3、智能卡發(fā)送客戶請求(ClientHell0)消息給服務(wù)器,內(nèi)容包括智能卡支 持的傳輸協(xié)議和密碼算法、智能卡隨機(jī)數(shù)(32字節(jié))。智能卡和服務(wù)器分別將各自的序列數(shù) 加到客戶請求消息的數(shù)據(jù)中(例如加到客戶請求消息后邊,該加序列數(shù)的操作主要用于避 免消息傳輸順序出現(xiàn)錯誤),之后分別更新各自的序列數(shù)(例如分別將各自的序列數(shù)加1); 智能卡和服務(wù)器再分別對客戶請求消息的數(shù)據(jù)(帶有序列數(shù)的數(shù)據(jù))做MAC得到新的中間 值(即將客戶請求消息的數(shù)據(jù)輸入上一步MAC運算用的MAC函數(shù)中,利用上一步MAC運算 得到的中間值對數(shù)據(jù)進(jìn)行update的MAC運算)。步驟4、服務(wù)器發(fā)送服務(wù)器請求(Serverifello)消息給智能卡,內(nèi)容包括選用的 傳輸協(xié)議和密碼算法(都用于記錄層中)、服務(wù)器隨機(jī)數(shù)(32字節(jié))、對智能卡隨機(jī)數(shù)用預(yù) 共享密鑰(指被替代后的預(yù)共享密鑰,下同)加密后的值。智能卡和服務(wù)器分別對服務(wù)器 請求消息的數(shù)據(jù)做MAC得到新的中間值。步驟5、智能卡用預(yù)共享密鑰解密得智能卡隨機(jī)數(shù)并與自身保存的智能卡隨機(jī)數(shù) 相比較,相同則服務(wù)器認(rèn)證通過。步驟6、服務(wù)器發(fā)送服務(wù)器請求完成(ServerifelloDone)消息給智能卡。智能卡和 服務(wù)器分別對服務(wù)器請求完成消息的數(shù)據(jù)做MAC得到新的中間值。步驟7、智能卡發(fā)送密鑰交換(ClientKeyXchg)消息給服務(wù)器,內(nèi)容包括用預(yù)共 享密鑰分別對服務(wù)器隨機(jī)數(shù)和預(yù)主密鑰(48字節(jié),由智能卡生成)加密后的值。智能卡和 服務(wù)器并分別將各自的序列數(shù)加到密鑰交換消息的數(shù)據(jù)中,再分別將各自的序列數(shù)更新, 并分別對密鑰交換消息的數(shù)據(jù)做MAC得到新的中間值。步驟8、智能卡用預(yù)主密鑰生成主密鑰,并用該主密鑰生成記錄層中用的密鑰、向 量等參數(shù)。服務(wù)器用預(yù)共享密鑰解密得到服務(wù)器隨機(jī)數(shù)和預(yù)主密鑰;再比較解密的服務(wù)器 隨機(jī)數(shù)和自身保存的服務(wù)器隨機(jī)數(shù),相同則智能卡認(rèn)證通過;同時用預(yù)主密鑰按與智能卡 相同的算法生成主密鑰,再用主密鑰生成記錄層中用的密鑰、向量等參數(shù)。步驟9、智能卡發(fā)送密碼改變說明(ChangeCipherSpec)消息給服務(wù)器,內(nèi)容包括 上述的記錄層中用的參數(shù)。智能卡和服務(wù)器并分別將各自的序列數(shù)加到密碼改變說明消息 的數(shù)據(jù)中,再分別將各自的序列數(shù)更新,并分別對密碼改變說明消息的數(shù)據(jù)做MAC得到新 的中間值。步驟10、智能卡發(fā)送完成(Finished)消息給服務(wù)器。智能卡和服務(wù)器并分別將各 自的序列數(shù)加到完成消息的數(shù)據(jù)中,再分別將各自的序列數(shù)更新,并分別對完成消息的數(shù) 據(jù)做MAC得到新的中間值。步驟11、服務(wù)器發(fā)送密碼改變說明消息給智能卡,驗證服務(wù)器和智能卡中生成的用于記錄層的參數(shù)是否相同。智能卡和服務(wù)器分別對密碼改變說明消息的數(shù)據(jù)做MAC得到 新的中間值。步驟12、服務(wù)器發(fā)送完成消息給智能卡。智能卡和服務(wù)器分別對完成消息的數(shù)據(jù) 做MAC,得到最終的MAC值(即將完成消息的數(shù)據(jù)輸入上述MAC函數(shù)中,用最新的中間值進(jìn) 行final運算,使函數(shù)輸出最終的MAC值結(jié)果)。步驟13、智能卡用AES算法和預(yù)共享密鑰加密其中的最終MAC值,并將加密結(jié)果發(fā) 送給服務(wù)器。步驟14、服務(wù)器用預(yù)共享密鑰解密接收到的加密的MAC值,并比較解密的MAC值與 自身存儲的最終MAC值,如相同則表明上述過程中傳輸?shù)南]有被篡改。步驟15、服務(wù)器用AES算法和預(yù)共享密鑰加密其存儲的最終MAC值,并將加密結(jié)果 發(fā)送給智能卡。步驟16、智能卡用預(yù)共享密鑰解密接收到的加密的MAC值,并比較解密的MAC值與 自身存儲的最終MAC值,如相同則表明上述過程中傳輸?shù)南]有被篡改。由于智能卡和 服務(wù)器中的MAC值是通過對多條握手消息的數(shù)據(jù)逐一進(jìn)行MAC運算而得到的,因此如果其 中任意一條握手消息發(fā)生錯誤或被篡改(即服務(wù)器和智能卡中的該條消息不同),則此后 服務(wù)器和智能卡中算出的所有中間值和MAC值都會不同,這樣通過對MAC值進(jìn)行比較就可 驗證握手過程中傳輸?shù)娜肯⒌恼_性。顯然,上述建立數(shù)據(jù)交互通道的方法可進(jìn)行許多本領(lǐng)域技術(shù)人員公知的變化,例 如可只對部分消息做MAC或根本不做MAC ;可進(jìn)行多次MAC值比較;比較MAC值時可不經(jīng) 加密而直接傳輸;在智能卡接收/服務(wù)器發(fā)送消息時也可進(jìn)行加序列數(shù)的操作,也可完全 不進(jìn)行加序列數(shù)的操作;序列數(shù)可按其它方式加到消息數(shù)據(jù)中(如加到消息前邊或與消息 混編);可用不同的算法生成預(yù)共享密鑰;可用不同的具體方法利用預(yù)共享密鑰進(jìn)行相互 認(rèn)證;部分消息的內(nèi)容、發(fā)送順序、加密情況可變化(例如可先發(fā)送客戶請求消息再發(fā)送 隨機(jī)數(shù)消息,或也可一同發(fā)送隨機(jī)數(shù)消息與客戶請求消息,或可將隨機(jī)數(shù)消息加密后再發(fā) 送);可選用不同的密鑰位數(shù)、隨機(jī)數(shù)位數(shù);各步驟可采用不同的具體算法、密鑰等。實施例三本發(fā)明實施例提供一種智能卡11,如圖4所示,其包括發(fā)送單元12,用于發(fā)送握手消息;接收單元13,用于接收握手消息;處理單元14,用于處理所述握手消息;密鑰更新單元15,用于確定隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰生成第二 密鑰,再用所述第二密鑰替代所述第一密鑰??蛇x的,如圖5所示,本發(fā)明實施例的智能卡11還可包括MAC運算單元16,用于對所述握手消息的數(shù)據(jù)做MAC運算以得到第一MAC值;其中 所述對所述握手消息的數(shù)據(jù)做MAC運算以得到第一 MAC值包括對一條所述握手消息的數(shù) 據(jù)做MAC運算,并保存所得的中間值,以用于對下一條所述握手消息的數(shù)據(jù)做MAC運算;比較單元17,用于比較所述第一 MAC值和由所述接收單元13接收的第二 MAC值;序列數(shù)更新單元18,用于生成并更新序列數(shù),并將所述序列數(shù)加到所述握手消息 的數(shù)據(jù)中。
9
由于在本發(fā)明實施例的智能卡中,每次認(rèn)證用的密鑰都是由舊密鑰和隨機(jī)數(shù)生成 的,智能卡中不用存儲密碼列表,故其所需的存儲空間較少。實施例四本發(fā)明實施例提供一種服務(wù)器21,如圖6所示,其包括發(fā)送單元22,用于發(fā)送握手消息;接收單元23,用于接收握手消息;處理單元24,用于處理所述握手消息;密鑰更新單元25,用于確定隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰生成第二 密鑰,再用所述第二密鑰替代所述第一密鑰??蛇x的,如圖7所示,本發(fā)明實施例的服務(wù)器21還可包括MAC運算單元26,用于對所述握手消息的數(shù)據(jù)做MAC運算以得到第一 MAC值;其中 所述對所述握手消息的數(shù)據(jù)做MAC運算以得到第一 MAC值包括對一條所述握手消息的數(shù) 據(jù)做MAC運算,并保存所得的中間值,以用于對下一條所述握手消息的數(shù)據(jù)做MAC運算;比較單元27,用于比較所述第一 MAC值和由所述接收單元23接收的第二 MAC值;序列數(shù)更新單元28,用于生成并更新序列數(shù),并將所述序列數(shù)加到所述握手消息 的數(shù)據(jù)中。由于在本發(fā)明實施例的服務(wù)器中,每次認(rèn)證用的密鑰都是由舊密鑰和隨機(jī)數(shù)生成 的,服務(wù)器中不用存儲密碼列表,故其所需的存儲空間較少。實施例五本發(fā)明實施例提供一種用于建立數(shù)據(jù)交互通道的系統(tǒng),如圖8所示,其包括智能 卡11和服務(wù)器21,其中,所述智能卡11包括發(fā)送單元12,用于向所述服務(wù)器21發(fā)送握手消息;接收單元13,用于接收來自所述服務(wù)器21的握手消息;處理單元14,用于處理所述握手消息;密鑰更新單元15,用于與所述服務(wù)器21同步隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第 一密鑰按第一算法生成第二密鑰,再用所述第二密鑰替代所述第一密鑰;所述服務(wù)器21包括發(fā)送單元22,用于向所述智能卡11發(fā)送握手消息;接收單元23,用于接收來自所述智 卡11的握手消息;處理單元24,用于處理所述握手消息;密鑰更新單元25,用于與所述智能卡11同步隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第 一密鑰按第一算法生成第二密鑰,再用所述第二密鑰替代所述第一密鑰。可選的,如圖9所示,在本發(fā)明實施例的用于建立數(shù)據(jù)交互通道的系統(tǒng)中,智能卡 11還可包括MAC運算單元16,用于與所述服務(wù)器21同步地對所述握手消息的數(shù)據(jù)做MAC運算 以得到智能卡MAC值;其中所述與所述服務(wù)器21同步地對所述握手消息的數(shù)據(jù)做MAC運算 以得到智能卡MAC值包括對一條所述握手消息的數(shù)據(jù)做MAC運算,并保存所得的中間值, 以用于對下一條所述握手消息的數(shù)據(jù)做MAC運算;
比較單元17,用于比較所述智能卡MAC值和由所述接收單元13接收的服務(wù)器MAC 值;序列數(shù)更新單元18,用于按第二算法與所述服務(wù)器21同步地生成并更新序列數(shù), 并將所述序列數(shù)加到所述握手消息的數(shù)據(jù)中;所述服務(wù)器21還包括MAC運算單元26,用于與所述智能卡11同步地對所述握手消息的數(shù)據(jù)做MAC運算 以得到服務(wù)器MAC值,其中所述與所述智能卡11同步地對所述握手消息的數(shù)據(jù)做MAC運算 以得到服務(wù)器MAC值包括對一條所述握手消息的數(shù)據(jù)做MAC運算,并保存所得的中間值, 以用于對下一條所述握手消息的數(shù)據(jù)做MAC運算;比較單元27,用于比較所述服務(wù)器MAC值和由所述接收單元23接收的智能卡MAC 值;序列數(shù)更新單元28,用于按第二算法與所述智能卡11同步地生成并更新序列數(shù), 并將所述序列數(shù)加到所述握手消息的數(shù)據(jù)中。由于在本發(fā)明實施例的用于建立數(shù)據(jù)交互通道的系統(tǒng)中,每次認(rèn)證用的密鑰都是 由舊密鑰和隨機(jī)數(shù)生成的,設(shè)備中不用存儲密碼列表,故其所需的存儲空間較少。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機(jī)程序 產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實 施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī) 可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn) 品的形式。本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算 機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能 的裝置。這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖 一個方框或多個方框中指定的功能的步驟。盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造 性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu) 選實施例以及落入本申請范圍的所有變更和修改。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng) 涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
一種建立數(shù)據(jù)交互通道的方法,包括智能卡和服務(wù)器交互握手消息,其特征在于,所述智能卡和服務(wù)器交互握手消息包括在所述智能卡和服務(wù)器使用第一密鑰進(jìn)行一次相互認(rèn)證前更新所述第一密鑰,所述更新所述第一密鑰具體包括所述智能卡和服務(wù)器同步隨機(jī)數(shù);所述智能卡和服務(wù)器分別用所述隨機(jī)數(shù)和各自存儲的第一密鑰按相同的算法生成第二密鑰,并分別用所述第二密鑰替代所述第一密鑰。
2.根據(jù)權(quán)利要求1所述的建立數(shù)據(jù)交互通道的方法,其特征在于,所述智能卡和服務(wù) 器同步隨機(jī)數(shù)包括下列兩步驟中的一個所述智能卡產(chǎn)生隨機(jī)數(shù)并將其發(fā)送給所述服務(wù)器;所述服務(wù)器產(chǎn)生隨機(jī)數(shù)并將其發(fā)送給所述智能卡。
3.根據(jù)權(quán)利要求1所述的建立數(shù)據(jù)交互通道的方法,其特征在于,所述智能卡和服務(wù) 器分別用所述隨機(jī)數(shù)和各自存儲的第一密鑰按相同的算法生成第二密鑰包括所述智能卡和服務(wù)器分別對所述隨機(jī)數(shù)做MAC運算得到隨機(jī)數(shù)MAC值,之后分別用所 述第一密鑰對所述隨機(jī)數(shù)MAC值加密,并將加密結(jié)果作為第二密鑰。
4.根據(jù)權(quán)利要求1至3中任意一項所述的建立數(shù)據(jù)交互通道的方法,其特征在于,還包括所述智能卡和服務(wù)器分別同步地對所述握手消息的數(shù)據(jù)做MAC運算以分別得到MAC 值;其中所述智能卡和服務(wù)器分別同步地對所述握手消息的數(shù)據(jù)做MAC運算以分別得到 MAC值包括所述智能卡和服務(wù)器分別同步地對一條所述握手消息的數(shù)據(jù)做MAC運算,并分 別保存所得的中間值,以用于分別對下一條所述握手消息的數(shù)據(jù)做MAC運算;比較所述智能卡和服務(wù)器中的MAC值。
5.根據(jù)權(quán)利要求4所述的建立數(shù)據(jù)交互通道的方法,其特征在于,至少有一條所述握 手消息的數(shù)據(jù)中包括序列數(shù),所述序列數(shù)由所述智能卡和服務(wù)器按相同的算法分別同步地 生成并加到所述握手消息的數(shù)據(jù)中。
6.根據(jù)權(quán)利要求5所述的建立數(shù)據(jù)交互通道的方法,其特征在于,還滿足下列兩條件 中的至少一個所述智能卡每發(fā)送一條握手消息后,所述智能卡將其生成的所述序列數(shù)加入其發(fā)送的 所述握手消息的數(shù)據(jù)中,所述服務(wù)器將其生成的所述序列數(shù)加入其接收到的所述握手消息 的數(shù)據(jù)中;所述智能卡和服務(wù)器再分別對各自的所述序列數(shù)進(jìn)行更新;所述服務(wù)器每發(fā)送一條握手消息后,所述服務(wù)器將其生成的所述序列數(shù)加入其發(fā)送的 所述握手消息的數(shù)據(jù)中,所述智能卡將其生成的所述序列數(shù)加入其接收到的所述握手消息 的數(shù)據(jù)中;所述智能卡和服務(wù)器再分別對各自的所述序列數(shù)進(jìn)行更新。
7.一種智能卡,包括發(fā)送單元,用于發(fā)送握手消息;接收單元,用于接收握手消息;處理單元,用于處理所述握手消息;其特征在于,所述智能卡還包括密鑰更新單元,用于確定隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰生成第二密鑰,再 用所述第二密鑰替代所述第一密鑰。
8.根據(jù)權(quán)利要求7所述的智能卡,其特征在于,還包括MAC運算單元,用于對所述握手消息的數(shù)據(jù)做MAC運算以得到第一 MAC值;其中所述 對所述握手消息的數(shù)據(jù)做MAC運算以得到第一 MAC值包括對一條所述握手消息的數(shù)據(jù)做 MAC運算,并保存所得的中間值,以用于對下一條所述握手消息的數(shù)據(jù)做MAC運算; 比較單元,用于比較所述第一 MAC值和由所述接收單元接收的第二 MAC值; 序列數(shù)更新單元,用于生成并更新序列數(shù),并將所述序列數(shù)加到所述握手消息的數(shù)據(jù)中。
9.一種服務(wù)器,包括發(fā)送單元,用于發(fā)送握手消息; 接收單元,用于接收握手消息; 處理單元,用于處理所述握手消息; 其特征在于,所述服務(wù)器還包括密鑰更新單元,用于確定隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰生成第二密鑰,再 用所述第二密鑰替代所述第一密鑰。
10.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于,還包括MAC運算單元,用于對所述握手消息的數(shù)據(jù)做MAC運算以得到第一 MAC值;其中所述 對所述握手消息的數(shù)據(jù)做MAC運算以得到第一 MAC值包括對一條所述握手消息的數(shù)據(jù)做 MAC運算,并保存所得的中間值,以用于對下一條所述握手消息的數(shù)據(jù)做MAC運算; 比較單元,用于比較所述第一 MAC值和由所述接收單元接收的第二 MAC值; 序列數(shù)更新單元,用于生成并更新序列數(shù),并將所述序列數(shù)加到所述握手消息的數(shù)據(jù)中。
11.一種用于建立數(shù)據(jù)交互通道的系統(tǒng),包括智能卡和服務(wù)器,其特征在于, 所述智能卡包括發(fā)送單元,用于向所述服務(wù)器發(fā)送握手消息; 接收單元,用于接收來自所述服務(wù)器的握手消息; 處理單元,用于處理所述握手消息;密鑰更新單元,用于與所述服務(wù)器同步隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰按 第一算法生成第二密鑰,再用所述第二密鑰替代所述第一密鑰; 所述服務(wù)器包括發(fā)送單元,用于向所述智能卡發(fā)送握手消息; 接收單元,用于接收來自所述智能卡的握手消息; 處理單元,用于處理所述握手消息;密鑰更新單元,用于與所述智能卡同步隨機(jī)數(shù),并用所述隨機(jī)數(shù)和存儲的第一密鑰按 第一算法生成第二密鑰,再用所述第二密鑰替代所述第一密鑰。
12.根據(jù)權(quán)利要求11所述的用于建立數(shù)據(jù)交互通道的系統(tǒng),其特征在于, 所述智能卡還包括MAC運算單元,用于與所述服務(wù)器同步地對所述握手消息的數(shù)據(jù)做MAC運算以得到智 能卡MAC值;其中所述與所述服務(wù)器同步地對所述握手消息的數(shù)據(jù)做MAC運算以得到智能 卡MAC值包括對一條所述握手消息的數(shù)據(jù)做MAC運算,并保存所得的中間值,以用于對下一條所述握手消息的數(shù)據(jù)做MAC運算;比較單元,用于比較所述智能卡MAC值和由所述接收單元接收的服務(wù)器MAC值; 序列數(shù)更新單元,用于按第二算法與所述服務(wù)器同步地生成并更新序列數(shù),并將所述 序列數(shù)加到所述握手消息的數(shù)據(jù)中; 所述服務(wù)器還包括MAC運算單元,用于與所述智能卡同步地對所述握手消息的數(shù)據(jù)做MAC運算以得到服 務(wù)器MAC值,其中所述與所述智能卡同步地對所述握手消息的數(shù)據(jù)做MAC運算以得到服務(wù) 器MAC值包括對一條所述握手消息的數(shù)據(jù)做MAC運算,并保存所得的中間值,以用于對下 一條所述握手消息的數(shù)據(jù)做MAC運算;比較單元,用于比較所述服務(wù)器MAC值和由所述接收單元接收的智能卡MAC值; 序列數(shù)更新單元,用于按第二算法與所述智能卡同步地生成并更新序列數(shù),并將所述 序列數(shù)加到所述握手消息的數(shù)據(jù)中。
全文摘要
本發(fā)明提供一種建立數(shù)據(jù)交互通道的方法和系統(tǒng)、智能卡、服務(wù)器,屬于數(shù)據(jù)交互技術(shù)領(lǐng)域,可解決現(xiàn)有的建立數(shù)據(jù)交互通道的方法占用設(shè)備的存儲空間過大的問題。本發(fā)明的建立數(shù)據(jù)交互通道的方法包括智能卡和服務(wù)器更新第一密鑰后用第一密鑰進(jìn)行相互認(rèn)證,其中更新第一密鑰包括智能卡和服務(wù)器同步隨機(jī)數(shù);智能卡和服務(wù)器分別用隨機(jī)數(shù)和存儲的第一密鑰按相同的算法生成第二密鑰,并分別用第二密鑰替代所述第一密鑰。本發(fā)明的智能卡和服務(wù)器包括發(fā)送單元、接收單元、處理單元、密鑰更新單元。本發(fā)明的用于建立數(shù)據(jù)交互通道的系統(tǒng)包括上述智能卡和服務(wù)器。本發(fā)明可用于建立遠(yuǎn)程數(shù)據(jù)交互通道。
文檔編號H04L29/06GK101895538SQ20101022254
公開日2010年11月24日 申請日期2010年6月30日 優(yōu)先權(quán)日2010年6月30日
發(fā)明者孫婉麗, 張楠 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司