一种动态口令生成及认证的方法和系统的利记博彩app

文档序号:7965523阅读:475来源:国知局
专利名称:一种动态口令生成及认证的方法和系统的利记博彩app
技术领域
本发明涉及身份认证领域,特别涉及一种动态口令生成及认证的方法和系统。
背景技术
随着网络的发展,人们越来越多的活动依赖于网络进行,如网上银行、电话银行等,网络信息安全与人们的利益密切相关,身份认证技术也随之发展,比静态口令更为安全的身份认证方法——动态口令认证方法也越来越受到人们的青睐。目前,动态口令一般由服务器生成并以短信或者邮件的形式下发给用户或者由用户持有的动态口令令牌生成。倘若短信或邮件被非法截获或者动态口令令牌被非法用户利用,又或者用户进行交易操作时数据被篡改、用户登录了钓鱼网站,输入的动态口令被截获,都会对用户的利益造成损害,严重影响到用户的权益。

发明内容
本发明的主要目的在于提供一种动态口令生成及认证的方法及系统,以解决现有技术中动态口令认证存在高风险的问题。为了实现上述目的,根据本发明的一个方面,提供了一种生成及认证的方法,该方法包括动态口令的生成过程及认证过程,其中动态口令的生成过程包括步骤Si,读卡终端与智能卡建立连接,所述读卡终端发送第一原始数据和第一预置数据给所述智能卡;步骤S2,所述智能卡将接收到的所述第一原始数据、所述第一预置数据与所述智能卡中存储的第二预置数据、第一卡片状态数据及第一交易序号进行组合生成第一组合数据,并将存储的智能卡密钥进行密钥分散生成第一过程密钥、第二过程密钥;步骤S3,所述智能卡对所述第一过程密钥及所述第一组合数据进行计算生成第一消息认证码,并用所述第二过程密钥对所述第一消息认证码进行加密生成第一应用密文;步骤S4,所述智能卡将所述第一应用密文与所述智能卡中存储的所述第一交易序号、第三预置数据、所述第一卡片状态数据进行组合生成第二组合数据,并将所述第一交易序号的值自增第一预设值;步骤S5,所述智能卡将所述第二组合数据发送给所述读卡终端;步骤S6,所述读卡终端对所述第二组合数据进行提取并处理生成第三组合数据, 对所述第三组合数据进行转换处理生成动态口令并输出;所述动态口令的认证过程包括以下步骤,步骤S7,所述服务器获取用户输入的动态口令,并对所述用户输入的动态口令进行转换得到第四组合数据,所述服务器从查找到的与所述用户匹配的账户信息中调用第一预置数据、第二预置数据、第三预置数据、第三交易序号;步骤S8,所述服务器对所述第四组合数据进行解析,得到第二交易序号、第二应用密文及第二卡片状态数据,并验证所述第二卡片状态数据是否合法,是则执行下一步,否则认证失败;步骤S9,所述服务器根据所述第二交易序号计算得到第四交易序号;步骤S10,所述服务器将所述第四交易序号与第二原始数据、所述第二卡片状态数据、所述第一预置数据、所述第二预置数据进行组合生成第五组合数据,根据智能卡发行方密钥进行密钥分散生成第三过程密钥、第四过程密钥;步骤S11,所述服务器对所述第三过程密钥及所述第五组合数据进行计算,生成第二消息认证码,并用所述第四过程密钥对所述第二消息认证码进行加密生成第三应用密文;步骤S12,所述服务器验证所述第三应用密文与解析得到的所述第二应用密文是否相应,是则认证成功,所述服务器将所述用户的账户信息中的所述第三交易序号的值更新为所述第四交易序号的值,否则认证失败。其中,所述第一预置数据包括所述读卡终端的识别信息;所述第二预置数据为一组固定数据,包括所述智能卡的部分基本信息;所述第一原始数据和所述第二原始数据分别为预置在所述读卡终端和所述服务器的数据,或所述第一原始数据和所述第二原始数据分别为用户输入到所述读卡终端和客户端的交易金额和/或交易时间和/或转账账号和/ 或挑战码和/或所述智能卡的联机PIN码。其中,步骤S2中所述第一过程密钥是根据第一交易序号分散生成,所述第二过程密钥是根据所述第一交易序号按位取反后的结果分散生成,步骤S9中所述第三过程密钥是根据第四交易序号分散生成,所述第四过程密钥是根据所述第四交易序号按位取反后的结果分散生成。其中,步骤S2所述生成第一组合数据的组合方式为串联组合或交叉组合或经过计算、移位变换实现的组合。其中步骤S3所述第一消息认证码是所述智能卡调用预置的消息认证码生成算法进行计算生成的加密块链接消息认证码。其中,步骤S4所述第二组合数据的组合生成方式具体为从高位到低位排序,将所述第一交易序号置于第2、第3字节,将所述第一应用密文置于第4至第11字节,将所述第一卡片状态数据置于第15至第18字节,其余字节用所述第三预置数据进行填充,生成位长为18个字节的所述第二组合数据。其中,步骤S6所述对第二组合数据进行提取并处理生成第三组合数据具体为,由最高位向最低位排序,从所述第二组合数据的第2、第3字节中提取出第一部分数据,从所述第二组合数据的第4至第11字节中提取出第二部分数据;从所述第二组合数据的第15 至第18字节中提取出第三部分数据,对所述第一部分数据进行变换生成第一部分数据变换数据,将所述第一部分数据变换数据、第二部分数据、第三部分数据顺序拼接得到所述第三组合数据。其中,对所述第三组合数据进行转换处理生成动态口令具体为,将所述第三组合数据除最低比特位外的两两相邻的比特位进行互换,并将互换结果转换为十进制数形式的动态口令。其中,对所述第三组合数据进行转换处理生成动态口令具体为,将所述第三组合数据的除最低比特位外的两两相邻的比特位进行互换,将互换结果转化为三十二进制数,并用预设字母替换三十二进制数中大于9的整数后得到所述动态口令。其中,步骤S8所述对第四组合数据进行解析具体为,由最高位开始提取所述第四组合数据的高位端所述预设位数上的数据得到第四部分数据;从所述第四组合数据的最低位开始提取8个比特位上的数据并进行补位处理得到所述第二卡片状态数据;提取所述第四组合数据剩余比特位上的数据得到所述第二应用密文;将所述第二应用密文的高位端所述预设位数上的数据与所述第四部分数据进行异或运算,并对运算结果的最高位进行补位处理得到位长是两个字节的所述第二交易序号。其中,步骤S9具体为,所述服务器验证所述第二交易序号的值是否大于所述第三交易序号的值,是则将第二交易序号的值赋值给第四交易序号,否则将第二交易序号的值增加第二预设值并赋值给第四交易序号。其中,步骤S12所述验证第三应用密文与所述第二应用密文是否相应具体为,验证所述第三应用密文的前两个字节上的数据与所述第二应用密文是否一致。其中,步骤S12能替换为以下步骤,步骤S11-1,所述服务器将所述第三应用密文、所述第四交易序号、所述第三预置数据及所述第二卡片状态数据进行组合生成第六组合数据;步骤S11-2,所述服务器对所述第六组合数据进行提取并转换生成动态口令验证数据;步骤S11-3 所述服务器验证所述动态口令验证数据与获取的所述用户输入的动态口令是否一致,是则认证成功,所述服务器将所述第三交易序号的值更新为所述第四交易序号的值,否则认证失败。为了实现上述目的,根据本发明的另一个方面,提供了一种动态口令生成及认证的系统,包括智能卡、读卡终端、客户端及服务器。其中,所述智能卡包括,第一通信模块,用于接收或发送所述智能卡与所述读卡终端之间的通信数据,实现所述智能卡的各模块之间的数据传送;第一数据组合模块,用于将第一原始数据、第一预置数据、第二预置数据、第一交易序号与第一卡片状态数据进行组合得到第一组合数据,将第一应用密文、所述第一交易序号、第一卡片状态数据及第三预置数据进行组合得到第二组合数据;第一生成模块,用于生成第一过程密钥、第二过程密钥,生成第一消息认证码及第一应用密文;运算模块,用于将所述第一交易序号的值自增第一预设值;第一存储模块,用于存储所述第一交易序号、第二预置数据及智能卡密钥,还用于存储消息认证码生成算法;所述读卡终端包括,第二通信模块,用于接收或发送所述读卡终端与所述智能卡之间的通信数据,实现所述读卡终端的各模块之间的数据通信;第一提示模块,用于提示用户输入第一原始数据,还用于将生成的动态口令输出;第一输入模块,用于获取用户输入的第一原始数据;
第一数据转换模块,用于对所述第二组合数据进行提取得到第三组合数据,对所述第三组合数据进行转换生成动态口令;第二存储模块,用于存储所述第一预置数据;所述客户端包括,第三通信模块,用于接收或发送所述客户端与所述服务器之间的通信数据,实现所述客户端的各模块之间的数据通信;第二输入模块,用于获取用户输入的动态口令、获取用户输入的第二原始数据;第二提示模块,用于提示用户输入所述第二原始数据、动态口令,用于提示用户认证失败或操作成功;所述服务器包括,第四通信模块,用于接收或发送所述服务器与客户端之间的通信数据,实现所述服务器的各模块之间的数据通信;第二数据转换模块,用于对获取的动态口令进行转换得到第四组合数据;解析模块,用于对所述第四组合数据进行解析,得到第二应用密文、第二交易序号及第二卡片状态数据;第二数据组合模块,用于将第二原始数据、所述第一预置数据、所述第二预置数据及所述第四交易序号组合得到第五组合数据;第二生成模块,用于生成第三、第四过程密钥,生成第二消息认证码、第三应用密文,根据所述第二交易序号生成第四交易序号;验证模块,用于验证所述第二交易序号、所述第二卡片状态数据是否合法,验证所述第二应用密文与所述第三应用密文是否相应;第三存储模块,用于存储所述第一预置数据、第二预置数据、第三预置数据,存储所述消息认证码生成算法、存储智能卡主账号、主账号序列号、智能卡发行方密钥,还用于存储所述第三交易序号、智能卡联机PIN码及第二预设值;操作模块,用于执行交易操作指令,并根据交易操作指令更新账户信息,还用于在认证成功后将所述第三交易序号更新为所述第四交易序号。匹配模块,用于根据用户输入的主账号和/或主账号序列号,匹配用户的账号信肩、ο本发明的有益效果在于用户持有的智能卡参与生成动态口令,保证了动态口令生成设备持有者的身份合法性;用户输入的信息参与生成动态口令,避免了数据在操作过程中被篡改后仍会认证通过的可能性;动态口令在用户处生成,不存在动态口令由服务器传送给用户过程中被截获的可能。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1为本发明实施例1提供的一种动态口令生成及认证的方法流程图;图2为本发明实施例1提供的另一种动态口令生成及认证的方法流程图3为本发明实施例1提供的又一种动态口令生成及认证的方法流程图;图4为本发明实施例2提供的一种动态口令生成及认证的系统方框示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例作进一步地详细描述。实施例1参见图1,本实施例以网上银行交易过程中的身份认证为例,提供了一种动态口令生成及认证的方法,具体包括以下步骤步骤101 读卡终端与智能卡建立连接;优选地,在本实施例中,所述读卡终端与所述智能卡建立连接后还可包括步骤1011 所述读卡终端提示用户输入PIN码;优选地,在本实施例中,所述读卡终端提示用户输入的PIN码可以为所述读卡终端的PIN码,也可以为所述智能卡的脱机PIN码。步骤1012 验证用户输入的PIN码是否合法,是则提示用户输入第一原始数据,否则结束操作或提示用户重新输入;优选地,在本实施例中,当步骤1011中所述读卡终端提示用户输入的PIN码为所述读卡终端的PIN码时,则由所述读卡终端来验证用户输入的PIN码是否合法;当步骤 1011中所述读卡终端提示用户输入的PIN码为所述智能卡的脱机PIN码时,则由所述智能卡来验证用户输入的PIN码是否合法,且在步骤1012之前还包括所述读卡终端将用户输入的PIN码发送给所述智能卡的步骤。步骤102 所述读卡终端将第一原始数据、第一预置数据发送给所述智能卡;优选地,在本实施例中,所述第一预置数据是由智能卡发行方生成并预置在所述读卡终端和所述服务器中的数据,包括所述读卡终端的识别信息。优选地,在本实施例中,所述第一原始数据可以为固定的预置在所述读卡终端中的数据,也可以为用户输入的交易金额和/或交易时间和/或转账账号和/或用户输入的挑战码和/或用户输入的所述智能卡的联机PIN码,当所述第一原始数据需用户输入时,参见图2,步骤102前还可以添加以下步骤步骤102-1 所述读卡终端提示用户输入第一原始数据;步骤102-2 所述读卡终端获取用户输入的第一原始数据;特别地,当所述第一原始数据中包括所述用户输入的挑战码时,步骤101之前或之后还可以添加以下步骤步骤101-1 服务器发起身份认证操作,生成挑战码,由客户端提示给用户,并由客户端提示用户输入动态口令;优选地,在本实施例中,步骤101-1之前还包括所述服务器与所述客户端建立连接,所述服务器通过所述客户端提示用户输入主账号和/或主账号序列号,并根据用户输入的主账号和/或主账号序列号匹配用户的账户信息;所述账户信息包括第一预置数据、 第二预置数据、第三预置数据、第三交易序号、第三卡片状态数据及账户余额、交易记录、所述智能卡的联机PIN码等。
步骤103 所述智能卡将所述第一原始数据与所述第一预置数据、第二预置数据、 第一卡片状态数据及第一交易序号进行组合,生成第一组合数据,并根据智能卡密钥进行密钥分散生成第一过程密钥、第二过程密钥;优选地,在本实施例中,所述第一交易序号预置在所述智能卡中,用于记录动态口令生成次数,本实施例中,所述智能卡由发行方个人化时,置所述第一交易序号的初始值为 1 ;第一卡片状态数据存储在所述智能卡中,用于指示所述智能卡是否为有效状态;所述第二预置数据为一组固定数据,包括卡片的部分基本信息,预置在所述智能卡及所述服务器中。优选地,在本实施例中,所述第一卡片状态数据位长为4个字节,高位两个字节为 0380,其中最高字节为位长指示位,指示后续字节数,低位两个字节,由最低位到最高位排序,最低位为第1比特,除第4-7比特、第11-12比特、第14比特、第16比特8个比特位外,当其余比特位有一个比特位不为0时,所述第一卡片状态数据指示所述智能卡为无效状态。优选地,在本实施例中,根据所述智能卡密钥进行密钥分散生成所述第一过程密钥、第二过程密钥,密钥发散因子为所述第一交易序号及根据第一交易序号变换得到的数据,具体为根据所述第一交易序号按位取反得到第一交易序号变换数据,用所述智能卡密钥对所述第一交易序号进行加密,得到所述第一过程密钥,用所述智能卡密钥对所述第一交易序号变换数据进行加密,得到加密结果,将所述第一过程密钥与所述加密结果拼接生成所述第二过程密钥。优选地,在本实施例中,所述第一原始数据与所述第一预置数据、第二预置数据、 第一卡片状态数据及第一交易序号的组合方式可以为串联组合、交叉组合或经过计算、移位变换实现的组合方式。优选地,在本实施例中,所述智能卡密钥为在所述智能卡个人化时,由发行方预置在所述智能卡中的,是将所述智能卡的主账号和/或主账号序号作为密钥分散因子,由智能卡发行方密钥进行密钥分散生成。步骤104 所述智能卡调用消息认证码生成算法对所述第一过程密钥及所述第一组合数据进行计算生成第一消息认证码,并用所述第二过程密钥对所述第一消息认证码进行加密生成第一应用密文;优选地,在本实施例中,所述消息认证码为加密块链接消息认证码,所述消息认证码生成算法预置在所述智能卡和所述服务器中。步骤105 所述智能卡将所述第一应用密文、所述第一交易序号、第三预置数据及所述第一卡片状态数据进行组合,生成第二组合数据,所述第一交易序号的值自增第一预设值;优选地,在本实施例中,所述第三预置数据为一组固定数据分别预置在所述智能卡及所述服务器中,所述第一应用交易序号自增的第一预设值为1。优选地,在本实施例中,所述第一应用密文位长为8个字节,所述第一交易序号位长为2个字节,所述第一卡片状态数据位长为4个字节,所述第三预置数据位长为4个字节,组合生成的第二组合数据位长为18个字节,组合方式具体为由高位到低位排序,将所述第二组合数据的最高字节作为第1字节,所述第二组合数据的第2-第3字节为所述第一交易序号,所述第二组合数据的第4-第11字节为所述第一应用密文,所述第二组合数据的第15-第18字节为所述第一卡片状态数据,其余字节用所述第三预置数据进行填充。步骤106 所述智能卡将所述第二组合数据发送给所述读卡终端;步骤107 所述读卡终端对所述第二组合数据进行提取并处理,生成第三组合数据;优选地,在本实施例中,对所述第二组合数据进行提取具体为由高字节到低字节的顺序,最高字节作为第1字节,从第二组合数据的第2-第3字节即所述第一交易序号中提取第一部分数据;从所述第二组合数据的第4-第11字节即所述第一应用密文中提取第二部分数据;从所述第二组合数据的第15-18字节即所述第一卡片状态数据中提取第三部分数据。对所述第一部分数据进行变换,生成第一部分数据变换数据,将所述第一部分数据变换数据、第二部分数据、第三部分数据顺序拼接得到所述第三组合数据。优选地,所述第一部分数据为所述第一交易序号的低位端预设位数上的数据,所述预设位数的值优选地取大于等于5且小于等于16的整数,在本实施例中以所述预设位数的值取15、所述第二部分数据取所述第一应用密文的最高两个字节上的数据、所述第三部分数据取所述第一卡片状态数据的8个比特位上的数据为例,其中,上述8个比特位为由低位到高位排序,所述第一卡片状态数据的最低位为第1比特,取第4-7比特、第11-12比特、第14比特及第16比特。上述对所述第一部分数据进行变换生成所述第一部分数据变换数据具体为将所述第二部分数据的高位端所述预设位数上的数据与所述第一部分数据进行异或运算得到第一异或运算结果,即所述第一部分数据变换数据,具体地,在本实施例中,即将所述第二部分数据高位端15比特上的数据与所述第一部分数据进行异或运算得到所述第一异或运
晳社里异苎口米。步骤108 所述读卡终端对所述第三组合数据进行转换处理,生成动态口令并输出;优选地,在本实施例中,所述读卡终端对所述第三组合数据进行转换生成动态口令的过程具体为将所述第三组合数据除最低比特位外的两两相邻的比特位上的数进行互换,并将得到的数据按照big endian (高位在前)的顺序,转化为十进制,得到的十进制数即生成的动态口令。所述读卡终端生成的动态口令还可以为包含字母的动态口令,具体为将所述第三组合数据除最低比特位外的两两相邻的比特位上的数互换后得到的数据转化为三十二进制数,其中,用除容易与数字混淆的B、I、0、Q以外的22个字母代替22个整数10-31,将得到的三十二进制数作为生成的动态口令。所述读卡终端将所述动态口令输出的方式可以为显示方式或发声方式。步骤109 所述服务器获取用户输入的动态口令,并对所述用户输入的动态口令进行转换,得到第四组合数据;优选地,在本实施例中,所述服务器对所述用户输入的动态口令进行转换的过程为步骤108中所述读卡终端对所述第三组合数据进行转换生成动态口令过程的逆过程。得到的所述第四组合数据的位长等于所述第三组合数据的位长。特别地,当所述用户输入的动态口令与步骤108中所述读卡终端生成的动态口令一致时,所述第四组合数据与所述第
三组合数据一致。
优选地,在本实施例中,当所述用户输入的动态口令作为交易签名时,参见图3,步骤109前还包括步骤109-1 所述服务器接收到交易操作指令后,发起身份认证操作,并向所述客户端发送动态口令请求;优选地,在本实施例中,步骤109-1之前还包括所述服务器与所述客户端建立连接,所述服务器通过所述客户端提示用户输入主账号和/或主账号序列号,并根据用户输入的主账号和/或主账号序列号匹配用户的账户信息;所述账户信息包括所述第一预置数据、所述第二预置数据、所述第三预置数据、第三交易序号及账户余额、交易记录、所述智能卡的联机PIN码等。步骤109-2 所述客户端提示用户输入动态口令;步骤109-3 所述客户端获取用户输入的动态口令,并将用户输入的动态口令发送给所述服务器。步骤110 所述服务器对所述第四组合数据进行解析并处理,得到第二交易序号、 第二应用密文及第二卡片状态数据;优选地,在本实施例中,对所述第四组合数据进行解析,得到所述第二交易序号、 所述第二应用密文及所述第二卡片状态数据具体为根据所述第一部分数据变换数据在所述第二组合数据中对应的位置,对所述第四组合数据进行解析,即提取所述第四组合数据的高位端所述预设位数上的数据得到第四部分数据;根据所述第三部分数据在所述第二组合数据中对应的位置,对所述第四组合数据进行解析,即取所述第四组合数据低位端8个比特位上的数据,补位处理后得到所述第二卡片状态数据;提取其余的16个比特位上的数据得到所述第二应用密文;将所述第二应用密文的高位端所述预设位数上的数据与所述第四部分数据进行异或运算得到所述预设位数的第二异或运算结果,用所述第三交易序号的高位端的数据即将所述第三交易序号右移所述预设位数后得到的数据,对所述第二异或运算结果最高位前进行补位,得到16个比特位的所述第二交易序号,特别地,当所述预设位数的值取16时,得到的所述第二异或运算结果即所述第二交易序号。优选地,在本实施例中,对所述第四组合数据低位端8个比特位上的数据处理得到所述第二卡片状态数据具体为对所述第四组合数据低位端8个比特位上的数据进行补位,补足4个字节后得到所述第二卡片状态数据,补足4个字节具体为根据步骤107中所述第三部分数据为所述第一卡片状态数据第4-7比特、第11-12比特、第14比特及第16比特上的数拼接而成,相应地,将所述第四组合数据低位端8个比特位,由低位到高位顺序分别作为第4-7比特、第11-12比特、第14比特及第16比特,其余比特位上补0,最高位即第 16比特前补两个字节0380,即得到所述第二卡片状态数据。步骤111 所述服务器验证所述第二卡片状态数据是否合法,是则执行步骤112, 否则执行步骤117 ;其中,判断所述第二卡片状态数据是否合法的标准不唯一,在本实施例中,当所述第二卡片状态数据的低位端两个字节中有8个比特位上的数为1时,即所述第四组合数据低位端8个比特位上的数均为1时,认为所述第二卡片状态数据不合法,否则合法。步骤112 所述服务器验证所述第二交易序号的值是否大于所述第三交易序号的值,是则将所述第二交易序号作为第四交易序号,执行步骤114,否则执行步骤113 ;
优选地,在本实施例中,所述第三交易序号存储在所述服务器中,为从上次认证成功的动态口令中解析得到的,得到方式同所述第四交易序号。在本实施例中,在所述账户为新开户账户时,置所述第三交易序号的初始值为0。步骤113 所述第二交易序号的值增加第二预设值,得到第四交易序号;具体地,在本实施例中,所述第二预设值等于将2作为底数,将所述预设位数的值作为幂数的值。例如所述预设位数的值取15,相应地,第二预设值为2的15次幂,即 32768。步骤114 将第二原始数据、所述第一预置数据、所述第二预置数据、所述第二卡片状态数据及第四交易序号进行组合生成第五组合数据,将所述智能卡发行方密钥进行密钥分散生成所述智能卡密钥,并将所述智能卡密钥进行密钥分散生成第三过程密钥、第四过程密钥;优选地,在本实施例中,所述智能卡发行方密钥预置在所述服务器中,作为生成所述智能卡密钥的密钥分散因子的所述主账号和/或所述主账号序号可以预置在所述服务器,也可以包含在用户登录账户时输入的登录信息中。所述第二原始数据与所述第一原始数据相应,当所述第一原始数据为固定的预置在所述读卡终端中的数据时,所述第二原始数据为与所述第一原始数据相同的、预置在所述服务器中的数据,当所述第一原始数据为用户输入的交易金额和/或交易时间和/或转账账号和/或用户输入的挑战码和/或用户输入的所述智能卡的联机PIN码时,则所述第二原始数据相应地为通过所述客户端获取的用户输入的交易金额和/或交易时间和/或转账账号和/或所述服务器生成的挑战码和 /或存储在所述服务器中的所述智能卡的联机PIN码。优选地,在本实施例中,生成所述第三过程密钥、所述第四过程密钥的密钥分散因子为第四交易序号及由第四交易序号变换得到的数据,所述第三过程密钥的生成方式同第一过程密钥的生成方式,所述第四过程密钥的生成方式同所述第二过程密钥的生成方式。 当所述第一交易序号与所述第四交易序号一致时,所述第一过程密钥与所述第三过程密钥一致,所述第二过程密钥与所述第四过程密钥一致。步骤115 所述服务器调用所述消息认证码生成算法对所述第三过程密钥及所述第五组合数据进行计算,生成第二消息认证码,并用所述第四过程密钥对所述第二消息认证码进行加密生成第三应用密文;步骤116 所述服务器将所述第三应用密文与所述第二应用密文比对,验证所述第三应用密文与所述第二应用密文是否相应,是则执行步骤118,否则,执行步骤117 ;相应地,在本实施例中,验证所述第三应用密文与所述第二应用密文是否相应具体为验证所述第三应用密文的前两个字节上的数据与所述第二应用密文是否一致。优选地,在本实施例中,参见图2,步骤116可以替换为以下步骤步骤116-1 所述服务器将所述第三应用密文、第四交易序号、所述第三预置数据及所述第二卡片状态数据进行组合生成第六组合数据;所述第三应用密文、第四交易序号、所述第三预置数据及所述第二卡片状态数据组合生成第六组合数据的方式同步骤105中所述第一应用密文、所述第一交易序号、第三预置数据及第一卡片状态数据组合生成第二组合数据。步骤116-2 所述服务器对所述第六组合数据进行提取并转换生成动态口令验证数据;优选地,在本实施例中,所述服务器对所述第六组合数据进行提取的过程同步骤 107中所述读卡终端对所述第二组合数据进行提取生成第三组合数据的过程,所述服务器对提取到数据进行转换生成所述动态口令验证数据的过程同步骤108中所述读卡终端对所述第三组合数据进行转换生成动态口令的过程。步骤116-3 所述服务器验证所述用户输入的动态口令与所述动态口令验证数据是否一致,是则认证成功,执行步骤118,否则认证失败,执行步骤117 ;步骤117 向所述客户端发送认证失败信息,并提示用户重新输入;优选地,在本实施例中,步骤117中提示用户重新输入动态口令之前还可以包括验证认证失败次数是否达到允许尝试次数的步骤,若达到允许尝试次数则锁定该账号,否则提示用户重新输入。。步骤118 服务器将所述第三交易序号的值替换为第四交易序号的值。优选地,在本实施例中,当所述用户输入的动态口令为交易签名时,步骤118之后还包括以下步骤步骤118-1 所述服务器执行所述交易操作指令,并更新用户的账户信息;优选地,在本实施例中,所述服务器根据所述交易操作指令,更新用户账户的账号余额、交易记录等信息。步骤118-2 所述服务器向所述客户端发送操作成功提示信息。实施例2参见图4,本发明实施例2提供了一种动态口令生成及认证的系统,包括智能卡 41、读卡终端42、客户端43及服务器44。所述智能卡41具体包括第一通信模块411,用于接收或发送所述智能卡41与所述读卡终端42之间的通信数据,实现所述智能卡41包括的各模块之间的数据的通信;第一数据组合模块412,用于将第一原始数据与所述第一预置数据、第二预置数据、第一卡片状态数据及第一交易序号进行组合得到第一组合数据,将第一应用密文、所述第一交易序号、第三预置数据及所述第一卡片状态数据进行组合得到第二组合数据;第一生成模块413,用于生成第一过程密钥、第二过程密钥,生成第一消息认证码及所述第一应用密文;运算模块414,用于将所述第一应用交易序号的值自增第一预设值;第一存储模块415,用于存储所述第一应用交易序号、第二预置数据及所述智能卡密钥,还用于存储消息认证码生成算法及第一预设值;所述读卡终端42具体包括第二通信模块421,接收或发送所述读卡终端42与所述智能卡41之间的通信数据,实现所述读卡终端42包括的各模块之间的数据通信;第一提示模块422,提示用户输入第一原始数据、提示用户输入PIN码,还用于将生成的动态口令输出,包括第一显示单元4221或第一发声单元4222 ;第一输入模块423,用于获取用户输入的第一原始数据,还用于获取用户输入的 PIN 码;
第一数据转换模块424,用于对所述第二组合数据进行提取得到第三组合数据,对所述第三组合数据进行转换生成动态口令;第二存储模块425,用于存储所述第一预置数据。所述客户端43包括第三通信模块431,用于接收或发送所述客户端43与所述服务器44之间的通信数据,实现所述客户端43包括的各模块之间的数据通信;第二输入模块432,用于获取用户输入的动态口令、获取用户输入的第二原始数据,还用于获取用户输入的主账号和/或主账号序列号;第二提示模块433,用于提示用户输入所述第二原始数据、动态口令、主账号和/ 或主账号序列号,还用于将服务器生成挑战码提示给用户、提示用户认证失败或操作成功, 包括第二显示单元4331或第二发声模块4332。所述服务器44具体包括第四通信模块441,用于接收或发送所述服务器44与客户端之间的通信数据,实现所述服务器44包括的各模块之间的数据通信;第二数据转换模块442,用于对获取的动态口令进行转换得到第四组合数据;解析模块443,用于对所述第四组合数据进行解析,得到第二应用密文、第二应用交易序号及第二卡片状态数据;第二数据组合模块444,用于将第二原始数据、所述第一预置数据、所述第二预置数据、第四应用交易序号及第二卡片状态数据进行组合得到第五组合数据;第二生成模块445,用于生成所述智能卡密钥,生成第三、第四过程密钥,生成第二消息认证码、第三应用密文,根据所述第二交易序号生成第四交易序号,还用于生成挑战码;验证模块446,用于验证所述第二交易序号的值是否大于所述第三交易序号的值、 验证所述第二卡片状态数据是否合法,验证所述第二应用密文与所述第三应用密文是否相应或验证所述用户输入的动态口令与动态口令验证数据是否一致;第三存储模块447,用于存储所述第一预置数据、第二预置数据、第三预置数据,存储所述消息认证码生成算法、存储智能卡主账号和/或主账号序列号、智能卡发行方密钥, 还用于存储所述第三交易序号及第二预设值。操作模块448,用于执行交易操作指令,还用于在所述用户输入的动态口令认证成功后将所述第三交易序号的值替换为第四交易序号的值并根据交易操作指令,更新用户的账户信息。;匹配模块449,用于根据用户输入的主账号和/或主账号序列号,匹配所述服务器中存储的包括所述第一预置数据、所述第二预置数据、第三预置数据、第三交易序号及账户余额、交易记录、智能卡联机PIN码等信息的用户账号信息。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种动态口令生成及认证方法,包括动态口令生成过程和所述动态口令的认证过程,其特征是所述动态口令生成过程包括,步骤Si,读卡终端与智能卡建立连接,所述读卡终端发送第一原始数据和第一预置数据给所述智能卡;步骤S2,所述智能卡将接收到的所述第一原始数据、所述第一预置数据与所述智能卡中存储的第二预置数据、第一卡片状态数据及第一交易序号进行组合生成第一组合数据, 并根据存储的智能卡密钥进行密钥分散生成第一过程密钥、第二过程密钥;步骤S3,所述智能卡对所述第一过程密钥及所述第一组合数据进行计算生成第一消息认证码,并用所述第二过程密钥对所述第一消息认证码进行加密生成第一应用密文;步骤S4,所述智能卡将所述第一应用密文与所述智能卡中存储的第三预置数据、所述第一交易序号、所述第一卡片状态数据进行组合生成第二组合数据,并将所述第一交易序号的值自增第一预设值;步骤S5,所述智能卡将所述第二组合数据发送给所述读卡终端; 步骤S6,所述读卡终端对所述第二组合数据进行提取和处理生成第三组合数据,对所述第三组合数据进行转换处理生成动态口令并输出; 所述动态口令的认证过程包括以下步骤,步骤S7,所述服务器获取用户输入的动态口令,并对所述用户输入的动态口令进行转换得到第四组合数据,所述服务器匹配包含第三交易序号、所述第一预置数据、所述第二预置数据、所述第三预置数据、智能卡发行方密钥的账户信息;步骤S8,所述服务器对所述第四组合数据进行解析,得到第二交易序号、第二应用密文及第二卡片状态数据,并验证所述第二卡片状态数据是否合法,是则执行下一步,否则认证失败,结束;步骤S9,所述服务器根据所述第二交易序号计算得到第四交易序号; 步骤S10,所述服务器将所述第四交易序号与第二原始数据、所述第二卡片状态数据、 所述第一预置数据、所述第二预置数据进行组合生成第五组合数据,根据所述智能卡发行方密钥进行密钥分散生成第三过程密钥、第四过程密钥;步骤S11,所述服务器对所述第三过程密钥及所述第五组合数据进行计算,生成第二消息认证码,并用所述第四过程密钥对所述第二消息认证码进行加密生成第三应用密文;步骤S12,所述服务器验证所述第三应用密文与解析得到的所述第二应用密文是否相应,是则认证成功,所述服务器将所述账户信息中的所述第三交易序号的值更新为所述第四交易序号的值,否则认证失败。
2.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述第一预置数据包括所述读卡终端的识别信息;所述第二预置数据为一组固定数据,包括所述智能卡的部分基本信息;所述第一原始数据和所述第二原始数据分别为预置在所述读卡终端和所述服务器中的数据,或所述第一原始数据和所述第二原始数据分别为用户输入到所述读卡终端和客户端的交易金额和/或交易时间和/或转账账号和/或挑战码。
3.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S2中的所述第一过程密钥是根据所述第一交易序号分散生成的,所述第二过程密钥是根据所述第一交易序号按位取反后的结果分散生成的,步骤Sio中的所述第三过程密钥是根据所述第四交易序号分散生成的,所述第四过程密钥是根据所述第四交易序号按位取反后的结果分散生成的。
4.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S2中所述生成第一组合数据的组合方式为串联组合或交叉组合或经过计算、移位变换实现的组
5.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S3中的所述第一消息认证码是所述智能卡调用预置的消息认证码生成算法进行计算生成的加密块链接消息认证码。
6.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S4中所述第二组合数据的组合生成方式具体为从高字节到低字节的顺序,将所述第一交易序号置于第2、第3字节,将所述第一应用密文置于第4至第11字节,将所述第一卡片状态数据置于第15至第18字节,其余字节用所述第三预置数据进行填充,生成位长为18个字节的所述第二组合数据。
7.根据权利要求6所述的一种动态口令生成及认证方法,其特征是所述步骤S6中所述对第二组合数据进行提取和处理生成第三组合数据具体为,从高字节到低字节的顺序, 从所述第二组合数据的第2、第3字节中提取出第一部分数据,从所述第二组合数据的第4 至第11字节中提取出第二部分数据;从所述第二组合数据的第15至第18字节中提取出第三部分数据,对所述第一部分数据进行变换生成第一部分数据变换数据,将所述第一部分数据变换数据、所述第二部分数据、所述第三部分数据顺序拼接得到所述第三组合数据。
8.根据权利要求7所述的一种动态口令生成及认证方法,其特征是对所述第三组合数据进行转换处理生成动态口令具体为,将所述第三组合数据除最低比特位外的两两相邻的比特位进行互换,并将互换结果转换为十进制数形式的动态口令。
9.根据权利要求7所述的一种动态口令生成及认证方法,其特征是对所述第三组合数据进行转换处理生成动态口令具体为,将所述第三组合数据的除最低比特位外的两两相邻的比特位进行互换,将互换结果转化为三十二进制数,并用预设字母替换三十二进制数中大于9的整数得到所述动态口令。
10.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S8中所述对第四组合数据进行解析具体为,提取所述第四组合数据的高位端预设位数上的数据得到第四部分数据;从所述第四组合数据的低位端提取8个比特位上的数据并进行补位处理得到所述第二卡片状态数据;提取所述第四组合数据剩余比特位上的数据得到所述第二应用密文;将所述第二应用密文的高位端所述预设位数上的数据与所述第四部分数据进行异或运算,并对运算结果的最高位进行补位处理得到位长是两个字节的所述第二交易序号。
11.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S9具体为,所述服务器验证所述第二交易序号的值是否大于所述第三交易序号的值,是则将所述第二交易序号的值赋值给所述第四交易序号,否则将所述第二交易序号的值增加第二预设值后赋值给所述第四交易序号。
12.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S12中所述验证第三应用密文与所述第二应用密文是否相应具体为,验证所述第三应用密文的前两个字节上的数据与所述第二应用密文是否一致。
13.根据权利要求1所述的一种动态口令生成及认证方法,其特征是所述步骤S12能替换为以下步骤,步骤S12-1,所述服务器将所述第三应用密文、所述第四交易序号、所述第三预置数据及所述第二卡片状态数据进行组合生成第六组合数据;步骤S12-2,所述服务器对所述第六组合数据进行提取并转换生成动态口令验证数据;步骤S12-3 所述服务器验证所述动态口令验证数据与获取的所述用户输入的动态口令是否一致,是则认证成功,所述服务器将所述第三交易序号的值更新为所述第四交易序号的值,否则认证失败。
14.一种动态口令生成及认证的系统,包括智能卡、读卡终端、客户端及服务器,其特征是所述智能卡包括,第一通信模块,用于接收或发送所述智能卡与所述读卡终端之间的通信数据,实现所述智能卡的各模块之间的数据通信;第一数据组合模块,用于将第一原始数据、第一预置数据、第二预置数据与第一交易序号进行组合得到第一组合数据,将第一应用密文、所述第一交易序号及第三预置数据进行组合得到第二组合数据;第一生成模块,用于生成第一过程密钥、第二过程密钥,生成第一消息认证码及第一应用密文;运算模块,用于将所述第一交易序号的值自增第一预设值;第一存储模块,用于存储所述第一交易序号、所述第二预置数据、所述第三预置数据及智能卡密钥,还用于存储消息认证码生成算法; 所述读卡终端包括,第二通信模块,用于接收或发送所述读卡终端与所述智能卡之间的通信数据,实现所述读卡终端的各模块之间的数据通信;第一提示模块,用于提示用户输入第一原始数据,还用于将生成的动态口令输出; 第一输入模块,用于获取用户输入的第一原始数据;提取转换模块,用于对所述第二组合数据进行提取得到第三组合数据,对所述第三组合数据进行转换生成动态口令;第二存储模块,用于存储所述第一预置数据; 所述客户端包括第三通信模块,用于接收或发送所述客户端与所述服务器之间的通信数据,实现所述客户端的各模块之间的数据通信;第二输入模块,用于获取用户输入的动态口令、获取用户输入的第二原始数据; 第二提示模块,用于提示用户输入所述第二原始数据、动态口令,用于提示用户认证失败或操作成功;所述服务器包括,第四通信模块,用于接收或发送所述服务器与所述客户端之间的通信数据,实现所述服务器的各模块之间的数据通信;第二数据转换模块,用于对获取到的用户输入的动态口令进行转换得到第四组合数据;解析模块,用于对所述第四组合数据进行解析,得到第二应用密文、第二交易序号及第二卡片状态数据;第二数据组合模块,用于将第二原始数据、所述第一预置数据、所述第二预置数据及所述第四交易序号进行组合得到第五组合数据;第二生成模块,用于根据所述智能卡发行方密钥生成所述智能卡密钥,再根据所述智能卡密钥生成第三、第四过程密钥,生成第二消息认证码、第三应用密文,根据所述第二交易序号生成第四交易序号;验证模块,用于验证所述第二交易序号的值是否大于第三交易序号的值、所述第二卡片状态数据是否合法,验证所述第二应用密文与所述第三应用密文是否相应;第三存储模块,用于存储所述第一预置数据、所述第二预置数据、所述第三预置数据, 存储所述消息认证码生成算法,存储智能卡发行方密钥,还用于存储所述第三交易序号;操作模块,用于执行交易操作指令,还用于在认证成功后将所述第三交易序号的值更新为所述第四交易序号的值;匹配模块,用于根据用户输入的主账号和/或主账号序列号,匹配用户的账号信息。
全文摘要
本发明公开了一种动态口令生成及认证的方法和系统,涉及身份认证领域,该方法包括智能卡与读卡终端建立连接;读卡终端将第一原始数据、第一预置数据发送给智能卡;智能卡生成第一应用密文,并根据第一应用密文、第一交易序号、第一卡片状态数据生成第二组合数据;读卡终端对第二组合数据进行处理生成动态口令并输出;服务器接收用户输入的动态口令,解析得到第二交易序号、第二卡片状态数据、第二应用密文;服务器根据第二交易序号得到第四交易序号;服务器生成第三应用密文,并验证第三应用密文与第二应用密文是否相应,是则认为用户输入的动态口令合法,认证成功,否则认证失败。通过本发明提高了动态口令的安全性。
文档编号H04L9/32GK102377783SQ20111034912
公开日2012年3月14日 申请日期2011年11月7日 优先权日2011年11月7日
发明者于华章, 陆舟 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1