首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用国际民航组织9303BAC从国家eID (T=0)读取数据

尝试使用国际民航组织9303BAC从国家eID (T=0)读取数据
EN

Stack Overflow用户
提问于 2020-07-25 13:18:24
回答 1查看 515关注 0票数 1

一直试图读取数据从我的国家eID使用一个ACS ACR1281 1S双读取器国际商会。它需要基本访问控制(BAC)身份验证。我能够正确地进行身份验证,但当我试图使用EF.COM (01 E)使用符合国际民航组织Doc 9303第11部分的规范的安全消息传递时,我得到了一个错误

下面是我发送的APDU命令

代码语言:javascript
复制
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 87

KsEnc和KsMac是外部身份验证0x82之后计算的会话密钥。但我一直得到与P1-P2不一致的6A87-LC作为反馈。我正在使用PCSC5.0.0库与卡(ICC)对话。我不知道我错过了什么地方,请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-30 10:56:24

亨利,从你最近的评论到@guidot,你好像发送了两次SELECT EF.COM?首先,没有安全消息传递(这将破坏使用BAC建立的可信信道),然后是安全APDU,然后尝试使用不再存在的会话密钥/可信通道。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63088814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档