网络安全

  • 网络安全概述
    • 1、计算机网络面临的安全性威胁
    • 2、 数据加密模型
  • 两类密码体制
    • 1、对称密钥密码体制
    • 2、公钥密码体制
  • 数字签名
  • 鉴别
    • 1、报文鉴别
    • 2、实体鉴别
  • 密钥分配
    • 1、对称密钥的分配
    • 2、公钥的分配
  • 互联网使用的安全协议
    • 1、网络层安全协议
    • 2、运输层安全协议
    • 3、应用层安全协议
  • 系统安全:防火墙与入侵检测
    • 1、防火墙
    • 2、入侵检测系统

网络安全概述

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

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

被动攻击:是指攻击者从网络上窃听他人的通信内容,通常把这类攻击称为截获。

主动攻击主要有以下几种形式:

  1. 篡改:攻击者故意篡改网络上传送的报文。这里包括彻底中断传送的报文,甚至是把完全伪造的报文传送给接收方;
  2. 恶意程序:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵以及流氓软件等等;
  3. 拒绝服务Dos(Denial of Service):指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。

一个安全的计算机网络应该设法达到以下四个目标:保密性、端点鉴别、信息的完整性和运行的安全性。

2、 数据加密模型

如下图中,A向B发送明文X,但通过加密算法E运算后,就得出密文Y。接收端利用解密算法D运算和解密密钥K,解出明文。

密钥由密钥中心提供,当密钥需要向远地传送时,一定要通过另一个安全信道。

两类密码体制

1、对称密钥密码体制

对称密钥密码体制:即加密密钥与解密密钥是使用相同的密码体制。

数据加密标准DES属于对称密钥密码体制:DES是一种分组密码。在加密前,先对整个的明文进行分组。每一个组为64位长的二进制数据。然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥占64位(实际密钥长度为56位,外加8位用于奇偶检验)。

DES的保密性仅取决于对密钥的保密,而算法是公开的。

三重DES:把一个64位明文用一个密钥加密,再用另一个密钥解密,然后再使用第一个密钥加密。

2、公钥密码体制

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

加密密钥PK(public key,即公钥)是向公众公开的,而解密密钥SK(secret key,即私钥或密钥)则是需要保密的。加密算法E和解密算法D也都是公开的。

密钥对产生器产生出接收者B的一对密钥:加密密钥和解密密钥。发送者A所用的加密密钥就是接收者B的公钥,它向公众公开。而B所用的解密密钥就是接收者B的私钥,对其他人都保密。

发送者A用B的公钥通过加密算法E运算对明文X加密,得出密文Y,发送给B。B用自己的私钥通过解密算法D运算进行解密。

使用对称密钥,可进行一对一的通信。而使用公钥密码时,可以是多对一的单向保密通信(多人持有B的公钥)。

数字签名

数字签名需要具备以下三种功能:

  1. 报文鉴别:接收者能够核实发送者对报文的签名,其他人无法伪造此签名;

  2. 报文的完整性:接收者确信所收的数据和发送者发送的完全一样;

  3. 不可否认:发送者事后不能抵赖对报文的签名。

    A把经过解密运算得到的密文传送给B。B为了核实签名,用A的公钥进行加密运算,还原出明文X。任何人用A的公钥进行加密运算后都可以得出A发送的明文。上图中的通信方式并非为了保密,而是为了进行签名和核实签名,即确认此明文的确是A发的。

因为除A外没有人持有A的私钥,所以除A外没有别人能产生密文,这样B就相信报文X是A签名发送的,这就是报文的鉴别功能。

同理,如果其他人如果篡改过报文,但是无法得到A的私钥来对X进行加密,所以对篡改过的报文进行解密后将得出不可读的明文,即验证了报文的完整性;

因为只有A持有私钥,所以只要能够用解密出明文,A就无法抵赖对此报文的签名。

上面的过程,仅对报文进行了签名,但是对报文X本身还需要进行加密。完整的过程如下图所示:

鉴别

鉴别是要验证通信的对方的确是自己所要通信的对象,而不是其他冒充者,并且所传送的报文是完整的,没有被其他人篡改过。

