身份识别与鉴权技术调研方案

对称加密算法

对称加密方式又称为私钥加密方式,该方式的加密和解密过程使用同一个密钥,因此该密钥又称为共享密钥。如图2.2所示,在对称加密方式中,发送方使用对称加密算法和共享密钥处理原始数据,得到一个加密后的密文。接收方收到密文后,想要获得原始数据,则需要使用相同算法的解密算法和同一个共享密钥处理密文,才能得到原始数据。

计算量小,加密速度快,加密效率高是对称加密方式的特点。但是在对称加密方式中,使用的密钥只有一个,这就必须要求解密方事先知道这个加密密钥。如果一旦密钥泄漏,这就意味着任何人都能够获得通信双方的原始消息数据。因此每对通信用户使用对称加密方式时,都需要采取特定且唯一的密钥,同时需要定期对密钥进行更新,这会使得通信双方持有的密钥数量不断增多,用户将花费更多的成本区维持密钥的管理。所以,在分布式网络系统上使用对称加密方式比较困难。

目前在计算机软件系统中广泛使用的对称加密方式有DES,3DES,AES等。DES 加密算法是一种经典的对称加密算法,为后续对称加密算法的发展奠定了坚实的基础。但是DES加密算法的密钥比较短,只有56位,因此受到诸如查分密码分析和线性密码分析等各种攻击威胁。三重DES(3DES)加密算法是DES加密算法的改良。它基于DES加密算法进行三重迭代,使抗穷举攻击的能力显著增强,但同时也造成处理速度较慢、密钥计算时间加长,加密效率不高。因为DES 加密算法的缺陷,美国国家标准局倡导的AES加密算法即将作为对称加密算法的新标准取代DES加密算法。AES加密算法具有密钥建立时间短,灵敏性好,内存需求低等优点。

非对称加密算法

非对称加密方式又称为公钥加密方式。与对称加密方式不同,该方式加密和解密过程中使用的密钥并不相同,加密过程使用的密钥称为公钥,解密过程使用的密钥称为私钥。其中公钥对外公开,私钥对外保密。如图2.3所示,在非对称加密方式中,因为公钥对外公开,所以数据发送方可以直接使用接收方公钥将明文进行特殊加密算法处理,随之产生一个加密密文。接收方收到密文后,则直接使用自己的私钥及对密文进行解密算法处理,即可得到明文信息。同时,发送方也可以使用自己的私钥加密,接收方则使用发送方的公钥进行解密。

非对称加密方式的特点是算法强度复杂、安全性依赖于算法与密钥。非对称

加密方式有两种密钥,其中公钥是公开的,发送方只要确保自己的私钥是安全的

就行,这样安全性就比对称加密方式大了很多。但是由于其算法复杂,从而使得

加密解密速度比较于对称加密解密的速度更慢。若使用非对称加密方式进行通信,不仅系统性能开销较大,而且会造成一定的系统延迟。使用公钥加密、私钥解密的方式,可以确保数据的保密性,但不能防止数据被篡改。使用私钥加密、公钥解密的方式,可以保障数据的一致性,防止数据被篡改,但不能防止数据泄漏。RSA是目前唯一被广泛接受并使用的非对称加密算法,已经成为非对称加密算法国际标准。

不可逆加密算法

除了对称加密和非对称加密方式,还有一种只能单向加密、无法解密的数据加密方式,称为不可逆加密。不可逆加密方式的特点是不需要密钥,一般的实现原理是使用散列函数,又称哈希函数或单向函数。在不可逆加密方式中,输入明文后经过散列函数处理成密文。但这种加密方式没有对应的解密方法,只有重新使用相同的明文,并再次经过同样的散列函数处理,才能得到相同的加密密文,才算是真正的解密。不可逆加密方式一般用来当作数据的消息摘要,用来检验数据的完整性。一些软件系统也使用不可逆加密方式来对用户登录密码进行加密,将加密后的密文存于数据库中。每次用户登录时,软件系统将用户输入的密码进行散列函数处理,生成密文与数据库中的密文对比,相同即可登录。一旦软件系统的数据库被攻击者破坏,数据库中的数据将会被攻击者获取,但是由于密码被单向加密,无法解密,攻击者无法获取用户的登录密码,从而无法使用用户的账号。

