智能密码钥匙的基本工作方式为:从上位主机接收一条命令,处理后将响应回送给上位主机。其处理过程如下图。
每条命令的处理均得通过以上模块。以USB接口的智能密码钥匙为例,上位主机给设备上电之后,先发送一条特定命令取走该设备ATR,然后发送命令启动处理操作。
第一步:复位响应。每当接到上位主机发送的复位命令时,智能密码钥匙回送ATR。ATR中含有标识数据,上位取走ATR后即可获知智能密码钥匙的操作特性,以此进行后续的数据通信。
第二步:数据收发,根据预定的传输协议,对数据进行解码。如出现异常,则回送报错信息。
第三步:链接模式传输管理。鉴于某些命令的长度可能超过数据收发缓冲区的大小,还进行分块传输的相关处理。
第四步:传输检查。通过检查某一块的数据包格式,发现传输错误并通知接口设备。在这种情况下,接口设备将重发错误数据。反之,若接口设备通知密码钥匙数据发送出错,密码钥匙将执行数据重发操作。
第五步:数据传递。若经过上面的步骤后数据正确接收,将所接收的数据传递给下一层面进行后续处理,反之亦然。
第六步:传输结束处理。如果正确传输后没有任何其他动作,将转入待机方式以节省功耗,反之,向终端发送有关数据信息,也将执行以上若干类似步骤的操作。
命令处理流程如下:
(1)检查命令中的必备字段是否完整,数据字段是否格式正确。
(2)解析命令,检查是否在预定的命令集范围内,是否符合命令定义等。如果命令使用了ISO/IEC7816-4所定义的安全报文,则对其进行解密、校验完整性等处理。
(3)上述检查均通过,执行命令。
(4)根据命令执行以及上述步骤的处理情况,组织响应报文并回送。