网络安全


网络安全问题概述

网络安全工程:技术、管理、道德、法律

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

计算机网络威胁$\star$:截获、中断、篡改、伪造

被动攻击:攻击者只是观察和分析某PDU而不干扰信息流

  1. 截获
  2. 流量分析

主动攻击:攻击者对某个连接中通过的PDU进行各种处理

  1. 更改报文流
  2. 拒绝服务
  3. 伪造连接初始化
  4. 恶意程序计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵、流氓软件
  5. 拒绝服务DoS:向互联网上的某个服务器不停地发送大量分组,使互联网无法提供正常服务
    • 分布式拒绝服务DDoS:从互联网上的多个网站集中攻击一个网站

常见攻击

  • 重放攻击:截获$A$发给$B$的包,并直接发给$B$,使$B$误认为$C$是$A$,主要用于身份认证过程(防治:使用不重数)
  • 中间人攻击(MIMT):攻击者$C$分别与$A$、$B$联系,而$A$、$B$误以为相互直接通信(防治措施:加密、设备或IP异常检测)
  • 拒绝服务:指攻击者向因特网上的服务器不停地发送大量分组,使因特网或服务器一直处于“忙”的状态而无法为客户提供正常服务
  • 访问控制:也称为存取控制或接入控制,指通过授权,控制用户访问资源的范围,防止非授权访问,保证网络和系统的安全
  • 流量分析:通过观察PDU的协议控制信息部分,了解正在通信的协议实体的地址和身份,研究PDU的长度和传输的频度,以便了解所交换的数据的某种性质
  • 恶意程序:通常是指带有攻击意图所编写的一段程序

计算机网络通信安全的目标

  1. 防止析出报文内容和流量分析
  2. 防止恶意程序
  3. 检测更改报文流和拒绝服务
  • 对付被动攻击可采用各种数据加密技术。
  • 对付主动攻击则需将加密技术与适当的鉴别技术相结合

安全的计算机网络目标

  1. 保密性

    网络安全通信的最基本的内容

    是对付被动攻击必备的功能,需要使用各种密码技术

  2. 端点鉴别

    鉴别信息的发送方和接收方的真实身份

    对付主动攻击

  3. 信息的完整性

    信息的内容未被篡改过

    应对主动攻击

  4. 运行的安全性

    系统能正常运行并提供服务。

    访问控制:必须对访问网络的权限加以控制,并规定每个用户的访问权限。

网络安全指标:保密性、可靠性、完整性、不可抵赖性、可控性、可用性

密码

加密方法的安全性取决于密钥长度、攻破密文计算量与加密体制无关

对称密钥密码体制

特点:加密密钥与解密密钥的密码体制相同,收发双方共享密钥,对称密码的密钥保密

优点:加解密速度快,安全强度高,简便高效,密钥简短,破译极其困难,系统开销小,适合加密大量数据

缺点:密钥发送过程复杂,花费较高;用户多分布广时,密钥的分配存储复杂;通信双方必须统一密钥

数据加密标准 DES

加密算法

  1. 对整个明文进行分组。每一个组长为64位。
  2. 然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。
  3. 最后将各组密文串接起来,即得出整个的密文。
  • 使用的密钥为64位实际密钥长度为56位,有8位用于奇偶校验

三重DES

64位明文用一个密钥加密,再用另一个密钥解密,然后再使用第一个密钥加密,即
$$
Y=DES_{K1}\left(DES^{-1}{K2}\left(DES{K1}(X)\right)\right)
$$

公钥密码体制

特点:加密密钥和解密密钥不同,加密密钥向公众公开,解密密钥保密
优点:密钥少,好管理,分配简单;不需要用密钥通道和复杂的协议来传送密钥;可实现数字签名和数字鉴别

缺点:加密速度慢,开销较大

数论基础:大数分解

公钥算法的特点

密钥对产生器产生出接收者$B$的一对密钥:加密密钥$PK_B$和解密密钥$SK_B$。

