APP下载

基于数字签名和SM2算法的终端接入认证协商协议∗

2021-04-04

计算机与数字工程 2021年3期
关键词:公钥数字签名攻击者

吕 良 李 瑞

(1.公安部第三研究所 上海 201204)

(2.华北电力大学 北京 102206)

1 引言

近年来,黑客技术的发展使得信息化建设日益深入各类企业深陷网络安全的风险之中,据统计绝大多数的安全事件都是由终端设备的非法接入内网引起。另一方面,军工产业、政府部门、金融等领域相对系统复杂,保密性强,对内部网络安全可靠性有着严格需求。为了保障网络内部的安全可信,落实信息安全等级保护安全建设,终端安全接入技术应运而生。企业在应对网络安全风险和安全威胁时,不仅需要自上而下的信息安全管理体系,还需要自下而上的保证终端用户安全接入的认证协议,使接入企业内部网络的终端成为一个可信终端。

本文针对目前终端接入面临的安全风险和安全接入需求,提出一种基于SM2的双向认证密钥协商协议,分析其安全性,采用BAN逻辑进行形式化分析,最后给出安全性分析结果。

2 基础知识

2.1 数字签名技术

数字签名是指发送方用自己的私钥对数字指纹进行加密后所得的数据,其中包括非对称密钥加密和数字签名两个过程,在可以给数据加密的同时,也可用于接收方验证发送方身份的合法性。采用数字签名时,接收方需要使用发送方的公钥才能解开数字签名得到数字指纹。

数字指纹又称为信息摘要,是指发送方通过HASH算法对明文信息计算后得出的数据。采用数字指纹时,发送方会对明文进行哈希运算后生成的数字指纹(还要经过数字签名),以及采用对端公钥对明文进行加密后生成的密文一起发送给接收方,接收方用同样的HASH算法对明文计算生成的数据指纹,与收到的数字指纹进行匹配,如果一致,便可确定明文信息没有被篡改。从以上数字签名的加/解密过程中可以看出,数字签名技术不但证明了信息未被篡改,还证明了发送方的身份。

2.2 SM2密钥协商算法

国家密码管理局在2010年12月份公布了《SM2椭圆曲线公钥密码算法》,SM2算法属于椭圆曲线算法(ECC)当中的一种。《SM2椭圆曲线公钥密码算法》说明了签名验签、加密解密和密钥交换算法的具体步骤。本论文参照《SM2椭圆曲线公钥密码算法》第三部分中的密钥交换协议。考虑到终端设备的内存空间和性能的限制性,本文在应用SM2密钥协商时省略了算法中的可选步骤,并与基于数字证书的双向身份认证相结合,其安全性不会降低。

3 协议设计

本文利用数字签名技术,在SM2密钥协商过程中实现了用户A和用户B的双向身份认证,认证通过后得到双方的会话密钥。该协议适用于智能终端安全接入通信系统。用户A和用户B之间的认证协商过程如图1所示。以下用到的符号做以下说明,如表1所示。

表1 认证协商通信符号说明

3.1 初始化阶段

设用户B和用户A之间通过密钥协商获得的密钥长度为LK,用户A作为发起者,去连接用户B,用户B作为响应者。

用户A:

步骤1:随机产生随机数rA,本次会话唯一标识rB,身份唯一标识IDA。

用户B:

步骤2:随机产生随机数rB,身份唯一标识IDB。

3.2 双向认证阶段

用户A:

用户B:

步骤4:计算H(rA||Se||IDA),计算,如果得到结果为true,用户B认证用户A成功,到步骤5,如果得到结果为false,用户B立即中断与用户A的连接。

用户A:

步骤7:计算H(rB||Se||IDB),计算,如果得到结果为true,用户A认证用户B成功,至此用户B和用户A完成双向认证,如果得到结果为false,用户B立即中断与用户A的连接。

3.3 密钥协商阶段

用户B和用户A完成双向认证之后,进行以下密钥协商过程。

用户A:

步骤8:选择椭圆曲线上一点A=(xA,yA),点A满足椭圆曲线方程,是非无穷远点。

用户B:

步骤9:选择椭圆曲线上一点B=(xB,yB),点B满足椭圆曲线方程,是非无穷远点。

步骤10:取出点B中的域元素,将其数据类型转化为整数型,并计算,其中

图1 认证协商过程图

步骤12:取出点A中的域元素,将其数据类型转化为整数型,并计算,其中

步骤14:计算KB=KDF(xV||yV||ZA||ZB||rA||rB,Lk)

用户A:

步骤15:取出点A中的域元素,将其数据类型转化为整数型,并计算,其中

步骤17:取出点B中的域元素,将其数据类型转化为整数型,并计算,其中

步骤19:KA=KDF(xU||yU||ZA||ZB||rA||rB,Lk)。

步骤20:计算RA=rA˄rB,将RA发送给用户B。

用户B:

步骤21:计算RB=rA˄rB,计算,如果结果为false,协商失败,立即中断与用户A的通信连接,如果结果为true,至此用户A和用户B密钥协商成功,双方分别得到接下来进行数据传输的会话密钥KB=KA。

4 BAN逻辑证明

4.1 BAN逻辑语法

BAN逻辑语法具体说明如下:

1)P|≡X:P相信X,主体P相信X是真的。

2)P|:X:P曾说过X,主体P在某个时刻传送X。

3)P<X:P曾看到过X,有主体曾发送过来包含X的信息,主体P可以读出X。

4)#(X):X是新鲜的。

5){X}K:用密钥K加密X得到的密文。

4.2 BAN主要推理规则

BAN主要推理规则如下。

1)消息含义规则

2)临时值验证规则

3)新鲜性规则

4)会话密钥规则

4.3 协议证明过程

