SIM之APDU指令格式

來源:互聯網
上載者:User

 sim與ME之間通過APDU進行互動。

APDU包括命令APDU跟相應APDU,其中命令APDU格式為CLA+INS+P1+P2+P3+DATA,響應APDU格式為Data+SW1+SW2,當由ME從SIM讀取資料時則STPlayer使用READ,往上寫資料則使用WRITE模式。每個命令格式及APDU的格式我已經都寫過一遍了,這裡就不多做介紹 ,主要介紹為什麼這麼寫跟傳回值如何判斷。

 

MF或DF下的相應參數/資料:1-2:RFU,3-4:MF/DF下的剩餘未配置的空間,5-6檔案識別,7:檔案類型,8-12:RFU,13:可選欄位的長度,14-34:GSM特定資料

                                                   GSM特定資料  14:檔案類型,15:目前的目錄下的直接的DF數目,16:目前的目錄下的直接的EF數目,17:(CHV+PUK+ADM)目,                     18:              RFU,19:CHV1狀態(位1為幾個VERIFY CHV1嘗試正保留著),20:Unblock CHV1狀態(位1為幾個UNBLOCK CHV1嘗試正保留著),21:CHV2狀態,22:Unblock
CHV2狀態,23:FRU,24-34:管理欄位,往後為RFU

EF情況下的響應資料/參數:1-2:RFU,3-4:檔案大小,5-6:檔案識別,7:檔案類型,8:RFU,9-11:GSM存取許可權,12:檔案狀態,13:可選欄位的長度,14:檔案類型,15:記錄長度,16以後是RFU

EF檔案分類:00:transparent EF(檔案頭+位元組序列),01:Linear fixed EF(檔案頭+一豎下來的記錄) 03:cyclic EF(檔案頭+一豎下來的記錄,最後一條記錄有一指標連結,對於更新操作只能用PREVIOUS方式)

檔案類型:00:RFU 01:MF,02 :DF,04:EF

狀態字:正確執行  90 00:命令正常結束  9F XX:長度為XX的相應資料

                 參考管理  94 00 :沒有EF被選擇   94 02:超出範圍  94 04:檔案ID沒有發現,或者特徵字串沒有發現 94 08:檔案與命令不一致

                 安全管理  98 02 :CHV沒有初始化  98 04:不滿足存取條件或CHV校正不成功,至少還有一次剩餘嘗試或UNBLOCK CHV校正不成功,至少還有一次剩餘嘗試或鑒權失敗(連續三次CHV或十次UNBLOCK)   98 08:與CHV狀態矛盾  98 10:與檔案無效的狀態矛盾  98 40:CHV校正不成功,無剩餘嘗試或UNBLOCK CHV校正不成功,無剩餘嘗試或CHV 鎖或UNBLOCK CHV 鎖住 98 50:不能執行增加,已達到最大值

                 應用出錯 67 XX:錯誤的參數P3(一般XX為00),6B XX:不正確的參數P1或P2,6D XX :命令中提供不正確的指令代碼,6E XX :命令中提供錯誤的指令類別,6F XX,沒有給出診斷的技術問題。

SELECT:只能選擇當前,兒子,父親,親兄弟四種檔案,在STPlayer中選擇EF後,接下來的操作失敗,則會返回到上一級,須重新選擇EF。

STATUS與GET RESPONSE:區別在於STATUS命令不適用與EF,其中P3所需要的len為select響應的參數SW2

READ_BINARY與UPDATE_BINARY:針對transparent EF,offset high和offset low指明位移的高位跟低位,其中READ的len為GET RESPONSE中的最後一位,即該位元組序列的長度,而UPDATE的len為要更新位元組序列的長度,即後面跟資料的長度。

READ_RECORD與UPDATE_RECORD:針對Linear fixed EF跟cyclic EF,其中為cyclic EF時,UPDATE只能使用PREVIOUS方式,這裡說明模式,02:NEXT RECORD,03:PREVIOUS RECORD,04:ABSOLUTE MODE/CURRENT MODE,其中len為STATUS或GET RESPONSE響應資料的最後一位,而記錄號的範圍對於Linear fixed EF來說為1到最大記錄(響應資料的3、4位(檔案大小)除以該len),而對於cyclic要注意的一點是,雖然最後一條的下一條為第一條,當是當你指定到最後一條+1的記錄號,然後用當前模式,則會發生
94 02 的錯。

SEEK:針對Linear fixed EF跟cyclic EF,包含四種模式,X0(從頭往下),X1(從尾往上),X2(從下一個往下),X3(從上一個往上),其中X為1時返回記錄號。如操作不成功,則記錄指標未改變。其中查詢的長度為1到記錄長度。

INCREASE:針對cyclic EF,每條記錄都加上該命令的資料,裡面指定3個位元組,我把全部cysclic EF都找了一遍,發現就EFACM跟EFLND兩個檔案,既然它指定3個位元組,我想應該就是針對EFACM設定的了。

VERIFY_CHV/CHANGE_CHV/DISABLE_CHV/ENABLE_CHV/UNBLOCK_CHV:三次校正失敗CHV阻塞,十次UNBLOCK失敗死結。

INVALIDATE/REHABILITATE:這個命令前有個要求:模擬器取得安全取款條件,當我根據1117裡的步驟寫時,它前面選擇的是EFLOCI,然而在這個檔案下怎麼試都不行,後來我把檔案換為EFADN就可行了,我想應該是EFLOCI未有安全取款條件,而EFADN有。這個命令還得注意一點是,在執行該命令是,要校正的是CHV2。當執行成功後,GET_RESPONSE的響應資料的位元組12位1為0,即為無效檔案,此時只有SELECT跟REHABILITATE這兩條命令可執行。其中REHABILITATE即為恢複為有效命令。

RUN_ALGORITHM:此函數需在DFGSM下,後面跟一16位元組的隨意資料,通過GET RESPONSE返回密鑰。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.