CPU卡密鑰管理系統(tǒng)介紹
密鑰管理系統(tǒng) (Key Management System),也簡稱KMS,是IC卡項目安全的核心。如何進行密鑰的安全管理,貫穿著IC 卡應(yīng)用的整個生命周期。
我們首先了解下普通邏輯加密存儲卡的密鑰系統(tǒng)。邏輯加密存儲卡是在非加密存儲卡的基礎(chǔ)上增加了加密邏輯電路,加密邏輯電路通過校驗密碼方式來保護卡內(nèi)的數(shù)據(jù)對于外部訪問是否開放,但只是低層次的安全保護,無法防范惡意性的攻擊。以NXP的M1卡為例,2008 年 10 月,互聯(lián)網(wǎng)上公布了破解其密碼的方法,自此之后就開始有不法分子利用這種方法可以很低的經(jīng)濟成本對采用該芯片的各類“一卡通”、門禁卡進行非法充值或復(fù)制,帶來很大的社會安全隱患。因此,在需要較高層次安全保護的應(yīng)用系統(tǒng)中,不宜使用邏輯加密存儲卡。
邏輯加密存儲卡的安全認證依賴于卡內(nèi)密鑰區(qū)的校驗,從而實現(xiàn)數(shù)據(jù)區(qū)的讀寫安全控制。邏輯加密存儲卡的個人化也比較簡單,主要包括數(shù)據(jù)和密鑰的更新,在期間所有敏感數(shù)據(jù)包括 密鑰都是直接以明文的形式更新。因此只能解決卡片對終端的認證,而無法解決終端對卡片的認證,即我們俗稱的“偽卡”的風(fēng)險。
邏輯加密存儲卡的密鑰就是一個預(yù)先設(shè)定的固定密碼,無論用什么方法計算密鑰,最后就一定要和原先寫入的固定密碼一致,就可以對被保護的數(shù)據(jù)進行讀寫操作。因此無論是一卡一密的系統(tǒng)還是統(tǒng)一密碼的系統(tǒng),經(jīng)過破解就可以實現(xiàn)對非接觸邏輯加密存儲卡的解密。很多人認為只要是采用了一卡一密、實時在線系統(tǒng)或邏輯加密存儲卡的ID 號就能避免密鑰被解密,其實,邏輯加密存儲卡被解密就意味著卡本身可以被復(fù)制?,F(xiàn)在的技術(shù)使用FPGA 就可以完全復(fù)制?;谶@個原理,邏輯加密存儲卡做門禁也是不安全的。目前國內(nèi)多數(shù)的門禁產(chǎn)品均是采用卡的原始ID 號去做門禁系統(tǒng)的白名單驗證放行條件,根本沒有去進行加密認證或開發(fā)專用的密鑰,很多國內(nèi)廠家也不太關(guān)注卡與機具間的加密認證和密鑰體系的設(shè)計,因此這些問題的安全隱患涉及面就更大了。
下面介紹CPU卡的密鑰管理系統(tǒng)。
CPU 卡的芯片和COS的安全技術(shù)為CPU 卡提供了雙重的安全保證。自帶操作系統(tǒng)的CPU 卡對計算機網(wǎng)絡(luò)系統(tǒng)要求較低,可實現(xiàn)脫機操作;自帶多種加密算法,可實現(xiàn)真正意義上的一卡多應(yīng)用,每個應(yīng)用之間相互獨立,并受控于各自的密鑰管理系統(tǒng)。存儲容量大,可提供 1K-64K 字節(jié)的數(shù)據(jù)存儲。 CPU卡系統(tǒng)中使用了獨立的保密模塊,使用相應(yīng)的實體SAM 卡密鑰實現(xiàn)加密、解密以及交易處理,從而完成與用戶卡之間的安全認證。
CPU 卡擁有獨立的CPU處理器和芯片操作系統(tǒng),所以可以更靈活的支持各種不同的應(yīng)用需求,更安全的設(shè)計交易流程。但另一方面,與邏輯加密存儲卡系統(tǒng)相比而言,CPU卡的系統(tǒng)顯得更為復(fù)雜,需要進行更多的系統(tǒng)改造,比如密鑰管理、交易流程、PSAM 卡以及卡片個人化等。密鑰通常分為充值密鑰 (ISAM 卡),減值密鑰 (PSAM 卡),身份認證密鑰(SAM 卡)。
CPU卡可以通過內(nèi)外部認證的機制,例如像建設(shè)部定義的電子錢包的交易流程,高可靠的滿足不同的業(yè)務(wù)流程對安全和密鑰管理的需求。對電子錢包圈存可以使用圈存密鑰,消費可以使用消費密鑰,清算可以使用 TAC 密鑰,更新數(shù)據(jù)可以使用卡片應(yīng)用維護密鑰,卡片個人化過程中可以使用卡片傳輸密鑰、卡片主控密鑰、應(yīng)用主控密鑰等,真正做到一鑰一用。
CPU卡加密算法和隨機數(shù)發(fā)生器與安裝在讀寫設(shè)備中的密鑰認證卡(SAM 卡)相互發(fā)送認證的隨機數(shù),可以實現(xiàn)以下功能:
(1) 通過終端設(shè)備上SAM 卡實現(xiàn)對卡的認證。
(2) CPU卡與CPU卡讀寫器上的 SAM 卡的相互認證,實現(xiàn)對卡終端的認證。
(3) 通過 ISAM 卡對CPU卡進行充值操作,實現(xiàn)安全的儲值。
(4) 通過PSAM 卡對CPU卡進行減值操作,實現(xiàn)安全的扣款。
(5) 在終端設(shè)備與CPU卡中傳輸?shù)臄?shù)據(jù)是加密傳輸。
(6) 通過對CPU卡發(fā)送給 SAM 卡的隨機數(shù) MAC1,SAM卡發(fā)送給CPU卡的隨機數(shù)MAC2 和由CPU卡返回的隨機數(shù) TAC,可以實現(xiàn)數(shù)據(jù)傳輸驗證的計算。而MAC1、MAC2 和 TAC就是同一張CPU卡每次傳輸?shù)倪^程中都是不同的,因此無法使用空中接收的辦法來破解非接觸CPU 卡的密鑰。
CPU卡,可以使用密鑰版本的機制,即對于不同批次的用戶卡,使用不同版本的密鑰在系統(tǒng)中并存使用,達到密鑰到期自然淘汰過渡的目的,逐步更替系統(tǒng)中所使用的密鑰,防止系統(tǒng)長期使用帶來的安全風(fēng)險。
CPU卡,還可以使用密鑰索引的機制,即對于發(fā)行的用戶卡,同時支持多組索引的密鑰,假如當(dāng)前使用的密鑰被泄漏或存在安全隱患的時候,系統(tǒng)可以緊急激活另一組索引的密鑰,而不用回收和更換用戶手上的卡片。
CPU卡系統(tǒng)中,PSAM 卡通常用來計算和校驗消費交易過程中出現(xiàn)的 MAC 碼,同時在計算的過程中,交易時間、交易金額、交易類型等交易信息也都參與運算,使得交易更安全更可靠。某些情況下,CPU卡系統(tǒng)中的PSAM 卡還可以用來支持安全報文更新數(shù)據(jù)時 MAC 的計算,以及交易TAC 的驗證。因此,與邏輯加密存儲卡系統(tǒng)相比,CPU卡系統(tǒng)中的PSAM卡支持更廣泛的功能,也更為靈活、安全和復(fù)雜。通常CPU卡系統(tǒng)的 PSAM 卡還支持不同的密鑰版本。
而CPU卡的個人化通??梢苑譃榭ㄆ纯ê涂ㄆ瑐€人化兩個獨立的流程,前者創(chuàng)建卡片文件結(jié)構(gòu),后者更新個人化數(shù)據(jù),并注入相應(yīng)的密鑰。在信息更新和密鑰注入的過程中,通常都采用安全報文的方式,保證數(shù)據(jù)和密鑰更新的正確性和安全性。而且密鑰注入的次序和相互保護的依存關(guān)系,也充分體現(xiàn)了密鑰的安全設(shè)計,比如卡片主控密鑰通常被用來保護導(dǎo)入應(yīng)用主控密鑰,應(yīng)用主控密鑰通常被用來保護導(dǎo)入其他應(yīng)用密鑰,比如消費密鑰等。
CPU 卡的密鑰實現(xiàn)方式:
(1) 硬密鑰:即在終端機具中安裝SAM 卡座,所有的認證都是由安裝在SAM 卡座中的SAM 卡進行運算的,這樣在終端機具維修時,只要取出SAM 卡座中的SAM 卡,這臺終端機具就是空的了。所以所有的銀行設(shè)備都采用 SAM 卡的認證模式。
(2) 軟密鑰:終端機具中沒有SAM 卡座,這個密鑰的運算實際上是由終端機具完成的,這樣客戶的密鑰就等于存在終端機具中,廠家拿回終端機具維修時,極易造成密鑰流失。
總結(jié)以上所述,邏輯加密存儲卡采用的是固定密碼,而 CPU卡采用的是動態(tài)密碼,并且是一用一密即同一張CPU卡,每刷一次卡的認證密碼都不相同,這種智能化的認證方式使得系統(tǒng)的安全性得到提高,特別是當(dāng)交易雙方在完成交易之后,收單方有可能擅自修改或偽造交易流水來達到獲利目的,為了防止終端偽造交易流水,系統(tǒng)要求卡片能夠產(chǎn)生由交易要素生成的交易驗證碼,在后臺清算時來對交易的有效性進行驗證。CPU 卡則可以在交易結(jié)束時產(chǎn)生個交易驗證碼 TAC,用來防止偽造交易。邏輯加密存儲卡由于不具有運算能力,就不可能產(chǎn)生交易的驗證碼。所以,從安全性的角度來看,CPU卡是一種當(dāng)前最安全的選擇。