[英]SELECT APDU and logical channels
據我所知,要打開/關閉邏輯通道,我們必須使用MANAGE CHANNEL
APDU命令。
- 打開邏輯通道:
00 70 00 P1 P2 LE
- 關閉邏輯通道:
00 70 80 P1 P2 LE
- P1-P2 =
0000
-0003
- LE =
01
(如果P1-P2 =0000
)或為空(如果P1-P2!=0000
)
。 默認情況下,唯一打開的邏輯通道是基本通道。
問題:
1-為什么當我通過關閉邏輯通道發送SELECT APDU時,它會自動打開?
2-何時/必須/需要使用打開/關閉邏輯通道命令(MANAGE CHANNEL)?
這是Opensc-tool的輸出,如您所見,我通過邏輯通道1和2成功發送和接收了SELECT和GET RESPONSE命令和響應,而沒有在之前打開它們:
邏輯通道1:
C:\>cd E:\OpenSC\tools
E:\OpenSC\tools>opensc-tool -s 01A40400 -s 01C0000012
Using reader with a card: ACS CCID USB Reader 0
Sending: 01 A4 04 00
Received (SW1=0x90, SW2=0x00)
Sending: 01 C0 00 00 12
Received (SW1=0x90, SW2=0x00):
6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 o..............e
01 FF ..
邏輯通道2:
E:\OpenSC\tools>opensc-tool -s 02A40400 -s 02C0000012
Using reader with a card: ACS CCID USB Reader 0
Sending: 02 A4 04 00
Received (SW1=0x90, SW2=0x00)
Sending: 02 C0 00 00 12
Received (SW1=0x90, SW2=0x00):
6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 o..............e
01 FF ..
E:\OpenSC\tools>
自1995年ISO 7816-4版本以來,SELECT被定義為打開邏輯通道的替代方法。除了提到的MANAGE CHANNEL,其他任何命令都不能這樣做。 邏輯通道的管理信息通常會消耗大量資源(例如,用於獲取的訪問權限的RAM,會話密鑰,當前的安全環境)。 一旦出現指向該方向的錯誤(某種意義上的plausibe是6A 84,意味着文件中沒有更多的內存,65 81內存錯誤,但是無論如何,您的卡文檔在這里都有優先權),您應該事先關閉它。 通常,有充分的理由使用邏輯通道,並且該邏輯通道是從不再需要的用例中得出的。
這些ISO命令直接進入ISD,根據全球平台 ,在所有可用邏輯通道上默認選擇ISD。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.