基于公开密钥体系-用户身份识别卡获取动态口令的方法

文档序号:7693063阅读:195来源:国知局
专利名称:基于公开密钥体系-用户身份识别卡获取动态口令的方法
技术领域
本发明涉及网络安全领域,特别是涉及一种基于公开密钥体系_用户身份识别卡(Public Key Infrastructure - Subscriber Identity Model, PKI — SIM )获取动态口令的方法。
背景技术
目前, 一次性口令方法(OTP, One-Time Password )以其口令具有一次 性、能有效防止重放攻击(Replay Attack )以及用户真实口令无须在网上传 输等优点,在身份认证领域得到了广泛应用。在比较流行的OTP方法中,动态令牌卡(Token)通过采用一种专用硬件 一令牌卡,利用密码生成芯片运行专门的密码算法,根据当前时间生成当前 密码。该技术基于令牌卡和服务提供商(SP)后台服务器的时间同步,通过运 算生成一致的动态口令,基于时间同步的令牌卡的更新率通常为60秒,即 每60秒产生一个新口令。供的网络系统登录后SP台服务器以获取相关服务时,使用动态令牌卡生成 当前口令,并在登录页面上输入该口令,然后再由SP后台服务器对该动态 口令进行验证从而实现对该用户的身份认证。上述利用动态令牌卡生成动态口令的技术方案中,由于进行同步的基础 是国际标准时间,因此要求SP后台服务器能够十分精确的保持正确的时钟, 且时钟不得随意更改,以免发生同步问题,影响所有基于此SP后台服务器 进行认证的令牌,同时,也对令牌卡的的制造工艺要求更严格,以降低令牌 卡和SP后台服务器前可以通过增大检查窗口的技术(前后10分钟或更长时间)来进行远程同 步,确保其能够继续使用,但该方法将增大暴力攻击的成功概率,降低身份 认证系统的安全性。精确性要求过高的局限性。 发明内容有鉴于此,本发明的主要目的在于提供一种基于PKI- SIM卡获取动态 口令的方法,其能克服对时钟精确性的依赖。为了达到上述目的,本发明提出的技术方案为一种基于PKI - SIM卡获取动态口令的方法,该方法包括以下步骤a、 PKI-SIM卡根据指定的一次性动态口令OTP服务的状态信息,判断所 述OTP服务是否开通,如果开通则转入步骤c;b、 PKI - SIM卡向系统定制OTP服务,在所述定制OTP服务的过程中, PKI - SIM卡将PKI - SIM卡标识和自身生成的密钥同步给SP后台服务器;c、 PKI - SIM卡利用PKI - SIM卡标识(ICCID)和密钥生成动态口令。 如上所述的方法中,所述步骤b中所述PKI - SIM卡将PKI - SIM卡标识和自身生成的密钥同步给SP后台服务器的方法包括以下步骤 bxl、随机生成一个密钥;bx2、将PKI - SIM卡标识和密钥组合,生成同步信息数据;bx3、利用SP的公钥对同步信息数据进行公钥加密运算,得到加密信息;bx4、将加密信息发送到SP后台服务器;bx5、 SP后台服务器利用自己的私钥对加密信息进行解密,获得PKI - SIM 卡标识和密钥。如上所述的方法中,所述步骤bxl中随机生成一个三重DES密钥;所述步 骤bx3中按照RSAES-PKCSl-vl—5标准,利用SP的公钥对同步信息数据进行 公钥加密运算;所述步骤bx5中,通过短信方式将加密信息发送到SP后台服务器。如上所述的方法中,所述步骤b中实现PKI-SIM卡与SP后台服务器的数 据同步的方法进一步包括步骤将与所述OTP服务对应的事件计数器的计数值置零。 如上所述的方法中,所述步骤a与步骤b之间进一步包括步骤 通过用户界面提示用户服务未开通,退出流程。如上所述的方法中,所述步骤c在生成动态口令之前,所述步骤c进一步 包括以下步骤cxl、根据所述OTP服务的OTP个人识别码状态信息判断是否需要OTP个人识别码保护,如果需要,则转入步骤cx2,否则转入所述利用PKI-SIM卡标识和密钥生成动态口令的步骤;cx2^睑证用户的个人识别码是否正确,如果正确则转入所述利用PKI - SIM卡标识和密钥生成动态口令的步骤,否则退出流程。如上所述的方法中,所述步骤c生成动态口令的方法包括以下步骤 将PKI - SIM卡标识和事件计数器的计数值组合生成种子数据; 利用对称加密算法对种子数据进行加密运算,得到加密的种子数据; 利用SHA1 -Hash散列函数得到加密的种子数据的散列值; 对散列值进行数字化处理,所述数字化处理方法为从散列值中动态取出至少一个字节的数据并转化成十进制数字,通过用户界面将所述十进制数字作为动态口令结果显示;将事件计数器的计数值加一 。如上所述的方法中,所述步骤c生成动态口令的方法中采用的所述对称加 密算法为三重DES加密方法。如上所述的方法中,所述步骤c生成动态口令的方法包括以下步骤将PKI - SIM卡标识和挑战码组合生成种子数据,其中,所述挑战码由SP 服务器产生,用户在登录SP后台服务器时从登录页面中得到所述挑战码;利用对称加密算法对种子数据进行加密运算,得到加密的种子数据;利用SHA1 -Hash散列函数得到加密的种子数据的散列值;对散列值进行数字化处理,所述数字化处理方法为从散列值中动态取 出至少一个字节的数据并转化成十进制数字,通过用户界面将所述十进制数 字作为动态口令结果显示。如上所述的方法中,所述步骤c生成动态口令的方法中釆用的所述对称 加密算法为三重DES加密方法。综上所述,本发明基于PKI-SIM卡实现了动态令牌卡的功能,该方法 通过将用于生成动态口令的密钥和SIM卡标识使用非对称加密方式加密后 发送给SP后台服务器,SP后台服务器再对其进行解密获得用于生成动态口 令的密钥和SIM卡标识,从而实现PKI-SIM卡与SP后台服务器的数据同多问题。