发送者$A$用$B$的公钥$PK_B$对明文$X$加密($E$运算)后,接收者$B$用自己的私钥$SK_B$解密($D$运算),即可恢复出明文
$$
D_{SK_B}(Y)=D_{SK_B}(E_{PK_B}(X))=X
$$

数字签名

用于证明真实性

数字签名必须保证以下三点:

  1. 报文鉴别——接收者能够核实发送者对报文的签名(证明来源)
  2. 报文的完整性——发送者事后不能抵赖对报文的签名(防否认)
  3. 不可否认——接收者不能伪造对报文的签名(防伪造)
  • 现在已有多种实现各种数字签名的方法。但采用公钥算法更容易实现

鉴别

鉴别:验证通信的对方的确是自己所要通信的对象

保密:网络信息不被泄露给非授权的用户、实体或过程

授权:确定所进行的过程是否被允许

  1. 报文鉴别:防止伪造篡改的,包含端点鉴别和报文完整性的鉴别
  2. 实体鉴别:仅仅鉴别发送报文的实体。实体可以是一个人,也可以是一个进程(客户或服务器)

报文鉴别

许多报文并不需要加密,但却需要数字签名以便鉴别报文的真伪

报文摘要MD过程(数字签名过程)

  1. $A$把报文$X$经过报文摘要算法得到报文摘要$H$
  2. 用$A$私钥对$H$进行$D$运算数字签名,生成报文鉴别码$MAC$
  3. 把报文鉴别码追加$X$发送$B$
  4. $B$收到$X+MAC$后,将报文和鉴别码分离
  5. 用$A$的公钥对$MAC$进行$E$运算,还原报文摘要$H$
  6. 对$X$进行报文摘要运算,判断是否和$H$一致

报文摘要

报文摘要优点

  • 耗费资源小
  • 不可伪造,可检验、不可否认

报文摘要标准

密码散列函数

散列函数特点

  1. 输入长度很长,输出长度固定较短
  2. 输入和输出多对一
  3. 单向性:不同的报文具有同样的密码散列函数输出计算上不可行

MD5:对任意长报文运算,得到128bit的MD5报文摘要

  1. 附加:把任意长的报文按模$2^{64}$计算其余数($64$位),追加在报文的后面(长度项)。
  2. 填充:在报文和长度项之间填充$1\sim512$位,使得填充后的总长度是$512$的整数倍。填充的首位是$1$后面都是$0$
  3. 分组:把追加和填充后的报文分割为一个个$512$位的数据块,每个$512$位的报文数据再分成$4$个$128$位的数据块。
  4. 计算:将$4$个$128$位的数据块依次送到不同的散列函数进行$4$轮计算。每一轮又都按$32$位的小数据块进行复杂的运算。一直到最后计算出$ MD5$报文摘要代码($128$位)。

安全散列算法(SHA-1)

  1. 要求输入码长小于$2^{64}$位,输出码长为$160$位。
  2. 将明文分成若干$512$位的定长块,每一块与当前的报文摘要值结合,产生报文摘要的下一个中间结果,直到处理完毕。
  3. 共扫描$5$遍,效率略低于$MD5$,抗穷举性更高。

实体鉴别

在系统接入的全部持续时间内对和对方实体只需验证一次

使用对称密钥实体鉴别

  1. $A$发送给$B$的报文的被加密,使用的是双方约定好的对称密钥$K_{AB}$
  2. $B$收到此报文后,用共享对称密钥$K_{AB}$进行解密,因而鉴别了实体$A$的身份
  • 无法对付重放攻击

使用不重数鉴别

不重数——不重复的大随机数

  1. $A$用明文发送其身份$A$和一个不重数$R_A$给$B$
  2. $B$用共享的密钥$K_{AB}$对$R_A$加密发回$A$,同时给出不重数$R_B$
  3. $A$再响应$B$的查问,用共享的密钥$K_{AB}$对$R_B$加密后发回$B$

密钥分配

密钥管理:密钥产生、分配、注入、验证、使用

