基于动态口令的身份认证方法

2013-08-20 01:54胡祥义杜丽萍郭建伟
网络安全技术与应用 2013年8期
关键词:密文口令静态

胡祥义 杜丽萍 郭建伟

(北京市科技情报研究所网络密码认证技术北京市重点实验室 北京 100044)

0 前言

随着网络应用的不断发展,解决具有海量用户的网络快速认证技术需求迫在眉睫,这种安全需求主要是要提高海量用户的密钥交换的速度,使用现有技术已经不能满足处理大数据的安全需求。若使用双钥密码体制如:RSA或ECC算法,建立安全认证协议,PKI架构建设成本较高,认证协议效率较低,制约了PKI技术针对海量用户的应用。基于令牌设备的动态口令认证系统提高了时效,但是,这类动态口令是由用户根据动态令牌显示屏上显示的动态口令,实时输入计算机后,由客户端再提交到网络认证中心端,实施网络身份认证,该认证模式容易受到“假银行”式的病毒攻击,安全等级相对来说较低些。

为解决动态口令的安全隐患,我们提出采用轻量级密码算法和一种安全单钥管理方法,在客户机和认证中心两端建立加密和认证协议,将用户在客户机端输入的静态口令和认证系统自动生成的静态口令,通过密钥元素代替表,代替成一次一变的认证密钥,再生成动态口令,实现身份认证,从而,建立一种基于动态口令的身份认证系统。

1 动态口令的安全架构

1.1 动态口令的客户机端安全架构

在客户端的客户机上使用USB接口的智能卡,或者在移动终端上使用SD智能卡,在智能卡的芯片里,建立客户端的加密系统,写入:轻量级密码算法、单钥组合生成算法、客户端动态口令认证协议,且写入数据:客户端智能卡的标识和一套“密钥种子”表C的元素。

每个用户的客户端智能卡都有唯一的标识,且两两互不相同,每位用户都持有不同的一支基于USB接口的智能卡或SD智能卡。

1.2 动态口令的认证中心端安全架构

认证中心由认证服务器和加密卡硬件设备组成,在认证服务器的PCI接口上插入加密卡,在加密卡的芯片里建立认证中心端的加密系统,写入轻量级密码算法、单钥组合生成算法、认证中心端用户的静态口令和“密钥种子”表C元素的加密和数字签名协议,认证中心端用户的静态口令和“密钥种子”表C元素密文的解密和签名验证协议,认证中心端动态口令认证协议,在认证中心端认证服务器的硬盘存储区,建立“密钥种子”数据库,该数据库中存储每条记录的字段内容为:①用户名i、用户客户端智能卡的标识Ti、②用户的静态口令密文、③“密钥种子”表Ci元素的密文、④静态口令和“密钥种子”表Ci元素的数字签名即:静态口令和“密钥种子”表 Ci元素摘要信息Gi的密文,其中:i=1~n, n为全体云用户数量总和。

2 安全单钥管理技术

安全单钥管理技术是指:通过单钥组合生成算法来实时产生认证密钥,解决认证系统中单钥更新的管理方法。

2.1 单钥组合生成算法

单钥组合生成算法是通过一组时间戳和随机数组成的选取参数,来对一套“密钥种子”表C的元素进行选取,用时间戳对“密钥种子”表C的“行”元素进行选取,选出W行Y列的“密钥种子”表C的(V×Y)子表D,再根据随机数,对(V×Y)子表D的“列”元素进行选取,选出V个元素,将这V位元素组成一套(V×1)“密钥种子”子表E,其中:W=109,V=36,Y=32,将“密钥种子”子表E的元素,与全体静态口令元素之间,建立一一对应关系,生成密钥元素代替表,再根据用户输入的静态口令和认证系统自动增添的静态口令,从密钥元素代替表中选出对应的密钥元素,并合成一组认证密钥。

2.2 建立密钥种子表

在密钥初始化过程中,由认证中心端加密卡芯片里的随机数发生器,生成一组F1字节随机数,F1= 1744字节,将F1字节的随机数组成,一套W×Y的密钥种子表C,

