我到处都是网络,拥有CAC / ADPU的DOD和IDO文档,但是我无法找到/弄清楚访问卡上数据的顺序。我想获取公共信息用户名,例如SMITH.JOE.123123123
使用smartcardio的厚Java应用程序。
我发出0x84 CHALLENGE命令,并用9000返回码取回质询字节。我相信这些都在3DES中,但是如果我没有密钥/密码,我将如何解码?
我现在对下一步做什么感到困惑。 我需要处理挑战字节吗?
我尝试了EXTERNAL AUTH(0x82) 此操作成功,但是返回代码为6300(警告NV RAM已更新),请注意这是好是坏-可能是正在更新计数或日期等。
然后我尝试执行SELECT(0xa4),但得到6D00-找不到命令
我也尝试过GET DATA(0xCB)-6D00
我猜测最后两个失败,因为我没有处于正确的安全状态下发出它们。
我需要执行的命令顺序是什么?
任何信息都非常感谢!
答案 0 :(得分:0)
您应该对质询进行加密(随机字节序列,长度很重要),然后使用外部身份验证发送结果。在不了解相应密钥或其算法的情况下,旅程到此为止。
有些数据无需身份验证即可读取,但是我对CAC不够熟悉,无法确定用户名是否属于此类别。
结果代码6D 00不太可能表示不满足安全状态,为此定义了69 82。
首先尝试使用ISO 7816-4(解释不多,难以理解)或对智能卡进行介绍。