一直试图读取数据从我的国家eID使用一个ACS ACR1281 1S双读取器国际商会。它需要基本访问控制(BAC)身份验证。我能够正确地进行身份验证,但当我试图使用EF.COM (01 E)使用符合国际民航组织Doc 9303第11部分的规范的安全消息传递时,我得到了一个错误
下面是我发送的APDU命令
Select EF.COM
// Send APDU
00 A4 02 0C 02 01 1E 00
// APDU Response
90 00
a) Mask class byte and pad command header:
CmdHeader = ‘0CA4020C80000000’
b) Pad data:
Data = ‘011E800000000000’
c) Encrypt data with KSEnc:
EncryptedData = ‘6375432908C044F6’
d) Build DO‘87’:
DO87 = ‘8709016375432908C044F6’
e) Concatenate CmdHeader and DO‘87’:
M = ‘0CA4020C800000008709016375432908C044F6’
App D-6 Machine Readable Travel Documents
f) Compute MAC of M:
i) Increment SSC with 1:
SSC = ‘887022120C06C227’
ii) Concatenate SSC and M and add padding:
N = ‘887022120C06C2270CA4020C800000008709016375432908C044F68000000000’
iii) Compute MAC over N with KSMAC:
CC = ‘BF8B92D635FF24F8’
g) Build DO‘8E’:
DO8E = ‘8E08BF8B92D635FF24F8’
h) Construct and send protected APDU:
ProtectedAPDU = ‘0CA4020C158709016375432908C044F68E08BF8B92D635FF24F800’
// Send APDU
00 A4 02 0C 15 87 09 01 7C 76 3C 70 98 06 45 BD 8E 08 20 42 68 2C D0 BE 14 A0 00
// APDU Response
6A 87KsEnc和KsMac是外部身份验证0x82之后计算的会话密钥。但我一直得到与P1-P2不一致的6A87-LC作为反馈。我正在使用PCSC5.0.0库与卡(ICC)对话。我不知道我错过了什么地方,请帮帮忙。
发布于 2020-07-30 10:56:24
亨利,从你最近的评论到@guidot,你好像发送了两次SELECT EF.COM?首先,没有安全消息传递(这将破坏使用BAC建立的可信信道),然后是安全APDU,然后尝试使用不再存在的会话密钥/可信通道。
https://stackoverflow.com/questions/63088814
复制相似问题