【计算机网络】网络安全(7)


被动攻击 主动攻击
篡改恶意程序拒绝服务Dos
攻击者从网络上截获他人通信内容,不干扰信息流攻击者篡改、彻底中断或完全伪造网络上传送的报文计算机病毒计算机蠕虫特洛伊木马逻辑炸弹后门入侵流氓软件攻击者向某个服务器不停发送大量分组,时该服务器无法提供正常服务。如果从成百上千机器攻击某个服务器,则称为分布式拒绝服务DDos
修改其他程序把自己复制进去的程序将自身从网络一个结点发送到另一个结点并自动启动的程序程序执行的并非其声称的功能,而是某种恶意功能当运行环境满足某种特定条件(如时间)时执行其他特殊功能利用系统中的漏洞通过网络入侵未经用户允许就安装运行并损害用户利益的软件

数据加密

用户A使用加密秘钥K,通过加密算法E,将明文X转为密文Y

B收到后使用解密秘钥K’,通过解密算法D,将秘文Y还原为明文X

对称秘钥密码体制

  • K=K’,即加密秘钥与解密秘钥相同
  • 数据加密标准DES属于对称秘钥密码体制, 秘 钥 长 度 56 = 64 位 秘 钥 + 8 位 奇 偶 校 验 秘钥长度56=64位秘钥+8位奇偶校验 56=64+8
  • 目前56位DES已能在很短时间内暴力破解。三重DES(把明文用秘钥1加密,秘钥2解密,再用秘钥3加密)广泛用于网络、金融等系统

公钥密码体制

  • 又称为公开秘钥密码体制,其加密秘钥与解密秘钥不同
  • 秘钥对产生器对接收者B产生加密秘钥 P K B PK_B PKB和解密秘钥 S K B SK_B SKB,其中加密秘钥 P K B PK_B PKB公开,解密秘钥 S K B SK_B SKB只有B知道
  • 发送者A首先用 P K B PK_B PKB通过算法E对明文X加密,得到密文Y
  • 接收者B用自己的私钥 S K B SK_B SKB通过算法D对Y解密,得到X

公钥密码体制特点:

  1. 从已知的 P K B PK_B PKB无法推导出 S K B SK_B SKB
  2. 公钥 P K B PK_B PKB只能用来加密,无法用来解密
  3. 对X进行D运算和E运算的顺序不影响结果: E P K B ( D S K B ( X ) ) = D S K B ( E P K B ( X ) ) = X E_{PK_B}(D_{SK_B}(X))=D_{SK_B}(E_{PK_B}(X))=X EPKB(DSKB(X))=DSKB(EPKB(X))=X

数字签名

数字签名是为了保证三点功能:

  1. 报文鉴别:接收者能确信报文的确是发送者发送的;
  2. 报文完整性:接收者能确信所收到的数据没有被篡改过;
  3. 不可否认:发送者时候无法抵赖对报文的签名。

考虑上节公钥密码体制的第3个特点
在这里插入图片描述
如图,发送者A用其私钥 S K A SK_A SKA对报文X进行D运算,接收者B用A的公钥 P K A PK_A PKA进行E运算,如果能还原出明文,则核实了该签名:
只有A拥有其私钥,因此报文鉴别通过;如果数据被篡改过,那么B还原明文肯定失败,因此报文完整性通过

但上述方式只实现了签名的验证,但报文本身没有保密:因为A的公钥是公开的,任何人都能通过公钥获得明文。
因此可以通过下图的方式实现签名+保密:
在这里插入图片描述


鉴别

鉴别是要验证通信的对方的确是自己要通信的对象;并且传送的报文是完整的没被篡改过的

鉴别分为:报文鉴别、实体鉴别

报文鉴别

  • 鉴别收到的报文的确是报文的发送者发送的,每一个报文都需要鉴别
  • 理论上可以用数字签名实现,但对较长的报文D运算和E运算的计算量会很大
  • 因此用密码散列函数(MD5、SHA-1/2/3)实现鉴别

密码散列函数

密码散列函数需要满足以下2个特点:

  1. 输入长度不限,但输出长度固定,并且较短
  2. 输入输出是多对一的关系。不同输出肯定对应不同输入,不同输入可能得到相同输出

密码散列函数的第一个特点使得对其输出的计算量可控;第二个特点则保证了攻击者拿到输出也无法倒推出输入

报文摘要算法MD5是一种密码散列函数,其输出为128位
SHA-1是另一种广泛使用的密码散列函数,安全性比MD5更高,其输出为160位