鉴别分为两种:

  1. 报文鉴别:鉴别收到的报文的确是报文的发送者发送的,而不是其他人伪造的或篡改的。这就包含了端点鉴别和报文完整性的鉴别;

  2. 实体鉴别:仅仅鉴别发送报文的实体。实体可以是一个人也可以是一个进程。

1、报文鉴别

数字签名能够实现对报文的鉴别,但是对较长的报文进行数字签名会使计算机增加很大的负担,需要较多的时间来计算。我们使用密码散列函数这种相对简单的方法进行鉴别。

密码学中的散列函数是单向函数,逆向变换是不可能的。

常用的散列函数有:MD5和SHA-1,但是都被证明是不安全的。
报文鉴别码MAC(Message Authentication Code):需要对散列值进行一次加密。

在A从报文X导出散列H后,就对散列H用密钥K加密,这样得到的结果叫做报文鉴别码MAC。A把已加密的报文鉴别码MAC拼接在报文X后面,得到扩展的报文,发送给B。

B收到扩展的报文后,先把报文鉴别码MAC与报文X分离出来。然后用同样的密钥K对收到的报文鉴别码MAC进行解密运算,得出加密前的散列H。再把报文X进行散列函数运算,得出散列H(X),如果H(X)=H,则相信收到的报文X是A发送的。

由于入侵者不掌握密钥K,所以入侵者无法伪造A的报文鉴别码MAC,因而无法伪造A发送的报文,这就完成了对报文的鉴别。

2、实体鉴别

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

上图中使用对称密钥的方法有很大的漏洞。例如:入侵者C可以从网上截获A发给B的报文,C并不需要破译这个报文,而是直接把这个由A加密的报文发送给B,使B误认为C就是A;然后B就向伪装成A的C发送许多本来应当发给A的报文。这就叫做重放攻击。

为了对付重放攻击,可以使用不重数。不重数就是一个不重复使用的打随机数,即“一次一数”。

A和B对不同的会话必须使用不同的不重数集。由于不重数不能重复使用,所以C在进行重放攻击时无法重复使用所截获的不重数。

密钥分配

密钥分配有两种方式:

  1. 网外分配方式:派非常可靠的信使携带密钥分配给互相通信的各用户;
  2. 网内分配方式:密钥自动分配。

1、对称密钥的分配

目前常用的密钥分配方式是设立密钥分配中心KDC。KDC都是大家信任的机构,其任务是给需要进行秘密通信的用户临时分配一个会话密钥(仅使用一次)。

2、公钥的分配

认证中心CA(Certification Authority)将公钥与其对应的实体进行绑定,一般由政府出资建立。每个实体都有CA发来的证书,里面有公钥及其拥有者的标识信息。

互联网使用的安全协议

1、网络层安全协议

IPsec并不是一个单一的协议,而是能够在IP层提供互联网通信安全的协议族。
IPsec协议族中的协议可划分为以下三个部分:

  • 鉴别首部AH(Authentication Header)协议:AH鉴别源点和检查数据完整性,但不能保密和封装安全有效
  • 载荷ESP(Encapsulation Security Payload):ESP比AH复杂的多,它鉴别源点、检查数据完整性和提供保密。
  • 有关加密算法的三个协议;互联网密钥交换IKE(Internet Key Exchange)协议。

在使用AH和ESP之前,先要从源主机到目的主机建立一条网络层的逻辑连接。此逻辑连接叫做安全关联SA。

IPsec就把传统的因特网无连接的网络层转换为具有逻辑连接的层。

SA(安全关联)是构成IPsec的基础,是两个通信实体经协商(利用IKE协议)建立起来的一种协定,它决定了用来保护数据分组安全的安全协议(AH协议或者ESP协议)、转码方式、密钥及密钥的有效存在时间等。

IP安全数据报的格式如下图所示

2、运输层安全协议

运输层广泛使用的两个协议:

  1. 安全套接字层SSL(Secure Socket Layer):作用在端系统的应用层的HTTP和运输层之间,在TCP之上建立一个安全通道,为通过TCP传输的应用层数据提供安全保障;
  2. 运输层安全TLS(Transport Layer Security):为所有基于TCP的网络应用提供安全数据传输服务。

    如上图所示:

在未使用SSL时,应用层的应用程序的数据通过TCP套接字与运输层进行交互。

