1.本公开涉及信息安全技术领域,尤其涉及认证方法、认证装置、计算机可读存储介质与电子设备。
背景技术:2.在计算机通信中,通常需要在两端间传输信息,例如客户端与服务端进行会话。相关技术中,大多采用对传输链路加密的方式,以防止所传输的信息被窃取。然而,如果攻击者伪装成其中某一端,与另一端进行密钥协商与会话,则传输链路加密的方式失效,例如攻击者伪装成服务端,通过钓鱼站点能够窃取用户隐私信息。
技术实现要素:3.本公开提供了认证方法、认证装置、计算机可读存储介质与电子设备,进而至少在一定程度上提高计算机通信的安全性。
4.根据本公开的第一方面,提供一种认证方法,包括:第一端利用非对称密钥中的第一密钥加密认证信息,得到第一密文;向第二端发送所述第一密文,使所述第二端利用与所述第一密钥对应的第二密钥解密所述第一密文以及对比所述第一密文的明文与所述认证信息,以对所述第一端进行身份认证;接收所述第二端发送的第二密文,所述第二密文是所述第二端利用所述第二密钥加密所述认证信息所得到的密文;利用所述第一密钥解密所述第二密文,并对比所述第二密文的明文与所述认证信息,以对所述第二端进行身份认证。
5.根据本公开的第二方面,提供一种认证方法,包括:第二端接收第一端发送的第一密文,所述第一密文是所述第一端利用非对称密钥中的第一密钥加密认证信息所得到的密文;利用与所述第一密钥对应的第二密钥解密所述第一密文,并对比所述第一密文的明文与所述认证信息,以对所述第一端进行身份认证;利用所述第二密钥加密所述认证信息,得到第二密文;向所述第一端发送所述第二密文,使所述第一端利用与所述第一密钥解密所述第二密文以及对比所述第二密文的明文与所述认证信息,以对所述第二端进行身份认证。
6.根据本公开的第三方面,提供一种认证装置,包括:加密单元,被配置为第一端利用非对称密钥中的第一密钥加密认证信息,得到第一密文;发送单元,被配置为向第二端发送所述第一密文,使所述第二端利用与所述第一密钥对应的第二密钥解密所述第一密文以及对比所述第一密文的明文与所述认证信息,以对所述第一端进行身份认证;接收单元,被配置为接收所述第二端发送的第二密文,所述第二密文是所述第二端利用所述第二密钥加密所述认证信息所得到的密文;解密单元,被配置为利用所述第一密钥解密所述第二密文,并对比所述第二密文的明文与所述认证信息,以对所述第二端进行身份认证。
7.根据本公开的第四方面,提供一种认证装置,包括:发送单元,被配置为第二端接收第一端发送的第一密文,所述第一密文是所述第一端利用非对称密钥中的第一密钥加密认证信息所得到的密文;解密单元,被配置为利用与所述第一密钥对应的第二密钥解密所
述第一密文,并对比所述第一密文的明文与所述认证信息,以对所述第一端进行身份认证;加密单元,被配置为利用所述第二密钥加密所述认证信息,得到第二密文;发送单元,被配置为向所述第一端发送所述第二密文,使所述第一端利用与所述第一密钥解密所述第二密文以及对比所述第二密文的明文与所述认证信息,以对所述第二端进行身份认证。
8.根据本公开的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一或第二方面的认证方法及其可能的实现方式。
9.根据本公开的第六方面,提供一种电子设备,包括:处理器;存储器,用于存储所述处理器的可执行指令;通信模块,用于与其他设备进行通信。其中,所述处理器配置为经由执行所述可执行指令来执行上述第一或第二方面的认证方法及其可能的实现方式。
10.本公开的技术方案具有以下有益效果:
11.一方面,提供了一种对通信的两端进行双向身份认证的方案,两端均可以通过对比经过解密的认证信息与认证信息的原文是否一致,识别对方的身份是否真实,能够防止中间人通过伪装身份的攻击,特别能够使客户端识别到虚假的服务端,从而提高计算机通信的安全性。另一方面,本方案的双向身份认证基于对同一认证信息的加密与解密实现,无需在两端配置不同的认证信息,能够降低信息交互成本。
12.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
13.图1示出本示例性实施方式运行环境的系统架构图;
14.图2示出本示例性实施方式中一种电子设备的结构示意图;
15.图3示出本示例性实施方式中一种认证方法的流程步骤图;
16.图4示出本示例性实施方式中一种协商非对称密钥与认证信息的交互示意图;
17.图5示出本示例性实施方式中一种对第一端进行身份认证的交互示意图;
18.图6示出本示例性实施方式中一种对第二端进行身份认证的交互示意图;
19.图7示出本示例性实施方式中一种对通信数据加密的流程步骤图;
20.图8示出本示例性实施方式中一种获取与更新随机密钥的交互示意图;
21.图9示出本示例性实施方式中一种添加身份令牌的流程步骤图;
22.图10示出本示例性实施方式中一种获取与更新身份令牌的交互示意图;
23.图11示出本示例性实施方式中另一种认证方法的流程步骤图;
24.图12示出本示例性实施方式中一种认证装置的结构示意图;
25.图13示出本示例性实施方式中另一种认证装置的结构示意图。
具体实施方式
26.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许
多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
27.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
28.附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
29.本公开的示例性实施方式提供一种认证方法,其应用场景包括但不限于:客户端与服务端进行交互时,可以通过本示例性实施方式的认证方法进行双向身份认证,以保证客户端与服务端的身份真实,进而进行数据读写等业务交互,特别适用于支付、录入个人信息等敏感性较高的交互场景;两终端通过蓝牙等方式进行直接通信时,可以通过本示例性实施方式的认证方法进行双向身份认证,以保证双方身份真实。
30.图1示出了本示例性实施方式中认证方法运行环境的系统架构图。如图1所示,该系统100包括第一端110、网络120与第二端130。第一端110与第二端130是进行计算机通信的两端,例如第一端110为客户端,第二端130为服务端,或者第一端110为服务端,第二端130为客户端,或者第一端110与第二端130均为终端。网络120用于在第一端110与第二端130之间提供通信链路,可以是有线或无线的通信链路。
31.本公开的示例性实施方式还提供一种电子设备,可以是上述第一端110或第二端130,用于执行本示例性实施方式的认证方法。该电子设备可以是终端或服务器。一般的,该电子设备包括处理器、存储器与通信单元。存储器用于存储处理器的可执行指令,也可以存储应用数据,如图像数据、视频数据等;通信模块用于与其他设备进行通信;处理器配置为经由执行可执行指令来执行本示例性实施方式的认证方法。
32.下面以图2中的移动终端200为例,对上述电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图2中的构造也能够应用于固定类型的设备。
33.如图2所示,移动终端200具体可以包括:处理器210、内部存储器221、外部存储器接口222、usb(universal serial bus,通用串行总线)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器271、受话器272、麦克风273、耳机接口274、传感器模块280、显示屏290、摄像模组291、指示器292、马达293、按键294以及用户标识模块(subscriber identification module,sim)卡接口295等。
34.处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,ap)、调制解调处理器、图形处理器(graphics processing unit,gpu)、图像信号处理器(image signal processor,isp)、控制器、编码器、解码器、数
字信号处理器(digital signal processor,dsp)、基带处理器和/或神经网络处理器(neural
‑
network processing unit,npu)等。
35.在一些实施方式中,处理器210可以包括一个或多个接口,通过不同的接口和移动终端200的其他部件形成连接。
36.内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括易失性存储器,如dram(dynamic random access memory,动态随机存储器)、sram(static random access memory,静态随机存储器),还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件等。外部存储器接口222可以用于连接外部存储器,实现扩展移动终端200的存储能力。
37.usb接口230是符合usb标准规范的接口,可以用于连接充电器为移动终端200充电,也可以连接耳机或其他电子设备。
38.充电管理模块240用于从充电器接收充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为设备供电;电源管理模块241还可以监测电池的状态。
39.移动终端200的无线通信功能可以通过天线1、天线2、移动通信模块250、无线通信模块260、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块250可以提供应用在移动终端200上的包括2g/3g/4g/5g等无线通信的解决方案。无线通信模块260可以提供应用在移动终端200上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi
‑
fi)网络)、蓝牙(bluetooth,bt)、全球导航卫星系统(global navigation satellite system,gnss)、调频(frequency modulation,fm)、近距离无线通信技术(near field communication,nfc)、红外技术(infrared,ir)等无线通信解决方案。
40.移动终端200可以通过gpu、显示屏290及应用处理器等实现显示功能,可以通过isp、摄像模组291、编码器、解码器、gpu、显示屏290及应用处理器等实现拍摄功能,还可以通过音频模块270、扬声器271、受话器272、麦克风273、耳机接口274及应用处理器等实现音频功能。
41.传感器模块280可以包括深度传感器2801、压力传感器2802、陀螺仪传感器2803、气压传感器2804等。
42.指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。马达293可以产生振动提示,也可以用于触摸振动反馈等。按键294包括开机键,音量键等。
43.移动终端200可以支持一个或多个sim卡接口295,用于连接sim卡,以实现语音通话与移动通信。
44.图3示出了由第一端执行的认证方法的示例性流程,可以包括:
45.步骤s310,第一端利用非对称密钥中的第一密钥加密认证信息,得到第一密文;
46.步骤s320,向第二端发送第一密文,使第二端利用与第一密钥对应的第二密钥解密第一密文以及对比第一密文的明文与认证信息,以对第一端进行身份认证;
47.步骤s330,接收第二端发送的第二密文,第二密文是第二端利用第二密钥加密认证信息所得到的密文;
48.步骤s340,利用第一密钥解密第二密文,并对比第二密文的明文与认证信息,以对第二端进行身份认证。
49.基于图3所示的方法,提供了一种对通信的两端进行双向身份认证的方案,两端均可以通过对比经过解密的认证信息与认证信息的原文是否一致,识别对方的身份是否真实,能够防止中间人通过伪装身份的攻击,特别能够使客户端识别到虚假的服务端,从而提高计算机通信的安全性。另一方面,本方案的双向身份认证基于对同一认证信息的加密与解密实现,无需在两端配置不同的认证信息,能够降低信息交互成本。
50.下面对图3中的每个步骤进行具体说明。
51.步骤s310中,第一端利用非对称密钥中的第一密钥加密认证信息,得到第一密文。
52.非对称密钥通常包括一对公钥(public key)与私钥(private key),第一密钥可以是公钥,对应的第二密钥是私钥,或者第一密钥可以是私钥,对应的第二密钥是公钥。认证信息(auth)用于第一端与第二端进行双向身份认证,可以是任意字符串,例如由第二端按照一定的规则(包括规定的长度、字符类型、复杂度等)生成随机字符串,作为认证信息。
53.本示例性实施方式中,第一端与第二端可以预先协商约定非对称密钥与认证信息。参考图4所示,以第一端为客户端,第二端为服务端举例说明,客户端向服务端发送协商请求;服务端响应于该协商请求,生成非对称密钥与认证信息,非对称密钥为一对公钥(即第一密钥)与私钥(即第二密钥);服务端将公钥与认证信息发送至客户端,客户端加以保存;服务端保存私钥与认证信息。需要说明的是,图4中显示服务端向客户端同时发送公钥与认证信息,实际应用中,也可以不同时发送公钥与认证信息,例如客户端与服务端在某一时间协商约定公钥与私钥,在另一时间协商约定认证信息。
54.上述非对称密钥与认证信息可以由第一端或第二端中的任一端生成,例如图4中由服务端生成非对称密钥与认证信息,也可以由其中的一端生成非对称密钥,另一端生成认证信息,还可以由另外的第三端生成非对称密钥与认证信息。在一种实施方式中,客户端与服务端可以协商约定非对称密钥,客户端配置公钥,服务端配置私钥,同时由另外的认证端(即第三端,认证端与服务端可以是不同的服务器)生成认证信息,并将认证信息发送至客户端与服务端。
55.上述协商约定非对称密钥与认证信息的过程可以在建立连接后执行。具在一种实施方式中,第一端与第二端建立连接,连接成功后协商约定非对称密钥与认证信息,然后再执行步骤s310。上述协商约定非对称密钥与认证信息的过程也可以在建立连接前执行。在一种实施方式中,第一端与第二端可以定期协商约定非对称密钥与认证信息,例如周期性协商更新非对称密钥与认证信息,这样在进行会话时,建立连接后可以直接调用已约定的非对称密钥与认证信息,执行步骤s310。
56.在一种实施方式中,第一端可以先根据数字证书对第二端的身份进行初步认证,在认证通过后与第二端执行上述协商约定非对称密钥与认证信息的过程。
57.在确定第一密钥与认证信息后,第一端可以利用第一密钥加密认证信息,得到第一密文。
58.继续参考图3,步骤s320中,向第二端发送第一密文,使第二端利用与第一密钥对应的第二密钥解密第一密文以及对比第一密文的明文与认证信息,以对第一端进行身份认证。
59.第一端将第一密文发送至第二端,第二端利用第二密钥解密第一密文,得到第一密文的明文。如果第一端持有的第一密钥与第二端持有的第二密钥为一对非对称密钥,则步骤s320中第二端解密第一密文,是步骤s310中第一端加密认证信息的逆过程,第一密文的明文应当与认证信息一致。因此,第二端对比第一密文的明文与认证信息,实际上对比经过加密与解密的认证信息与认证信息的原文是否一致。如果第一密文的明文与认证信息一致,则确定对第一端身份认证通过;如果第一密文的明文与认证信息不一致,则判断第一端持有的第一密钥与认证信息中的至少一条是错误的,可以确定第一端身份认证不通过。第二端可以向第一端返回身份认证的结果,如身份认证不通过时返回特定的错误码。
60.参考图5所示,对上述第一端的身份认证过程进行具体说明。客户端利用公钥对认证信息进行加密,得到第一密文;客户端将第一密文发送至服务端;服务端利用私钥解密第一密文,得到对应的明文,并对比明文与认证信息是否一致,确定客户端的身份认证结果;服务端将身份认证结果返回客户端。
61.上述步骤s310与s320为第二端对第一端的身份认证过程,接下来进行第一端对第二端的身份认证过程。
62.继续参考图3,步骤s330中,接收第二端发送的第二密文,第二密文是第二端利用第二密钥加密认证信息所得到的密文。
63.第二端利用第二密钥加密认证信息,得到第二密文。需要说明的是,步骤s310与步骤s330是对同一条认证信息进行加密,但是所用的密钥不同,因此第一密文与第二密文不同。然后,第二端将第二密文发送至第一端。
64.在一种实施方式中,第二密钥为非对称密钥中的私钥,第二端利用私钥加密认证信息,实质是对认证信息进行签名。
65.继续参考图3,步骤s340中,利用第一密钥解密第二密文,并对比第二密文的明文与认证信息,以对第二端进行身份认证。
66.第一端利用第一密钥解密第二密文,得到对应的明文,通过对比该明文与认证信息是否一致,可以对第二端进行身份认证。如果第一端持有的第一密钥与第二端持有的第二密钥为一对非对称密钥,则步骤s340第一端解密第二密文的过程,是步骤s330中第二端加密认证信息的逆过程,第二密文的明文应当与认证信息一致。因此,第一端对比第二密文的明文与认证信息,实际上对比经过加密与解密的认证信息与认证信息的原文是否一致。如果第二密文的明文与认证信息一致,则确定对第二端身份认证通过;如果第二密文的明文与认证信息不一致,则判断第二端持有的第一密钥与认证信息中的至少一条是错误的,可以确定第二端身份认证不通过。第一端可以向第一端返回身份认证的结果。
67.参考图6所示,对上述第二端的身份认证过程进行具体说明。服务端利用私钥对认证信息进行加密,得到第二密文,该过程实质是对认证信息进行签名;服务端将第二密文发送至客户端;客户端利用公钥解密第二密文,得到对应的明文,并对比明文与认证信息是否一致,确定服务端的身份认证结果,该过程实质是对服务端的签名进行认证;客户端将身份认证结果返回服务端。
68.需要说明的是,第一端的身份认证与第二端的身份认证过程中,使用相同的认证信息,这样预先协商并部署一次认证信息即可,无需在第一端与第二端配置不同的认证信息,从而降低信息交互成本。
69.应当理解,上述第一端与第二端的身份可以互换,例如图4至图6中示出第一端为客户端,第二端为服务端,可以将二者互换,使第一端为服务端,第二端为客户端。也可以将第一端与第二端的身份认证过程调换顺序,例如先执行步骤s330和s340,对第二端进行身份认证,再执行步骤s310和s320,对第一端进行身份认证。
70.在双向身份认证通过后,可以进行业务交互。在一种实施方式中,参考图7所示,对第二端身份认证通过后,可以执行以下步骤:
71.步骤s710,获取随机密钥;
72.步骤s720,利用随机密钥加密通信数据,并向第二端发送。
73.其中,通信数据可以是业务交互中需要发送给第二端的任意数据。随机密钥(random key)用于对通信数据进行加密,可以是任意形式的密钥,例如可以是对称密钥或非对称密钥,本公开对此不做限定。
74.随机密钥可以是不同于第一密钥、第二密钥的另一组密钥。在一种实施方式中,第一端与第二端可以协商约定随机密钥。参考图8所示,客户端可以向服务端发送密钥请求,服务端响应于密钥请求,生成随机密钥,并将随机密钥返回客户端。客户端发送密钥请求时可以利用第一密钥进行加密,以提高协商过程的安全性。
75.在一种实施方式中,步骤s710可以通过以下步骤实现:
76.接收第二端发送的随机密钥密文;
77.利用第一密钥解密随机密钥密文,得到随机密钥。
78.其中,随机密钥密文是第二端利用第二密钥对随机密钥加密得到的密文,例如在图8中,服务端可以向客户端发送经过第二密钥加密的随机密钥密文。第一端可以利用第一密钥解密随机密钥密文,得到随机密钥的明文。由此,在随机密钥的传输过程中,攻击者即使窃取到随机密钥密文,由于其不具有第一密钥,无法解密出随机密钥,从而增加了传输过程中的安全性。
79.第一端获取随机密钥后,利用随机密钥加密通信数据,并将通信数据的密文发送至第二端,第二端解密后得到通信数据的明文。由此提高了通信数据的安全性。
80.在一种实施方式中,可以设置随机密钥的过期机制。具体地,当第一端接收第二端发送的密钥过期信息时,可以向第二端发送密钥请求,以获取新的随机密钥。密钥过期信息用于表示第一端的随机密钥过期,可以是特定的错误码或者其他形式的信息。例如设置随机密钥的有效期为5分钟(通常从生成随机密钥的时间开始),第二端可以在超过5分钟时向第一端发送密钥过期信息,或者在超过5分钟后,接收第一端发送的用随机密钥加密的通信数据时,向第一端发送密钥过期信息。第一端接收到密钥过期信息时,可以向第二端发送密钥请求,第二端响应于该密钥请求,生成新的随机密钥并返回第一端。参考上述图8所示,客户端向服务端发送通信数据后,如果服务端检测到随机密钥过期,则返回密钥过期的错误码;客户端接收到该错误码后,向服务端发送密钥请求,服务端响应于该密钥请求,生成新的随机密钥,并返回客户端。该过程中,客户端可以利用第一密钥对密钥请求加密,服务端可以利用第二密钥对随机密钥加密,从而提高了该过程的交互安全性。
81.在业务交互的过程中,还可以通过身份令牌实现快速身份认证。在一种实施方式中,参考图9所示,对第二端身份认证通过后,可以执行以下步骤:
82.步骤s910,获取身份令牌;
83.步骤s920,将身份令牌添加至通信数据,并向第二端发送。
84.其中,身份令牌(token)用于标识第一端的身份信息,可以是第二端为第一端随机生成的标识性字符串。由此,第一端可以在每次发送通信数据时,将身份令牌添加至其中,以便于第二端识别到身份令牌后对第一端的身份进行快速识别与认证。
85.在一种实施方式中,第二端可以在对第一端身份认证通过后,生成第一端的身份令牌并发送至第一端。
86.在另一种实施方式中,第一端可以在对第二端身份认证通过后,向第二端发送令牌请求,第二端响应于该令牌请求,生成第一端的身份令牌并发送至第一端。
87.在一种实施方式中,步骤s910可以通过以下步骤实现:
88.接收第二端发送的身份令牌密文;
89.利用第一密钥解密身份令牌密文,得到身份令牌。
90.其中,身份令牌密文是第二端利用第二密钥对身份令牌加密得到的密文。第一端可以利用第一密钥解密身份令牌密文,得到身份令牌的明文。由此,在身份令牌的传输过程中,攻击者即使窃取到身份令牌密文,由于其不具有第一密钥,无法解密出身份令牌,从而增加了传输过程中的安全性。
91.参考图10所示,客户端可以向服务端发送令牌请求,服务端响应于令牌请求,生成第一端的身份令牌,并将身份令牌返回客户端。客户端发送密钥请求时可以利用第一密钥进行加密,服务端返回身份令牌时可以利用第二密钥进行加密,从而提高了该过程的交互安全性。
92.在一种实施方式中,可以设置身份令牌的过期机制。具体地,当第一端接收第二端发送的令牌过期信息时,可以向第二端发送令牌请求,以获取新的身份令牌。令牌过期信息用于表示第一端的身份令牌过期,可以是特定的错误码(与密钥过期信息是不同的错误码)或者其他形式的信息。例如设置身份令牌的有效期为1小时(通常从生成身份令牌的时间开始,身份令牌的有效期可以比随机密钥的有效期长),第二端可以在超过1小时时向第一端发送令牌过期信息,或者在超过1小时后,接收第一端发送的携带身份令牌的通信数据时,向第一端发送令牌过期信息。第一端接收到令牌过期信息时,可以向第二端发送令牌请求,第二端响应于该令牌请求,生成新的身份令牌并返回第一端。参考上述图10所示,客户端向服务端发送通信数据后,如果服务端检测到其中的身份令牌过期,则返回令牌过期的错误码;客户端接收到该错误码后,向服务端发送令牌请求,服务端响应于该令牌请求,生成新的身份令牌,并返回客户端。该过程中,客户端可以利用第一密钥对令牌请求加密,服务端可以利用第二密钥对身份令牌加密,从而提高了该过程的交互安全性。
93.在一种实施方式中,可以在业务交互中同时采用随机密钥与身份令牌。具体地,第一端在发送通信数据时,可以将身份令牌添加至通信数据中,利用随机密钥对添加身份令牌后的通信数据进行加密,向第二端发送加密后的数据。由此,可以提高通信数据的安全性,并实现第二端对第一端的快速识别与认证。
94.图11示出了由第二端执行的认证方法的示例性流程,可以包括:
95.步骤s1110,第二端接收第一端发送的第一密文,第一密文是第一端利用非对称密钥中的第一密钥加密认证信息所得到的密文;
96.步骤s1120,利用与第一密钥对应的第二密钥解密第一密文,并对比第一密文的明
文与认证信息,以对第一端进行身份认证;
97.步骤s1130,利用第二密钥加密认证信息,得到第二密文;
98.步骤s1140,向第一端发送第二密文,使第一端利用与第一密钥解密第二密文以及对比第二密文的明文与认证信息,以对第二端进行身份认证。
99.图11的方法流程与图3的方法流程实质上相同,只是执行主体由第一端变为第二端。例如第一端为客户端,第二端为服务端时,图11为服务端执行的方法流程。基于图11所示的方法,能够实现双向身份认证的方案,防止中间人通过伪装身份进行攻击,提高计算机通信的安全性,并且方案基于对同一认证信息的加密与解密即可实现,能够降低信息交互成本。
100.本公开的示例性实施方式还提供一种认证装置。参考图12所示,该认证装置1200可以包括:
101.加密单元1210,被配置为第一端利用非对称密钥中的第一密钥加密认证信息,得到第一密文;
102.发送单元1220,被配置为向第二端发送第一密文,使第二端利用与第一密钥对应的第二密钥解密第一密文以及对比第一密文的明文与认证信息,以对第一端进行身份认证;
103.接收单元1230,被配置为接收第二端发送的第二密文,第二密文是第二端利用第二密钥加密认证信息所得到的密文;
104.解密单元1240,被配置为利用第一密钥解密第二密文,并对比第二密文的明文与认证信息,以对第二端进行身份认证。
105.在一种实施方式中,第一密钥为公钥,第二密钥为与公钥对应的私钥。
106.在一种实施方式中,在解密单元1240对第二端身份认证通过后,接收单元1230,被配置为获取随机密钥;加密单元1210,被配置为利用随机密钥加密通信数据;发送单元1220,被配置为向第二端发送加密后的通信数据。
107.在一种实施方式中,接收单元1230,被配置为接收第二端发送的密钥过期信息;发送单元1220,被配置为响应于密钥过期信息,向第二端发送密钥请求,以获取新的随机密钥。
108.在一种实施方式中,接收单元1230,被配置为接收第二端发送的随机密钥密文;解密单元1240,被配置为利用第一密钥解密随机密钥密文,得到随机密钥。
109.在一种实施方式中,在解密单元1240对第二端身份认证通过后,方接收单元1230,被配置为获取身份令牌,身份令牌用于标识第一端的身份信息;发送单元1220,被配置为将身份令牌添加至通信数据,并向第二端发送。
110.在一种实施方式中,接收单元1230,被配置为接收第二端发送的令牌过期信息;发送单元1220,被配置为响应于令牌过期信息,向第二端发送令牌请求,以获取新的身份令牌。
111.在一种实施方式中,接收单元1230,被配置为接收第二端发送的身份令牌密文;解密单元1240,被配置为利用第一密钥解密身份令牌密文,得到身份令牌。
112.本公开的示例性实施方式还提供另一种认证装置。参考图13所示,该认证装置1300可以包括:
113.接收单元1310,被配置为第二端接收第一端发送的第一密文,第一密文是第一端利用非对称密钥中的第一密钥加密认证信息所得到的密文;
114.解密单元1320,被配置为利用与第一密钥对应的第二密钥解密第一密文,并对比第一密文的明文与认证信息,以对第一端进行身份认证;
115.加密单元1330,被配置为利用第二密钥加密认证信息,得到第二密文;
116.发送单元1340,被配置为向第一端发送第二密文,使第一端利用与第一密钥解密第二密文以及对比第二密文的明文与认证信息,以对第二端进行身份认证。
117.上述装置中各部分的细节在方法部分实施方式中已经详细说明,因而不再赘述。
118.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
119.本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(cd
‑
rom)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
120.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd
‑
rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
121.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
122.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
123.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商
来通过因特网连接)。
124.所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
125.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。