MD5加密算法是典型的不可逆加密算法,它由MD4,、MD3、MD2算法改进而来。一个随机长度的信息通过MD5加密算法,将产生一个128位的消息摘要。如果将这个128位的二进制消息摘要转换成十六进制,可以得到一个32位的字符串。在软件系统中经过MD5处理的消息摘要大都是以十六进制存储的32位字符串。

SHA1是和MD5一样流行的消息摘要算法,然而SHA1比MD5的安全性更强。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。如果将这个 160位的二进制消息摘要转换成十六进制,可以得到一个40位的字符串。在软件系统中经过SHA1处理的消息摘要大都是以十六进制存储的40位字符串。

SSL简介

SSL(Secure Sockets Layer)是Netscape公司开发的应用于传输层的面向连接的通信安全协议,运行于TCP/IP协议之上而在其他高层协议之下,它为两个通信实体之间提供认证、数据的保密性和完整性服务。SSL协议分为两层:握手层和记录层。其中,握手层负责双方身份认证、协商记录协议采用的算法和密钥;记录层通过加密处理保证传输中数据的机密性,并通过计算消息认证码MAC来保证连接是可靠的。

SSL可以看成应用层和传输层之间一个层。在发送方,它接收应用层的数据,对数据进行加密,然后将加密的数据送往TCP插口;在接收方,它从TCP插口读取数据,解密后将数据交给应用层。SSL提供以下三个功能:SSL服务器鉴别、SSL客户鉴别、加密的SSL会话。它使用不对称加密技术实现会话双方之间信息的安全传递,可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。SSL不仅为服务器和客户机提供了认证服务,而且为在互联网上安全地传送数据提供了一个加密通道,建立一个安全的连接。

由于SSL提供身份鉴别、授权认证、安全的网络传输通道,在互联网传输安全设计中被广泛使用。但是,在建立SSL通信连接以及初始话SSL会话需要用公钥加密和解密方案,因而SSL协议的使用会降低通信两端建立连接和安全通信的速度。而且,SSL只能运行在TCP/IP协议之上,不适合基于UDP协议传输的实时数据网络通信。

AES与SSL相结合的混合加密

由于网络的安全性要求包括两个方面:一为阻止未授权用户进入网络;另一方面是对互联网传输的数据进行加密传输。基于前面分析,对于一般的TCP通信SSL 协议是可以达到安全性设计要求的。但是对实时性要求较高的信息的安全性设计,特别是基于UDP协议的通信,SSL不是一种理想的选择,必须寻求一种新的加密算法来实现实时通信。

加密算法的原理

基于互联网的实时数据通信既要保证网络实时数据传输的安全性,又要尽量降低实时数据加密的网络传输时延。AES算法加/解密速度很快,但要求在通信前对密钥进行秘密分配,解密的私钥必须由加密的发送方通过网络传送至解密数据的接收方,如何有效管理AES密钥的安全性是保证AES加密安全的重要环节。SSL除了提供安全的加密通道之外,还有授权认证,身份鉴别等功能。在传送实时数据时,如果使用AES对实时数据加密,同时利用SSL实现身份认证和传送AES的密钥,就可以结合AES和SSL的优点获得一种新的实时数据加密方法。

该方案的实现原理:实时数据网络传输前,发送方通过身份认证后,用SSL安全通道发送AES密钥到接收方,同时用AES算法对实时数据加密,然后基于UDP协议通过互联网发送加密的实时数据到接收方。这样接收方可以用接收到的AES密钥解密加密后的实时数据得到具体的实时数据。

加密算法的实现过程

在实现过程中发送方实现了实时数据的加密,而接收方则完成了实时数据的解密,如图1所示。具体是先由发送方发送SSL连接请求,通过身份认证后与接收方建立SSL连接,并通过SSL通信传送发送方创建的AES密钥到接收方,同时发送方用该 AES 密钥加密实时数据,然后通过互联网传送加密后的实时数据到

接收方。接收方通过身份认证接收发送方的SSL连接请求,通过SSL安全加密通道接收来自发送方的AES密钥,同时通过互联网接收被AES加密的实时数据。最后接收方用刚接受的AES密钥解密实时数据密文得到具体实时数据。AES与SSL 结合算法实现了授权认证功能,有效的保证了密钥传输的安全,继承了AES算法的优点。

猜你喜欢

转载自blog.csdn.net/weixin_45905610/article/details/132644423