博客專(zhuān)欄

EEPW首頁(yè) > 博客 > cos中的文件結(jié)構(gòu)(DF/EF/MF/FID/AID/SFI..)

cos中的文件結(jié)構(gòu)(DF/EF/MF/FID/AID/SFI..)

發(fā)布人:電子禪石 時(shí)間:2022-10-19 來(lái)源:工程師 發(fā)布文章
cos中的文件結(jié)構(gòu)(DF/EF/MF/FID/AID/SFI..)


剛開(kāi)始接觸CPU卡的時(shí)候,對(duì)于各種文件、應(yīng)用的定義容易模糊不清,通常不能準(zhǔn)確地界定什么是文件?什么是應(yīng)用?DF和EF的區(qū)別真的就像計(jì)算機(jī)里的目錄和文檔那樣嗎?FID、AID、SFI這些概念都在什么時(shí)候派上用場(chǎng)?一個(gè)EF必須依存于某個(gè)DF嗎?MF是必須存在的嗎?腦海里會(huì)有無(wú)數(shù)個(gè)問(wèn)號(hào)奔騰而來(lái)。

其實(shí)文件的本質(zhì)就是一組一組的數(shù)據(jù)而已,對(duì)這些數(shù)據(jù)的操作(選擇、讀取、寫(xiě)入/更新)是通過(guò)特定的文件操作APDU命令來(lái)完成的。所以數(shù)據(jù)才是本真,文件只是表象。某一組數(shù)據(jù)該作為什么樣的文件讓外界來(lái)訪問(wèn),是由卡片的COS決定的。

按照規(guī)范的約定DF指的是專(zhuān)用文件Dedicated File的縮寫(xiě),DF的作用可以等同于計(jì)算機(jī)中的目錄文件,EF則是基本信息文件Elementary File,也就是說(shuō)通常情況下和應(yīng)用相關(guān)的數(shù)據(jù)都會(huì)存放于EF中。

為了對(duì)文件進(jìn)行訪問(wèn),需要給文件分配一個(gè)特定的標(biāo)識(shí)。無(wú)論是DF還是EF都會(huì)有對(duì)應(yīng)的兩個(gè)字節(jié)長(zhǎng)ID標(biāo)識(shí),也就是所謂的FID。而DF還會(huì)有5-16個(gè)字節(jié)長(zhǎng)的名字,也叫做AID。EF還會(huì)有一個(gè)5位長(zhǎng)(范圍從1到30)的短文件標(biāo)識(shí),就是SFI。按照7816規(guī)范的定義,以及根據(jù)7816派生出來(lái)的一些行業(yè)應(yīng)用規(guī)范的定義基本上都是這樣的。無(wú)論是FID還是AID以及SFI,在可以選擇的路徑范圍內(nèi)(這句話可能稍微有點(diǎn)繞,體會(huì)后也就自然明白了),不同的文件(包括DF和EF)的取值都不能相同。

在一張卡片里(這里說(shuō)的是卡片而不是某個(gè)應(yīng)用)有且僅有一個(gè)特殊的DF,稱(chēng)為主文件MF,這個(gè)MF的FID默認(rèn)為3F00,相當(dāng)于計(jì)算機(jī)中的根目錄,而且在任何時(shí)候MF都可以被選擇。如果某個(gè)DF下沒(méi)有子DF,只有若干EF,那么這個(gè)DF也被稱(chēng)作ADF,反之如果某個(gè)DF下除了有EF之外,還有子DF,那么這個(gè)父級(jí)的DF也被稱(chēng)作DDF。

在卡片的使用過(guò)程中,對(duì)于DF的操作只有“選擇”一種而已,但是對(duì)于EF的操作則有:選擇、讀、寫(xiě)三種形式。

在文件選擇操作過(guò)程中,對(duì)于DF的選擇可以通過(guò)FID或者AID來(lái)實(shí)現(xiàn),而對(duì)于EF的選擇只有FID的方式。能夠被選擇的文件(無(wú)論是DF還是EF)必須在可見(jiàn)的路徑范圍內(nèi)(這句話也有點(diǎn)繞)。

至于對(duì)EF文件的讀、寫(xiě)可以通過(guò)SFI的方式直接進(jìn)行,也可以先通過(guò)FID選擇某個(gè)EF,然后再進(jìn)行讀寫(xiě)。

要特別強(qiáng)調(diào)的一點(diǎn):以上說(shuō)的這些都是和某些應(yīng)用規(guī)范細(xì)細(xì)相關(guān)的,也和COS的實(shí)現(xiàn)細(xì)細(xì)相關(guān)。換句話說(shuō),如果你自己寫(xiě)一個(gè)滿足某個(gè)特定應(yīng)用的COS,你完全可以按照自己的意愿來(lái)。比如把MF的FID定義為8F00,比如EF也可以增加AID,比如卡片在任何時(shí)候都可以選擇各級(jí)DF及其下屬的EF,等等。。。。。。

總之,既要熟悉規(guī)范,但是又不能把某個(gè)行業(yè)應(yīng)用的規(guī)范奉為號(hào)令天下的圣旨。

規(guī)范并不是試圖對(duì)復(fù)雜的公鑰基礎(chǔ)設(shè)施結(jié)構(gòu)的全部實(shí)施作出規(guī)定,而旨在為各國(guó)提供一種實(shí)施辦法,使其能夠在若干領(lǐng)域(如主動(dòng)認(rèn)證、防非法瀏覽和訪問(wèn)控制等)做出選擇,從而可逐漸實(shí)施更多的功能,而又不會(huì)與整個(gè)架構(gòu)不相容。

誰(shuí)擁有技術(shù),誰(shuí)就擁有話語(yǔ)權(quán);而話語(yǔ)權(quán)就是規(guī)范的制定。在別人的基礎(chǔ)上開(kāi)發(fā),不僅僅是遵守,更多的是方便,在全球化大背景之下,規(guī)范是必不可少的;當(dāng)然按部就班肯定是不好的,在學(xué)會(huì)實(shí)用的情況下,勇于探索才是我們應(yīng)該不懈追求的!

非常感謝:http://blog.sina.com.cn/s/blog_4df8400a0102vkbr.html


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: cos

相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