图1是本发明方法的流程图。图2是本发明实施例一的流程图。图3示出图2中PKI- SIM卡与SP后台服务器的数据同步的流程图。图4示出图2中生成动态口令的流程图。图5是本发明实施例二的流程图。图6示出图5中生成动态口令的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体 实施例对本发明作进 一 步地详细描述。本发明的基本思想是通过数据同步的形式来替代传统令牌卡所采用的时 间同步技术,简单的说就是,当用户开通指定的OTP服务时,PKI-SIM卡将 将用于生成动态口令的密钥和SIM卡标识作为同步信息数据,利用SP的公钥将同步信息数据加密后传递给SP后台服务器,SP后台服务器利用自己的私钥对同步信息数据解密,获得用于生成动态口令的密钥和SIM卡标识,从而实现 PKI-SIM卡与SP后台服务器的数据同步,然后再由PKI-SIM卡利用这些种 子数据的信息生成动态口令。如图1所示,本发明基于PKI-SIM卡获取动态口令的方法,主要包括以 下步骤101 、 PKI - SIM卡根据指定OTP服务的状态信息,判断OTP服务是否开 通,如果开通则转入步骤103。这里,指定OTP服务的状态信息是由系统事先预置于PKI - SIM卡中的, 当用户开通所指定的OTP服务时,将会改变其状态信息,以指示所指定的OTP 服务已开通,具体的状态信息设置方法为现有技术,此处不再赘述。102、 PKI - SIM卡向系统定制OTP服务,在所述定制OTP服务的过程中, PKI - SIM卡将PKI - SIM卡标识和自身生成的密钥同步给SP后台服务器。本步骤是用于开通指定OTP服务,该过程包含PKI-SIM卡与SP后台服 务器的数据同步过程。这里的数据同步过程就是PKI - SIM卡将PKI - SIM卡 标识和自身生成的密钥同步给SP后台服务器,具体的说就是PKI-SIM卡将 ICCID和自身生成的密钥作为同步信息,并利用SP的公钥对同步信息数据进行 加密后通过系统的后台服务器发送给SP后台服务器,SP后台服务器再利用SP 的私钥对收到的同步信息解密,从而获得PKI - SIM卡用于生成动态口令的密 钥和标识该PKI - SIM的ICCID,以便此后对该PKI - SIM卡的动态口令进行 认证。所述SP的公钥可以在发行PKI - SIM卡的时候预置在卡内部或者由系统 后台服务器在开通OTP服务时远程写入PKI - SIM卡。另外,在服务开通后,当用户认为需要更换密钥重新进行数据同步时,也 可通过SIM卡工具包(SIMCard ToolKit, STK)菜单选择数据同步功能单独进 行数据同步。103、 PKI-SIM卡利用ICCID和密钥生成动态口令。这里,根据生成动态口令所使用的种子数据的不同,动态口令的生成方式可以分为两种, 一种是事件同步方式,另一种是挑战码方式,所述事件同步方 式所采用的种子数据是ICCID与事件计数器的计数值的组合,所述挑战码方式所采用的种子数据是ICCID与挑战码的组合,所述挑战码是由SP后台服务器 产生的,用户在登录SP后台服务器时可以从登录页面中得到所述挑战码,在 实际应用中具体采用上述哪种动态口令生成方式可以由系统进行选择。 为了更好地说明本发明的方法,下面用较佳实施例进行详细描述。 图2为本发明实施例一的流程图。实施例一中生成动态口令的方式为事 件同步方式,如图2所示实施例一包括以下步骤201、 PKI-SIM卡根据指定OTP服务的状态信息,判断OTP服务是否开 通,如果开通,则直接转入步骤203,否则转入步骤202开通OTP服务;在实际应用中,如果判断出指定OTP服务没有开通,也可以提示用户服务 未开通,然后结束流程。此后,由用户通过STK菜单方式触发开通指定OTP 服务过程的执行,然后再由用户通过STK菜单重新触发动态口令生成过程的 执行来获得动态口令。202、 PKI - SIM卡向系统定制OTP服务,在所述定制OTP服务的过程中, PKI - SIM卡将PKI - SIM卡标识和自身生成的密钥同步给SP后台服务器,同 时将所述OTP服务对应的事件计数器的计数值置零。在实际应用中,对ICCID和密钥进行加密时可以使用非对称加密方式以增 强加密信息的安全性,如图3所示,步骤202中PKI - SIM卡将PKI - SIM卡 标识和自身生成的密钥同步给SP后台服务器的流程包括以下步骤301、 随机生成一个三重DES的密钥deskey;302、 将ICCID和deskey组合,生成同步信息数据M;303、 按照RSAES-PKCSl-vl—5标准,利用SP的公钥对M进行公钥加密 运算,得到加密信息Info;304、 将与所述OTP服务对应的事件计数器的计数值置零;305、 通过短信方式将Info发送到系统后台服务器,并由系统后台服务器转 发至SP后台服务器;306、SP后台服务器利用自己的私钥对Info进行解密,获得ICCID和deskey。 这里需要说明的是,步骤304在上述流程中的位置没有严格的要求,只要 在实现数据同步的过程中将事件计数器的计数值置零即可。203、 根据所述OTP服务的OTP个人识别码状态信息判断是否需要OTP 个人识别码保护,如果需要则转入步骤204验证用户的个人识别码,否则转入 步骤205直接生成动态口令。这里,OTP个人识别码状态信息是用户在开通OTP服务时由用户根据实际 需要设定的,该信息存储于PKI-SIM卡中。204、 验证用户的个人识别码是否正确,如果正确则转入步骤205,否则结 束流程。205、 PKI-SIM卡利用ICCID和密钥,采用事件同步的方式生成动态口令。 这里,如图4所示,本实施例中采用事件同步方式生成动态口令的方法包括以下步骤401、 将ICCiD和事件计数器的计数值组合生成种子数据;402、 利用三重DES加密方法对种子数据进行加密运算,得到加密的种 子数据EM;这里需要说明的是,在实际应用中,对种子数据进行加密运算时所采用 的加密算法并不限于本实施例中的三重DES加密方法,只要是对称加密算 法即可。403、 利用SHA1 - Hash散列函数得到EM的散列值SM;404、 对SM进行数字化处理,并将数字化处理结果作为动态口令通过 用户界面显示出来;所述数字化处理方法为从SM中动态取出至少一个字节的数据并转化 成十进制数字,本实施例中从SM中动态取出4个字节的数据,然后把这4 个字字的数据转换成8位的十进制数字。405、 将事件计数器的计数值加一。这里需要说明的是,步骤405在上述流程中的位置没有严格的要求,只要在每次生成动态口令时,PKI - SIM卡将所指定OTP服务的事件计数器的计数 值加一即可,相应的SP后台服务器也会对其所存储的相应的事件计数器的计 数值进行加一,这样就能使PKI- SIM卡和SP后台服务器各自的关于所指定 OTP服务的事件计数器保持一致,从而使两者能够基于事件进行同步。在上述实施例一的技术方案中,步骤201实现了本发明方法的步骤101, 步骤202实现了本发明方法的步骤102,步骤205实现了本发明方法的步骤103, 步骤203和204是在实际应用中根据用户需要而增设的用户个人识别码的验证 步骤,以提高用户身份认证的安全性。本发明的实施例二给出了采用挑战码方式生成动态口令的方法,实施例 二和实施例一的主要区别在于实施例二使用SP提供的挑战码替代事件计 数器来生成种子数据,相应的在方法流程中也不需要对事件计数器进行设置 和更新,如图5所示,实施例二主要包括以下步骤501、 PKI-SIM卡根据指定OTP服务的状态信息,判断OTP服务是否 开通,如果开通则转入步骤503,否则转入步骤502;502、 PKI - SIM卡向系统定制OTP服务,在所述定制OTP服务的过程中, PKI - SIM卡将PKI - SIM卡标识和自身生成的密钥同步给SP后台服务器。这里,实现PKI-SIM卡与SP后台服务器的数据同步方法与实施例一的数 据同步方法基本相同,不同之处在于本实施例中不需要执行对事件计数器的计 数值置零的步骤,其他步骤均相同,故不再赘述。503、 根据所述OTP服务的OTP个人识别码状态信息判断是否需要OTP 个人识别码保护,如果需要则转入步骤504验证用户的个人识别码,否则转入 步骤505直接生成动态口令。504、 验证用户的个人识别码是否正确,如果不正确,则结束流程。505、 PKI-SIM卡利用ICCID和密钥,采用4兆战码的方式生成动态口令。 这里,如图6所示,采用挑战码方式生成动态口令的方法包括以下步骤601、 将ICCID和挑战码组合生成种子数据;602、 利用三重DES加密方法对种子数据进行加密运算,得到加密的种子数据EM;603、 利用SHA1 - Hash散列函数得到EM的散列值SM;604、 对SM进行数字化处理,并将数字化处理结果作为动态口令通过 用户界面显示出来。上述采用挑战码的方式生成动态口令的方法与实施例 一 中采用事件同 步的方式生成动态口令的方法基本相同,不同之处在于本实施例是利用 ICCID和挑战码的组合来生成种子数据,另外,也不需要对事件计数器的计 数值执行加一操作,除此之外,其余步骤均相同,故不再赘述。本发明中PKI-SIM卡所生成的三重DES密钥的更新管理可以由SP后台 服务器完成,当三重DES密钥使用一定时间或次数之后,SP后台服务器将 使用密钥交换协议对其进行更新。密钥更新时,由PKI-SIM卡生成新的三 重DES密钥,然后再使用SP的公钥对其进行加密并传送至SP后台服务器。以上是对本发明及其较佳实施例的详细描述,这里需要说明的是,在实 际应用中,用户可以使用装设PKI-SIM卡手机的STK菜单来实施本发明的 方法。例如,提供OTP服务的STK菜单可以包括"获取口令,,、"开通服 务"、"注销服务"、"数据同步"和"设定PIN保护"等功能选项,用户 可以通过选择这些功能选项来调用实现相应功能的过程,例如,用户可以通 过选择上述STK菜单上的"获取口令"选项获取指定OTP服务的动态口令, 用户也可以在认为需要数据同步时通过选择"数据同步"功能选项来实现 PKI-SIM卡与SP后台服务器的数据同步。通过釆用上述技术方案,本发明基于PKI- SIM卡采用数据同步的方式性,避免了因时间同步而产生的诸多局限性。本发明中所使用的三重DES密钥是用户与SP之间协商的,因此能够保 证点对点的数据安全。本发明通过手机的显示屏幕和键盘完成与用户的信息交互,有效减少了 设备成本以及设备本身的故障点。另外,本发明在实际应用时,用户仅需携带手机,方便了用户使用。 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1、一种基于公开密钥体系-用户身份识别PKI-SIM卡获取动态口令的方法,其特征在于,该方法包括以下步骤a、PKI-SIM卡根据指定的一次性动态口令OTP服务的状态信息,判断所述OTP服务是否开通,如果开通则转入步骤c;b、PKI-SIM卡向系统定制OTP服务,在所述定制OTP服务的过程中,PKI-SIM卡将PKI-SIM卡标识和自身生成的密钥同步给SP后台服务器;c、PKI-SIM卡利用PKI-SIM卡标识和密钥生成动态口令。
2、 根据权利要求1所述的方法,其特征在于,所述步骤b中所述PKI - SIM 卡将PKI _ SIM卡标识和自身生成的密钥同步给SP后台服务器的方法包括以下 步骤bxl、随4几生成一个密钥;bx2、将PKI-SIM卡标识和密钥组合,生成同步信息数据;bx3、利用SP的公钥对同步信息数据进行公钥加密运算,得到加密信息;bx4、将加密信息发送到SP后台服务器;bx5、 SP后台服务器利用自己的私钥对加密信息进行解密,获得PKI-SIM 卡标识和密钥。
3、 根据权利要求2所述的方法,其特征在于,所述步骤bxl中随机生成一 个三重DES密钥;所述步骤bx3中按照RSAES-PKCSl-v1—5标准,利用SP的 公钥对同步信息数据进行公钥加密运算;所述步骤bx5中,通过短信方式将加 密信息发送到SP后台服务器。
4、 根据权利要求2或3所述的方法,其特征在于,所述步骤b中实现PKI -SIM卡与SP后台服务器的数据同步的方法进一步包括步骤将与所述OTP服务对应的事件计数器的计数值置零。
5、 根据权利要求1所述的方法,其特征在于,所述步骤a与步骤b之间进 一步包括步骤通过用户界面提示用户服务未开通,退出流程。
6、 根据权利要求1所述的方法,其特征在于,所述步骤C在生成动态口令之前,所述步骤c进一步包括以下步骤cxl、根据所述OTP服务的OTP个人识别码状态信息判断是否需要OTP 个人识别码保护,如果需要,则转入步骤cx2,否则转入所述利用PKI-SIM卡 标识和密钥生成动态口令的步骤;cx2、验证用户的个人识别码是否正确,如果正确则转入所述利用PKI - SIM 卡标识和密钥生成动态口令的步骤,否则退出流程。
7、 根据权利要求4所述的方法,其特征在于,所述步骤c生成动态口令的 方法包括以下步骤将PKI - SIM卡标识和事件计数器的计数值组合生成种子数据; 利用对称加密算法对种子数据进行加密运算,得到加密的种子数据; 利用SHA1 - Hash散列函数得到加密的种子数据的散列值; 对散列值进行数字化处理,所述数字化处理方法为从散列值中动态取出至少一个字节的数据并转化成十进制数字,通过用户界面将所述十进制数字作为动态口令结果显示;将事件计数器的计数值加一
8、 根据权利要求7所述的方法,其特征在于,所述步骤c生成动态口令的 方法中采用的所述对称加密算法为三重DES加密方法。
9、 根据权利要求1至6任一所述的方法,其特征在于,所述步骤c生成动 态口令的方法包括以下步骤将PKI - SIM卡标识和挑战码组合生成种子数据,其中,所述挑战码由SP 服务器产生,用户在登录SP后台服务器时从登录页面中得到所述挑战码; 利用对称加密算法对种子数据进行加密运算,得到加密的种子数据; 利用SHA1 -Hash散列函数得到加密的种子数据的散列值; 对散列值进行数字化处理,所述数字化处理方法为从散列值中动态取出 至少一个字节的数据并转化成十进制数字,通过用户界面将所述十进制数字作
10、根据权利要求9所述的方法,其特征在于,所述步骤C生成动态口令的方法中采用的所述对称加密算法为三重DES加密方法。
全文摘要
本发明公开了一种基于PKI-SIM卡获取动态口令的方法,该方法包括PKI-SIM卡根据指定的一次性动态口令OTP服务的状态信息,判断所述OTP服务是否开通,如果未开通则向系统定制OTP服务,在所述定制OTP服务的过程中,PKI-SIM卡将PKI-SIM卡标识和自身生成的密钥同步给SP后台服务器;所述OTP服务开通后,PKI-SIM卡利用PKI-SIM卡标识和密钥生成动态口令。本发明通过PKI-SIM卡与SP后台服务器的数据同步方式能有效避免传统令牌卡技术因基于时间同步而产生的诸多局限性。
文档编号H04L9/32GK101277182SQ20081010200
公开日2008年10月1日 申请日期2008年3月14日 优先权日2008年3月14日
发明者邹俊伟 申请人:北京信联恒业通讯技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1