微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM7 智能卡的动态口令终端研究与实现

ARM7 智能卡的动态口令终端研究与实现

时间:11-30 来源:互联网 点击:

手机以及SIM 卡之间的相互通信。

  3 动态口令实现

  3.1 动态口令实现流程

  基于ARM7智能卡的动态口令认证系统终端采用双因素认证方式,首先获取动态口令具有PIN码保护,用户需要输入正确的PIN码,才能产生动态口令。利用手机STK菜单功能,使用Get Input命令输入数字PIN码。用户除了输入正确的PIN码之外,还要求与认证服务器的计数器实现同步才能得到正确的操作口令。

  动态口令的实现过程包括开通服务、数据同步及获取口令等。开通服务主要包括密钥分散以及数据加密两部分,智能卡和认证服务器都预先存储10 组相同的主密钥。在开通时智能卡利用随机生成的密钥索引(简称KID)选取其中的一组(16 字节),采用PBOC 算法进行密钥分散后得到用于数据加密的会话密钥KC,然后使用KC 对卡号和随机生成的口令加密密钥(deskey)经过三重数据加密标准算法(简称3DES)加密,再将加密结果连同密钥索引一起以数据短信息的形式上行给认证服务器,认证服务器接收到数据后,利用密钥索引取出相同的主密钥,同样对主密钥进行PBOC 密钥分散得到解密密钥KC,再用KC 解出对应智能卡的ICCID 及deskey,并同时将同步计数器清零,实现了与卡端的同步。数据同步主要用于防止智能卡计数器与认证服务器计数器出现异常时能够重新获取同步信息的操作。

  获取口令过程主要包括三部分,首先使用智能卡内部与认证服务器随机生成的deskey 对卡片序列号(简称ICCID)和计数器Counter 进行加密,然后对加密结果进行SHA1-HASH 处理得到20 字节密文,最后对HASH 结果进行数字化。其实现流程如下图(3)所示:


  其中数字化是从 HASH 结果的20 字节(160bit)数据中动态取出4 字节的数据,把该4 字节数据转换为8 位十进制数字。

  3.2 动态口令STK 菜单实现

  用户识别应用发展工具 SIM TOOL KIT(简称STK)是在原SIM 卡被动式的操作系统上,衍生出的SIM 卡交互式操作系统。其原理就是通过手机SIM 卡接口,为手机的用户接口(简称UI)提供符合GSM11.14 规范的字节流,手机UI 把这些字节流解析成能够识别的菜单元素,从而构建一个跟手机菜单系统一致的应用菜单。这个应用菜单跟手机菜单是有区别的,用户选择菜单后,手机把这个信息直接传递给ARM7 智能卡,而不是手机的操作系统。动态口令的输出采用STK 菜单方式在手机屏幕上进行显示,为了实现STK 操作流程,需要将动态口令加密算法封装成字节码(Byte Code)形式在智能卡操作系统内部进行运算,最终采用STK 的display 命令在手机终端将结果显示出来。在具体STK 菜单设计过程中,采用了自行设计的《手机STK 功能仿真器》工具对动态口令的STK 菜单进行了仿真测试,动态口令的 STK 菜单在手机上实现效果图如下图(4)所示:


  在ARM7智能卡内部使用STK菜单方式实现动态口令令牌功能,口令由智能卡内部生成,通过手机屏幕以STK菜单形式显示出来。口令动态生成,随时间或者次数变化而变化,具有不可预测性。口令生命周期短,一次有效,既可以克服静态口令重复使用容易泄漏的弱点,有效抵御密码窃取和重播攻击行为,又具有友好的菜单操作界面。由于用户口令更新阶段是在手机终端完成的,因此也可以防止拒绝服务攻击及口令猜测攻击等行为。

  4 结论

  本文利用手机终端STK 功能扩展技术,使用ARM7 智能卡硬件平台实现动态口令客户端STK 菜单设计,解决了动态口令终端USIM 卡或PIM 卡需更换用户SIM 卡或因刮刮卡、令牌因终端成本高带来的不足;利用智能卡内部的硬件加密算法及STK 菜单提供的友好界面,很好地解决了动态口令信息交换的安全与数据加密问题。本文设计实现的动态口令终端系统将在各网络平台中应用推广,届时将会在越来越多的商业场合得到广泛应用。预计5年内整个项目手机用户使用的带动态口令功能的ARM7 智能卡片可达100 多万片,产生经济效益可达1500 多万元。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top