但MD5和SHA-1都已被证明不满足密码散列函数的第2个特点,即可以通过输出倒推出输入
因此MD5和SHA-1逐渐被更安全的SHA-2和SHA-3替代

基于散列函数的报文鉴别

  • 发送者A首先对明文X通过散列函数得到散列H,然后对散列H用秘钥K加密得到报文鉴别码,将其拼接在X后面发送
  • 接收者B收到报文后首先分离报文鉴别码,然后用秘钥K对其解密得到散列H,最后使用散列函数计算报文X,得到的散列值如果是H,则鉴别成功

以上步骤中报文X本身不加密,仅需要对长度短的多的散列H加解密,计算量可控

考虑到秘钥K分发的风险,也可以用公钥密码体制:

  • 发送者A用其私钥对散列H进行D运算,得出报文鉴别码,然后将其拼接在报文X后面发给B
  • 接收者B对报文鉴别码用A的公钥进行E运算恢复散列H

实体鉴别

  • 在系统接入否认全部持续时间内,对和自己通信的对方实体只验证一次
  • 实体鉴别一旦通过,接下来的通信就不再做任何鉴别。因此这里的风险是,如果入侵者在鉴别过程中被通过,则之后的通信全部泄露

重放攻击

假设A和B约定使用对称秘钥 K A B K_{AB} KAB:即A向B发送带身份的报文,并用 K A B K_{AB} KAB加密,B收到后用 K A B K_{AB} KAB解密,如果成功则鉴别了A的身份

重放攻击:
入侵者C截获A发给B的报文,直接将其发送给B,使B误以为C就是A,接下来B发送的所有报文全泄露

中间人攻击

为了对付重放攻击,可以使用不重数(不重复使用的大随机数):

  1. A首先用明文发送其身份和一个不重数 R A R_A RA给B;
  2. B响应A,用其私钥 S K B SK_B SKB R A R_A RA做D运算,连同 R B R_B RB一起发给A;
  3. A用B的公钥 P K B PK_B PKB核实 R A R_A RA,确定对方是B,同样用其私钥 S K A SK_A SKA对不重数 R B R_B RB做D运算,发给B;
  4. B用A的公钥 P K A PK_A PKA核实 R B R_B RB,确定对方是A
  5. 实体鉴别通过后,接下来的通信会互相用对方的公钥做加密

中间人攻击:

  1. A向B发送身份报文和一个不重数 R A R_A RA,这个报文被中间人C截获,C将其原封不动转给B,同时用其私钥 S K C SK_C SKC R A R_A RA做D运算,发送回A,让A以为C是B;
  2. B用私钥 S K B SK_B SKB R A R_A RA做D运算,发给A,C截获后丢弃,同时转发 R B R_B RB给A;
  3. A向B索取其公钥,被C截获后转发给B,同时将 P K C PK_C PKC发送给A,A做了D运算后确认C就是B;同样用其私钥 S K A SK_A SKA对不重数 R B R_B RB做D运算,发给B;
  4. 接下来的每次数据报,C都截获后用自己的私钥 S K C SK_C SKC解密,复制一份后,再用 P K B PK_B PKB加密发给B

秘钥分配

从以上的攻击方式可以知道秘钥分配的重要性

对称秘钥的分配

目前常用的秘钥分配方式是设立秘钥分配中心KDC

假定用户A和B都是KDC的登记用户,其余KDC通信的主秘钥 K A K_A KA K B K_B KB在登记时已获得

  1. A向KDC发送包含A和B身份的明文,希望与B通信
  2. KDC产生“一次一密”的会话秘钥 K A B K_{AB} KAB供A与B本次会话,然后用 K A K_A KA加密包含秘钥 K A B K_{AB} KAB和票据(票据又用 K B K_B KB加密)的回答报文,发给A
  3. A将 K B K_B KB加密的票据发给B,后者解密后允许A的通信请求

公钥的分配

一般由权威机构建立认证中心CA

每个实体都有CA发的证书,其中包含公钥、拥有者的标识信息(人名、IP),证书本身被CA做了数字签名,任何用户可获得CA的公钥


互联网使用的安全协议

目前在网络层、运输层和应用层都有相应的网络安全协议

网络层安全协议

  • IPsec是能够在IP层提供通信安全的协议族,其实一个框架
  • IPsec数据报(IP安全数据报)有2种工作方式:运输方式、隧道方式。其中后者使用最多