其中:表C的元素为占1字节, W=109, Y=16;

密钥种子表C的组成:“年”子集 、“月”子集 、“日”子集 、“时”子集 和固定子集组成,“年”子集占10行16列,“月”子集占12行16列,“日”子集占31行16列,“时”子集占24行16列,“固定”子集占32行16列,5个子集共占W=109行,16列。

2.3 单钥组合生成算法的具体实施过程

2.3.1 由时间戳从“密钥种子”表C的元素中选V=36行元素,首先,根据时间戳从表C选出4行,其方法是:用时间戳“年”数字中个位数的数值,取表C中“年”对应的行数,如:时间戳为:2013XXXXXX,则:取表C中的第4行,……,用时间戳“时”数字的数值,取表C中“时”对应的“行”,如:时间戳为:20XXXXXX21,则:取表C中的第74行,再将表C的“固定”子集共32行全部选出,共选出V=36行,组成:36×16表C的子表D,

其中:表D的元素占1字节,表D中第5行~第V=36 行的元素与表C的第78行~第W=109行的元素完全相同;

2.3.2 根据随机数从表D中选出V=36位元素,设:随机数为:Q1,Q2,......,Q36,对应随机数的数值分别为:q1,q2,......,q36,当Y=16时,每位随机数为4比特十六进制数组成,36位随机数对应的数值为:0~15之间,用:q1,q2,......,q36,对表D的1~ V=36行中列的元素进行选取,即:用第1位随机数Q1的数值q1,来选取表D第1行的第q1 +1列的元素,用第2位随机数Q2的数值q2,来选取表D第2行的第q2 +1列的元素, ......,用第V=36位随机数Q36的数值q36,来选取表D第V=36行的第q36 +1列的元素,共选取V=36个元素,将选取出的这36个元素组成一个(36×1)的子密表E;

其中:“密钥种子”子密表E的元素占1字节,V=36 。

2.3.3 建立密钥元素代替表

用户的全体静态口令由0~9或A~Z组成,将这36个数字或字母与表E的元素建立一一对应关系,即:将“0”对应子表E的第1行元素E1,将“1”对应子表E的第2行元素E2,……,将“Z”对应子表E的第36行元素E36,组成密钥元素代替表:

表1 组成密钥元素代替表

2.3.4 生成认证密钥

(1)增添静态口令,设:用户的静态口令的长度为:N1=6~16位,认证密钥K占16字节(128比特),由N1位静态口令从密钥元素代替表中,选取N1组密钥元素来合成认证密钥K,若合成的认证密钥K小于16字节,则认证系统增添N2位静态口令,其中:N2=Y-N1位,Y=16或32,表C的元素占1或0.5字节,N1=6~16位,N2=0~26位。

若时间戳的“时”为偶数,从0到9这连续的10个数字,再从A到P这连续16个英文字母共26位口令元素中,取N2位数字或英文字母作为增添的静态口令。若时间戳的“时”为奇数,从A到Z这连续26个英文字母中,取N2位英文字母作为增添的静态口令。

(2)生成认证密钥,

设:用户输入的N1位静态口令为:R1、R2、……、RN1 ,由认证系统增添的静态口令为:T1、T2、……、TN2 。由静态口令:R1、R2、……、RN1,从密钥元素代替表选出对应的N1组密钥元素 “Eb1 、Eb2 、……、Eb N1”,1≤ b 1 ~ b N1 ≤36,将“Eb1 、Eb2 、……、Eb N1”合并后作为K1,Y=16,表C的元素都占1字节,则N1组密钥元素占6~16字节。

由认证系统自动增添的静态口令:T1、T2、……、TN2 ,从密钥元素代替表选出对应的N2组密钥元素为:“Ec 1 、Ec 2 、……、Ec N2”, 将“Ec 1 、Ec 2 、……、Ec N2”,1≤c 1 ~ c N2 ≤36,合并后作为K2 。Y=16,表C的元素都占1字节,则N2组密钥元素共占0~10字节。

将K1与K2合并成认证密钥K,即:K= Eb1 、Eb2 、……、Eb N1 、Ec 1 、Ec 2 、……、Ec N2 。