密钥管理中最大的问题:密钥分配

分配方式:网内分配(密钥自动分配)

对称密钥的分配

常用的密钥分配方式:设立密钥分配中心KDC

步骤:

  1. 用户$A$向KDC发送明文,说明想和$B$通信(明文中给出$A$和$B$在KDC登记的身份)
  2. KDC用随机数产生一次一密的会话密钥$K_{AB}$,向$A$发送回答报文(用$A$的密钥$K_A$加密,包含$K_{AB}$、请$A$转给$B$的票据包含$A、B$在KDC登记身份以及$K_{AB}$,用$K_B$加密、时间戳)
  3. $B$收到$A$转来的票据并解密后,知道$A$要与其通信,同时也知道会话密钥$K_{AB}$

密钥分配中心KDC

KDC任务:给秘密通信的用户临时分配一个会话密钥

为防止重放攻击,$KDC$还可在报文中加入时间戳

会话密钥一次性

密钥分配协议 Kerberos

最常用:Kerberos V5,既是鉴别协议,又是KDC

加密方式:AES

Kerberos服务器:鉴别服务器AS、票据授予服务器TGS

用户:服务器-服务器非人对人

Kerberos 协议的优点:

  1. 安全性高:对用户的口令加密后作为用户的私钥,避免了用户的口令在网络上显示传输,使得窃听者难以在网络上取得相应的口令信息

  2. 透明性高:用户使用过程中仅登录时要求输入口令,与平常的操作完全一样

  3. 可扩展性好:为每一个服务提供认证,确保应用的安全

Kerberos协议的缺点:

  1. Kerberos服务器与用户共享的秘密是用户的口令字,服务器在回应时不验证用户的真实性,假设只有合法用户拥有口令字,如攻击者记录申请回答报文,就易形成代码本攻击
  2. AS和TGS是集中式管理,容易形成瓶颈,系统的性能和安全也严重依赖于AS和TGS的性能和安全,在AS和TGS 前应该有访问控制,以增强AS和TGS的安全;
  3. 随用户数增加,密钥管理较复杂。Kerberos拥有每个用户的口令字的散列值,AS与TGS负责户间通信密钥的分配。当N个用户想同时通信时,仍需要$N×(N-1)/2$个密钥。

公钥的分配

认证中心CA:将公钥与其对应的实体绑定

每个实体都有CA发来的证书(公钥及其拥有者的标识)

此证书被CA进行了数字签名,是不可伪造的

CA证书的吊销:

证书不是永久有效,可以过期,也可吊销

  • 原因:
  1. 用户私钥被泄漏

  2. 用户不再被CA认证

  3. CA​签署用户证书的私钥已被泄漏

  • CA$建立并维护一个证书吊销列表。

互联网使用的安全协议

网络层安全协议

IP安全性问题

  1. 没有数据源鉴别机制
  2. 没有完整性保护机制;
  3. 没有机密性保护
  4. 设计和实现上存在安全漏洞,使各种攻击有机可乘

IPsec协议

IPsec组成:

  1. IP安全数据报格式的两个协议
    • 鉴别首部AH协议提供源点鉴别和数据完整性,但不能保密
    • 封装安全有效载荷ESP协议提供源点鉴别、数据完整性和保密
  2. 有关加密算法的三个协议
  3. 互联网密钥交换IKE协议
  • lpsec支持IPv4和IPv6

IP安全数据报工作方式

运输方式

  • 运输层报文段前后添加若干控制信息,构成IPSec数据报
  • 适用范围:于主机到主机之间的安全传送
  • 使用要求:使用IPsec的主机都运行lPsec协议

隧道方式

  • IP数据报前后添加若干控制信息,构成IPSec数据报

  • 适用范围:常用来实现虚拟专用网

  • 使用要求:在IPsec数据报所经过的所有路由器上都运行IPsec 协议

IP安全数据报的IP首部都是不加密的

IPsec其他构件

