《漫谈计算机网络》上次已经完结啦,今天出一个番外篇!

2022-12-06

今天我们来聊一聊网络安全

废话不多说直接进入正题

网络安全问题概述

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

两大类威胁:被动攻击和主动攻击。

被动攻击

  指攻击者从网络上窃听他人的通信内容。 通常把这类攻击称为截获。 攻击者只是观察和分析某一个协议数据单元 PDU,以便了解所交换的数据的某种性质,但不干扰信息流。 这种被动攻击又称为流量分析 (traffic analysis)

主动攻击

主要有:

篡改:故意篡改网络上传送的报文。这种攻击方式有时也称为更改报文流。

恶意程序 (rogue program):种类繁多,主要包括:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵、流氓软件等。

拒绝服务 DoS (Denial of Service):指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。

分布式拒绝服务 DDoS

  若从互联网上的成百上千的网站集中攻击一个网站,则称为分布式拒绝服务 DDoS (Distributed Denial of Service)。 有时也把这种攻击称为网络带宽攻击或连通性攻击。

通俗的说就是以多打少:通过大规模互连网流量来淹没目标服务器或其他基础设施!!!

因为存在如此的网络计算机网络通信安全的目标潜在威胁导致的网络安全问题,所以

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

对于主动攻击,可以采取适当措施加以检测。 对于被动攻击,通常是检测不出来的。

计算机网络通信安全的目标: 防止分析出报文内容和流量分析。 防止恶意程序。 检测更改报文流和拒绝服务。

对付被动攻击:加密技术。

对付主动攻击:加密技术 + 鉴别技术。

一个安全的计算机网络应达到四个目标

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

应对方法:数据加密模型

什么是密钥?

加密和解密用的密钥 K (key) 是一串秘密的字符串(即比特串)。 明文通过加密算法 E 和加密密钥 K 变成密文Y:

接收端利用解密算法 D 运算和解密密钥 K  解出明文 X。解密算法是加密算法的逆运算。

加密密钥和解密密钥可以一样,也可以不一样。

密钥通常由密钥中心提供。

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

相关技术

  密码编码学 (cryptography) :密码体制的设计学。 密码分析学 (cryptanalysis) :在未知密钥的情况下从密文推演出明文或密钥的技术。 密码编码学与密码分析学合起来即为密码学 (cryptology)。

  如果不论截取者获得了多少密文,但在密文中都没有足够的信息来唯一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。 如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在计算上是安全的。

具体措施:两类密码体制

对称密钥密码体制 (DES、AES):

加密密钥与解密密钥都使用相同密钥的密码体制。

数据加密标准 DES

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

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

严重问题:DES 密钥长度较短。 现在已经设计出搜索 DES 密钥的专用芯片。56 位 DES 已不再认为是安全的了。

三重 DES

  使用两个 56 位的密钥。 把一个 64 位明文用一个密钥加密,再用另一个密钥解密,然后再使用第一个密钥加密,即

高级加密标准 AES

  2002 年成为美国政府加密标准。现在是 ISO/IEC 18033-3 标准。 高级加密标准 AES(Advanced Encryption Standard)是一种分组密码,分组长度为 128 位。 有三种加密标准,其密钥分别为 128 位、192 位和 256 位。 加密步骤复杂,运算速度比 3DES 快得多,安全性也大大加强。

公钥密码体制(RSA)

  又称为公开密钥密码体制。 使用不同的加密密钥与解密密钥。 这种加密体制又称为非对称密钥密码体制。 公钥密码体制产生的主要原因: 1.对称密钥密码体制的密钥分配问题。 2.对数字签名的需求。 典型:RSA 体制,一种基于数论中的大数分解问题的体制。

加密密钥 PK(public key,即公钥):公开。

解密密钥 SK(secret key,即私钥或秘钥):需要保密。

加密算法 E 和解密算法 D :公开。

虽然私钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。

公钥算法的特点

(1) 密钥对产生器产生出接收者 B 的一对密钥: 加密密钥 PKB 和 解密密钥 SKB 。 加密密钥 PKB 就是接收者 B 的公钥,向公众公开。 解密密钥 SKB 就是接收者 B 的私钥对其他任何人都保密。

(2) 发送者 A 用 B 的公钥 PKB 对明文 X 加密(E 运算),然后发送给 B。

接收者 B 用自己的私钥 SKB 解密(D 运算),即可恢复出明文:

3) 从已知的 PKB 实际上不可能推导出 SKB,即从 PKB 到 SKB 是“计算上不可能的”。

