【计算机网络】第七章:网络安全
目录
网络安全问题概述
1.1.计算机网络面临的安全性威胁
1.2.被动攻击和主动攻击
1.3.计算机网络通信安全的目标
1.4.恶意程序(rogue program)
1.5.计算机网络安全的内容
1.6.一般的数据加密模型
两类密码体制
一、对称密钥密码体制
1.1.对称密钥的缺点与优点
1.2.数据加密标准 DES
1.3.DES 的保密性
二、公钥密码体制(非对称密钥密码体制)
2.1.加密密钥与解密密钥
2.2.公钥算法的特点
2.3.公钥密码体制加密过程
2.4.实际应用过程
数字签名
一、数字签名简介
1.1.基本特征
1.2.数字签名的验证过程
1.3.数字签名使用的场合
二、证书颁发机构CA
2.1CA简介
2.2.证书颁发和使用过程
2.3.查看计算机信任的认证机构
2.4.证书的吊销
2.5.总结
Internet上使用的安全协议
一、运输层安全协议:安全套接字SSL
1.1.简介
1.2.SSL 的位置
1.3.使用SSL技术的例子
1.4.安全套接字实现的过程:https
1.5.SSL 实现的三个功能
二、网络层安全协议:IPSec
2.1.IPsec与安全关联 SA
2.2.安全关联的特点
2.3.查看安全关联
2.4.鉴别首部协议 AH
2.5.封装安全有效载荷 ESP
2.6.设置本地计算机的IP安全策略
2.7.仿真练习
2.8.关于IP安全规则冲突问题
数据链路层安全
图解:
防火墙(firewall)
1.1.简介
1.2.防火墙在互连网络中的位置
1.3.防火墙的功能
1.4.防火墙技术一般分为两类
1.5.防火墙网络拓扑结构
计算机网络上的通信面临以下的四种威胁:
(1) 截获——从网络上窃听他人的通信内容。
(2) 中断——有意中断他人在网络上的通信。
(3) 篡改——故意篡改网络上传送的报文。可应用于域名重定向,即钓鱼网站。
(4) 伪造——伪造信息在网络上传送。
截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击。
image-20200202223357153
在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU 而不干扰信息流。
主动攻击是指攻击者对某个连接中通过的 PDU 进行各种处理。
更改报文流 ;
拒绝报文服务 ;
伪造连接初始化 ;
image-20200202224812403
**重要概念 **
如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在计算上是安全的。
缺点:
优点:效率高。
DES 的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译 DES 方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。
DES 是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。
DES算法的保密性取决于加密时使用密钥的长度:
使用56位密钥加密,破解需要3.5或21分钟;
使用128位密钥加密,破解需要5.4x10的18次方年。
公钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
使用的密钥分为公钥和私钥,两种密钥成对使用。使用公钥加密和私钥解密;使用私钥加密和公钥解密。
现有最著名的公钥密码体制是RSA 体制,它基于数论中大数分解问题的体制,由美国三位科学家 Rivest, Shamir 和 Adleman 于 1976 年提出并在 1978 年正式发表的。
公钥和私钥密钥对,是由计算机产生的随机数通过算法得出的两部分。
在公钥密码体制中,加密密钥(即公钥) PK(Public Key) 是公开信息,而解密密钥(即私钥或秘钥) SK(Secret Key) 是需要保密的。
加密算法 E 和解密算法 D 也都是公开的。
虽然秘钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。
image-20200203164924790
image-20200203164955218
image-20200203165142941
image-20200203170008970
image-20200203200151383
实际进行加密通信时,往往综合使用对称加密和非对称加密的方式。如图所示:B想要给A发送一份500M的文件,如果直接使用A的公钥对500M文件进行加密将会耗费大量时间;
实际做法为:B产生一个相对简单的对称公钥A2,首先使用A2对文件进行加密,由于A2比较简单加密耗时较短。然后使用A的公钥对对称密钥A2进行加密。最后将A、A2和已加密文件组成的整体发送给用户A 。
用户A收到之后,使用私钥解密得到对称公钥A2,再使用A2对文件进行解密得到文件。
总结:实际应用过程中使用对称加密和非对称加密相结合的方式,既具备了对称加密的高效率,也具备了非对称加密的安全性。
数字签名是基于公钥密码体制(非对称密钥密码体制)的。
数字签名必须保证以下三点:
image-20200203210110403
上图位用户A使用数字签名向用户B传输一份文件的过程:
数字签名三个特征的验证
需要强调
用户A使用私钥对由文件生成的128位摘要进行加密的过程称为数字签名的过程,得到的"加密的摘要",称为该文件的数据签名。
用户A使用私钥加密的是摘要而不是文件。
用户B验证签名实际上是比较得出的两份摘要是否相等。
什么时候使用这种不对文件加密,而对文件的摘要加密(对文件进行签名)的技术呢?
image-20200203230237525
如图所示,用户A使用数字签名时给用户B发送了一个数据包,数据包中包含了A的公钥、文件和加密的摘要。那么问题来了:用户B如何确定收到的公钥是用户A发送的,而不是他人冒充用户A发送的呢?
image-20200206155804062
首先,用户A向证书颁发机构提交个人信息,申请证书。通过CA审核后,CA生成用户A的证书,证书中包括了A的公钥和私钥还有CA的数字签名。证书颁发机构CA本身拥有一对密钥,这是对CA所颁发的证书进行数字签名和保密的基础,绝不能泄露。
用户A收到的证书中包括了带有CA数字签名的,专属A公钥和私钥,CA的数字签名确保了别人不能伪造用户A的公钥和私钥。
同时,用户B也必须信任给用户A颁发证书的第三方认证机构CA,即用户B拥有CA颁发的"CA公钥"。
通信时,用户A向用户B发送的数据包中的"加密的摘要"上有用户A的数字签名,“A公钥” 上有认证机构CA的数字签名。用户B收到数据包之后,先要验证收到的 “A公钥” 是否来源合法:是认证机构颁发的带有CA签名的公钥吗?用户B并不信任用户A,但是用户B信任第三方认证机构CA。所以,用户B先使用证书颁发机构颁发的 "CA公钥" 验证收到的 "A公钥" 是否由同一认证机构颁发,是否在颁发之后更改过。
验证通过后,用户B便相信收到的 "A公钥" 确实来自真实的用户A。随后再使用 "A公钥" 对 "加密的摘要" 进行解密,进行上文提到的对比操作,以判断文件是否更改。
信任一个第三方认证机构就意味着拥有该机构颁发的包含该机构公钥的证书。
image-20200206161418997
image-20200206161615998
image-20200206161729657
image-20200206161906853
image-20200206162019459
image-20200203235946196
image-20200204000011441
当用户A遗失或泄露了CA颁发的证书后,为了避免他人使用该证书冒充用户A,用户A向认证机构CA "挂失" 该证书。于是认证机构CA把该证书放入该认证机构的证书吊销列表(CRL)中,并在网上公示。
用户B在收到用户A的公钥时,除了要验证该公钥是否位认证机构颁发的,还要登录认证机构的网站查看该公钥是否已被认证机构吊销变为无效证书。
认证机构CA的作用:
认证机构发挥作用的前提:
网络安全是分层实现的,从应用层安全到数据链路层安全。
SSL 不仅被所有常用的浏览器和万维网服务器所支持,而且也是运输层安全协议 TLS (Transport Layer Security)的基础。
image-20200206165343194
在发送方,SSL 接收应用层的数据(如 HTTP 或 IMAP 报文),对数据进行加密,然后把加了密的数据送往运输层 TCP 套接字。
在接收方,SSL 从 TCP 套接字读取数据,解密后把数据交给应用层。(发送方和接收方都有SSL层)
image-20200206172009093
当我们访问网站时,一般不涉及输入账号密码等操作的网页使用的都是 "HTTP" 协议(使用80端口),即网站域名开头为:http://;当涉及账号密码等敏感信息的操作时,网站一般都会使用 "HTTPS"协议(使用443端口),"S"表示的即是SSL (Secure Socket Layer),即网站域名开头为:https://。
例如,我们访问中国工商银行的官网:
image-20200206170948893
在主页处的域名栏中可以发现浏览器提醒的 "不安全" 字样,实际上该主页使用的就是HTTP协议,即不加密信息,明文传输。由于这是谷歌浏览器,没有显示 "http://" 的域名前缀。
当点击登录时,跳转到另外一个网页:
image-20200206171337136
从网站域名开头的 "https://" 可以看出,涉及到账号密码等敏感信息的登录页面使用的是HTTPS协议,说明网页使用了SSL技术。
补充
HTTP协议使用了安全套接字(SSL)变成了HTTPS协议,使用的端口由80变为443,其他应用层的协议也可以使用安全套接字:
image-20200206223547589
https既采用了对称加密的效率,也采用了非对称加密的安全。
通信前Web服务器先把证书中的公钥交给IE浏览器(客户),IE浏览器根据收到的公钥生成一个对称密钥,然后使用公钥加密对称密钥并发送给Web服务器。
Web服务器使用私钥解密收到的加密后的对称密钥,随后使用对称密钥加密需要传输的数据。在之后的通信中都采用该对称密钥对数据加密和解密。
在传输对称密钥的过程中使用非对称加密,在传输数据过程中使用对称加密。这样既保证了数据传输的安全,也提高了效率。
所以,在使用https通信的时候一开始都不会太快,因为要协商对称密钥,协商好之后才会快起来。
查看使用https网站的证书
例如:百度。
image-20200206224006290
点击 "锁" 图标。
image-20200206224100256
点击 "证书" 即可查看到该网站使用的证书。
image-20200206224149426
image-20200206224207086
image-20200206224325686
上图为颁发给百度首页的证书,可以看到SSL除了可以加密会话信息之外,还可以鉴别服务器和客户身份。
网络安全是分层实现的。
image-20200206225737400
应用层安全:比如微软的 "Outlook" 邮箱,可以通过在应用程序中的某些设置实现数据传输的安全。应用层安全的特点为需要应用程序的支持。
传输层安全:传输安全是通过夹在应用层和传输层中间的SSL层实现的,发送方的SSL可以将应用层的数据加密后给传输层,接收方的SSL传输层收到的数据解密后给应用层。SSL安全的特点为需要配置相应证书。
网络层安全:属于底层安全,不需要应用程序支持,也不需要配置证书,对用户来说是透明的,即用户并不知道数据在该层进行了加密。
比如,未加密的数据经过发送方的网卡实现了加密,接收方的网卡实现数据解密,整个过程用户是不知道的,是透明的,即使数据在传输过程中被截获了,第三方也不能破解其中内容;或者数据被篡改了,接收方也能发现,这便是网络层安全。
网络层保密是指所有在 IP 数据报中的数据都是加密的。
**IPsec 中最主要的两个部分 **
**安全关联 SA(Security Association) **
在使用 AH 或 ESP 之前,先要从源主机到目的主机建立一条网络层的逻辑连接。此逻辑连接叫做安全关联 SA
IPsec 就把传统的因特网无连接的网络层转换为具有逻辑连接的层。
SA(安全关联)是构成IPSec的基础,是两个通信实体经协商(利用IKE协议)建立起来的一种协定,它决定了用来保护数据分组安全的安全协议(AH协议或者ESP协议)、转码方式、密钥及密钥的有效存在时间等。
安全关联是一个单向连接。它由一个三元组唯一地确定,包括:
(1) 安全协议(使用 AH 或 ESP)的标识符;
(2) 此单向连接的源 IP 地址;
(3) 一个 32 位的连接标识符,称为安全参数索引 SPI (Security Parameter Index);
对于一个给定的安全关联 SA,每一个 IPsec 数据报都有一个存放 SPI 的字段。通过此 SA 的所有数据报都使用同样的 SPI 值。
image-20200207211626876
image-20200207211821913
image-20200207212859987
image-20200207231300350
AH首部
(1) 下一个首部(8 位)。标志紧接着本首部的下一个首部的类型(如 TCP 或 UDP)。
(2) 有效载荷长度(8 位),即鉴别数据字段的长度,以 32 位字为单位。
(3) 安全参数索引 SPI (32 位)。标志安全关联,两个计算机进行通讯时的SPI值是固定的。
(4) 序号(32 位)。鉴别数据字段的长度,以32 位字为单位。
(5) 保留(16 位)。为今后用。
(6) 鉴别数据(可变)。为 32 位字的整数倍,它包含了经数字签名的报文摘要。因此可用来鉴别源主机和检查 IP 数据报的完整性。
使用 ESP 时,IP 数据报首部的协议字段置为 50。当 IP 首部检查到协议字段是 50 时,就知道在 IP 首部后面紧接着的是 ESP 首部,同时在原 IP 数据报后面增加了两个字段,即 ESP 尾部和 ESP 数据。
image-20200207232719822
image-20200207115239305
image-20200207115445503
image-20200207120033791
image-20200207120152009
image-20200207120247539
这里的 "激活默认规则" 指的是,当没有指定规则时,使用默认的规则。
image-20200207120323944
image-20200207120926871
进入 "新规则 属性" 界面,在 "IP筛选器列表" 选项中可选择和添加 IP筛选器列表,它的作用是:指定受此新规则影响的网络流量。比如所有的 IP 通讯、所有的 ICMP 通讯等,即设置允许接收从哪里来或到哪里去的数据。
image-20200207121257916
image-20200207124730121
image-20200207122229921
image-20200207122623280
image-20200207122659055
image-20200207122830457
image-20200207122843818
image-20200207122959980
image-20200207124912045
image-20200207124948681
在 "筛选器操作" 选项卡中,可以指定如何保障新建的IP筛选器列表的网络流量的安全,即指定在 "IP 筛选器列表" 中设置的允许通行的流量使用的安全方法(AH或ESP等)。同样不使用向导,点击 "添加",添加筛选器的操作。
image-20200207145554515
image-20200207150110642
image-20200207150150691
image-20200207150854020
image-20200207152326688
image-20200207152720031
在 "身份验证方法" 选项卡中,可以指定通信双方建立信任关系的方法,即验证通信双方的身份。点击 "添加" 进入 "新身份验证方法 属性" 界面。
image-20200207153533208
image-20200207153647894
image-20200207153856786
"新规则 属性" 界面的 "隧道设置" 选项卡可设置IPSec隧道相关属性。
image-20200207154209520
"新规则 属性" 界面的 "连接类型" 选项卡可指定使用新规则的连接类型。
image-20200207154307189
image-20200207154549163
image-20200207155041995
image-20200207160024218
把本地计算机当作Web服务器,按图中要求设置Web服务器到三台计算机的安全策略,其中计算机XP1的IP地址为192.168.80.101,XP2为192.168.80.102,XP3为192.168.80.103 。
设置Web服务器到计算机XP1的安全策略:
在 "新规则 属性" 界面的 "IP筛选器列表" 中添加新列表,指定通信的目标地址为XP1的IP地址:192.168.80.101 。
image-20200207160540417
image-20200207160815453
在 "IP筛选器列表" 中选中 "toXP1" 的情况下,在 "筛选器操作" 中添加安全方法名称为改为AH。
image-20200207161252422
image-20200207161513023
image-20200207161316685
在 "IP筛选器列表" 中选中 "toXP1" 和 "筛选器操作" 中选中 "AH"的情况下,在 "身份验证方法" 中添加Web服务器到XP1的身份验证方法:使用共享密钥aaa。
image-20200207161631766
image-20200207161652255
"隧道设置" 和 "连接类型" 两项该例中不用设置,由此完成从Web服务器到XP1安全策略的设置。
设置Web服务器到计算机XP2和XP3的安全策略与到XP1的设置同理。最后,Web服务器把到XP1~XP3的安全策略都按要求添加了。
image-20200207162607923
image-20200207162855522
设置完之后,当Web服务器与XP1和XP2通信时,使用装包工具抓到的数据包只能看到加密后的数据;当Web服务器与XP3通信时,由于没有加密,所以抓包工具抓到的数据包能看到传输的明文。可在虚拟机中模拟四台计算机进行验证,这里就不展开了。
如下图所示,在IP安全规则中勾选的 "所有 IP 通讯量" 是否与其他勾选的安全规则冲突呢?是不冲突的,选择IP安全规则时采用的是最佳匹配原则。比如:老师说中午12点下课,班干部11:30开完会后可以离开,张三11点就能走,虽然时间不同,但是每个学生都清楚自己几点可以走,这就是最佳匹配。通信时,如果是与XP2通信,那么计算机就采用 "toXP2" 安全规则;与XP3通信,则采用 "toXP3" 安全规则;如果都不是,才采用 "所有 IP 通讯量" 安全规则。
image-20200207210220402
之前讲到的网络层安全,指的是通信数据出发送方计算机网卡的时候加密,进接收方计算机网卡的时候解密,即计算机到计算机之间的安全。现在所说的数据链路层安全指的是通信数据在出了发送方计算机网卡之后,到进接收方计算机网卡之前这段连接的安全,即路由器到路由器之间的安全。
image-20200207215857414
image-20200207221027953
image-20200207224156612
这是最简单的防火墙架构。
image-20200207224251307
之所以称为"三向外围网",是因为防火墙引出了三个接口,分别连接内网、服务器和外部网络。外部网络可通过防火墙访问服务器,但不能访问内网,而内网却可以通过防火墙访问外网。
image-20200207224342601
图中的 "外围网络" 指的是服务器,外部网络可通过前端防火墙访问服务器,如果想要访问内网还需要经过本地主机的防火墙的拦截和控制。这样外网用户想要入侵内网需要突破两层防火墙才能到达内网,所以该结构较安全,一般两个防火墙应使用不同厂家的。