计算机网络中的安全(1)

1、什么是网络安全

网络安全包含以下四个方面:

(1)机密性,即发送的数据在一定程度加密使截获者无法理解;

(2)报文完整性,发送的内容没有被恶意篡改或意外改动;

(3)端点鉴别,即发送数据的对方就是他所声称的身份,而不是别人伪造的;

(4)运行安全性,能够反制对机构网络的攻击。

2、密码学简介

密码学的组成部分

2.1对称密钥密码机制

密码算法基本思想就是用一种东西替换另一种东西。

凯撒密码:每个字母用它后面第k个字母替代,缺点是很容易被破译。

改进方法:(1)单码替代密码,无规律地替代。

(2)多码替代密码,使用两个凯撒密码C1和C2,加密时以某种顺序循环如C1 C2 C2 C1  C2

图片发自App

根据入侵者破解密码难易程度可分为三种情况:

(1)唯密文攻击,只能截取到密文,对明文一无所知

(2)已知明文攻击,入侵者知道了其中一些(明文,密文)的匹配

(3)选择明文攻击,入侵者能够选择某一明文并得到该明文的密文。

对称加密技术主要分为流密码和块密码

块密码:要加密的报文被分为K比特的块,每块被独立加密,比如K比特的明文块映射成K比特密文块。

图片发自App

当k =3时,有8!=40320种映射

当k =64维护一张具有2^64的输入值表很困难。一般用函数模拟排列表。

图片发自App

目前流行的块密码有DES 、3DES、AES。

密码块链接

对于长报文加密,经常出现的数据段(如HTTP/1.1)被加密成一样的密文,可能会被攻击者猜出其明文,为解决这个问题,在每段明文块中引入随机数,进行异或再转为密文。

这样又引入了新问题,传输的数据量几乎增大了一倍因为每个明文块要加一个随机数,解决方法是仅第一个数据块引入随机数,后面的明文块以前一个密文快作为随机数。称为密码块链接(CBC:Cipher Block Chaining)。

图片发自App

2.2 公开密钥加密

对称密钥的缺点是进行密文传输前双方要先进行通信商定好密钥。

公开密钥每个人有一个公钥和一个只有自己知道的私钥,发送方用公钥加密,接收方用自己私钥解密。


图片发自App

2.2.1 RSA算法简介

图片发自App


图片发自App


图片发自App

算法的推演有点晕,总的来说RSA基于这样的事实:给定了公钥n,想破解私钥的人没法快速把他分解成pq两个素数的乘积,如果已知p 和q,给定公开值e,很容易算出私钥d;如果存在因素分解一个数的快速算法那么RSA也是不安全的。

3、报文完整性和数字签名

数字签名是为了保证报文完整性没有被篡改,端点鉴别是为了保证Bob收到的报文确实是源自Alice。

3.1密码散列函数

密码散列函数H需要保证:找不到任意不同报文使得H(x)=H(y)

有MD5和SHA-1等散列算法

3.2 报文鉴别码

如果第三方攻击者(Trudy)伪造报文,用同样的散列算法生成散列伪装是Alice,那Bob将无法知道。

因此Alice和Bob需要共享一个鉴别密钥生成报文鉴别码(MAC:message authentication code)

图片发自App


图片发自App

3.3 数字签名

数字签名是为了保证来自Bob的报文确实是Bob本人发的,必须是对于Bob是独特的密钥作用于报文上,

这跟MAC很像,但是是不同概念,MAC无法保证密钥是独特唯一的。

首先取得报文的散列,然后用私钥加密该报文,因此数字签名既保证完整性又验证了该报文的源,是一种技术含量更高的技术,而MAC不涉及公开密钥加密不涉及对称密钥加密。

图片发自App

3.4 公钥认证

数字签名的一个重要应用就是公钥认证,即证实一个公钥属于某个特定实体。通常由认证中心(CA:certification Authority )来完成。认证一个实体真实身份并颁发证书,证书里将其身份和公钥绑定在一起。

图片发自App

4、端点鉴别

端点鉴别就是一个实体向另一个实体证明其身份的过程。

ap1.0(authentication protocol)

只是说一句我是Alice

图片发自App

ap2.0

用IP地址证明自己,但是IP层的包头也可以伪造

图片发自App

ap3.0

加上了口令,但是如果被切听了,别人也可以说这样的口令


图片发自App

ap 3.1

将口令加密,但是窃听者也可以完全窃听加密的口令啊,不能解决鉴别问题,称为回放攻击(playback attack)。

ap4.0

使用不重数。

图片发自App

至此终于把密码学的一些东西总结完了!










你可能感兴趣的:(计算机网络中的安全(1))