我正在尝试使用智能卡电子签名应用程序对文档进行数字签名。这是国民身份证,我遵循
ICAO 9303
和TR-03110
规范。如果我没记错的话,在选择 eSign
应用程序之前,我应该事先执行 Terminal Authentication
作为 Signature Terminal
。
在
ICAO 9303
中指出:
The following sequence of commands SHALL be used with secure messaging to implement Terminal Authentication:
MSE:Set DST
PSO:Verify Certificate
MSE:Set AT
Get Challenge
External Authenticate
Steps 1 and 2 are repeated for every CV certificate to be verified (CVCA Link Certificates, DV Certificate, Terminal Certificate).
要执行
MSE:Set DST
,应使用以下APDU
:
INS - 0x22
P1/P2 - 0x81B6
Data - 0x83 Reference of a public key, ISO 8859-1 encoded name of the public key to be set
这是我不明白的
Data
部分。我到底需要在那里提供什么?如何找到公钥或其名称?
我到底需要在那里提供什么?如何找到公钥或其名称?
在开始 TA 之前,您应该确保终端拥有自己的有效简历证书链 + 正确的私钥:
TA的第一步是证书链验证:
证书持有者参考 (CHR) 和证书授权参考 (CAR) 是编码为字符串值的 ID。
JMRTD 图书馆可以提供帮助:
完成终端认证的简单步骤如下:
通过这种方式,IC 对终端进行身份验证并授予对敏感数据组的访问权限。