《计算机网络(第七版)》谢希仁——网络安全

hu# 网络安全

网络安全问题概述

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

计算机网络的通信面临两大类威胁——主动攻击被动攻击

  • 被动攻击:指攻击者从网络上窃听他人的通信内容,通常把这类攻击称为截获。在被动攻击中,攻击者只是观察和分析某一个协议数据单元PDU而不干扰信息流
  • 主动攻击有以下几种最常见的方式:
    • 篡改、恶意程序(计算机病毒、木马、后门入侵和流氓软件等等)
    • 拒绝服务DoS:指攻击者向互联网上的某个服务器不停的发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪(SYN flood就属于该攻击);若从互联网上的成百上千个网站集中攻击一个网站,则称为分布式拒绝服务DDoS,有时也称为网络带宽攻击连通性攻击

安全的计算机网络

一个安全的计算机网络应设法达到以下四个目标:

  • 保密性、端点鉴别、信息的完整性、运行的安全性

访问控制对计算机系统的安全性非常重要。必须对访问网络的权限加以控制,并规定每个用户的访问权限。由于网络是个非常复杂的系统,其访问控制机制比操作系统的访问控制机制更复杂,尤其在安全要求更高的多级安全情况下更是如此

两类密码体制

对称密钥密码体制

所谓对称密钥密码体制,即加密密钥与解密密钥是使用相同的密码体制

数据加密标准DES数据对称密钥密码体制,它是一种分组密码。在加密前,先对整个的明文进行分组。每一个分组为64位长的二进制数据。然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。最后将各组密文串接起来,即得出整个密文
目前单重DES已不再安全,学者们提出了三重DES,三重DES广泛用于网络、金融、信用卡等系统

公钥密码体制

公钥密码体制使用不同的加密密钥与解密密钥

公钥密码体制的产生主要有两个方面的原因,一是由于对称密钥密码体制的密钥分配问题,二是由于对数字签名的需求

目前最著名的是RSA体制,它是一种基于数论中的大数分解问题的体制

在公钥密码体制中,加密密钥PK(公钥)是向公众公开的,而解密密钥SK是需要保密的,加密算法E和解密算法D也都是公开的

公钥密码体制的加密和解密过程有如下特点:

  • 密钥对产生器产生出接收者的一对密钥:加密密钥和解密密钥;发送者所用的加密密钥就是接收者的公钥,它向公众公开。而接收者所用的解密密钥就是接收者的私钥,对其他人保密
  • 发送者用接收者的公钥通过加密算法对明文加密得出密文,然后发送给接收者;接收者用自己的私钥进行解密算法恢复出明文
  • 虽然在计算机上很容易产生出成对的公钥和私钥,但从已知的公钥推导出私钥是计算上不可能的
  • 虽然公钥可用来加密,但却不能用来解密
  • 从运算的角度来看,加密和解密的顺序可以颠倒,但通常都是先加密再解密

公开密钥与对称密钥在使用通信信道方面有很大的不同。在使用对称密钥时,由于双方使用同样的密钥,因此在通信信道上可以进行一对一的双向保密通信,每一方即可用此密钥加密明文,也可以用相同的密钥解密密文。但这种保密仅限于持有此密钥的双方
但在使用公开密钥时,在通信信道上可以是多对一的单向保密信道

注意:任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量,而不是简单的取决于加密的体制

数字签名

数字签名必须能够实现以下三点功能:

  • 接收者能够核实发送者对报文的签名,也就是报文鉴别
  • 接收者确信所收到的数据和发送者发送的完全一样而没有被篡改过,即报文的完整性
  • 发送者事后不能抵赖对报文的签名,即不可否认

为了进行签名,A用其私钥对报文进行D运算,得到某种不可读的密文,然后发送给B;B为了核实签名,用A的公钥进行E运算,还原出明文
注意:任何人用A的公钥都可以还原出明文,可见签名并非为了保密,而是为了验证身份

下面讨论一下为什么数字签名具有上述三点功能:

  • 因为除A以外没有别人持有A的私钥,所以除A外没有人能产生A的密文,这样B就相信报文是A发送的,这就实现了报文鉴别
  • 同理,其他人如果篡改了报文,但由于无法得到A的私钥对报文进行加密,那么B对篡改后的报文进行解密就会得出不可读的明文,就知道报文被篡改过。这样就可以保证报文的完整性
  • 若A要抵赖层发送报文给B,B可把明文及对密文给第三者看,第三者很容易用公钥去证实A确实发送报文给B。这就是不可否认

如果要对签名的传输进行加密,则只需要用B的公钥对密文再进行一次加密即可

数字签名可以实现报文鉴别,但缺点是:对较长的报文进行数字签名会使计算机增加非常大的负担,因为需要较多的时间来进行运算

鉴别

在网络安全中,鉴别是网络安全中一个很重要的问题。鉴别和加密是不相同的概念。鉴别是要验证通信的对方的确是自己所要通信的对象,而不是其他的冒充者,并且所传送的报文是完整的,没有被其他人篡改过

注意: 鉴别与授权是不同的概念。授权涉及的问题是:所进行的过程是否被允许

报文鉴别

比数字签名更高的办法是:密码散列函数

散列函数具有下面两个特点:

  • 它的输入可以很长,但其输出长度则是固定的,并且较短
  • 不同的散列值对应不同的输入,但不同的输入却可能得出相同的散列值

在密码学中使用的散列函数称为密码散列函数,其最重要的特点是:要找到两个不同的报文,它们具有相同的密码散列输出,在计算上是不可能的。也就是说密码散列函数是一种单向函数

实体鉴别

实体鉴别和报文鉴别不同。报文鉴别是对每一个收到的报文都要鉴别报文的发送者,而实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次

密钥分配

