CPU卡應(yīng)用方案和密碼管理技術(shù)
本文以LEGIC的CPU卡應(yīng)用方案——“卡中卡”為例,對(duì)CPU卡應(yīng)用中的加密算法進(jìn)行了綜合性介紹,指出基于通用加密方法的CPU系統(tǒng)的安全性也存在一定的安全隱患。建議CPU卡應(yīng)用時(shí)選用通過安全認(rèn)證(GP,EAL+),最好是采用AES加密方法的CPU卡技術(shù);在COS的選擇上,最好采用具有通訊安全認(rèn)證的系統(tǒng),以及最好采用JAVA基礎(chǔ)的COS,如JCOP等。
一、端到端的安全性
在整個(gè)讀卡的過程中,LEGIC提供的CPU卡應(yīng)用方案,不單從最前端的卡片上為數(shù)據(jù)保密,到最終把讀取的數(shù)據(jù)從讀卡器發(fā)出去的過程中,都有非常嚴(yán)密的保護(hù)。圖1是卡片到數(shù)據(jù)在空中的傳輸,到讀卡器收集數(shù)據(jù),到讀卡器把數(shù)據(jù)傳輸?shù)囊粋€(gè)點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)安全示意圖。
圖1
1、卡片內(nèi)的數(shù)據(jù)保護(hù)
該CPU卡獨(dú)有的MTSC(主令牌系統(tǒng))是一個(gè)密鑰管理系統(tǒng)。而每個(gè)令牌內(nèi)都存有一個(gè)密鑰基因。保護(hù)數(shù)據(jù)的密鑰是由密鑰基因加上卡片的UID號(hào),通過運(yùn)算程式,在卡片初始化的過程中而產(chǎn)生的。所以卡片經(jīng)過初始化后,就建立了“一卡一密”和“一扇一密”來保護(hù)扇段內(nèi)的數(shù)據(jù)。采用的加密方法,除了通用的DES、3DES、SHA-1之外,也有新的CPU卡應(yīng)用中采用AES加密方法。由于系統(tǒng)提供的讀頭及CPU卡上應(yīng)用程序,并支持在線更新,安全保障有了保證。
系統(tǒng)不單對(duì)卡片內(nèi)的數(shù)據(jù)作出保護(hù),如應(yīng)用需要的話,就連公開的序列號(hào)(UID)也可以進(jìn)行加密保護(hù)。這樣就可保證UID的唯一性,也同時(shí)增強(qiáng)安全性。
系統(tǒng)雖然應(yīng)用了多樣化密鑰(DiversifyKey)的概念去保護(hù)卡內(nèi)的數(shù)據(jù),但每一種芯片卡的密鑰運(yùn)算程式都不一樣。這對(duì)“黑客”而言,破解一種芯片的密鑰運(yùn)算方法,不代表同時(shí)把其他種類的芯片一起解破,實(shí)際上,他又要從頭開始。除了傳統(tǒng)高安全的邏輯加密技術(shù)之外,寫在CPU卡內(nèi)的數(shù)據(jù)不單只靠COS的密鑰保護(hù),同時(shí)也保護(hù)自己的數(shù)據(jù),這樣不只更安全,而且不會(huì)和其他應(yīng)用發(fā)生沖突,這也是CPU卡應(yīng)用上的獨(dú)到之處。
2、讀卡器和卡片之間的數(shù)據(jù)傳輸
所有讀卡器和卡片在通訊開始時(shí),都會(huì)通過一個(gè)鑒證程序來確保在讀卡器前面的卡片是不是一張真正的CPU卡片,而非“克隆卡”。這樣做的好處是,可以防止有人嘗試盜取空中傳輸數(shù)據(jù)的企圖。
讀卡器和卡片之間的通訊是絕對(duì)不會(huì)把保護(hù)數(shù)據(jù)的密鑰在空中傳輸,這是為了確保密鑰的安全性。
所有數(shù)據(jù)的傳輸都可選用自有的加密方法,也可以選用市場(chǎng)上通用的DES、3DES或AES(只在AFS4096上實(shí)現(xiàn))的加密方法。這樣做的好處是,即使數(shù)據(jù)在傳輸中被盜取,也無法解開數(shù)據(jù)本身的內(nèi)容。
所有數(shù)據(jù)的傳輸都可以加驗(yàn)證功能(CRCCheck),這樣也確保了數(shù)據(jù)傳輸?shù)姆€(wěn)定性以及可靠性。
3、讀卡器的安全性
CPU卡的讀卡器都有自動(dòng)消除令牌功能,以配合讀卡器一經(jīng)非法打開,存儲(chǔ)的令牌將自動(dòng)消除。這相對(duì)用PSAM卡儲(chǔ)存密鑰要安全得多。因?yàn)槿f一坐卡器或POS終端被盜,PSAM卡也會(huì)一起被盜?,F(xiàn)時(shí)的PSAM卡技術(shù)和對(duì)應(yīng)的DES算法被廣泛應(yīng)用,但它的安全性一直存在爭論。其一,DES作為lucifer算法的改進(jìn)版本,但卻從lucifer算法的密碼長度128位,變成了56位。56位的密碼應(yīng)該不足以抵御窮舉攻擊。其二,DES內(nèi)部結(jié)構(gòu)中至關(guān)重要的S盒的設(shè)計(jì)標(biāo)準(zhǔn)是保密的,無法確信真是安全。而密碼相關(guān)信息存于芯片內(nèi)部,安全性更好。
CPU卡的讀卡器需接受相關(guān)令牌的授權(quán)才可對(duì)相關(guān)的卡片作出讀寫操作,無需進(jìn)行密碼的傳遞。授權(quán)卡是實(shí)物形式,可以授權(quán)及取回,從而減少管理風(fēng)險(xiǎn)。
4、讀卡器到電腦通訊安全
讀寫器到電腦之間的通訊,還可以采用鑒證及加密來實(shí)現(xiàn)數(shù)據(jù)保護(hù)。其實(shí)現(xiàn)與無線接口的三次認(rèn)證類似,不再詳述。以上所有不同的安全功能,都在技術(shù)基層上增加了本身的復(fù)雜性,相對(duì)的也增加了技術(shù)本身的抗破解能力。
二、密碼管理系統(tǒng)
密碼管理一般包括密碼生成、密碼分散、密碼傳遞,下面的密碼管理是建設(shè)部的密碼管理的介紹。
密鑰卡中新密鑰的產(chǎn)生主要有兩類方式:即直接在密鑰卡中產(chǎn)生新密鑰;在其它安全設(shè)備中產(chǎn)生新密鑰,然后裝載到密鑰卡中。產(chǎn)生新密鑰的數(shù)據(jù),可以是碼單、密鑰種子等形式。碼單實(shí)際上是密鑰種子的一種形式,它將種子數(shù)據(jù)分成幾部分,分別由不同的人控制,這樣可以提高系統(tǒng)的安全性。
不同的應(yīng)用密鑰是根據(jù)加密算法進(jìn)行分散運(yùn)算取得的。經(jīng)過從種子數(shù)據(jù)、到應(yīng)用主密鑰、地區(qū)分密鑰、卡分散密鑰等多層次逐級(jí)分散。密鑰分散的目的,即使某個(gè)子密鑰泄露了,那也不會(huì)威脅管理主密鑰的安全,因?yàn)闊o法從子密鑰和分散數(shù)據(jù)推導(dǎo)出主密鑰,從而提高了系統(tǒng)的安全性,降低了安全風(fēng)險(xiǎn)和管理成本。
密碼傳輸過程中,用傳遞密碼來保護(hù)其安全性。
從密碼管理系統(tǒng)的各環(huán)節(jié)不難看出,其管理復(fù)雜程序是很大的,而且主要依靠人或制度來管理。還要使用專用的加密機(jī)。例如商密管理?xiàng)l例規(guī)定,泄露商用密碼技術(shù)秘密、非法攻擊商用密碼或者利用商用密碼,從事危害國家的安全和利益的活動(dòng),情節(jié)嚴(yán)重,構(gòu)成犯罪的,依法追究刑事責(zé)任。
密碼管理方法除了建設(shè)部用的加密機(jī)來管理密碼外,還有采用物理化的密碼管理方法。只要實(shí)物管理好令牌(實(shí)物卡),就能保護(hù)好系統(tǒng)的安全性。
三、主令牌系統(tǒng)
該CPU卡應(yīng)用方案,對(duì)每個(gè)合作伙伴發(fā)出的令牌都是全世界唯一的。所以,從每一個(gè)令牌所產(chǎn)生的所有子令牌,也是全世界唯一的。每一個(gè)令牌都可以生成256個(gè)子令牌,每個(gè)子令牌又可以生成256個(gè)子子令牌,依此類推,最多可生成12層深。這就是一個(gè)很大的主令牌系統(tǒng),其結(jié)構(gòu)如圖2所示。
圖2
·每一個(gè)子令牌可以編成3種不同功能的授權(quán)卡
·IAM卡:用作初始化授權(quán)卡(IAM+:可以限制發(fā)卡的數(shù)量);
·SAM卡:用作初始化應(yīng)用系統(tǒng);
·GAM卡:通用授權(quán)卡,可生成下一級(jí)的子令牌。
每一個(gè)生成出來的子令牌的權(quán)限都是可以控制的。
例如:這令牌能否再生成下一級(jí)的令牌;這令牌能否自我生成另一個(gè)同樣的子令牌,這樣整個(gè)令牌系統(tǒng)都在操控之中。
而且初始化卡片的令牌(IAM)和初始化讀卡器的令牌(SAM)是分開兩個(gè)不同的令牌,這可實(shí)現(xiàn)更高安全性。
四、卡中卡技術(shù)
在現(xiàn)有市場(chǎng)上的大部分非接觸式技術(shù),都是用邏輯加密技術(shù),因絕大部份的非接卡本身不帶CPU,所以加密的程序還是不及接觸式的CPU卡。而且,非接觸式的卡可以不停地被嘗試去讀和試,這是有利于黑客不停地去嘗試破解。雖然接觸式的CPU卡比較安全,而且內(nèi)存量要比邏輯加密卡要大很多,但正常的損壞還是會(huì)發(fā)生。
這樣,結(jié)合了CPU卡和非接觸式卡的雙界面卡,就產(chǎn)生了,如圖3所示。
圖3
因此,雙界面技術(shù),結(jié)合了射頻技術(shù)和接觸式技術(shù)的優(yōu)勢(shì)——內(nèi)存大、靈活、非接觸式以及安全性極高。
CPU卡是當(dāng)今市場(chǎng)上較為安全的技術(shù),CPU卡的安全性取決于CPU內(nèi)的COS(Chip/Card Operating System)。
該方案的卡中卡技術(shù)簡單來說,就是把該方案芯片內(nèi)的安全基制,以軟件的形式模擬灌入到CPU卡中。就好像在CPU卡的內(nèi)存內(nèi),建立了一個(gè)數(shù)據(jù)保險(xiǎn)庫一樣。它不僅在雙界面卡的基本安全性上又增加了獨(dú)有的高安全的保護(hù)功能,而且還有非接觸式的靈活性。目前,該安全軟件是建立在JavaCOS上,包括Jcop版本2.2以上和G&D的SmartCafé’Expert——目前世界上最安全及常用的COS。當(dāng)然,該安全軟件經(jīng)過簡單修改就可灌進(jìn)不同的CPU卡和COS之上。另外,卡中卡方案還可以在第三方雙界面卡中通過“軟件”方法植入“LEGIC卡”的方案;如圖4所示。
圖4
五、方便實(shí)現(xiàn)“一卡通”
該方案中所有卡片均采用動(dòng)態(tài)內(nèi)存分配技術(shù),并采用獨(dú)有的密碼管理方法—主令牌管理MTSC,提供了一個(gè)包括卡片安全管理,讀寫和密碼管理的一體解決方案。只要是該方案合作伙伴提供的讀寫設(shè)備,都支持這個(gè)安全規(guī)則。從而保證了高安全性。
卡片內(nèi)存(在CPU卡中稱文件)具有如圖5所示動(dòng)態(tài)分配特征。
基于此,可以方便實(shí)現(xiàn)一卡通,也可分步實(shí)施。后面系統(tǒng)可以共享共用數(shù)據(jù),并不影響已有系統(tǒng)的應(yīng)用。
卡中卡技術(shù)將CPU卡應(yīng)用的安全性與密碼管理技術(shù)結(jié)合起來了,定將會(huì)使CPU卡應(yīng)用推廣注入新的動(dòng)力。
六、CPU卡的COS與卡安全性
根據(jù)信息安全產(chǎn)品強(qiáng)制性認(rèn)證實(shí)施規(guī)則--智能卡COS產(chǎn)品要求,所有COS產(chǎn)品必須通過安全認(rèn)證才可商用。從而說明,安全性對(duì)評(píng)價(jià)COS的重要性。國內(nèi)主要的COS有復(fù)旦FMCOS2.0、東信和平的東信COS3.0、捷德starChina、握奇TimeCOS等。
卡COS是基于通用安全加密方法,因此加密方法仍是卡片安全的基石。該方案卡中卡采用基于JAVA的JCOP或SmartCaféExpert,選用的COS均有GP認(rèn)證,它廣泛應(yīng)用于電子證照等安全要求最好的領(lǐng)域。
目前,國際上智能卡的應(yīng)用已經(jīng)進(jìn)入了高峰發(fā)展時(shí)期,國內(nèi)智能卡的應(yīng)用也如火如荼。智能卡廣泛應(yīng)用于金融、社保、市民公交卡等各個(gè)方面。隨著技術(shù)的不斷進(jìn)步,CPU卡將成為應(yīng)用的重點(diǎn),不要盲目認(rèn)為CPU卡有個(gè)COS就認(rèn)為安全性沒有問題了,而是要根據(jù)實(shí)際情況,合理部署相應(yīng)COS及應(yīng)用。