(4) 加密密钥是公开的,但不能用来解密,即:

(5) 加密和解密运算可以对调,即加密和解密是互逆的:

开密钥与对称密钥的区别

  使用对称密钥: 在通信信道上可以进行一对一的双向保密通信。 这种保密通信仅限于持有此密钥的双方。

  使用公开密钥: 在通信信道上可以是多对一的单向保密通信。 例如:很多顾客都向同一个网站发送各自的信用卡信息。

防火墙

  前述基于密码的安全机制不能有效解决以下安全问题:

    用户入侵: 利用系统漏洞进行未授权登录; 授权用户非法获取更高级别权限等。

    软件入侵: 通过网络传播病毒、蠕虫和特洛伊木马。 拒绝服务攻击等。

解决方法:

  防火墙:控制进出网络边界的分组。

入侵检测:深度分析与检测进入的分组,发现疑似入侵行为。

防火墙 (firewall)

一般把防火墙里面的网络称为“可信的网络”(trusted network) ,把防火墙外面的网络称为“不可信的网络”(untrusted network).

两类防火墙技术:

分组过滤路由器

具有分组过滤功能的路由器。根据过滤规则对进出内部网络的分组进行过滤(转发或者丢弃)。 过滤规则:基于分组的网络层或运输层首部信息,例如:源/目的IP地址、源/目的端口、协议类型(TCP 或 UDP),等等。

无状态的:独立地处理每一个分组。

有状态的:跟踪每个连接或会话的通信状态,根据状态信息决定是否转发分组。

优点:简单高效,对用户透明

缺点:不能对高层数据进行过滤。例如:不能禁止某个用户对某个特定应用进行某个特定的操作,不能支持应用层用户鉴别等。

应用网关

  也称为代理服务器 (proxy server) 对报文进行中继,实现基于应用层数据的过滤和高层用户鉴别。 所有进出网络的应用程序报文都必须通过应用网关。 应用网关在应用层打开报文查看请求是否合法。 如果合法,应用网关以客户进程的身份将请求报文转发给原始服务器。 如果不合法,则丢弃报文。

缺点: 每种应用都需要一个不同的应用网关 在应用层转发和处理报文,处理负担较重。 对应用程序不透明,需要在应用程序客户端配置应用网关地址。

入侵检测系统(IDS)

入侵检测系统 IDS (Intrusion Detection System) 能够在入侵已经开始,但还没有造成危害或在造成更大危害前,及时检测到入侵,以便尽快阻止入侵,把危害降低到最小。 IDS 对进入网络的分组执行深度分组检查。当观察到可疑分组时,向网络管理员发出告警或执行阻断操作(由于 IDS 的“误报”率通常较高,多数情况不执行自动阻断)。 IDS 能用于检测多种网络攻击,包括:网络映射、端口扫描、DoS 攻击、蠕虫和病毒、系统漏洞攻击等。

两种入侵检测方法

基于特征的 IDS

维护一个所有已知攻击标志性特征的数据库。 特征和规则通常由网络安全专家生成,由机构的网络管理员定制并将其加入到数据库中。 只能检测已知攻击,对于未知攻击则束手无策。 至今为止,大多数部署的 IDS 主要是基于特征的。

基于异常的 IDS

通过观察正常运行的网络流量,学习正常流量的统计特性和规律。 当检测到网络中流量某种统计规律不符合正常情况时,则认为可能发生了入侵行为。 但区分正常流和统计异常流是一个非常困难的。

以上

漫谈计算机网络 连载的其他章节:

1.漫谈计算机网络:概述 ------ 从起源开始到分层协议结构,初识究竟什么是计算机网络? - slowlydance2me - 博客园 (cnblogs.com)

2.漫谈计算机网络:物理层 ----- 双绞线&光纤?,从最底层开始了解计算机网络 - slowlydance2me - 博客园 (cnblogs.com)

3.漫谈计算机网络:数据链路层 ----- 数据链路路在何方? --从点对点数据传输 到 "广泛撒网,重点捕获"的局域网 - slowlydance2me - 博客园 (cnblogs.com)

4.漫谈计算机网络:网络层 ------ 重点:IP协议与互联网路由选择协议 - slowlydance2me - 博客园 (cnblogs.com)

5.漫谈计算机网络: 运输层 ------ 从UDP ->TCP , 从面向通信->面向用户,三次握手/四次挥手? - slowlydance2me - 博客园 (cnblogs.com)

