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