网络安全
网络安全
计算机网络虽然带给了我们方便,但同时,我们在使用网络时,是否注意过网络安全问题呢?
计算机网络面临的安全性威胁主要有以下四种情况:1.截获,2.中断,3.篡改,4.伪照。
1. 截获:是指攻击者从网络上获取他人的通信内容。
2. 中断:是指攻击者有意中断他人在网络上的通信。
3. 篡改:是指攻击者故意篡改网络上传送的报文。
4. 伪照:是指攻击者伪照信息在网络上传送。
同时,这四种威胁又可分为两大类:被动攻击和主动攻击。截获是属于被动攻击,后三种是属于主动攻击。
主动攻击又可进一步划分为三种:
1.更改报文流,也就是对应于以上的“篡改”,这包括对PDU的真实性,完整性和有序性的攻击。
2.拒绝服务,指攻击者不停的向因特网的服务器发送大量分组,使服务器无法提供正常服务。
3.伪照连接初始化,是指攻击者重放以前已被记录的合法连接初始化序列,或者伪照身份与服务器建立连接。
既然,网络上存在这种或那种网络安全问题,那怎样才能够有个安全措施使我们能够放心的进行网络通信呢?
于是,我们就想到了对要发送的数据进行加密。这样,攻击者在不知道**的情况下是不能读懂截取到得密文信息的。所以,相对来说比较安全点。以下是一般数据加密模型:
加密和解***K可以相同也可以不相同.
现在有两大密码体制:对称**密码体制和非对称**密码体制。
对称**密码体制是指加密和解密都是用同一**。DES是属于对称**密码体制。DES对明文进行加密的过程:
1. 将明文进行分组,每64位二进制为一组。
2. 对各组进行加密运算,每组得到64位二进制密文
3. 然后将各组密文串接起来就得到整个明文的密文了。
DES使用的**是64位的,但实际用到得位数是56位,
还有8位是用来奇偶校验的。DES的算法是公开的,所以其保密性仅取决于对**的管理。**的管理是DES的一个弱点,因为,双方通信时,就必须向对方发送**,以便对方用此**来进行解密,但是,可能出现这种情况:攻击者可能截取发送**的报文信息,从而对信息进行解密来实施各种不正当的行为。当然,也可以事先约定**而不用在网络上传送,但这样会给**的管理和更换带来极大的不便。由于DES的这个缺点:于是就引出了非对称**密码体制。
非对称**密码体制也可称为公钥密码体制,意思是指:加密和解密的**是不同的,加***是可以公开的,解***是需要保密的。RSA体制就是属于这种体制的。
先看下公钥密码体制模型图:
这样为什么比对称**密码体制保密性要好呢?因为发送的密文必须要B的私钥才可解密,而B的私钥是不公开的,所以,只有B才有B的私钥,才可以解读密文信息。
前面讲的是对数据进行加密处理,但是,在这个过程中,接收者怎么知道他收到得信息就是发送者发送的而不是有人伪照的呢?比如拿公钥密码体制模型图来说:B虽然用其私钥对密文进行了解密,但它怎么判断就是发送者发送的呢?因为B的公钥是公开的,其他人也可利用B的公钥对数据进行加密,而谎称是A发送的?那B是怎么判断呢?这样就要用到数字签名。
数字签名必须具有以下三种功能:
1,接收真能够确认报文确实是发送者发送的,其他人无法伪照对报文的鉴别。这叫做报文的鉴别。
2,必须保证报文没有被篡改过,也就是保证报文的完整性。
3,发送者事后不能抵赖对报文的鉴名,这就叫不可否认。
以下是数字签名的实现模型
由此模型图可以看出,可以实现数字签名功能。因为密文是通过A的私钥进行加密的,而A的私钥只有A本人持有,其他人是没有的,故可以确定发送者是A,同时,也可保证报文的完整性,虽然A的公钥是公开的,任何人都可以通过A的公钥解读密文,攻击者解读密文数据后,对数据进行其他操作,但是由于其没有A的私钥,所以,在B端接收时,只要遇到不可读的数据,就认为该报文已经被篡改过。当然,A事后也不可能抵赖对报文的鉴别,因为B可以找第三方进行核实。但是,该模型有个缺点:就是报文根本没有保密,网络上的其他人都可以通过A的公钥对其进行解密。所以,以下是具有保密性的数字签名模型:
在网络通信中,鉴别也是网络安全中的一个很重要的问题,鉴别是验证通信双方是否是自己所要通信的对象,而不是其他的冒充者。鉴别分为两种:报文鉴别和实体鉴别。
报文鉴别:
报文摘要MD是进行报文鉴别的简单方法。它是将明文经过MD运算得到很短的报文摘要H.然后用自己的私钥对H进行D运算,得出已签名的摘要D(H),并将其追加到报文X后面,接收方接收报文时,先将D(H)和X分开,再使用发送方的公钥解密得到报文摘要H,然后将X进行MD运算,看得到的结果是否与H相同,若相同,则说明该报文没有被篡改。也就是说:D(H)和X在一起是不可伪照的,而是可校验的。
实体鉴别:
最简单的实体鉴别就是:发送者直接发送自己的身份给对方,但然这种方式不好,会照成重放攻击,为了对付重放攻击,可以利用不重数。在使用公钥密码体制时,可以对不重数进行签名鉴别。例如,B用其私钥对不重数进行签名后发给A,A用B的公钥核实签名,如能得到自己原来发送的不重数,说明通信的对方确实是B。