由于密码算法是公开的,网络的安全性就完全基于密钥的安全保护上。因此在密码学中出现了一个重要的分支——密钥管理

密钥分配是密钥管理中最大的问题。密钥必须通过最安全的通路进行分配

  • 可以派非常可靠的信使携带密钥分配给互相通信的用户,这称为网外分配方式
  • 但随着用户的增多和网络流量的增大,密钥更换更频繁,派信使的方式已不再适用,而应采用网内分配方式,即密钥自动分配

对称密钥的分配

对称密钥分配存在以下两个问题:

  • 如果n个人中的每一个需要和其他n-1个人通信,就需要n(n-1)个密钥,但每两个人共享一个密钥,因此密钥数是n(n-1)/2。这常称为 n 2 n^2 n2问题。如果n是个很大的数,所需的密钥数量就非常大
  • 通信的双方怎样才能安全的得到共享的密钥呢?正因为网络不安全,所以才需要适用加密技术。但密钥又需要怎样传送呢?

目前常用的密钥分配方式是设立密钥分配中心KDC。KDC是大家都信任的机构,其任务就是给需要进行秘密通信的用户临时分配一个会话密钥。密钥分配分为三个步骤:

  • 用户A向密钥分配中心KDC发送时用明文,说明想和用户B通信。在明文中给出A和B在KDC登记的身份
  • KDC用随机数产生 “一次一密” 的会话密钥供A和B的这次会话使用,然后向A发送回答报文。这个回答报文用A的密钥加密。这个报文中只含这次会话使用的密钥和请A转给B的一个票据,该票据包括A和B在KDC登记的身份,以及这次会话将要使用的密钥。票据用B的密钥加密,A无法知道此票据的内容,因为A没有B的密钥,当然A也不需要知道此票据的内容
  • 当B收到A转来的票据并使用自己的密钥解密后,就知道A要和他通信,同时也知道KDC为这次和A通信所分配的会话密钥

此后,A和B就可以使用会话密钥进行这次通信了。注意,在网络上传送密钥时,都是经过加密的。解密用的密钥都不在网上传送

公钥的分配

在公钥密码体制中,需要有一个值得信赖的机构来将公钥与其对应的实体进行绑定,这样的机构就叫做认证中心CA,它一般由政府出资建立。每个实体都有CA发来的证书,里面有公钥及其拥有者的标识信息。此证书被CA进行了数字签名,任何用户都从可信的地方获得认证中心CA的公钥,此公钥用来验证某个公钥是否为某个实体所拥有(通过向CA查询)

互联网使用的安全协议

网络层安全协议

IPsec协议簇概述
在VPN中传送的信息就是经过IPsec加密的

IPsec并没有限定用户必须使用何种特定的加密和鉴别算法。实际上IPsec是个框架,它允许通信双方选择合适的算法和参数。为保证互操作性,IPsec还包含了一套加密算法,所有IPsec的实现都必须使用

IPsec协议簇中的协议可划分为以下三个部分:

  • IP安全数据报格式的两个协议:鉴别首部AH协议封装安全有效载荷ESP协议
  • 有关加密算法的三个协议
  • 互联网密钥交换IKE协议

AH协议提供源点鉴别和数据完整性,但不能保密;而ESP协议比AH协议复杂得多,它提供源点鉴别、数据完整性和保密

IP安全数据报有以下两种工作方式:

  • 运输方式:在整个运输层报文段的前后分别添加若干控制信息,再加上IP首部,构成IP安全数据报
  • 隧道方式:在原始的IP数据报的前后分别添加若干控制信息,再加上新的IP首部,构成IP安全数据报

注意: IP数据报的首部是不加密的,为了网络上的主机能够识别;加密的是IP数据报的数据部分

在发送IP安全数据报之前,在源实体和目的实体之间必须创建一条网络层的逻辑连接,即安全关联SA。这样,传统的互联网中无连接的网络就变为了具有逻辑连接的一个层。安全关联是从源点到终点的单向连接

运输层安全协议

现在运输层广泛使用的两个安全协议分别是:

  • 安全套接字层SSL
  • 运输层安全TLS

SSL作用在端系统应用层的HTTP和运输层之间,在TCP之上建立起一个安全通道,为通过TCP传输的应用层数据提供安全保障;TLS是在SSL3.0的基础上设计而来,为所有基于TCP的网络应用提供安全数据传输服务

SSL提供的安全服务可归纳为以下三种:

  • SSL服务器鉴别,允许用户证实服务器的身份
  • SSL客户鉴别,SSL的可选安全服务,允许服务器证实客户的身份
  • 加密的SSL会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改

下面以万维网应用为例来说明SSL的工作过程:

  • 协商加密算法:浏览器A向服务器B发送浏览器的SSL版本号和一些可选的加密算法;B从中选定自己所支持的算法,并告知A
  • 服务器鉴别:服务器B向浏览器A发送包含其RSA公钥的数字证书;A使用该证书的认证机构CA公开发布的RSA公钥对该证书进行验证
  • 会话密钥计算:由浏览器A随机产生一个秘密数;用服务器B的RSA公钥进行加密后发送给B;双方根据协商的算法产生共享的对称会话密钥
  • 安全数据传输:双方用会话密钥加密和解密它们之间传送的数据并验证其完整性

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

防火墙作为一种访问控制技术,通过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降低这类安全威胁所带来的安全风险。

由于防火墙不可能阻止所有入侵行为,作为系统防御的第二道防线,入侵检测系统IDS通过对进入网络的分组进行深度分析与检测发现疑似入侵行为的网络活动,并进行警报以便进一步采取相应的措施

防火墙是一种特殊编程的路由器,安装在一个网点和网络的其余部分之间,目的是实施访问控制策略

你可能感兴趣的:(网络安全)