首页 理论教育 概念和术语|网络安全技术与实例

概念和术语|网络安全技术与实例

时间:2023-10-27 理论教育 版权反馈
【摘要】:一些意外的错误也可能导致信息错误,完整性检查应该能发现这样的错误。用于提供身份验证、防止篡改和防止抵赖的功能。图5.56 对称加密算法为了有效管理密钥,IPSec采用IKE在通信点之间交换和管理密钥。如图5.57所示,在非对称加密算法中,私有密钥是保密的,由用户自己保管。公开密钥是公之于众的,其本身不构成严格的秘密。为了保证数据的完整性并进行身份校验,通常使用单向散列函数。

概念和术语|网络安全技术与实例

1.安全性基本要求

(1)机密性(confidentiality) 所谓保证数据的机密性是指防止数据被未获得授权的查看者理解,在存储和传输的过程中,防止有意或无意信息内容泄露,保证信息的安全性。

未加密的数据通常称为明文,加密后的数据通常称为密文。将数据从明文转换为密文的过程,称为加密;将数据从密文转换为明文的过程称为解密。

数据机密性通常是由加密算法提供的。加密时,算法以明文为输入,将明文转换为密文,从而使无授权者不能理解真实的数据内容。解密时,算法以密文为输入,将密文转换为明文,从而使有授权者能理解数据内容。

当然用户必须具备某种身份或权限的标识,通常这是一个或一组密钥(key)。

(2)完整性(date integrity) 所谓保证数据完整性是指防止数据在存储和传输的过程中受到非法的篡改,或者在通信中,至少能判断一份信息是否经过非法的篡改。这种篡改既包括无授权者的篡改,也包括具备有限授权者的越权篡改。一些意外的错误也可能导致信息错误,完整性检查应该能发现这样的错误。

(3)身份验证(authentication) 身份验证通过检查用户的某种印鉴或标识,判断一份数据是否源于正确的创造者。

传统上,我们利用手写签名进行身份验证。但是手写签名存在很多问题。比如在手写签名签署的文件上,可以额外加入一些其他的内容,从而歪曲签名者的本意。

通信中采用的数字签名技术也同样面临这样的问题。假如数字签名每次都是一样的,人人都可以伪造这种签名。

因此数字签名技术必须有以下特性:无法仿造、无法更改、无法剪裁并挪用、防止抵赖。使用公开密钥算法(public key algorithm)的公开密钥加密技术正是这样的一种技术。

在公开密钥算法中,用户具有一个不公开的私有密钥和一个公开的公开密钥。用户发送数据时,用其私有密钥对数据进行加密,接收方用其公开密钥进行解密。准备发送给用户的数据可以用其公开密钥的进行加密,并可以用其私有密钥进行解密。通常同时用通信双方的公开和私有密钥加密和解密。

2.加密算法

加密算法是根据其工作方式的不同,可以分为对称算法和非对称算法两种。

在对称加密算法中,通信双方共享一个密钥,作为加密/解密的密钥。这个密钥既可以是直接获得的,也可以是通过某种共享的方法推算出来的。所以,对称加密算法也称为单密钥算法。

对称加密算法根据不同的工作方式,又可以分为块加密算法和流加密算法。

块加密算法将待加密的信息分割成数据块,每次只处理其中一个块。块的尺寸是由各种算法自身的规定决定的。例如DES就是一种块加密算法,它采用典型的64位块长度。其他的例子包括3DES和AES。

流加密算法则是把待加密信息当作一个连续的数据流来处理。它以一个特定的密钥值和一种特定的方法进行初始种子化,再与明文流进行联合计算,每次处理数据流中的一位或者一字节,生成密文流。RC算法就是一种典型的流加密算法,它使用2048位密钥,提供极高的加密速度。

非对称加密算法也为公开密钥算法。此类算法为每个用户分配一对密钥:一个私有密钥和一个公开密钥。

RSA是最流行的非对称加密算法。它的数学基础是两个大质数乘积的因数分解问题的极端困难性。RSA广泛应用在数字签名领域

使用非对称加密算法的时候,用户不必记忆大量的共享密钥。只需要知道自己的私密和对方的公开密钥即可。虽然出于安全目的,仍然需要一定的公开密钥管理机制,但是在降低密钥复杂性方面,非对称算法具有相当的优势。

另外,非对称算法也广泛用于数字签名应用。用于提供身份验证、防止篡改和防止抵赖的功能。非对称加密算法的弱点在于其速度非常慢,吞吐量低。因此不适宜对大量数据的加密。

如图5.56所示,对称加密算法中,双方共享一个密钥,任何拥有共享密钥的人都可以对密文进行解密,所以,对称加密算法的安全性依赖于密钥本身的安全性。

为了增加健壮性,一般分块加密算法采用了类似CBC(加密块链接)这样的模式,使用上一个密文块来影响下个密文块的生成,从而避免受到密码本攻击。

对称加密算法速度快,效率高,适宜于对大量数据、动态数据流进行加密。

IPSec IF是采用对称加密算法的安全体系。常见的IPSec加密算法包括DES、增强3DES以及AES等。

如前所述,对称加密算法的安全性在相当大的程度上依赖于密钥本身的安全性,因此一旦密钥泄漏,所有算法都形同虚设。静态设置的密钥只能提供一时的安全性,随着时间的推移,泄漏的可能性也会逐渐增大。如果N个人中,任意两个人通信都采用对称加密,就需要N(N-1)/2个密钥。记忆所有密钥是不可能的,修改密钥也需要大量开销,把密钥写在纸上又会增加泄漏的可能性……凡此种种,都增加了密钥管理的复杂度。并且,因为双方都知道同一个密钥,因此对称加密算法本身不能提供防止“抵赖”的功能。