使用SSL后,因为SSL增加了TCP的服务(更加安全了),因此SSL应该是运输层协议。然而实际上,需要使用安全运输的应用程序(如HTTP)却把SSL驻留在应用层。如上图所示,应用层扩大了。在应用层序下面多了一个SSL子层,而在应用程序和SSL子层之间,还有一个SSL套接字,其作用和TCP套接字相似,是应用程序和SSL子层的应用编程接口API。

当使用信用卡进行网上支付时,应用程序HTTP就调用SSL对整个网页进行加密,http会变为https,s代表security。TCP的HTTPS的端口是443,而不是平时用的80。

在发送发,SSL从SSL套接字接收应用层的数据,对数据进行加密,然后把加密的数据送往TCP套接字;在接收方,SSL从TCP套接字读取数据,解密后,通过SSL套接字把数据交给应用层。

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

  1. SSL服务器鉴别,允许用户证实服务器身份。支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥;

  2. SSL客户鉴别,SSL的可选安全服务,允许服务器证实客户的身份;

  3. 加密的SSL会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改。

3、应用层安全协议

使用PGP(Pretty Good Privacy)协议给电子邮件提供安全服务。

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

1、防火墙

防火墙(firewall)作为一种访问控制技术,通过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降低这类安全威胁所带来的安全风险。由于防火墙不可能阻止所有入侵行为,作为系统防御的第二道防线,入侵检测系统IDS(Intrusion Detection System)通过对进入网络的分组进行深度分析与检测发现疑似入侵行为的网络活动,并进行报警以便进一步采取相应措施。

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

如下图所示:防火墙位于互联网和内部网络之间。防火墙里面的网络称为“可信的网络”,防火墙外面的网络称为“不可信的网络”。

防火墙技术一般分为以下两类:

  1. 分组过滤路由器:是一种具有分组过滤功能的路由器,它根据过滤规则对进出内部网络的分组执行转发或者丢弃(即过滤)。过滤规则是基于分组的网络层或运输层首部的信息,例如:源/目的IP地址、源/目的端口、协议类型(TCP或UDP)等等。
    分组过滤路由器的优点是:简单高效,且对用户是透明的,但不能对高层数据进行过滤。例如:不能禁止某个用户对某个特定应用进行某个特定的操作,不能支持应用层用户鉴别等。这些功能需要使用应用网关技术来实现。

  2. 应用网关也称为代理服务器,它在应用层通信中扮演报文中继的角色。一种网络应用需要一个应用网关。在应用网关中,可以实现基于应用层数据的过滤和高层用户鉴别。

所有进出网络的应用程序报文都必须通过应用网关。

通常可以将这两种技术组合使用,如上图所示。

2、入侵检测系统

防火墙试图在入侵行为发生之前阻止所有可疑的通信。但事实是不可能阻止所有的入侵行为,有必要采取措施在入侵已经开始,但还没有造成危害或在造成更大危害之前,及时检测到入侵,以便尽快阻止入侵,把危害降到最小。入侵检测系统IDS正是这样一种技术。

IDS对进入网络的分组执行深度分组检查,当观察到可疑分组时,向网络管理员发出告警或执行阻断操作。IDS能用于检查多种网络攻击,包括网络映射、端口扫描、DoS攻击、蠕虫和病毒、系统漏洞攻击等。

入侵检测方法一般可以分为基于特征的入侵检测和基于异常的入侵检测两种。