举例说明,设:N1位用户静态口令为“ 9、A、1、0、Z、Z”,共6位,根据密钥元素代替表代替后,生成的密钥元素K1=“E10 、E11 、E2 、E1 、E36 、E36 ”;

当时间戳中“时”为偶数时,则认证系统增添的静态口令为:“0~9,即:N2=16-6=10位,根据密钥元素代替表代替后,生成的密钥元素K2 =“E1、E2、……、E10” 。将K1与K2合并后生成K,即:K= “E10 、E11 、E2 、E1 、E36 、E36、E1、E2、……、E10” 。当时间戳的“时”为奇数时,则认证系统增添的静态口令为:“A~J”,即:N2=16-6=10位,根据密钥元素代替表代替后,生成的密钥元素K2 =“E11 、E12、……、E20” 。将K1与K2合并后生成K,即:K= “E10 、E11 、E2 、E1 、E36 、E36 、 E11 、E12 、……、E20”,其中:K占16字节。

3 基于动态口令认证系统的安全协议

3.1 客户端的动态口令认证协议

当用户登录WEB服务器后,首先,用户输入用户名和用户的静态口令,由连接WEB服务器的认证中心端加密系统,产生一组时间戳和随机数,并产生认证生命周期T,将该组时间戳和随机数发送客户端智能卡芯片里,在客户端智能卡芯片里,根据时间戳和随机数组成的单钥组合生成算法,首先,生成密钥元素代替表,再将用户输入的H1位用户的静态口令,代替成H1组密钥元素并合成密钥元素K1,将认证系统自动增添的N2位静态口令,代替成N2组密钥元素并合成密钥元素K2,将K1与K2合并成认证密钥K,客户端加密系统用认证密钥K将随机数加密成密文,得到随机数密文即:动态口令,并与用户名和客户端智能卡的标识等3组认证参数一起发送给认证中心端。

3.2 认证中心端的动态口令认证协议

认证中心端加密系统,在接收到客户端发送来的3组认证参数后,首先,计算对应的认证生命周期T,测试T是否过期,若过期,则为非法用户,返回“非法用户!”,否则,认证中心端的加密系统,根据用户名和客户端智能卡的标识,在“密钥种子”数据库中定位对应的记录,将该记录对应的H1位静态口令密文和“密钥种子”表C元素密文,输入加密卡芯片里,在加密卡芯片里,用一组固定对称密钥KK,将该记录中的静态口令密文和“密钥种子”表C元素密文解密,再根据根据时间戳和随机数组成的单钥组合生成算法,对“密钥种子”表C元素进行选取,生成密钥元素代替表,将H1位静态口令代替成H1组密钥元素并合成K1,将认证系统自动增添的H2位静态口令,代替成H2组密钥元素并合成K2,将K1和K2合并成认证密钥K,认证中心的加密系统,用K加密随机数生成认证中心端的动态口令,通过对比两端的动态口令是否相同?来判断客户端的用户身份是否合法。

3.3 认证中心端用户的静态口令和“密钥种子”表C元素的加密和数字签名协议

认证中心端加密系统,在加密卡芯片里,用摘要算法(如:SM3或SHA-1等)对用户的静态口令和密钥种子表C元素进行摘要,得到其摘要信息L1,再用一组固定的对称密钥KK,分别将每个用户的静态口令和“密钥种子”表C的元素加密成密文,并将每个用户的静态口令和“密钥种子”表C元素的“摘要”信息L1进行加密,得到每个用户的静态口令和“密表种子”表C元素的密文,并得到每个用户的静态口令和“密表种子”表C元素摘要信息L1的密文即:每个用户静态口令和“密表种子”表C元素数字签名,再将每个用户的用户名、客户端智能卡的标识、用户的静态口令密文、“密钥种子”表C元素的密文、用户的静态口令和“密表种子”表C元素的数字签名,一并事先存储在认证中心端的“密钥种子”数据库中。

3.4 认证中心端用户的静态口令和“密钥种子”表C元素密文的解密和签名验证协议

