我都遍布网络,为CAC/ADPU提供了DOD和IDO文档,但是我找不到/找出序列以访问卡上的数据。我想获得公共信息用户名,例如Smith.joe.123123123
使用SmartCardio的厚Java应用程序。
i发行0x84挑战命令,并使用9000返回代码恢复挑战字节。我相信这些是在3DE中,但是如果没有密钥/密码,我该如何解码?
我现在对下一步该做什么感到困惑。我需要与挑战字节有什么关系?
我尝试了外部验证(0x82)这是成功的,但是随着返回代码6300(警告NV RAM更新)请注意,确保是好还是坏 - 也许它正在更新计数或日期或其他内容。
然后我尝试一个选择(0xa4),但获取6D00-找不到命令
我还尝试了获取数据(0xcb)-6d00也
我猜最后两个失败了,因为我不处于正确的安全状态。
我需要通过的命令的顺序是什么?
任何信息都非常感谢!
您应该加密挑战(随机字节序列,长度很重要),并以外部身份验证发送结果。在不了解各自的键或其算法的情况下,旅程在这里结束。
没有身份验证的某些数据可能是可读的,但是我对CAC不太熟悉,无法决定用户名是否在此类别中。
6d 00的结果代码不太可能表示不满足的安全状态,为此定义了69 82。
开始尝试ISO 7816-4(不多说明,难以消化)或介绍智能卡。