使用BAN逻辑证明本文设计协议的安全性,形式化说明协议能够达到预期安全目标。先根据BAN逻辑需求对协议步骤进行表示如下。

假设:A|≡#(rB),A|≡#(IDB),B|≡#(rA),B|≡#(IDA) ;需证明:1)A|≡#(K);2)B|≡#(K);3)A|≡

证明过程如下:

1)因A|≡#(rB),A|≡#(IDB),结合新鲜性规则,可得A|≡#(H(rB,Se,IDB)),再可得A|≡#{rB,Se,IDB},再可得A|≡#K。

2)因B≡#(rA),B|≡#(IDA),结合新鲜性规则,可得B|≡#(H(rA,Se,IDA)),再可得B|≡#{rA,Se,IDA},再可得B|≡#K。

因A|≡ #(H(rB,Se,IDB))˄A|≡B|~(H(rB,Se,IDB)),结合临时值校验规则,可得A|≡B|≡(H(rB,Se,IDB))。

因A|≡#K˄A|≡B|≡(H(rB,Se,IDB)),结合会话密钥规则,可得A|≡

因B|≡ #(H(rA,Se,IDA))˄B|≡A|~(H(rA,Se,IDA)),结合临时值校验规则,可得B|≡A|≡(H(rA,Se,IDA))。

因B|≡#K˄B|≡A|≡(H(rA,Se,IDA)),结合会话密钥规则,可得

综上,可证明本文方案可以到达预期认证协商目标,本文协议是安全的。

5 安全性分析

5.1 双向身份认证

在所提出的方案中,用户的私钥由用户持有的安全芯片内的随机数发生器生成。它存储在安全芯片的存储单元中,无法导出。受信任的第三方CA通过PKI技术发布用户的签名证书。证书包括用户的公钥。,只有合法用户才能拥有与签名公钥对应的正确签名私钥。用户A确定(rA||Se||IDA),发送给用户B。用户B通过验证认证用户A的身份,其中用户B的运算涉及用户A的公钥。如果返回的结果为true,则表明消息的确由持有私钥dA的合法用户A发送的。同样地,用户A通过计算认证用户B。因此,用户A和用户B之间实现了双向身份认证。

5.2 重放攻击

用户A发送给用户B的认证请求中包含随机数rA,其消息为即由密文传输。因此,如果攻击者δ重放一条之前来自于用户A的消息给用户B,用户B能够通过计算验证随机数rA的新鲜性。因此,即使攻击者δ发送相同的消息给B,通过B验证随机数的新鲜性确定其为非法用户。因此提出的协议可以防止重放攻击。

5.3 假冒攻击

双方用户不仅可以相互进行双向身份认证,也能确认其消息的发送者。在提出的协议中,用户B会验证,如果验证计算返回结果为true,消息被确认为由合法用户A发送的。否则,则可能发生了假冒攻击。由于安全模型提出CA是可信的第三方,仅有合法用户才能得到数字签名公钥。因此攻击者δ无法利用假冒攻击通过所提出协议的认证阶段。

5.4 消息注入攻击

我们提出的协议在密钥协商和认证之后,在双方之间发送的传输数据上提供加密信道。只有达到身份验证和密钥协议的用户才知道会话密钥。攻击者δ无法获取共享会话密钥。由于无法使用共享会话密钥无法正确解密网络数据包,因此无法注入恶意信息。如果发送由用户A或用户B加密的恶意数据,用户B或用户A将无法使用正确的共享会话密钥正确解密恶意数据,并且丢弃错误数据。

5.5 中间人攻击

攻击者δ截取来自用户A的消息。由于攻击者δ无法得到用户B的私钥,所以即使截获此消息也无法获得(rA||Se||IDA),即不能对用户B做出正确的回应消息。同样,攻击者δ也无法对用户A做出正确的回应。因此,提出的协议可以抵抗中间人攻击。

5.6 窃听攻击

假设攻击者δ执行暴力攻击或离线字典攻击以破解共享会话密钥。由于相互认证的粒度,密钥协议发生在每个TCP连接上。该协议在每次通信结束后判断连接是否超时。超时的话,重新启动密钥协议和相互身份验证以获取新的共享会话密钥。由于共享会话密钥在短时间内更新,攻击者δ无法获得新的会话密钥。因此一旦共享会话密钥生效,攻击者就无法在使用所提出的协议的通信双方之间的会话上长时间窃听。

5.7 完全前向保密

用于生成密钥的元素一次更改一个,并且不能生成其他密钥,一个密钥被破解,不会影响其他密钥的安全性,提出的协议具有的这种特性,称为完全前向保密(PFS)。认证协商协议将根据双方提供的随机数定期创建新密钥。由于双方都提供了只有在密钥协议时才知道的随机值,因此生成的每个新密钥与先前创建的密钥不同。即使对手截获密钥,它也不能长时间使用拦截的密钥。此外,由于未通过密钥协议获得新密钥,因此必须启动新的暴力计算以获取正在使用的密钥。因此,攻击者获得会话密钥很困难。

6 结语

针对现有企业终端接入内网面临的主要安全问题,本文结合数字签名和SM2算法,设计了一种基于数字签名和SM2的双向认证协商协议,并给出了正确性证明。最后经过安全性分析,证明本文协议在抵抗消息注入攻击、重放攻击、中间人攻击、窃听攻击、假冒攻击等攻击手段方面具有优势。

猜你喜欢

公钥数字签名攻击者
基于贝叶斯博弈的防御资源调配模型研究
交通运输行业数字签名系统的设计与实现分析
神奇的公钥密码
数字签名技术在计算机安全防护中的应用
正面迎接批判
正面迎接批判
国密SM2密码算法的C语言实现
关于电子商务中安全数字签名的研究
基于身份的聚合签名体制研究
掌握方法用好数字签名