认证中心端加密系统,首先,在“密钥种子”数据库中选出一条记录,输入加密卡芯片里,在加密卡芯片里,调用固定对称密钥KK,将该记录中用户的静态口令和“密钥种子”表C元素密文解密,并将用户的静态口令和“密表种子”表C元素的数字签名解密,得到用户的静态口令和“密钥种子”表C元素的明文,并得到用户的静态口令和“密钥种子”表C元素摘要的明文L1,再调用“摘要”算法对用户的静态口令和“密钥种子”表C元素,进行摘要得到摘要信息L2,通过对比L1和L2是否相同?来判别认证中心端对应用户的静态口令和“密钥种子”表C的元素是否可信、完整。

4 动态口令身份认证系统的主要优势

客户端用户的静态口令一部分由用户输入计算机,一部分由认证系统自动产生,通过密钥元素代替表生成认证密钥,认证密钥生成过程都是在智能卡或加密卡的芯片里生成,明文不出芯片,保证两端认证密钥运行安全。

客户端“密钥种子”和单钥组合生成算法,存放在智能卡芯片里,保证客户端单钥组合生成算法和“密钥种子”数据的存储安全。认证中心端的单钥组合生成算法存放在加密卡芯片里,全体用户的静态口令和“密钥种子”是以密文的形式存储,保证认证中心端单钥组合生成算法和全体用户密钥种子的存储安全,防止黑客通过篡改用户的各种认证参数,来攻击认证系统。

由时间戳和随机数组成的单钥组合生成算法,从“密钥种子”表C中选出的36组元素,组成的子表E并由子表E元素,与全体静态口令元素组成密钥元素代替表中的密钥元素变化量为:1636或3236,即:2144 或2180,基本上一次一变。

用户输入计算机的静态口令虽然不变,且认证系统自动增添的静态口令也基本不变,但是,经过实时产生一次一变的密钥元素表的代替,生成的认证密钥一次一变。

用一次一变的认证密钥加密36位随机数生成随机数密文即:动态认证口令,其中:每位十六进制的随机数占4比特,36位十六进制随机数共占144比特,变化量为:2144,动态口令的变化量也为:2144 ,基本上一次一变。

采用挑战/应答式认证模式,能通过在认证中心端设置认证过程的生命周期T,来控制用户进行身份认证的整个进程,防止黑客利用截获的动态认证口令,来攻击认证系统。

采用一种安全单钥管理技术建立安全协议的策略,是基于智能卡和加密卡的芯片是可信的基础上,认证系统中的各种安全协议,是在智能卡芯片和加密卡芯片里完成,都是基于“芯片级”的协议,安全性高。

5 结束语

本方案提出在客户机端智能芯片和认证中心端加密卡芯片里,采用轻量级密码和安全单钥管理技术来建立动态口令认证系统,将用户输入的静态口令和认证系统增添的静态口令,通过一次一变的密钥元素代替表代替后,生成的认证密钥一次一变,并产生的动态认证口令也一次一变,保证认证系统既高效,又安全。能满足具有海量用户的网络身份认证,为我国未来网络的应用和发展保驾护航。

[1] GM/T 0021-2012, 动态口令密码应用技术规范.

[2]专利申请号:200510107835.8 发明名称:一种防止银行信用卡被盗用的方法 发明人:胡阳.

[3]胡祥义,徐冠宁,杜丽萍.基于云计算的文件加密传输方法[J].网络安全技术与应用.2013.5.

[4]沈昌祥.云计算安全与等级保护[J].信息安全与通信保密.2012.

[5]冯登国.开启云计算安全时代[J].信息网络安全.2011.

[6]张云勇,陈清金.云计算安全关键技术分析[J].电信科学.2010.

[7]冯志刚,马超.浅谈云计算安全[J].科技风.2010.

[8]田景成.云计算与密码技术[J].信息安全与通信保密.2012

猜你喜欢
密文口令静态
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
最新进展!中老铁路开始静态验收
静态随机存储器在轨自检算法
高矮胖瘦
口 令
好玩的“反口令”游戏
SNMP服务弱口令安全漏洞防范
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*