网络安全问题概述

计算机网络面临的安全威胁

  1. 计算机安全的三个目标
    1. 机密性:数据机密性,数据不能被泄露
    2. 完整性:数据不能被篡改
    3. 可用性:可以使用该数据的人对数据随时可用,DDOS 就是对可用性的攻击,使得可以使用数据的人也不能正常使用
  2. 两大威胁
    1. 被动攻击:攻击者窃听通信内容,只是观察和分析某个协议数据单元,不干扰信息流。被动攻击又叫截获,流量分析。流量分析类似于谍战片里面,我方情报员在敌特发报的时候锁定敌特身份和位置,对报文本身不感兴趣
    2. 主动攻击
      1. 假冒
      2. 篡改
      3. 恶意程序
        1. 计算机病毒
        2. 计算机蠕虫
        3. 木马:一种后门程序,用来盗取用户信息,控制用户设备,具有很强的隐蔽性
        4. 逻辑炸弹
      4. 拒绝服务

💡 主要威胁还包括:截取,中断,伪造,篡改,拒绝服务
💡 安全措施:数据加密,设计安全网络,访问控制
【注】后门:绕开软件安全性控制,获取对程序或者系统访问全限的方法,一般后门存在于软件的开发测试阶段,便于程序员对软件进行测试

计算机网络安全内容

  1. 保密性:如,通信保密
  2. 安全协议:如,设计安全的通信协议
  3. 访问控制:用户的权限

💡 目前绝对安全的通信协议和安全系统是不存在的

一般数据加密模型

network41.png

两类密码体制

对称密钥密码体制

  1. 对称加密方案由5个部分组成:明文,加密算法,密钥,密文,解密算法
  2. 对称加密的安全性取决于密钥的保密性(钥匙齿轮的保密,而不是制造钥匙技术的保密)
  3. 计算安全:破译的代价高于密文的收益,破译的时间超过了要求时间

image.png

  1. 含义:加密和解密的密钥是相同的密码体制生成的。其中 DES 就是典型的对称密
  2. 流程:
    1. DES 是一种分组密码,密钥长度为 56 比特
    2. 加密前,对明文进行分组,每 64 位二进制是一组,然后进行加密得到 64 位密文。 DES 的加密和解密过程一样,不过相反而已。进行 16 轮迭代,最终生成 16 组
    3. 每组串联得到最终的密文
    4. 密钥也是 64 位:实际密钥 56 位+ 8 位奇偶校验位特点:DES 的保密性是基于对密钥的保密,而算法是公开
  3. 其他:IDEA 是对 DES 的加强,采用 128 位密
  4. 3DES 的优势:1. 克服了 DES 密钥长度短,容易被穷举攻击,2. DES 算法本身没有问题
  5. 问题:密钥分配问题(分配通道如何确保安全),密钥管理问题(一对一的密钥数量太多),没有数字签名
  6. AES

公钥密码体制

含义:使用不同的加密密钥和解密密钥
目的:解决对称密钥中,如何让通信双方获得相同的密钥的问题
特点:公钥是公开的,但私钥是秘密的。这就好像开门关门一样,谁都可以把这个门关上,但只有特殊的人才能把门打开。加密和解密算法都是公开的
缺点:耗费计算资源
images.png

note:

  1. 加密算法的安全性取决于密钥的长度,和破解密钥所需要的计算量。与体制无关,也就是说公钥密码体制没有比传统的密钥体制更牛逼,它仅仅是解决了密钥分配的问题
  2. 公钥加密,私钥解密;私钥加密,公钥解密

数字签名

就像现实中,老板需要在报告上签字后计划才能开始实施,而网络中,A 如何核实 B 传来的信息真的是 B 传来的呢,这就需要数字签名技术。数字签名利用公钥加密技术。

数字签名需要做到三层:

  1. 防止伪造:接收者确认核实,这的确是发送者发送的
  2. 防止篡改:接收者接收的信息是没有被篡改的
  3. 不可否认:发送者不能抵赖对报文的签名

大致流程(最常用的是公钥算法实现数字签名):

  1. 用 A 的私钥 SK 对明文 X 进行加密运算(D 运算)。特别的是,这里的只是运用加密运算去产生一段密文,其目的并不是为了加密,而是为了签名,因为 SK 是 A 独有的,这就保证了这段密文是唯一 A 可以产生的。
  2. A 把密文(签名)发送给 B
  3. B 得到后,用 A 的公钥 PK 进行解密运算(E 运算),同样,这里的解密,其目的不是在解密,而是验证密文(签名)是 A 发送的。

