SIM通信协议-传输协议
概述
1.SIM卡傳輸協(xié)議架構(gòu)類似與TCP/IP的OSI模型。分為5層
物理層
數(shù)據(jù)鏈路層
傳輸層
USAT層
應(yīng)用層
1.1物理層
通過IO口傳輸二進(jìn)制數(shù)據(jù)。
1.2數(shù)據(jù)鏈路層
定義字符交換的時(shí)序和差錯(cuò)處理。數(shù)據(jù)鏈路層定義了T=0和T=1兩種傳輸方式。他們都是半雙工傳輸,T=0是基于字節(jié)傳輸。T=1是基于塊傳輸。
1.21 T=0傳輸方式(面向字節(jié))
傳輸從一個(gè)命令頭開始,該命令頭由CLA,INS,P1,P2,P3組成。終端向UICC(智能卡)發(fā)送字節(jié)頭,UICC就會(huì)響應(yīng)一個(gè)字節(jié)的結(jié)果給終端。該結(jié)果有以下幾種定義。
如果該字節(jié)等于命令頭的INS,那么終端從UICC獲取剩余的數(shù)據(jù),或者UICC從終端獲取剩余的數(shù)據(jù)。
如果該字節(jié)等于命令頭的補(bǔ)碼,那么終端從UICC讀取另一次數(shù)據(jù),或者UICC從終端讀取另一次數(shù)據(jù)。
如果該字節(jié)等于‘60’,沒有額外的數(shù)據(jù)需要傳輸,終端只能等待傳輸過程字節(jié)。
如果該字節(jié)等于‘61’,終端要等待第二個(gè)過程字節(jié),并且發(fā)送P3為最大長(zhǎng)度的GET RESPONSE 頭給UICC。
如果該字節(jié)等于‘6C’,終端需要等待第二個(gè)過程字節(jié),并且發(fā)送P3位最大長(zhǎng)度的與之前相同的頭給UICC。
命令結(jié)束過,UICC返回給終端一個(gè)2個(gè)字節(jié)的狀態(tài)SW1和SW2.(詳細(xì)常考GSM手冊(cè)。)
1.22 T=1傳輸方式(面向塊)
一個(gè)塊的架構(gòu)如下圖所示。
NAD:塊地址字節(jié)(必須)
PCB:控制協(xié)議字節(jié)(必須)
INF: 0~256bit的信息字節(jié)(可選)
T=0協(xié)議定義了三種類型的塊
I-Bolck:在應(yīng)用層傳輸數(shù)據(jù),還包含該數(shù)據(jù)是否需要響應(yīng)的標(biāo)志。
R-Block:用于傳輸響應(yīng)。
S-Block:用于傳輸控制信息。
1.3 傳輸層
該層協(xié)議協(xié)定了APDU到TPDU的映射關(guān)系,以及TPDU與卡如何完成數(shù)據(jù)交互。終端要與UICC進(jìn)行通信,那么必須將應(yīng)用協(xié)議數(shù)據(jù)單元APDU映射為傳輸協(xié)議數(shù)據(jù)單元TPDU。
1.31 APDU COMMAND
APDUCOMMAND由Command header 和 Command body兩部分組成。其中CLA INS P1 P2 和之前介紹的一樣。只是P3變?yōu)榱丝勺冮L(zhǎng)度的Command body,Command 的Lc(期望發(fā)送的數(shù)據(jù)長(zhǎng)度)和Le(期望接收的數(shù)據(jù)長(zhǎng)度)兩個(gè)域是可選的,于是乎我們的APDU COMMAND就有以下幾種組合方式。
1.32 APDU COMMAND的編碼
以上為APDU的編碼。我們根據(jù)Case 1-Case 4來分別分析這四種組合的編碼。
Case 1 編碼:包括Command header。
Case 2 編碼:包括Command header 和Le,這里L(fēng)e編碼可以為一個(gè)字節(jié)和三個(gè)字節(jié)
當(dāng)Le為一個(gè)字節(jié)時(shí),所希望接收字節(jié)是 1到256
當(dāng)Le為三個(gè)字節(jié)時(shí),那么第一個(gè)字節(jié)為‘00’,后面兩個(gè)字節(jié)所指示的所希望接收字節(jié)范圍是1-65536
Case 3 編碼:包括Command header Lc data,Lc和上面的Le編碼和意義差不多表示期望發(fā)送的字節(jié)。
Case 4 編碼:包括Command header Lc data Le。
1.33 APDU COMMAND 到TPDU COMMAND映射
這里映射也分為4種情況
Case 1:
Case 2:
Case 3:
Case 4:
1.4 USAT層
USAT層使用應(yīng)用狀態(tài)字來指示
終端主動(dòng)命令的可用性‘91XX’。
用于響應(yīng)終端Envelope命令的可用數(shù)據(jù)(‘9000’,‘62XX’,‘63XX’)。
暫時(shí)無法使用USAT去處理Envelope(‘9300’)。
1.41 主動(dòng)命令
當(dāng)狀態(tài)字SW1-SW2 為‘9000’,這卡可以通過回復(fù)‘91XX’來指示接下來有主動(dòng)命令要發(fā)送。終端通過FETCH-APDU來獲取卡的主動(dòng)命令。終端通過TERMINAL RESPONSE來回復(fù)卡。
1.42 ENVELOPE 命令
該命令用于傳輸數(shù)據(jù)到USAT。
。
1.5 應(yīng)用層
應(yīng)用層則包括UICC的文件系統(tǒng),以及UICC的安全機(jī)制,應(yīng)用交互機(jī)制。
1.51 應(yīng)用層文件系統(tǒng)下有三類文件 EF DF MF
Dedicated files :DF針對(duì)功能對(duì)文件進(jìn)行分組。ADF是包含特定應(yīng)用相關(guān)的所有DF 和 EF。
Elementary files : EF 分三類,Transparent EF ,Linear fixed EF,Cyclic EF.
Transparent EF 由一系列字節(jié)組成。當(dāng)對(duì)文件進(jìn)行修改操作時(shí),由文件起始位置加上相對(duì)偏移的方式對(duì)文件相關(guān)內(nèi)容進(jìn)行修改。
Linear fixed EF 具有線性固定的結(jié)構(gòu)的文件由一系列具有相同長(zhǎng)度記錄構(gòu)成。第一條記錄為1,SELECT命令會(huì)返回記錄的總數(shù)量。
Cyclic EF 一系列具有相同長(zhǎng)度的記錄首尾循環(huán)組成。
1.52 選擇文件的方法
當(dāng)ATR過程結(jié)束,MF文件被自動(dòng)選擇成為當(dāng)成路徑。所有文件可以通過SELECT命令來選擇,選擇的文件需在當(dāng)前目錄下,可以選擇以下幾種文件
當(dāng)前路徑下的子文件
當(dāng)前目錄下的子目錄
當(dāng)前目錄下的父親目錄
當(dāng)前目錄
當(dāng)前應(yīng)用下的應(yīng)用目錄ADF(默認(rèn)可以用’777F‘選擇)
主目錄MF
以下為相對(duì)目錄下可選擇的文件的表
我們也可以通過絕對(duì)路徑來選擇相應(yīng)文件。
不過這有以下幾條限制
如果選擇的文件在MF下,我們路徑中不需要加MF。
如果選擇路徑從當(dāng)前DF,終端不該使用‘777F’作為起始路徑。
如果從MF開始或者從當(dāng)前的DF開始為路徑選擇,終端命令的data字段不該為空。
如果從MF或當(dāng)前DF開始時(shí),終端不該用當(dāng)前的DF標(biāo)識(shí)。
1.53 短文件標(biāo)識(shí)
一些在DF目錄下的EF文件不需要通過SELECT來選擇,以下的一些命令配合SFI(短文件標(biāo)示)參數(shù)可以被默認(rèn)選擇。
READ BINARY
UPDATA RECORD
UPDATA RECORD
INCREASE;or
SEARCH RECORD
1.54 應(yīng)用會(huì)話激活
應(yīng)用會(huì)話會(huì)在終端發(fā)送附帶特定參數(shù)SELECT命令選擇AID后,被激活。UICC需要一定的程序來激活應(yīng)用會(huì)話。該應(yīng)用程序用于使終端和UICC處于對(duì)話狀態(tài)。終端可以通過發(fā)送STATUS命令來獲知UICC是否初始化成功。
1.55 應(yīng)用會(huì)話停止
一個(gè)應(yīng)用會(huì)話終止前應(yīng)該執(zhí)行一段終止程序。當(dāng)終止程序執(zhí)行開始,UICC會(huì)發(fā)送給終端一個(gè)STATUS命令來通知終端會(huì)話將被終止。
當(dāng)以下其中一個(gè)時(shí)間發(fā)生,應(yīng)用會(huì)話將被終止。
隱性停止:當(dāng)SELECT命令選擇另一個(gè)AID時(shí)候,并且命令參數(shù)指明新應(yīng)用將被執(zhí)行。
直接停止:如果重新用SELECT命令選擇當(dāng)前的AID的DF文件,并且命令參數(shù)中指示應(yīng)用會(huì)話停止。
1.56 應(yīng)用會(huì)話停止
終端通過SELECT重新選擇當(dāng)前的AID的DF,并且參數(shù)指示重啟。重啟之后,該應(yīng)用的安全狀態(tài)也會(huì)改變。
總結(jié)
以上是生活随笔為你收集整理的SIM通信协议-传输协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EF的性能瓶颈
- 下一篇: 黄芪粉的功效与作用 黄芪粉的药用价值_中