安全关联数据库SAD

  • 存放SA的地方
  • 当一个主机发送IPsec数据报,就在SAD中找相应SA,以便获得必要的信息对IPSec数据实施安全保护
  • 当一个主机接收IPsec数据报,就在SAD中找相应SA,以便获得必要的信息检查该分组的安全性

安全策略数据库SPD:SPD指明什么样的数据报需要IPsec处理

运输层安全协议

SSL和TLS

协议:建立在可靠的TCP之上,与应用层协议独立无关

基本目标:实现两个应用实体之间的安全可靠通信。

适用范围:使用SSL最多的是HTTP, 但SSL可用于任何应用层协议

  • HTTP调用SSL对整个网页进行加密时变成了https(TCP的HTTPS端口号是443,而不是平时使用的端口号80)

安全套接字SSL

  • SSL服务器鉴别:允许用户证实服务器的身份。支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥
  • SSL客户鉴别:SSL的可选安全服务,允许服务器证实客户的身份
  • 加密的SSL会话:对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改

SSL工作过程:

  1. 浏览器向服务器发送浏览器的SSL版本号密码编码参数选择
  2. 服务器向浏览器发送服务器的SSL版本号密码编码参数选择及服务器的证书
  3. 浏览器收到服务器发来的证书时,检查证书是否在自己的可信的CA表中:如不在,则后面的加密和鉴别连接就不能进行下去;如在,浏览器就使用CA的公开密钥对证书解密,这样就得到了服务器的公开密钥
  4. 浏览器随机产生对称会话密钥,并用服务器的公开密钥加密,然后将加密的会话密钥发送给服务器
  5. 浏览器向服务器发送一个报文,说明以后浏览器将使用此会话密钥进行加密。然后浏览器再向服务器发送一个单独的加密报文,表明浏览器端的握手过程已经完成;
  6. 服务器也向浏览器发送一个报文,说明以后服务器将使用此会话密钥进行加密。然后服务器再向浏览器发送一个单独的加密报文,表明服务器端的握手过程已经完成;
  7. 开始SSL的会话过程。

运输层安全TLS

为所有基于TCP网络应用提供安全数据传输服务

应用层安全协议

PGP协议

  • PGP是一个完整的电子邮件安全软件包,包括加密鉴别电子签名压缩等技术IDEA和传统加密杂合算法
  • 提供电子邮件安全性、发送鉴别和报文完整性

PGP工作原理

PGP工作原理

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

防火墙

防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施访问控制策略

防火墙功能:

阻止允许

  • 阻止”——阻止某种类型的通信量通过防火墙(从外部网络到内部网络
  • 允许”——允许某种类型的通信量通过防火墙
  • 防火墙必须能够识别各种类型的通信量。不过在大多数情况下防火墙的主要功能是“阻止

防火墙技术分类

  • 网络级防火墙:防止整个网络出现外来非法入侵;包括分组过滤授权服务器
  • 应用级防火墙:从应用程序进行访问控制;使用应用网关代理服务器区分应用

入侵检测系统IDS

在入侵已经开始,但还没有造成危害或在造成更大危害前,及时检测到入侵,以便尽快阻止入侵,把危害降低到最小

工作原理:对进入网络的分组执行深度分组检查,当观募到可疑分组时,向网络管理员发出告警或执行阻断操作由于IDS的“误报”率通常较高,多数情况不执行自动阻断

功能:IDS能用于检测多种网络攻击,包括网络映射、端口扫描、DoS攻击、蠕虫和病毒、系统漏洞攻击等

基于异常的检测可以检测出未知攻击

入侵检测方法

  • 基于特征的IDS维护一个所有已知攻击标志性特征的数据库

    基于特征的IDS 只能检测已知攻击,对于未知攻击则束手无策。

  • 基于异常的IDS通过观察正常运行的网络流量,学习正常流量的统计特性和规律。当检测到网络中流量某种统计规律不符合正常情况时,则认为可能发生了入侵行为。


文章作者: Jarrycow
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jarrycow !
评论
  目录