网络安全问题概述
计算机网络面临的安全威胁
- 计算机安全的三个目标
- 机密性:数据机密性,数据不能被泄露
- 完整性:数据不能被篡改
- 可用性:可以使用该数据的人对数据随时可用,DDOS 就是对可用性的攻击,使得可以使用数据的人也不能正常使用
- 两大威胁
- 被动攻击:攻击者窃听通信内容,只是观察和分析某个协议数据单元,不干扰信息流。被动攻击又叫截获,流量分析。流量分析类似于谍战片里面,我方情报员在敌特发报的时候锁定敌特身份和位置,对报文本身不感兴趣
- 主动攻击
- 假冒
- 篡改
- 恶意程序
- 计算机病毒
- 计算机蠕虫
- 木马:一种后门程序,用来盗取用户信息,控制用户设备,具有很强的隐蔽性
- 逻辑炸弹
- 拒绝服务
💡 主要威胁还包括:截取,中断,伪造,篡改,拒绝服务
💡 安全措施:数据加密,设计安全网络,访问控制
【注】后门:绕开软件安全性控制,获取对程序或者系统访问全限的方法,一般后门存在于软件的开发测试阶段,便于程序员对软件进行测试
计算机网络安全内容
- 保密性:如,通信保密
- 安全协议:如,设计安全的通信协议
- 访问控制:用户的权限
💡 目前绝对安全的通信协议和安全系统是不存在的
一般数据加密模型
两类密码体制
对称密钥密码体制
- 对称加密方案由5个部分组成:明文,加密算法,密钥,密文,解密算法
- 对称加密的安全性取决于密钥的保密性(钥匙齿轮的保密,而不是制造钥匙技术的保密)
- 计算安全:破译的代价高于密文的收益,破译的时间超过了要求时间
- 含义:加密和解密的密钥是相同的密码体制生成的。其中 DES 就是典型的对称密
- 流程:
- DES 是一种分组密码,密钥长度为 56 比特
- 加密前,对明文进行分组,每 64 位二进制是一组,然后进行加密得到 64 位密文。 DES 的加密和解密过程一样,不过相反而已。进行 16 轮迭代,最终生成 16 组
- 每组串联得到最终的密文
- 密钥也是 64 位:实际密钥 56 位+ 8 位奇偶校验位特点:DES 的保密性是基于对密钥的保密,而算法是公开
- 其他:IDEA 是对 DES 的加强,采用 128 位密
- 3DES 的优势:1. 克服了 DES 密钥长度短,容易被穷举攻击,2. DES 算法本身没有问题
- 问题:密钥分配问题(分配通道如何确保安全),密钥管理问题(一对一的密钥数量太多),没有数字签名
- AES
公钥密码体制
含义:使用不同的加密密钥和解密密钥
目的:解决对称密钥中,如何让通信双方获得相同的密钥的问题
特点:公钥是公开的,但私钥是秘密的。这就好像开门关门一样,谁都可以把这个门关上,但只有特殊的人才能把门打开。加密和解密算法都是公开的
缺点:耗费计算资源
note:
- 加密算法的安全性取决于密钥的长度,和破解密钥所需要的计算量。与体制无关,也就是说公钥密码体制没有比传统的密钥体制更牛逼,它仅仅是解决了密钥分配的问题
- 公钥加密,私钥解密;私钥加密,公钥解密
数字签名
就像现实中,老板需要在报告上签字后计划才能开始实施,而网络中,A 如何核实 B 传来的信息真的是 B 传来的呢,这就需要数字签名技术。数字签名利用公钥加密技术。
数字签名需要做到三层:
- 防止伪造:接收者确认核实,这的确是发送者发送的
- 防止篡改:接收者接收的信息是没有被篡改的
- 不可否认:发送者不能抵赖对报文的签名
大致流程(最常用的是公钥算法实现数字签名):
- 用 A 的私钥 SK 对明文 X 进行加密运算(D 运算)。特别的是,这里的只是运用加密运算去产生一段密文,其目的并不是为了加密,而是为了签名,因为 SK 是 A 独有的,这就保证了这段密文是唯一 A 可以产生的。
- A 把密文(签名)发送给 B
- B 得到后,用 A 的公钥 PK 进行解密运算(E 运算),同样,这里的解密,其目的不是在解密,而是验证密文(签名)是 A 发送的。
数字签名如何实现上述三层功能的:
- 因为只有 A 有自己的私钥产生密文,所以 B 可以相信这段密文是 A 产生的【报文鉴别】
- 同理,如果能用 A 公钥解密出可读的签名信息,说明密文没有被更改过,如果更改过,那么必然发生变化,解密就无法得到可读信息【报文完整性】
- 最后,B 拥有 A 的密文和解密的明文,自然 A 无法抵赖自己没有传过数据给 B【不可抵赖】
鉴别(不可伪造)
所谓鉴别,就是接收方确认接收到的报文是发送方发送的。
报文鉴别
报文鉴别就是对报文进行鉴别,确认报文是报文发送方发送的,而没有被篡改过
报文鉴别最重要的就是如何花费少的时间进行鉴别,因为如果对全部的报文进行鉴别,那么花费的时间一定会很多
报文摘要(Message Digest,MD):其思想就是把报文 X 经过报文摘要算法得到较短的报文摘要 H。在对 H 进行数字签名得到报文鉴别码(Message Authentication Code,MAC),将 MAC 追加在报文 X 后面发送给 B。报文摘要只是报文鉴别的一种简单方式。其中广泛使用的是 MD5
B 接收到报文和报文鉴别码后,首先用 A 的公钥还原 MAC 得到 H,再对报文 X 进行摘要运算得到 H,如果两个 H 相同,那么高概率报文是有效的。
报文鉴别算法=散列函数,这样的散列函数是单向函数,即只能通过报文产生报文摘要,而无法通过摘要反推原始报文(就像藏头诗一样,不可能根据藏头推算出整首诗的内容)。
实体鉴别
实体鉴别是对发送报文的人进行鉴别,以确认对方是自己想要的发送者。
潜在风险:重放攻击。以上过程可能遭受重放攻击,就是攻击者 C 可以在途中截获 A 传递给 B 的报文,伪装成 A 发送报文给 B ,让 B 以为是 A 发送的报文,C 甚至还可以通过分析 IP 数据报,获得 A 的 IP 地址,进行 IP 欺骗。
解决方法:不重数(不重复出现的大随机数)。
由于不重数是 A,B 之间的共享密钥,攻击者除非破解共享密钥,否则其身份可以被判定。之所以不对报文进行加密,就是考虑到如果报文太长,加密解密将非常耗时。
💡 报文鉴别每次都要,实体鉴别只要一次,但二者鉴别的目的都是确定报文是发送者发送的,而不是被人伪造或者篡改
密钥分配
- 密码算法 = 密码,是一个加密的函数
- 密钥是这个函数的参数
- 密钥必须通过安全的通路分配,最常用的分配方式是建立 KDC (密钥分配中心),这是一个可信的第三方机构
- CA 是认证中心,是用于把公钥和其对应实体(公钥主人)进行绑定确认的机构
- 对称加密的密钥分配取决于密钥分发技术
因特网使用的安全协议
网络层使用的 IPsec 协议
- IP 层的安全包括了三个方面:认证,保密和密钥管理
- IPsec 最主要的两个协议是 AH 和 ESP(Encapsulation Security Payload,封装安全有效载荷),其中 ESP 已经包括了 AH 的所有功能。
- IPsec 支持 IPv4 和 IPv6.
- IPsec 的核心思想就是在无连接的网络层中建立一个逻辑连接层,称为安全关联 SA
- 关于 SA ,当 IPsec 使用 SA 时,就把传统的网络层变成了一个有连接的层,以此向其提供安全服务。
- 这个服务是单工的,如果要双工则要建立两条这样的线路
IPsec 数据报的格式
IPsec 有两种不同的工作方式
一种是运输方式,运输方式要求需要使用 IPsec 协议的主机都运行 IPsec 协议。且封装的是运输层的报文
而另一种是隧道方式,隧道方式仅要求相应的路由器运行 IPsec 协议。而因为路由器的数量远远少于主机的数量,所以往往人们选择使用隧道协议。最常见的隧道方式就是 VPN。且封装的是 IP 数据报
IPsec 的构件
安全策略数据库(SPD):指明什么数据包才需要使用 IPsec,并非所有的数据报都需要加密
安全关联数据库(SAD):指明当我需要使用 IPsec 时,我采用哪一个 SA
note
- 数据包中的下一个首部在这里指有效载荷应该上交到什么地方
- 如果采用隧道协议**,IPsec 首部中的目的地址和源地址和 IP 首部不一样,它要求的是两个路由器的 IP 地址**
- 一次关联,后面的分组都可以通过这个关联
运输层使用的 SSL 和 TLS 协议
- TSL 是 SSL 的标准版本,但现在两个协议都在一起使用
- 使用了 ssl/tsl 的网页,变成了 https
- SSL 提供的安全服务
- 使用 TCP 提供一种端到端的安全服务,SSL 不是单个协议,而是两层协议组成
- 服务器鉴别:允许用户证实服务器的身份
- 客户鉴别:证实客户身份
- 加密的 SSL 会话
SSL 建立安全会话的简要过程
协商加密算法:A 向 B 发送自己的 SSL 版本号和 自己支持的加密算法,B 选定加密算法并告知 A
服务器鉴别:B 向 A 发送 RSA 公钥的数字证书,A 从 CA 中获取公钥并鉴别
会话密钥计算:A 发送一个秘密数,用 RSA 公钥加密,双方协商产生一个对称会话密钥
安全数据传输:利用会话密钥加密和解密其传播的数据
其中,第三步,B 的数字证书包括了 B 的公钥。第五步,秘密数用于告知服务器 B,B 用秘密数产生会话密钥
应用层的安全协议
- PGP:电子邮件安全软件包
- 包含的措施:
- PGP 随机生成一个随机密钥,用 IDEA 对明文经行加密
- 再利用 RSA 对随机密钥进行加密
- 接收者反过来操作即可
PGP 工作原理
发送方
接收方
反向操作即可
系统安全:防火墙与入侵检测
防火墙
- 防火墙是一种特殊的路由器,目的是实施访问控制策略,有点像门卫,允许业主进入,非业主不能进入
- 功能:阻止(某种类型的流量通过防火墙),允许
- 防火墙的分类:
- 分组过滤路由器(网络级防火墙),按照规则对分组进行过滤,比如,我对 25 端口进行拦截,那么就不能使用 SMTP 协议
- 应用网关(代理服务器,应用级防火墙):相当于客户之间,或者“客服”之间并非直接连接,而是在逻辑上嵌入一层保护的代理。
- 应用网关可以基于应用层数据进行过滤和用户鉴别
- 所有进出网络的应用程序报文都必须通过应用网关
- 例如一些关键字检测,如出现了“炸弹”的报文无法发送
- 比如代理服务器(万维网高速缓存)就是一种应用网关
- 分组过滤路由器的优点是:简单高效,用户透明;缺点是,无法对高层数据进行过滤,无法对某个应用进行设置
- 应用网关的缺点:每个应用需要单独设置,且处理负担重
note:
- 网关,网关位于网络层之上,在运输层的叫运输层网关,在应用层的叫应用程网关
入侵检测系统
入侵检测系统(IDS,Intrusion Detection System)用于进行二道防御。是当入侵已经开始了,以便尽快阻止入侵。
IDS 分为基于特征的入侵检测和基于异常的特征检测。
基于特征的是基于一个事先的已知库。而基于异常是对异常行为的监控。
网络访问控制(NAC)和云安全
补充 链路安全
链路加密与端到端加密的特点和应用场景
链路加密是对每条通信链路实施加密,是对 PDU 的协议控制信息和数据都加密
优点:
- 一条链路被破坏不会导致其他链路被破坏
- 防止流量分析
缺点:
- 因为链路加密是每个结点明文,而在各链路上传播为密文,这就导致中间结点可能被攻击
- 不能用于广播网络
端到端加密,在源点和终点对 PDU 进行加解密,不会受到中间结点的影响,其加密应该在运输层及其以上实现