计算机网络知识总结(七)网络安全相关推荐

  1. 【计算机网络】第七章:网络安全

    [计算机网络]第七章:网络安全 目录 网络安全问题概述 1.1.计算机网络面临的安全性威胁 1.2.被动攻击和主动攻击 1.3.计算机网络通信安全的目标 1.4.恶意程序(rogue program) ...

  2. 【计算机网络知识扫盲】02、计算机网络的概念(转)

    [计算机网络知识扫盲]02.计算机网络的概念(转) 对"计算机网络"这个概念的理解和定义,随着计算机网络本身的发展,人们提出了各种不同的观点. 早期的计算机系统是高度集中的,所有的 ...

  3. 软考知识点——加密算法、常见计算机网络知识

    目录 一.加密算法 1.常见的加密算法 (1)2021年下半年软考上午真题8 (2)2021年上半年软考上午真题9 2.加密技术的应用 3.网络安全协议分层 (1)2021年上半年软考上午真题7 (2 ...

  4. 你应该知道的计算机网络知识

    前言 作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块'废铁', 它们的作用将大打折扣.. 本文的作用呢, 主要是针对不是非网络专业开发的人员准备的 ...

  5. http请求过程_“HTTP请求的整个过程”与它引出了整个计算机网络知识图谱(一)...

    小猿的某同事不甘于现状,近期到处投简历面试.某天,小猿只见某灰头土脸.唉声叹气,于是小猿本着看热闹不嫌事儿大的心态,一脸坏笑凑上去问:"大佬,最近面试咋样,是不是都拿好几个offer了~^_ ...

  6. 你应该知道的计算机网络知识 【转】

    文章来源:你应该知道的计算机网络知识 前言 作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块'废铁', 它们的作用将大打折扣.. 本文的作用呢, 主 ...

  7. 第26节 计算机网络知识

    第26节 计算机网络知识 计算机网络知识 1[单项选择题]Internet上的域名解析服务(DNS)完成域名与IP地址之间的翻译.执行域名服务的服务器被称为DNS 服务器.小张在Internet的某主 ...

  8. 计算机网络知识大全.

    计算机网络知识大全. 一.网络的发展历程 二.计算机网络的概念 三.计算机网络的功能 四.计算机网络分类 五.计算机网络协议及网络模型 六.计算机网络操作系统概述 七.关于IP地址 八.域名和域名系统 ...

  9. 学习计算机网络知识只要一篇就够了!

    目录 概述 什么是计算机网络? 互联网 概述 组成 电路交换与分组交换 电路交换 分组交换 计算机网络的时延 排队时延 处理时延 发送时延(传输时延) 传播时延 计算机网络的体系结构 什么是协议 体系 ...

  10. 前端需要了解的计算机网络知识, 这一篇就够了!(图文并茂,万字长文!)

    作者:lio-mengxiang 原文链接:https://juejin.im/post/5e51febde51d4526c932b390 本文主要目的也是为了非科班前端补充计算机科班基础知识,比如你 ...

最新文章

  1. 青少年电子信息智能创新大赛 赛项说明(Python编程创新挑战赛)
  2. 深入理解分布式技术 - 两阶段的应用 MySQL XA 规范
  3. Python-栈的链式表实现(没写清楚)
  4. c++设计模式之状态模式
  5. 转Oracle Data Guard 理论知识3-自动裂缝检测和解决
  6. win7锁定计算机会断网吗,win7系统如何设置电脑定时断网
  7. 记录:Android中StackOverflow的问题
  8. Linux Shell快速入门
  9. Django的分页器(paginator)
  10. GANs最新综述论文: 生成式对抗网络及其变种如何有用【附pdf下载】
  11. 高效开发 Android App 的 10 个建议
  12. 亚马逊出的平板电脑_亚马逊发布Fire HD 8新系列平板电脑,90美元起
  13. 学习笔记: 委托解析和封装,事件及应用
  14. java文件上传下载接口_java 文件上传下载
  15. idea使用技巧总结,超实用(2年mac idea使用经验)
  16. Android开发之获取手机运行时间
  17. 点乘a*b和叉乘aXb
  18. SiteSucker
  19. Python中 5个非常有用的单行代码
  20. html5富文本编辑器图片,漂亮的富文本编辑器WYSIWYG

热门文章

  1. Win7上安装oracle 10g
  2. 接口设计,这36个核心知识点一定要注意
  3. MySQL 超级入门教程
  4. call、apply、bind的区别?(面试题-JavaScript部分)
  5. json转为tfrecord格式文件怎么转_Origin教程|定向提取所需帧图(视频转图片)
  6. 03基于区块链的电子病历数据库索引设计
  7. mui APP复制粘贴,Native.js复制粘贴
  8. matlab数据分析工具箱,测风数据分析工具包WindAnalysis给大家分享
  9. java 栈和堆 进出顺序_Java内存分配---堆与栈
  10. [GBase 8s 教程]GBase 8s 创建表格