第七章:网络安全
安全分类
安全有:
- 数据安全(对文件的访问、储存)
- 应用程序安全(要确保应用程序是安全的)
- 操作系统安全(操作系统漏洞,要定时升级、设置用户权限)
- 网络安全:网络传输信息时的安全
- 物理安全
- 用户安全教育
本课程主要关注网络安全
网络安全问题概述
CAIN软件截获信息、篡改信息
CAIN只能对本网段起作用。
使用的原理依然是ARP欺骗
DNS劫持(修改DNS解析的结果)
如果交换机支持监视端口的功能的话,将该设备设置为内网的监视端口设备也能做的这样的效果
CAIN必须结合抓包工具来实现
CAIN只保留账号密码信息
DNS欺骗:
DNS常常被用来做钓鱼网站
伪造
伪造身份,从而得以访问有访问控制的资源
例如设置网站只有特定ip才能访问:
直接访问就是这样的:
一般冒充设备要等到原设备关机等时候,防止出现冲突、露出马脚
这个不需要其他软件,直接改ip等就可以
中断
来源:https://baike.baidu.com/item/DoS%E6%94%BB%E5%87%BB
DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络宽带攻击和连通性攻击。
DOS最常见的形式是DDoS攻击:
分布式拒绝服务攻击(英文意思是Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击,其中的攻击者可以有多个。
UDP炸弹、不断ping等等
之所以使用DDoS,是因为单个机器的流量太小,根本不足以占满服务的带宽
DDoS真的是很难防止,各种方式(高防cdn等等)都要花钱,花不少钱。
肉鸡一览,这还只是一部分有漏洞的网站服务器,不包括其他智能设备等:(注,这是2013年的教学视频)
使用软件控制这些肉鸡:
先验证资源是否依然可以
给肉鸡下发指令
可以调整攻击目标、端口、时长、间隔、攻击次数、威力等
病毒和木马
木马的全称是“特洛伊木马”
计算机蠕虫主要是占用系统资源
逻辑炸弹:听说过著名的江民反盗版逻辑炸弹吗
加密技术
加密分为对称加密和非对称加密,使用同样的秘钥就是对称加密,否则是非对称加密
加密的安全性取决于加密秘钥而不是加密算法,常用的加密算法都是公开的
对称加密
优点:效率高
缺点:
- 如果需要通过网络传输秘钥,秘钥本身容易被截获
- 每一个会话使用一个秘钥,使得1对多发送时发送设备要记录所有的秘钥,维护量很大
数据加密标准:由IBM研制,后来美国将其官方化
分组加密,64位秘钥,但实际是56位起作用
但是道高一尺魔高一丈:
破解很快23333
后来就使用128位秘钥了
非对称加密
加密秘钥和解密秘钥不一样
秘钥对:公钥和私钥,公钥和私钥不能相互推导
用法:公钥加密、私钥解密,或者公钥解密、私钥加密
公钥和私钥的生成:随机数通过函数运算,一部分结果作为公钥,一部分结果作为私钥
对于公钥解密、私钥加密:将公钥发给每一个用户用于加密、可以在网上传播,私钥留下自己解密用
这样,每个人只需要保存一个私钥就好了
缺点:加密效率低
数字签名:应用层安全
例如合同,购买方使用私钥对合同进行签名,供货商拿着有数字签名的合同,相当于具有了法律意义,防止抵赖
数字签名过的内容不可更改,更改后数字签名即失效,这也是合同的基本要求之一,防止更改
例如软件的数字签名,就是软件开发者为了防止软件被修改所设置的,防止其中被加上病毒、木马等。所以下载到数字签名失效的软件要谨慎选择是否安装
数字签名的实现:
对要加密的文件通过单向散列函数(只要文件有任何的变化,函数处理后的结果就会不一样)进行处理,结果为128位的一个摘要。然后通过私钥对摘要进行加密,得到数字签名。最后传输的是文件(注意内容是不加密的)+数字签名+公钥。
接收方收到之后,通过相同的函数计算摘要,然后使用公钥对数字签名进行解密,如果两个摘要一样说明就没有被更改,否则就是改了。
但是如果发送方发送的是不真实的公钥或者发送方偷偷换了私钥怎么办?这就需要一个机构来颁发公钥和私钥,而不是自己生成了.
CA使用自己的私钥,对送审的公钥和其他一些相关的信息一起加密,生成了数字证书。之后传输时,发送方传输的是文件+数字签名+数字证书
证书颁发机构(CA)
提交材料、表明身份,发放公钥、私钥,秘钥有机构签名。接受方收到后:
- 向CA检查该数字证书对是否已经失效或者挂失
- 先使用CA的公钥解锁数字证书,得到发送方的公钥
- 检测无误后使用公钥来比对内容和摘要是否一致
有了CA的背书(注意这一切都是建立在CA的私钥不能泄露的基础上的),发送方或者第三者就没办法修改内容或者证书了
计算机中存储的已经信任的证书,这就是我们电脑保存的CA的公钥:
分为当前用户信任的证书和本地计算机信任的证书
例如https访问就是这样的过程,如果数字证书不是由受信任的机构颁发的,浏览器会发出警告:
CA也分层的,根CA可以给子CA发证,子CA给用户发证
使用服务器可以搭建CA服务
Windows对CA服务器有默认的网页配置,已经可以完成线上申请证书的步骤了
申请的数字证书可以用来加密邮件:
对邮件进行签名
收到之后是这样子的:
收到的一方如果要信任该CA证书,需要下载证书链
对于使用签名传输的邮件,客户端会保留联系人,而这个联系人就对应着他的公钥:
有了对方的公钥后,就可以对对方发送加密邮件了:使用对方的公钥加密
签名和加密是可以一起选的
对于证书,我们还可以导出出来,以防止电脑重装之后加密的内容都打不开了:
注意一定要导出私钥,公钥怎么着都好办,但是私钥没了就麻烦了
导出也是需要密码的,密码不对就没办法导入:
如果私钥丢失,要向CA报告,CA会公开。应用可以主动选择是否向CA检查证书的有效性
对称加密和非对称加密结合
使用对称加密对内容进行加密,使用非对称加密来对对称加密的秘钥进行加密,最后传输加密后的内容和加密后的秘钥,这样就弥补了非对称加密效率低的缺点
Internet上的安全协议
SSL(安全套接字):介于应用层和传输层之间
安全套接字在应用层和传输层之间,对应用层的数据加密。应用层也要有解密
传输层安全性协议及其前身安全套接层是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布第一版TLS标准文件。
来源:维基百科
所以HTTP是不加密的:
来源:https://www.zhihu.com/question/25119364
HTTP 协议无法加密数据,所有通信数据都在网络中明文“裸奔”,这是导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题的重要原因。而 HTTPS 是用来解决 HTTP 明文协议的缺陷,在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输安全。
有些小网站一直使用http,甚至对于注册、登录这样的环节也是,安全性可谓几乎为0
安全套接字最好是全站使用,但是由于开销、速度等原因,许多网站都只是在关键的地方,例如注册、登录、充值的时候才会使用http
SSL加密在Web上的应用
这里用到的就是我们在上面讲的、对称和非对称结合的方法,兼顾安全性和解密速度
- 服务器将自己的公钥传输给浏览器
- 浏览器产生一个随机的对称秘钥
- 使用服务器的公钥对对称秘钥进行加密
- 服务器解密得到对称秘钥
- 使用对称秘钥进行加密、解密
可以理解为非对称秘钥“护送”对称秘钥到服务器
https一开始访问不会太快,因为要协商对称秘钥
SSL在其他服务上的应用
使用SSL加密后的端口发生了变化,也是为了和不加密的服务相区分
SSL提供的三个功能
服务器鉴别:web服务器给浏览器发生证书,证明自己就是浏览器要访问的域名对应的服务器,防止仿站以假乱真
客户端鉴别:和服务器鉴别原理一样,要求客户端出示证书
IPSec:网络层安全
数字签名是应用层安全,因为它需要应用程序来支持、实现。和传输层等其他层没有关系,它们只是照样传而已
SSL不需要应用程序的支持,但是需要对应用程序进行配置
IPSec是底层加密,在网络层加密,对应用层、用户来说是透明的,不影响使用体验
来源:https://zh.wikipedia.org/wiki/IPsec
互联网安全协议(英语:Internet Protocol Security,缩写:IPsec)是一个协议包,透过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族(一些相互关联的协议的集合)。
IPsec主要由以下协议组成[1][2]:一、认证头(AH),为IP数据报提供无连接数据完整性、消息认证以及防重放攻击保护[3][4];二、封装安全载荷(ESP),提供机密性、数据源认证、无连接完整性、防重放和有限的传输流(traffic-flow)机密性[5];三、安全关联(SA),提供算法和数据包,提供AH、ESP操作所需的参数[6]。
SA(安全关联)
签名只能保证内容不被篡改,不能保证不被窥视
如果只签名,用AH;如果既要签名又要加密,用ESP
AH
在IP首部和TCP/UDP的报文段之间加了一个AH首部
使用AH时,IP协议号是51
ESP
使用ESP,IP协议号是50
实战演示
实验要求:
服务器端创建三个不同的规则,对应三台客户端:
自定义安全措施:
自定义身份验证:
对客户端也要配置,双方配置一致了才能通:
有多条规则都符合要求时,最佳匹配优先
ping一下试一试,第一个包是协商,之后就通了:
数据链路层安全
数据链路层安全是指一段数据链路之间的传输安全
路由器加密、解密,每一段链路使用一个单独的秘钥
也可以实现数据链路层上的身份验证,例如PPP协议封装时,就支持身份验证,每一段链路共享一个密码(这个密码是手动配置的):
其实,ADSL的拨号上网模式,也是数据链路层安全的体现。
防火墙
防火墙内的网络称为“可信赖的网络”,外部的网络称为“不可信赖的网络”
网络层防火墙可以检测数据包的各个部分,但是它不能理解数据是什么内容,如果要对数据的内容进行控制,就要使用应用级的防火墙(高级防火墙):
企业级防火墙分类
- 边缘防火墙
- 三向外围网
内网不对外开放,防火墙对内网访问外网进行控制,也对外网对DMZ(用于网站搭建)的访问进行控制
- 背靠背防火墙
外网要入侵内网需要通过两个防火墙。这里建议两个防火墙使用不同公司的产品,防止被同样的漏洞攻破
- 单一网卡防火墙
在路由器上设置规则,必须经过防火墙才能上网