图5.56 对称加密算法

为了有效管理密钥,IPSec采用IKE在通信点之间交换和管理密钥。

如图5.57所示,在非对称加密算法中,私有密钥是保密的,由用户自己保管。公开密钥是公之于众的,其本身不构成严格的秘密。这两个密钥的产生没有相互关系,也就是说不能利用公开密钥推断出私有密钥。

图5.57 非对称加密算法

用两个密钥之一加密的数据,只有用另外一个密钥才能解密。用户发送数据时,用其私有密钥对数据进行加密,接收方用其公开密钥进行解密;准备发送给用户的数据,可以用其公开密钥进行加密,并可以用其私有密钥进行解密。

通常同时用通信双方的公开和私有密钥进行加密和解密,即发送方用自己的私有密钥和接收方的公开密钥对数据进行加密,接收方只有用发送方的公开密钥和自己私有密钥才能解密,前者说明这个数据必然是发送方发送的无疑,后者则说明这个数据确实是给接收方的。这个过程既提供了机密性保证,也提供了完整性校验,同时可以验证对方的身份。

为了保证数据的完整性并进行身份校验,通常使用单向散列函数。这是由此类函数固有特性决定的,如图5.58所示。(www.xing528.com)

图5.58 单向散列函数

对一个单向函数来说,用这个函数计算结果很容易,但是不能(或者很难)用这个结果逆向推出函数的输入值。

而单向散列函数是纯粹的单向函数。它用一段明文作为输入,产生一小段密文,这段密文也称为摘要或者散列值。由于转换过程中损失了信息,因此单向散列函数是完全不可逆的。设计良好的单向散列函数很难具有相同的两个输入,因此当得到一个摘要和一个明文时,就可以确定这个摘要是否是这段明文的。也就是说,可以判断这段明文是否受过篡改。

IPSec采用的常用散列算法是HMAC-MD5和HMAC-SHA。

图5.59 Dffie-Hellman交换

如前所述,对称加密算法的安全性依赖于密钥的安全性。静态配置的密钥无法保证长期的安全性和扩展性,因此,需要一些特殊的算法在通信双方之间进行密钥交换。

Dffie-Hellman交换(diffie-hellman-exchange)简称DH交换,如图5.59所示。DH交换建立在离散对数难题上。DH交换可以在一个不可信的通信通道上建立一个安全通道,传递秘密信息。

利用DH交换,可以为对称加密算法提供可靠的密钥,从而实现对称算法的有效应用。DH交换的过程如下:

(1)需进行DH交换的双方各自产生一个随机数,如a和b。

(2)使用双方确认的共享的公开的两个参数:底数g和模数p各自用随机数a,b进行幂模运算,得到结果c和d。计算公式如下:

c=gamod(p),d=gb mod(p)。

(3)双方进行模交换。

(4)进一步计算,得到DH公有值:da mod(p)=cb mod(p)=ga b mod(p)。此公式可以从数学上证明。

若网络上的第三方截获了双方的模c和d,那么要计算出DH公有值gamod(p)还需要获得a或b。a和b始终没有直接在网络上传输过,如果想由模c和d计算a或b就需要进行离散对数运算,而p为素数,当p足够大时(一般为768位以上的二进制数),数学上已经证明,其计算复杂度非常高,可认为是不可实现的。所以,DH交换技术可以保证双方能够安全地获得公有信息。

IKE正是使用DH交换进行密钥交换的。

3.更多安全性要求

完美前向保密(perfect forward secrecy,PFS)是指当未授权者获得一个密钥之后,他只能用这个密钥解开以这个密钥加密的数据。也就是说,未授权者不能通过这个密钥推测出此前和此后使用的密钥,一旦加密系统更换密钥,未授权者就必须再次破解或者盗取新的密钥。与密钥更新机制相结合,这种特性大大提高了对称加密算法的安全性。

如前所述,加密是一种极其复杂的机制,涉及一些代价高昂的运算。因此加密和解密过程会占用大量的cpu、时间和存储资源。所以,一台从事加密/解密的设备,很容易受到DoS攻击。

例如,若A企图对B进行虚假的DH交换,则A向B发送大量的虚假模值B,在不知情的情况下必须保留产生和发送大量的模值,并记录所有的交换状态,等待执行下一步。A耗费的代价远远小于B付出的代价,从而可以耗尽B的资源。这就是一种典型的DoS攻击。

对DoS攻击没有特别好的防范办法。要想降低此类攻击的危害,必须在执行高复杂度运算之前判断对方是否真的准备执行这样的操作。换句话说,就是迫使对方在攻击时付出和我方相等的代价。

所谓重播(replay)式攻击,是指攻击者窃听并记录了合法的报文,并连续对被攻击者多次发送这些报文。通过这种方式,攻击者可能获得非法的访问权限,或者诱使被攻击者出现其他错误操作。

在提供加密和验证功能的同时,IPSec也提供了对抗重播式攻击的能力。

4.加密的实现层次

理论上,加密和解密过程可以在OSI参考模型的任何一个层次实现,如图5.60所示。加密的实现层次越低,对于上层应用的影响和要求越低;加密的实现层次越高,对上层应用的要求就越高,而对网络的要求就越低。例如,在物理层和数据链路层的加密,上层应用可以完全不做考虑,只是透明传输而已。而对于应用层的加密,就必须由所有互通的应用程序实现,很难被其他应用理解。

依据TCP/IP网络层次,常见的实现层次包括:

(1)应用层加密 例如邮件加密、SSH、文件加密。

图5.60 加密的实现层次

(2)传输层加密 如SSL等。

(3)网络层加密 如IPSec。

(4)数据链路层加密 例如在链路两端直接加入的加密盒等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