一、 CPU卡的操做步驟:尋卡-防衝突-選卡-ATS,前面三步和M1操做徹底同樣,屬於ISO14443A前面三層的操做,ATS成功後就進入ISO14443A-4協議層了,也就進入了CPU卡的操做層。[喝小酒的網摘]http://blog.hehehehehe.cn/a/17513.htm算法
二、 PPS是能夠不作的,只有RATS的返回值代表其接收能力大於PCD的發送便可。PPS用來設置通訊時的波特率,經過RATS命令響應數據07 77 80 A0 02 47 56能夠判斷該卡僅支持106K波特率。因此PCD也沒有經過PPS指令修改通訊波特率的必要了。固然PPS指令從新按106K波特率設置一下也是能夠 的,RATS以及後續的PCD指令都須要加上CRC的。安全
三、 ISO14443-4只規定到PPS指令,後續的指令都須要由CPU卡內部的軟件COS來解釋,因此卡片完成SELECT,經過RATS和PPS指令後,必須發COS支持的指令。發COS支持的指令通常都須要加CRC的。加密
四、 發送取隨機數命令00 84 00 00 04,根據塊格式規定,除了發送這個指令外,還要發送PCB和CID,即實際發送的字符是0A 01 00 84 00 00 04,0A01這兩個字節必須加在每一個指令字符串的前面,而且塊號不能重複,即若是你連續2次取隨機數,需以下發送:0A 01 00 84 00 00 04 ,0B 01 00 84 00 00 04.即第一個字節的最後一位要不斷變化。設計
五、 取隨機數命令可取4字節或8字節。若取隨機數命令下條指令爲外部認證,則外部認證數據用指定的外部認證密鑰解密後與該隨機數進行比較。外部認證命令要求 CPU卡存在用於外部認證的密鑰。在知足該密鑰的使用條件,且該密鑰未被鎖死時才能執行此命令。將命令中的數據用指定外部認證密鑰解密,而後與先前產生的 隨機數進行比較,若一致則表示認證經過,置安全狀態寄存器爲該密鑰規定的後續狀態值,錯誤計數器恢復成初始值,若比較不一致則認證失敗,可再試錯誤數減 一,且不改變安全狀態寄存器的值。htm
六、 MF文件惟一存在,CPU卡復位後,卡片自動選擇MF文件爲當前文件。任何一個DF在物理上和邏輯上都保持獨立,都有本身的安全機制和應用數據。能夠經過 應用選擇實現對其邏輯結構的訪問。能夠將單個DF文件以及其中一個或多個EF文件當作一個應用。也能夠將多個DF以及其中多個EF文件看成一個應用。基本 文件EF用於存放用戶數據和密鑰,存放用戶數據的文件稱爲工做基本文件,在知足必定條件下用戶可對文件進行相應的操做。blog
KEY文件稱爲內部基本文件,不可由外部讀出,但當得到許可的權限時可在卡內進行相應的密碼運算,在知足寫的權限時能夠修改密鑰。KEY文件必須在 MF/DF下最早被創建,且一個目錄只能有一個KEY文件。KEY文件能夠存多個口令密鑰,外部認證密鑰,DES運算密鑰,每一個密鑰爲一個TLV格式的可 變長記錄,記錄的長度爲密鑰數據長度加8,3DES密鑰長度爲24字節,DES密鑰記錄的長度爲16字節。索引
七、 外部認證內存
A、 取隨機數能夠取4字節,也能夠取8字節,若是是4字節,則在後面加上4字節0,也就是參與加密運算的隨機數是8字節。字符串
B、 外部認證所用的加密算法是DES/3DES算法程序設計
C、 密鑰是指外部認證密鑰
D、若是密鑰的長度是8字節,則適用DES算法,若是密鑰長度爲16字節,則適用3DES算法。
八、 通常CPU卡提供商提供CPU卡時,已經對CPU卡進行過初始化,即CPU卡上已經創建了主文件MF及主密鑰文件(MF下的KEY文件),主密鑰文件中也 寫入了初始化CPU卡主控密鑰。在對CPU卡創建特定的卡結構及寫入密鑰和數據以前,程序設計中的第一步應該對CPU卡進行外部認證。外部認證所使用的密 鑰正是初始CPU卡主控密鑰。當完成外部認證後,接下來最好是擦除CPU卡上已有的結構,而後開始從新創建CPU卡結構。
九、 文件標識符是文件的標識代碼,用2個字節表示,同一目錄下的文件標識符必須是惟一的,MF的文件標識符是3F00。短文件標識符選擇只能用5位來決定。所 以可選擇的最大文件標識符是31。選擇文件後,只要文件存在,該文件就被置爲當前文件,之後能夠不用選擇而直接對該文件進行操做。文件類型在創建文件時規 定。
十、 刪除MF文件後,選擇MF會返回FA 01 01,程序要一直髮送FA 01 01給1208,直到收到0A 0B開頭的數據。若是MF下沒有密鑰文件,創建KEY文件不需外部認證。
十一、 在多應用卡中,MF下一般包含多個DF,這裏的MF就是一個典型的DDF,爲了維護管理DDF下全部的DF,在每個DDF下通常能夠包含一個系統文件(DIR),記錄全部子DF的入口,若是隻有一個ADF應用,不需創建DIR文件。
十二、 DF文件短標識符,當高三位爲000時,爲DDF,當高三位爲100時,爲ADF的短文件標識符,在創建目錄文件時,要指定2字節文件標識符,短文件標識 符,文件名。短文件標識符要在1-31之間,和文件標識符沒有關係。在卡片出廠時創建MF,MF的短文件標識符應爲01,由於創建MF下密鑰文件使用的 DF短標識符是01。因此自建一個DF,短文件標識符應定義爲02或其它值。同一目錄下的文件標識符必須是惟一的。
1三、 密鑰標識,若是該目錄下某類型密鑰只有一個,則其密鑰標識原則上應爲00,不然應從01順序開始。
1四、 增長權限:在當前目錄下建立新文件的權限
激活權限:激活失效安全機制的權限
終止權限:永久終止的權限,對於MF來講,標識卡鎖定,對於ADF來講,表示當前應用永久鎖定,即應用失效。
讀權限:對EF文件的內容的讀操做權限
寫權限:對EF文件內容的寫操做權限
安裝權限:安裝密鑰和密碼的權限
使用權限:表示使用密鑰或密碼的權限
修改權限:修改密鑰或密碼的權限
解鎖權限:解鎖密碼PIN的權限,此權限只有PIN纔有
1五、 安全機制是指安全狀態的改變所採用的方法和手段以及安全屬性和安全狀態之間的控制關係,COS命令在執行過程當中,首先要檢查COS環境所處的安全狀態是否 符合執行命令需求的安全屬性,假設當前COS所處的是安全狀態A,執行COS命令安全屬性要求爲安全狀態B,在執行COS命令前要經過安全機制涉及安全提 升方法,將安全狀態提高到安全狀態B。
1六、 內部認證是用讀卡設備來認證卡,保證卡的合法性,內部認證能夠防止僞造的卡在讀卡設備上進行操做。
外部認證是用卡來認證外部讀卡設備的合法性,外部認證能夠防止惡意對卡進行操做,讀取或更改卡內信息。外部認證還能夠改變卡的安全狀態,通常卡內存 儲了多個外部認證密鑰,每一個外部認證密鑰多能改變的安全狀態不同,在進行外部認證時,必須經過密鑰索引參數選擇對應的外部認證密鑰完成外部認證。
CPU卡和讀卡設備存放吸納溝通的密鑰
外部認證步驟:
A、 CPU卡產生一個8進制隨機數送給讀卡器,CPU卡臨時保存隨機數在卡內
B、 讀卡器程序用密鑰計算隨機數,獲得隨機數密文
C、 讀卡器程序把8字節隨機數密文送給CPU卡
D、CPU卡在卡片內部解密8字節隨機數獲得隨機數明文
E、 CPU卡在卡片內部把解密後的隨機數和步驟A中臨時存放的隨機數對比,若相等,則外部認證密鑰成功
外部認證是CPU卡認證讀卡器
內部認證步驟:
A、 讀卡器產生一個8字節隨機數,發送給CPU卡,讀卡器臨時保存這個隨機數。
B、 CPU卡用內部認證密鑰計算這個隨機數,獲得8字節隨機數密文。
C、 CPU卡把隨機數密文發給讀卡器
D、讀卡器解密8字節隨機數密文獲得隨機數明文
E、 讀卡器把解密後的隨機數和步驟A中產生的隨機數對比,若相等,則內部認證成功。
內部認證是讀卡器認證CPU卡