u=3951191269,3739312510&fm=26&gp=0.jpg

数字签名如何实现上述三层功能的:

  1. 因为只有 A 有自己的私钥产生密文,所以 B 可以相信这段密文是 A 产生的【报文鉴别】
  2. 同理,如果能用 A 公钥解密出可读的签名信息,说明密文没有被更改过,如果更改过,那么必然发生变化,解密就无法得到可读信息【报文完整性】
  3. 最后,B 拥有 A 的密文和解密的明文,自然 A 无法抵赖自己没有传过数据给 B【不可抵赖】

u=4204951089,1125353769&fm=26&gp=0.jpg

鉴别(不可伪造)

所谓鉴别,就是接收方确认接收到的报文是发送方发送的。

报文鉴别

报文鉴别就是对报文进行鉴别,确认报文是报文发送方发送的,而没有被篡改过

报文鉴别最重要的就是如何花费少的时间进行鉴别,因为如果对全部的报文进行鉴别,那么花费的时间一定会很多

报文摘要(Message Digest,MD):其思想就是把报文 X 经过报文摘要算法得到较短的报文摘要 H。在对 H 进行数字签名得到报文鉴别码(Message Authentication Code,MAC),将 MAC 追加在报文 X 后面发送给 B。报文摘要只是报文鉴别的一种简单方式。其中广泛使用的是 MD5

B 接收到报文和报文鉴别码后,首先用 A 的公钥还原 MAC 得到 H,再对报文 X 进行摘要运算得到 H,如果两个 H 相同,那么高概率报文是有效的。

报文鉴别算法=散列函数,这样的散列函数是单向函数,即只能通过报文产生报文摘要,而无法通过摘要反推原始报文(就像藏头诗一样,不可能根据藏头推算出整首诗的内容)。

最常见的报文摘要算法是 MD5
image.png

实体鉴别

实体鉴别是对发送报文的人进行鉴别,以确认对方是自己想要的发送者。

image.png

潜在风险:重放攻击。以上过程可能遭受重放攻击,就是攻击者 C 可以在途中截获 A 传递给 B 的报文,伪装成 A 发送报文给 B ,让 B 以为是 A 发送的报文,C 甚至还可以通过分析 IP 数据报,获得 A 的 IP 地址,进行 IP 欺骗。

解决方法:不重数(不重复出现的大随机数)。
image.png
由于不重数是 A,B 之间的共享密钥,攻击者除非破解共享密钥,否则其身份可以被判定。之所以不对报文进行加密,就是考虑到如果报文太长,加密解密将非常耗时。

💡 报文鉴别每次都要,实体鉴别只要一次,但二者鉴别的目的都是确定报文是发送者发送的,而不是被人伪造或者篡改

密钥分配

  1. 密码算法 = 密码,是一个加密的函数
  2. 密钥是这个函数的参数
  3. 密钥必须通过安全的通路分配,最常用的分配方式是建立 KDC (密钥分配中心),这是一个可信的第三方机构
  4. CA 是认证中心,是用于把公钥和其对应实体(公钥主人)进行绑定确认的机构
  5. 对称加密的密钥分配取决于密钥分发技术

Kerberos 简介

因特网使用的安全协议

image.png

网络层使用的 IPsec 协议

  1. IP 层的安全包括了三个方面:认证,保密和密钥管理
  2. IPsec 最主要的两个协议是 AH 和 ESP(Encapsulation Security Payload,封装安全有效载荷),其中 ESP 已经包括了 AH 的所有功能。
  3. IPsec 支持 IPv4 和 IPv6.
  4. IPsec 的核心思想就是在无连接的网络层中建立一个逻辑连接层,称为安全关联 SA
    1. 关于 SA ,当 IPsec 使用 SA 时,就把传统的网络层变成了一个有连接的层,以此向其提供安全服务。
    2. 这个服务是单工的,如果要双工则要建立两条这样的线路

image.png

image.png

IPsec 数据报的格式
image.png

IPsec 有两种不同的工作方式
一种是运输方式,运输方式要求需要使用 IPsec 协议的主机都运行 IPsec 协议。且封装的是运输层的报文