隧道方式是在原始的IP数据报的前后添加若干控制信息,再加上新的IP首部,构成一个IP安全数据报
在这里插入图片描述

  • 可以看到,IP安全数据报中原始的IP数据报被加密
  • 新加的IP首部是不加密的(否则互联网上的路由器无法转发)
  • 新的源地址为负责IPsec加密处理的路由地址,目的地址为原始地址或原始地址所在网络的路由地址

假设公司总部主机 H 1 H_1 H1与分公司主机 H 2 H_2 H2通信
IP数据报首先经过公司总部的路由器 R 1 R_1 R1,经过IPsec的加密处理称为IP安全数据报(IP首部的目的地址为分公司路由器 R 2 R_2 R2
该安全数据报经互联网中多个路由器转发,最终到达 R 2 R_2 R2,后者对其解密,还原出原始的数据报,传送到终点主机 H 2 H_2 H2

假设公司总部主机 H 1 H_1 H1与外地业务员主机 H 3 H_3 H3通信
IP数据报首先经过公司总部的路由器 R 1 R_1 R1,经过IPsec的加密处理称为IP安全数据报(IP首部的目的地址为主机 H 3 H_3 H3
该安全数据报到达主机 H 3 H_3 H3后,利用事先安装的IPsec对其做鉴别和解密,还原出原始的数据报

运输层安全协议

  • 运输层安全协议主要有两个:安全套接字层SSL运输层安全TLS
  • TLS是在SSL3.0的基础上设计的,为所有基于TCP的网络应用提供安全数据传输服务
  • 应用层使用SSL最多的是HTTP。当使用普通不加密的浏览器查看网页时,HTTP直接使用TCP连接;当使用信用卡进行网上支付时,HTTP就调用SSL对网页加密,此时网址栏http变成https表示此时使用的是提供安全服务的HTTP
    在这里插入图片描述
    如上图右,此时SSL形成了一个子层,连接应用层和传输层:
    在发送方,SSL从SSL套接字接收应用层数据,对其加密,然后把加密的数据送给TCP套接字
    在接收方,SSL从TCP套接字读取数据,解密后通过SSL套接字把数据交给应用层

应用层安全协议

  • PGP是应用层为电子邮件提供安全服务的协议,已经成为电子邮件事实上的标准
  • 电子邮件的一个特点是,通信双方并没有建立任何会话(发件和收件在时间上是分离的),因此双方无法协商,只能将加密信息附加在数据报上
  • PGP很难被攻破,目前可以认为PGP是足够安全的
    在这里插入图片描述

上图是邮件发送者A使用PGP加密的过程:

  1. 对明文邮件X做MD5运算,获得报文摘要H,然后用A的私钥 S K A SK_A SKA对H做D运算,将其拼接在X后面得到扩展邮件
  2. 使用A自己生成的一次性秘钥对扩展邮件做加密
  3. 使用B的公钥 P K B PK_B PKB对一次性秘钥做加密
  4. 把加密的一次性秘钥和加密的扩展邮件发送给B

发件方和收件方可以通过CA签发的证书来获得和验证对方的公钥


防火墙与入侵检测

  • 防火墙是一种特殊编程的路由器,通过实施访问控制策略严格控制进出网络边界的分组,尽可能减少潜在入侵的发送
  • 入侵检测系统IDS是系统防御的第二道防线,通过对进入网络的分组进行深度分析发现疑似入侵的行为

防火墙技术分2类:

  1. 分组过滤路由器
    根据过滤规则对进出内部网络的分组执行转发或丢弃
    过滤规则是基于分组的网络层或运输层首部信息,如IP地址、端口、协议类型等
    比如通过阻止23号端口的入分组实现外部无法使用TELNET(使用23号端口)登录到内部网络的主机
  2. 应用网关
    应用网关是特异性的,对每种应用都需要特定的应用网关
    当某应用客户进程向服务器发送请求报文时,先发送给应用网关,后者在应用层打开该报文,查看其是否合法
    如果合法则应用网关以客户进程的身份将请求报文转发给服务器,否则丢弃报文

入侵检测方法可分为基于特征的入侵检测和基于异常的入侵检测:

  1. 基于特征的入侵检测
    维护一个所有已知攻击标志性特征的数据库,每种特征是一个与某种入侵活动相关联的规则集
    只能检测已知攻击
  2. 基于异常的入侵检测
    通过观察正常运行的网络流量,学习正常流量的统计特性和规律
    当检测到网络中流量的某种统计规律不正常时,认为可能发生了入侵行为
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值