智能卡安全機制比較系列(五)StarCOS
文章出處:http://www.luckydriving.com 作者:佚名 人氣: 發(fā)表時間:2012年02月26日
StarCOS是捷德公司的推出的智能卡COS,和前面說過的幾種COS不同的是,國內(nèi)的用戶對于StartCOS可以說非常熟悉,而且因為握奇、明華、天喻等公司的安全機制都基本上是脫胎于StarCOS,所以經(jīng)常會給大家造成一種錯覺,好像智能卡的COS就該是這樣的。其實完全不然,稍后會介紹握奇的TimeCOS,從TimeCOS V1.0中可以看出來,和StarCOS還是有很大差別的。
捷德中國為了滿足國內(nèi)PBOC的需求,在StarCOS的基礎(chǔ)上推出了Star China,安全機制和StarCOS相同。
StarCOS的文件結(jié)構(gòu)除了通常的二進制透明文件、線性定長記錄文件、線性變長記錄文件、循環(huán)記錄文件之外,還多了一種名為compute的文件結(jié)構(gòu),從形式上看compute文件和循環(huán)記錄文件類似,但是每條記錄又有自己固定的結(jié)構(gòu)定義。
StarCOS的MF和每個DF都有自己的初始安全狀態(tài),當(dāng)卡片上電后首先默認選擇MF,安全狀態(tài)為MF的初始狀態(tài),當(dāng)選擇某個DF后,當(dāng)前DF的安全狀態(tài)就是該DF的初始狀態(tài)。MF和DF的初始狀態(tài)在文件建立的時候可以設(shè)定。
在整個卡片的操作過程中分別保存兩個當(dāng)前安全狀態(tài),一個是MF的,另一個是當(dāng)前DF的。只有通過驗證PIN或者外部認證、雙向認證才能改變當(dāng)前的安全狀態(tài)。
總共有1到15種狀態(tài)可以設(shè)定,用半字節(jié)來表示。
在MF下有建立EF、安裝密鑰、建立DF、注冊DF的安全條件;在DF下有建立EF和安裝密鑰的安全條件;對于EF而言分別有讀、寫、鎖定、解鎖、增值、減值等操作的安全條件。
所謂的安全條件AC就是定義卡片應(yīng)該處于什么樣的安全狀態(tài)下,才能滿足相應(yīng)的操作。安全條件為一個字節(jié),具體定義為:
其中高兩位b8b7定義比較模式,分別為等于、小于、大于等于、不等于;b6用來定義是否采用安全報文;b5用來表示和當(dāng)前DF的安全狀態(tài)比較還是和MF的安全狀態(tài)比較;b4b3b2b1則表示比較時參考的安全狀態(tài)。
簡單地說如果卡片MF的安全狀態(tài)是05,當(dāng)前DF的安全狀態(tài)是08,如果在當(dāng)前DF下有一個EF的讀AC=43、寫AC=99,那么就可以對該EF進行讀操作,但是不能寫。
在密鑰中有兩個安全條件值A(chǔ)CV,其中第一個ACV用來指明這個密鑰的使用條件、而第二個ACV的后四位數(shù)據(jù)用來指明正確認證密鑰后將要轉(zhuǎn)換的后續(xù)狀態(tài)。同樣每條密鑰中還有一個用來指出更新密鑰需要遵循的安全狀態(tài)。
下圖用來說明安全狀態(tài)的轉(zhuǎn)換
該圖說明只有在MF下驗證DES密鑰之后,才能進入DF下進行PIN驗證,并且將DF的安全狀態(tài)改變?yōu)閏。
StarCOS的安全機制是目前見到過的最靈活和最有效的安全機制,對于文件的不同操作可以非常方便地定義安全條件,即可以參考當(dāng)前的DF值也可以參考MF下的值。
唯一的限制是在98年版的StarCOS S2.1中,僅支持二級文件目錄,亦即在MF下只有一級DF,雖然稍顯不足,但是也基本上可以滿足大多數(shù)應(yīng)用的需求。