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