<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

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

cos中的文件結構(DF/EF/MF/FID/AID/SFI..)

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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



關(guān)鍵詞: cos

相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>