智能卡互聯(lián)互通中的密鑰關(guān)系
文章出處:http://www.luckydriving.com 作者: 人氣: 發(fā)表時(shí)間:2012年09月25日
引子
智能卡的互聯(lián)互通是一個(gè)老話題了,最近因?yàn)榕e辦了城市一卡通全國(guó)互聯(lián)互通的會(huì)議而再次被媒體廣泛提起。對(duì)于一卡通是否有必要實(shí)現(xiàn)全國(guó)互聯(lián)互通,能否真正實(shí)現(xiàn)互聯(lián)互通以及該以什么樣的方式來(lái)互聯(lián)互通,在此不作評(píng)論。僅就互聯(lián)互通涉及到的一些密鑰方面的內(nèi)容進(jìn)行一個(gè)簡(jiǎn)單的概括。
智能卡的關(guān)鍵功能就是利用其具備的數(shù)據(jù)加解密和數(shù)據(jù)的安全存儲(chǔ)能力,來(lái)實(shí)現(xiàn)卡片和終端(后臺(tái))之間的身份認(rèn)證,并建立一個(gè)安全的通道,便于數(shù)據(jù)交互,以完成各種應(yīng)用所定義的交易流程。
另外,所謂的互聯(lián)互通多指脫機(jī)交易,可以是跨地區(qū)的互聯(lián)互通,也可以是跨行業(yè)的互聯(lián)互通。對(duì)于聯(lián)機(jī)交易原則上任何時(shí)候都可以通過(guò)網(wǎng)絡(luò)連接到發(fā)卡主體的后臺(tái),不受地域影響,也就不存在互聯(lián)互通的問(wèn)題。
對(duì)稱密鑰及其分散
對(duì)于對(duì)稱密鑰來(lái)說(shuō),加密和解密的密鑰是相同的。也就是說(shuō)要想操作智能卡,利用智能卡實(shí)現(xiàn)某些交易,那么外界的終端或者后臺(tái)必須清楚地知道智能卡里面存儲(chǔ)的密鑰是什么。當(dāng)然最簡(jiǎn)單的方式就是大家都使用相同的密鑰,每張卡片、每個(gè)終端、每個(gè)后臺(tái)都用這個(gè)密鑰,各種交易就能夠順利完成。問(wèn)題是這樣做存在風(fēng)險(xiǎn),只要任何一張卡片的密鑰被破解整個(gè)系統(tǒng)就垮掉了。于是有了“一卡一密”的概念,也就是每張卡片的密鑰各不相同,這樣的話為了保證正常交易,后臺(tái)或者終端就必須把所有卡片的密鑰都存儲(chǔ)在自己的數(shù)據(jù)庫(kù)中。對(duì)于實(shí)際系統(tǒng)而言,這既不現(xiàn)實(shí)也不安全,所以需要進(jìn)行密鑰分散。
密鑰分散的原則就是首先要生成一個(gè)主密鑰,每張卡片的密鑰都是利用卡片自身的唯一信息(比如卡號(hào)或者卡號(hào)再加上地區(qū)行業(yè)的編碼等)和主密鑰進(jìn)行運(yùn)算,最后生成新的密鑰,這個(gè)新密鑰有兩個(gè)特點(diǎn):1)每張卡片的密鑰各不相同,確保一卡一密;2)和卡片的唯一信息具有相關(guān)性,換句話說(shuō)可以通過(guò)卡片的唯一信息結(jié)合主密鑰推導(dǎo)出卡片里存儲(chǔ)的密鑰。這樣只要終端或者后臺(tái)知道這個(gè)主密鑰,就能夠通過(guò)卡片的唯一信息推導(dǎo)出每張卡片的密鑰了,在脫機(jī)交易終端中這個(gè)主密鑰通過(guò)SAM卡來(lái)保存,在后臺(tái)也可以通過(guò)加密機(jī)來(lái)保存。
實(shí)際上如果全國(guó)各地的終端和后臺(tái)系統(tǒng)都存儲(chǔ)這個(gè)主密鑰,而全國(guó)各地發(fā)行的卡片都是依據(jù)這個(gè)主密鑰進(jìn)行分散的,那么自然就是全國(guó)互聯(lián)互通了。當(dāng)然其中還涉及到后臺(tái)的結(jié)算處理密鑰的多級(jí)分散等,實(shí)際情況會(huì)復(fù)雜得多,但是如果單純從對(duì)稱密鑰角度看,互聯(lián)互通不過(guò)如此。
非對(duì)稱密鑰的互聯(lián)互通
上面提到的對(duì)稱密鑰體系中整個(gè)系統(tǒng)的安全全都寄托在主密鑰上,所以對(duì)于SAM卡的發(fā)行和管理也必須有嚴(yán)格的流程來(lái)控制。
非對(duì)稱密鑰算法中加密和解密使用的是不同的密鑰,其中一個(gè)可以公開(kāi)稱作公鑰,另一個(gè)必須保密稱作私鑰。這種非對(duì)稱密鑰算法的特點(diǎn)就是:1)公鑰和私鑰是嚴(yán)格配對(duì)出現(xiàn)的,不同的公鑰一定對(duì)應(yīng)著不同的私鑰,反之亦然。并且不能根據(jù)公鑰推導(dǎo)出私鑰;2)所有知道公鑰的人都可以對(duì)數(shù)據(jù)進(jìn)行加密,但是加密后的信息只有擁有私鑰的人才能解密;3)所有用公鑰能夠正確解密的信息,一定是來(lái)自私鑰的擁有者,具有抗抵賴屬性,私鑰加密后的信息等同于私鑰擁有者的簽名(所以把私鑰的加密過(guò)程也叫做“簽名”,把公鑰的解密過(guò)程也叫做“驗(yàn)簽”)。
如果智能卡采用的是非對(duì)稱密鑰體系,卡片、終端、后臺(tái)不需要一個(gè)統(tǒng)一的主密鑰來(lái)推導(dǎo)每張卡片的密鑰,每張卡片可以有自己的公私鑰對(duì),并且把各自的公鑰數(shù)據(jù)公開(kāi)給參與交易的各方即可完成正常的交易流程。為了保證交易的順利進(jìn)行,必須確保參與交易過(guò)程的各方所出示的公鑰是真實(shí)有效的。于是需要一個(gè)權(quán)威機(jī)構(gòu)(CA)來(lái)負(fù)責(zé)給這些參與方的公鑰出具“蓋章”的證明,也就是生成一個(gè)經(jīng)過(guò)簽名的公鑰證書。這個(gè)簽名是由權(quán)威機(jī)構(gòu)的私鑰來(lái)完成的,大家通過(guò)它的公鑰能夠驗(yàn)證簽名的真?zhèn)?,從而也?yàn)證了這些被簽名的公鑰的真?zhèn)?,于是就能夠保證后續(xù)身份認(rèn)證的順利進(jìn)行。前提是大家都信任這個(gè)權(quán)威機(jī)構(gòu),對(duì)權(quán)威機(jī)構(gòu)公鑰的真實(shí)性不存異議。
那么要實(shí)現(xiàn)互聯(lián)互通,只要卡片、終端、后臺(tái)分別存儲(chǔ)權(quán)威機(jī)構(gòu)的公鑰以及各自的公鑰證書(對(duì)應(yīng)的私鑰是各自秘密存儲(chǔ)的),并且各自的公鑰證書必須經(jīng)過(guò)權(quán)威機(jī)構(gòu)的私鑰來(lái)簽名。在進(jìn)行敏感信息交互之前,先讀出彼此的公鑰證書,并驗(yàn)證簽名,然后就可以建立起彼此可信的安全數(shù)據(jù)通道,完成相關(guān)交易流程。雖然實(shí)際情況并沒(méi)有這么簡(jiǎn)單,但是基本原理就是這些。
后記
簡(jiǎn)而言之,對(duì)于目前的城市一卡通或者社??ǘ?,如果各個(gè)城市都是根據(jù)全國(guó)統(tǒng)一的密鑰進(jìn)行的SAM卡發(fā)行和用戶卡密鑰分散的,毫無(wú)疑問(wèn)可以直接實(shí)現(xiàn)互聯(lián)互通。如果A、B兩個(gè)城市各自根據(jù)自己自定義的主密鑰來(lái)發(fā)行SAM卡和分散用戶卡密鑰,要想實(shí)現(xiàn)二者的互聯(lián)互通則需要它們?cè)诟髯缘慕K端里安裝對(duì)方的SAM卡。