而另一种是隧道方式,隧道方式仅要求相应的路由器运行 IPsec 协议。而因为路由器的数量远远少于主机的数量,所以往往人们选择使用隧道协议。最常见的隧道方式就是 VPN。且封装的是 IP 数据报

IPsec 的构件
安全策略数据库(SPD):指明什么数据包才需要使用 IPsec,并非所有的数据报都需要加密
安全关联数据库(SAD):指明当我需要使用 IPsec 时,我采用哪一个 SA

note

  1. 数据包中的下一个首部在这里指有效载荷应该上交到什么地方
  2. 如果采用隧道协议**,IPsec 首部中的目的地址和源地址和 IP 首部不一样,它要求的是两个路由器的 IP 地址**
  3. 一次关联,后面的分组都可以通过这个关联

运输层使用的 SSL 和 TLS 协议

  1. TSL 是 SSL 的标准版本,但现在两个协议都在一起使用
  2. 使用了 ssl/tsl 的网页,变成了 https
  3. SSL 提供的安全服务
    1. 使用 TCP 提供一种端到端的安全服务,SSL 不是单个协议,而是两层协议组成
    2. 服务器鉴别:允许用户证实服务器的身份
    3. 客户鉴别:证实客户身份
    4. 加密的 SSL 会话

SSL 建立安全会话的简要过程
image.png
协商加密算法:A 向 B 发送自己的 SSL 版本号和 自己支持的加密算法,B 选定加密算法并告知 A
服务器鉴别:B 向 A 发送 RSA 公钥的数字证书,A 从 CA 中获取公钥并鉴别
会话密钥计算:A 发送一个秘密数,用 RSA 公钥加密,双方协商产生一个对称会话密钥
安全数据传输:利用会话密钥加密和解密其传播的数据

其中,第三步,B 的数字证书包括了 B 的公钥。第五步,秘密数用于告知服务器 B,B 用秘密数产生会话密钥

应用层的安全协议

  1. PGP:电子邮件安全软件包
  2. 包含的措施:
    1. PGP 随机生成一个随机密钥,用 IDEA 对明文经行加密
    2. 再利用 RSA 对随机密钥进行加密
    3. 接收者反过来操作即可

PGP 工作原理
发送方
image.png
接收方
反向操作即可

系统安全:防火墙与入侵检测

防火墙

  1. 防火墙是一种特殊的路由器,目的是实施访问控制策略,有点像门卫,允许业主进入,非业主不能进入
  2. 功能:阻止(某种类型的流量通过防火墙),允许
  3. 防火墙的分类:
    1. 分组过滤路由器(网络级防火墙),按照规则对分组进行过滤,比如,我对 25 端口进行拦截,那么就不能使用 SMTP 协议
    2. 应用网关(代理服务器,应用级防火墙):相当于客户之间,或者“客服”之间并非直接连接,而是在逻辑上嵌入一层保护的代理。
      1. 应用网关可以基于应用层数据进行过滤和用户鉴别
      2. 所有进出网络的应用程序报文都必须通过应用网关
      3. 例如一些关键字检测,如出现了“炸弹”的报文无法发送
      4. 比如代理服务器(万维网高速缓存)就是一种应用网关
  4. 分组过滤路由器的优点是:简单高效,用户透明;缺点是,无法对高层数据进行过滤,无法对某个应用进行设置
  5. 应用网关的缺点:每个应用需要单独设置,且处理负担重

note:

  1. 网关,网关位于网络层之上,在运输层的叫运输层网关,在应用层的叫应用程网关

image.png

入侵检测系统

入侵检测系统(IDS,Intrusion Detection System)用于进行二道防御。是当入侵已经开始了,以便尽快阻止入侵。

IDS 分为基于特征的入侵检测和基于异常的特征检测。
基于特征的是基于一个事先的已知库。而基于异常是对异常行为的监控。

网络访问控制(NAC)和云安全

补充 链路安全

链路加密与端到端加密的特点和应用场景

链路加密是对每条通信链路实施加密,是对 PDU 的协议控制信息和数据都加密
优点:

  1. 一条链路被破坏不会导致其他链路被破坏
  2. 防止流量分析

缺点:

  1. 因为链路加密是每个结点明文,而在各链路上传播为密文,这就导致中间结点可能被攻击
  2. 不能用于广播网络

image.png
端到端加密,在源点和终点对 PDU 进行加解密,不会受到中间结点的影响,其加密应该在运输层及其以上实现