漫谈计算机网络:番外篇 ------网络安全相关知识——>公钥与私钥、防火墙与入侵检测的更多相关文章

  1. 漫谈 Clustering (番外篇): Dimensionality Reduction

    由于总是有各种各样的杂事,这个系列的文章竟然一下子拖了好几个月,(实际上其他的日志我也写得比较少),现在决定还是先把这篇降维的日志写完.我甚至都以及忘记了在这个系列中之前有没有讲过“特征”(featu ...

  2. 漫谈 Clustering (番外篇): Expectation Maximization

    Expectation Maximization (EM) 是一种以迭代的方式来解决一类特殊最大似然 (Maximum Likelihood) 问题的方法,这类问题通常是无法直接求得最优解,但是如果引 ...

  3. UVW源码漫谈(番外篇)—— Emitter

    这两天天气凉了,苏州这边连续好几天都是淅淅沥沥的下着小雨,今天天气还稍微好点.前两天早上起来突然就感冒了,当天就用了一卷纸,好在年轻扛得住,第二天就跟没事人似的.在这里提醒大家一下,天气凉了,睡凉席的 ...

  4. 漫谈 Clustering (番外篇): Vector Quantization

    在接下去说其他的聚类算法之前,让我们先插进来说一说一个有点跑题的东西:Vector Quantization.这项技术广泛地用在信号处理以及数据压缩等领域.事实上,在 JPEG 和 MPEG-4 等多 ...

  5. 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示

    一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...

  6. x64 番外篇——知识铺垫

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  7. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  8. x64 番外篇——保护模式相关

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  9. 番外篇 之 C#委托

    对于上一节 番外篇之C#多线程的反思 反思一:   Thread th = new Thread(参数); ////参数的总结 ////首先,第一情况,对于 Thread th = new Threa ...

  10. python自动化测试应用-番外篇--接口测试1

    篇1                 book-python-auto-test-番外篇--接口测试1 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),至今<安卓a ...

随机推荐

  1. Oracle基础知识汇总一

    Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...

  2. flutter系列之:深入理解布局的基础constraints

    目录 简介 Tight和loose constraints 理解constraints的原则 总结 简介 我们在flutter中使用layout的时候需要经常对组件进行一些大小的限制,这种限制就叫做c ...

  3. Java基础之变量

    Java基础之变量 目录 Java基础之变量 1.变量概述 1.1 为什么需要变量 1.2 简单理解 1.3 变量使用注意事项 1.4 程序中+号的使用 1.5 Java数据类型 1.6 整数类型 1 ...

  4. python中类与对象的命名空间(静态属性的陷阱)、__dict__ 和 dir() 在继承中使用说明

    1. 面向对象的概念 1)类是一类抽象的事物,对象是一个具体的事物:用类创建对象的过程,称为实例化. 2)类就是一个模子,只知道在这个模子里有什么属性.什么方法,但是不知道这些属性.方法具体是什么: ...

  5. CPS攻击案例(一)——基于脉冲宽度调制PWM的无人机攻击

    ​  本文系原创,转载请说明出处 Please Subscribe Wechat Official Account:信安科研人,获取更多的原创安全资讯 原论文链接:sec22-dayanikli.pd ...

  6. P4588 [TJOI2018]数学计算 (线段树)

    用线段树维护操作序列,叶子结点存要乘的数,非叶子结点存区间乘积,每次输出tr[1] 就是答案. 1 #include<bits/stdc++.h> 2 #define ll long lo ...

  7. 网络安全(一)主动进攻之DNS基础和ettercap实现DNS流量劫持

    alittlemc,个人原创,个人理解和观点.若有错误.不理解请与我联系,谢谢! 介绍了DNS的解析过程. DNS劫持的思路和实践. DNS 域名 以为live.bilibili.com为例子,从后到 ...

  8. 微信小程序js-时间转换函数使用

    最近在做云开发博客小程序 采集微信发布的信息放入数据库会有createTime因此发现了不一样的地方 云函数可以直接使用 但是放到引导全局的app.js文件却是找不到该方法-->dateform ...

  9. Scanner的用法 从键盘输入

    先导入包 import java.util.Scanner; 后输入 Scanner Sc=new Scanner(System.in); //(Sc可以自定义,无实质意义) int i; i=Sc. ...

  10. mybatisPlus在Springboot中的使用

    文章目录 1.简介 2.支持的数据库 3.框架 4.创建一个springboot项目 4.1 .pom文件中加入依赖 4.2.yml文件的配置 4.3 .数据库脚本 4.4.实体类 4.5 .启动类添 ...