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