CPU卡知識(shí)入門教程——第七章 CPU卡安全篇
問(wèn)題的引出:
?
假如說(shuō)你現(xiàn)在手中有6份重要文件
?
1、房契
?
2、銀行存折
?
3、畢業(yè)證書(shū)
?
4、戶口本
?
5、某某人欠你的100萬(wàn)塊錢的欠條(呵呵,假裝你有這么多錢,你是百萬(wàn)富翁并且很慷慨,一個(gè)好人)
?
6、結(jié)婚證(這個(gè)好像已婚人士才有)
?
這些對(duì)我們來(lái)說(shuō)都是比較重要的東東,一定要妥善的安全的保存??!你可以這么保存:
?
方法1:
?
把這些文件鎖在六個(gè)保險(xiǎn)柜里,一個(gè)柜子放一個(gè)文件
?
方法2:
?
把六個(gè)文件全部鎖在一個(gè)保險(xiǎn)柜里
?
方法3:
?
把六個(gè)文件鎖在n個(gè)保險(xiǎn)柜里,這個(gè)n比6小又比1大
?
方法4:
?
把文件放在一個(gè)小保險(xiǎn)柜里,把小保險(xiǎn)柜放進(jìn)大保險(xiǎn)柜里,或者你覺(jué)得很好玩的話,再把大保險(xiǎn)柜放進(jìn)大大保險(xiǎn)柜里,如此一個(gè)保險(xiǎn)柜再套另一個(gè)保險(xiǎn)柜,只要你有錢、只要你還想套、我不反對(duì)。
?
在CPU卡中的文件的存放也會(huì)存在這些問(wèn)題,比如說(shuō)你有6個(gè)文件,你想存放在CPU卡的某個(gè)應(yīng)用中。
?
考慮到安全問(wèn)題,CPU卡的文件安全及訪問(wèn)機(jī)制是由通過(guò)認(rèn)證來(lái)實(shí)現(xiàn)的(如認(rèn)證密鑰、認(rèn)證PIN,)
?
我們現(xiàn)在以認(rèn)證是通過(guò)密鑰的認(rèn)證來(lái)說(shuō)明:
?
方法1:
?
6個(gè)文件用6個(gè)密鑰來(lái)保護(hù),每個(gè)文件對(duì)應(yīng)一個(gè)密鑰
?
方法2:
?
6個(gè)文件只用一個(gè)密鑰來(lái)保護(hù)
?
方法3:
?
6個(gè)文件進(jìn)行歸類,用n個(gè)密鑰保護(hù),這個(gè)n比6小又比1大
?
方法4:
?
文件用密鑰套密鑰保護(hù)。
?
比如說(shuō)文件1用密鑰1保護(hù)、密鑰1的使用又必須通過(guò)密鑰2的認(rèn)證?;蛘呦旅孢€更復(fù)雜密鑰2的使用必須通過(guò)密鑰
?
3的認(rèn)證。
?
你可以把密鑰想象成保險(xiǎn)柜的鑰匙,小保險(xiǎn)柜的鑰匙必須在大保險(xiǎn)柜的控制下使用。(意思就是:小保險(xiǎn)柜的鑰
?
匙必須在大保險(xiǎn)柜的鑰匙打開(kāi)了大保險(xiǎn)柜之后才能起作用,這話好像有些拗口,跟繞口令試的,呵呵)
?
其實(shí)一般的保險(xiǎn)柜都要密碼的,也就是說(shuō)保險(xiǎn)柜的鑰匙要和密碼配套使用,兩者缺一不可,好像看起來(lái)這樣做
?
會(huì)更保險(xiǎn)一點(diǎn),事實(shí)上也是。至于是先開(kāi)鑰匙后輸入密碼還是先輸入密碼再開(kāi)鑰匙,這主要看保險(xiǎn)柜的設(shè)計(jì)。
?
在CPU卡中可以實(shí)現(xiàn),CPU卡可以用用戶密碼加上卡上密鑰的方法實(shí)現(xiàn)??梢栽O(shè)計(jì)成兩種模式:
?
方式1、在密鑰認(rèn)證成功后,密碼才可以使用。
?
方式2、在密碼的驗(yàn)證成功后,密鑰才可以被使用。
?
這必須按順序來(lái),如方式一,你要是想先驗(yàn)證密碼,對(duì)不起,卡片會(huì)給你一個(gè)提示:安全狀態(tài)不滿足。
?
這時(shí)候,你必須做的工作是,現(xiàn)對(duì)密鑰進(jìn)行認(rèn)證,密鑰認(rèn)證成功后,再驗(yàn)證密碼就不會(huì)提示安全狀態(tài)不滿足了
?
。
?
以上機(jī)制好像聽(tīng)起來(lái)比較復(fù)雜,但其實(shí)也并不復(fù)雜。(談何容易,或許你會(huì)這么說(shuō))
?
在卡片中,現(xiàn)在比較流行的并且實(shí)現(xiàn)起來(lái)也挺簡(jiǎn)單的的方法:狀態(tài)機(jī)機(jī)制
?
一個(gè)CPU卡文件的安全認(rèn)證設(shè)計(jì),涉及到3方面的狀態(tài):
?
1、系統(tǒng)當(dāng)前的安全狀態(tài)
?
2、對(duì)文件操作必須滿足的狀態(tài)
?
3、密鑰的狀態(tài)
?
我們?cè)僖员kU(xiǎn)柜為例:
?
比如說(shuō)我們想查看保險(xiǎn)柜的那張100萬(wàn)欠條的內(nèi)容。
?
1、對(duì)應(yīng)的系統(tǒng)的當(dāng)前狀態(tài):保險(xiǎn)柜關(guān)閉狀態(tài)
?
2、對(duì)文件操作必須滿足狀態(tài):保險(xiǎn)柜打開(kāi)狀態(tài)
?
怎么使系統(tǒng)的的當(dāng)前狀態(tài):保險(xiǎn)柜關(guān)閉狀態(tài) 變成對(duì)文件操作必須滿足狀態(tài):保險(xiǎn)柜打開(kāi)狀態(tài)呢?
?
我們使用保險(xiǎn)柜的鑰匙來(lái)打開(kāi)保險(xiǎn)柜。
?
3、使用鑰匙后的后續(xù)狀態(tài):保險(xiǎn)柜打開(kāi)狀態(tài)
?
這樣我們實(shí)現(xiàn)了對(duì)文件的操作。
?
在CPU卡中,狀態(tài)可以用一個(gè)數(shù)字來(lái)表示:比如說(shuō)0
?
我們定義:
?
1、系統(tǒng)缺省的當(dāng)前安全狀態(tài):0
?
2、對(duì)文件操作必須滿足的狀態(tài):6
?
3、密鑰的后續(xù)狀態(tài):6
?
步驟:
?
1、直接對(duì)文件進(jìn)行操作,文件比較“系統(tǒng)的缺省狀態(tài):0” 不等于 “對(duì)文件操作必須滿足的狀態(tài):6”
?
提示,安全狀態(tài)不滿足。
?
2、我們對(duì)密鑰進(jìn)行認(rèn)證,認(rèn)證通過(guò)后,把“密鑰的后續(xù)狀態(tài):6”賦值“系統(tǒng)缺省的當(dāng)前安全狀態(tài)”
?
這樣“系統(tǒng)的缺省狀態(tài)=6”
?
3、下面我們?cè)賹?duì)文件進(jìn)行操作,文件比較“系統(tǒng)的當(dāng)前狀態(tài):6” 等于 “對(duì)文件操作必須滿足的狀態(tài):6,
?
可以對(duì)文件進(jìn)行操作
?
安全狀態(tài)的表示:
?
實(shí)際使用中一般用1個(gè)字節(jié)(16進(jìn)制)來(lái)表示狀態(tài),
?
低4位表示安全級(jí)別下限(0-15),高4位表示安全級(jí)別上限(0-15)
?
假設(shè)一字節(jié)的值為:XY (0< =X <=F) (0<= Y <=F) 現(xiàn)在以文件的狀態(tài)來(lái)說(shuō)明: 假設(shè)文件的狀態(tài)為: 1、0Y(如:01,02,03,04....),表示對(duì)文件的訪問(wèn)無(wú)安全限制(即這個(gè)文件隨便都可以訪問(wèn)) 2、如果X>Y (如:10, 32, 85等),表示這個(gè)文件被禁止訪問(wèn)
?
3、如果X<=Y (如:13,11,33,38),表示對(duì)文件進(jìn)行訪問(wèn)前,必須滿足文件的訪問(wèn)權(quán)限。 比如說(shuō)文件的訪問(wèn)權(quán)限是:13,現(xiàn)在的權(quán)限必須是1、2或者是3才可以訪問(wèn)文件 比如說(shuō)文件的訪問(wèn)權(quán)限是:38,現(xiàn)在的權(quán)限必須是3到8的值才可以訪問(wèn)文件 比如說(shuō)文件的訪問(wèn)權(quán)限是:33,現(xiàn)在的權(quán)限必須是3才可以訪問(wèn)文件 系統(tǒng)一般都會(huì)規(guī)定一個(gè)缺省的權(quán)限:比如說(shuō)0