网络安全概述

在早期的互联网(也是一种计算机网络)中数据都是明文传输的,例如直接使用http协议。但由于越来越多的商业和政府的数据也都在互联网传输,直接使用明文传输,相当于让数据在网络中裸奔,而且网络中攻击者可以直接窃取数据并伪造数据,特别不安全。此时,网络安全就受到重视。

计算机网络通信面临的安全威胁有两大类:被动攻击和主动攻击。

1、被动攻击

被动攻击(也叫截获)指攻击者在网络窃听他人的通信内容。即使对数据进行了加密,但是攻击者也可以通过目标IP进行流量分析。

2、主动攻击

主动攻击的方式有很多,例如:

  • 篡改:指攻击者截获客户A与客户B之间通信数据,并伪造数据发送给客户A或客户B。这种攻击方式也叫中间人攻击。

  • 恶意程序:主要是计算机病毒,例如早年间出现的"熊猫烧香"病毒,将用户计算机上锁,让用户支付货币,否则威胁用户会删除计算机所有文件。

  • 拒绝服务:Denies of Service(DoS),指攻击者向网络上某个服务器(例如http服务器)发送大量的分组,使该服务器服务无法为其他正常用户提供服务。它的一个升级版本叫分布式拒绝服务攻击(Distribute Denies of Servcie),指攻击者利用大量的"肉鸡"集中攻击某一个服务器,将服务器的资源瞬间耗尽而陷入瘫痪。

二、网络安全的方法

在互联网中通信,首先不能明文传输,就必须对数据进行加密。保密性问题解决后,要对鉴别客户端和服务器的身份吧,不然攻击者伪造一个身份,保密性就没有意义了。保密性和端点鉴别问题解决后,若加密消息缺失,信息不完整,不可能让客户端和服务器双方去猜对方的信息吧,这就需要对信息完整性进行检查。虽然以上问题都解决了,但是攻击者把服务器干瘫痪了,网络通信又何从谈起,这就需要进行访问控制。

2.1 保密性

一般性的加密模型图:

图中的加密密钥K和解密密钥K是相同的一串字符串,当然也可以不一样。密钥相同或不同引申出了两类密码体制

1、对称密钥密码体制

加密密钥和解密密钥用的相同一串字符串。

对称密钥加密标准:DES,DES的保密性仅取决于对密钥的保密,而算法是公开的。DES对数据如何进行加密以及加密算法都是已知的,只需要反推计算就可以算出实际的数据。使用的密钥是64位的,其中8位是用于奇偶校验的,实际密钥是56位。攻击需要猜测56位长度密钥的可能性,理论性是可以破解的,只是时间问题。为了提高安全性,提出3重DES加密标准,表达式:Y = DES~K1~(DES~K2~(DES~K1~(X)))

2、公钥密码体制

加密密钥和解密密钥用的不同一串字符串。

在公钥密码体制中,加密密钥(即公钥)是向公众公开的,解密密钥(即私钥)是需要保密的。同时加密算法和解密算法也是公开。

发送者:简称A。接收者:简称B。

使用公钥密码体制一般性的加解密流程:A使用B的公钥对明文进行加密算法进行加密得到密文,经过网络传送到B,B使用B的私钥对密文进行解密得到明文。

2.2 数字签名

如何保证数据的完整性,以及发送者的不可否认性呢?可以通过数字签名解决。可以通过多种方式实现数字签名,但普遍使用公钥算法实现。

公钥算法实现数字签名的一般性流程:A使用A的私钥对明文进行运算(签名)的到密文,经过网络传送到B,B使用A的公钥对密文进行运算(核实签名)得到明文。由于A的私钥是不公开的,且只能通过A的公私进行核实,所以可以保证数据的完整性和发送者的不可否认性。

2.3 鉴别

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

鉴别主要讨论:报文鉴别和实体鉴别。

  • 报文鉴别

通过数字签名的方式也能实现对报文的鉴别,但是对于报文较长进行数字签名会花费计算机CPU时间。需要找到一种简单的方法对报文进行鉴别,所以密码散列函数就出来了。

特点:

  • 散列函数的输入可以很长,但其输出长度则是固定的,并且较短。散列函数的输出叫散列值(或散列)。

  • 不同的散列值肯定对应于不同的输入,但不同的输入却可能得出相同的散列值。要找到两个不同的报文,它们具有同样的密码散列函数输出,在计算上是不可行的。

实用的散列函数:MD5 和 SHA-1,MD即 Message Digest的缩写,意思是报文摘要,MD就是报文摘要的第5个版本。由于密码学的发展,根据相同的散列值找到不同的输入成为了可能,MD5就不安全了,被另一种叫做安全散列算法SHA(Secure Hash Algorithm)标准取代。

对散列值用密钥加密得出的结果叫做报文鉴别码MAC(Message Authentication Code),现在已经有好几个不同的MAC标准,使用最广泛的是HMAC,它可以和MD5或SHA-1一起使用。

报文鉴别示意图:

  • 实体鉴别

实体鉴别是在系统接入的全部持续时间对和自己通信的对方实体只需验证一次

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2052.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

39.【4】CTFHUB web sql 布尔注入

进入靶场 按照提示输入1 布尔注入只显示正确与否,手动注入太麻烦,用sqlmap -dbs爆出库名 -tables爆出表名 -columns 爆出字段名 --dump得到flag 笔记 1,sqlmap使用步骤 -dbs 爆出表名 -tables爆出库名 -columns爆出字段名 --dump爆出字段内容 2&a…

C#中通道(Channels)的应用之(生产者-消费者模式)

一.生产者-消费者模式概述 生产者-消费者模式是一种经典的设计模式,它将数据的生成(生产者)和处理(消费者)分离到不同的模块或线程中。这种模式的核心在于一个共享的缓冲区,生产者将数据放入缓冲区&#x…

【STM32】HAL库USB实现软件升级DFU的功能操作及配置

【STM32】HAL库USB实现软件升级DFU的功能操作及配置 文章目录 DFUHAL库的DFU配置修改代码添加条件判断和跳转代码段DFU烧录附录:Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏…

kotlin的dagger hilt依赖注入

依赖注入(dependency injection, di)是设计模式的一种,它的实际作用是给对象赋予实例变量。 基础认识 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceSta…

Uniapp判断设备是安卓还是 iOS,并调用不同的方法

在 UniApp 中,可以通过 uni.getSystemInfoSync() 方法来获取设备信息,然后根据系统类型判断当前设备是安卓还是 iOS,并调用不同的方法。 示例代码 export default {onLoad() {this.checkPlatform();},methods: {checkPlatform() {// 获取系…

【MySQL】MVCC详解, 图文并茂简单易懂

欢迎来到啊妮莫的学习小屋 祝读本文的朋友都天天开心呀 目录 MVCC简介快照读与当前读快照读当前读 隔离级别隐藏字段和Undo Log版本链✨MVCC原理--ReadView✨ReadView简介设计思路适用隔离级别重要内容 ReadView规则MVCC整体流程 不同隔离级别下的MVCC读已提交可重复读 总结 M…

VSCode Live Server 插件安装和使用

VSCode Live Server是一个由Ritwick Dey开发的Visual Studio Code扩展插件,它提供了一个带有实时重载功能的本地开发服务器。在VSCode中安装和使用Live Server插件进行实时预览和调试Web应用程序。这将大大提高前端开发效率,使网页设计和开发变得更为流畅…

MC1.12.2 macOS高清修复OptiFine运行崩溃

最近在玩RLCraft,在windows中运行正常的,移植到macOS中发现如果加载OptiFine模组就会崩溃 报错日志 报错日志如下,其中已经包含了各种版本信息,我就不单独说明了。这里说一下,报错的时候用的是oracle jdk x64的&…

医学图像分割半监督学习记录

半监督学习中,一部分数据带标签,一部分不带标签,在模型训练过程中,带标签的数据我们注重分类,无标签的数据我们注重分布。 半监督坚持一致性正则(consistency regularization)来进行半监督学习&…

12 USART串口通讯

1 串口物理层 两个设备的“DB9接口”之间通过串口信号建立连接,串口信号线中使用“RS232标准”传输数据信号。由于RS232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过“电平转换芯片”转换成控制器能识别的“TTL校准”的电平信号&#xff…

工程水印相机结合图纸,真实现场时间地点,如何使用水印相机,超简单方法只教一次!

在工程管理领域,精准记录现场信息至关重要。水印相机拍照功能,为工程人员提供了强大的现场信息记录工具,助力工程管理和统计工程量,更可以将图片分享到电脑、分享给同事,协同工作。 一、打开图纸 打开手机版CAD快速看图…

abap安装cl_json类

文章来自 SAP根据源码导入/ui2/cl_json类 - pikeduo - 博客园 新建一个se38程序,把源码放到里,源码如下 *----------------------------------------------------------------------* * CLASS zcl_json DEFINITION *----------------------------…

day09_kafka高级

文章目录 kafka高级今日课程内容核心概念整理Kafka的数据位移offset**为什么 Kafka 的 offset 就像是“书签”?****实际意义** Kafka的基准/压力测试测试生产的效率测试消费的效率 Kafka的分片与副本机制kafka如何保证数据不丢失生产者端Broker端消费者端相关参数 K…

vue2制作长方形容器,正方形网格散点图,并且等比缩放拖动

需求:有个长方形的容器,但是需要正方形的网格线,网格线是等比缩放的并且可以无线拖动的,并且添加自适应缩放和动态切换,工具是plotly.js,已完成功能如下 1.正方形网格 2.散点分组 3.自定义悬浮框的数据 4.根据窗口大小…

Spring Boot 2 学习指南与资料分享

Spring Boot 2 学习资料 Spring Boot 2 学习资料 Spring Boot 2 学习资料 在当今竞争激烈的 Java 后端开发领域,Spring Boot 2 凭借其卓越的特性,为开发者们开辟了一条高效、便捷的开发之路。如果你渴望深入学习 Spring Boot 2,以下这份精心…

【PyQt】如何在mainwindow中添加菜单栏

[toc]如何在mainwindow中添加菜单栏 如何在mainwindow中添加菜单栏 主要有两种方法: 1.直接创建mainwindow进行添加 2.使用ui文件加载添加 第二种方法更为常见,可以应用到实际 1.直接创建mainwindow进行添加 import sysfrom PyQt5.QtWidgets import …

Vue如何构建项目

目录 1.安装Node.js 2.换源(建议) 3.选择一个目录 4.创建一个vue项目 5.验证是否成功 1.安装Node.js 安装18.3或更⾼版本的 Nodejs 点击下载->Node.Js中文网 node -v npm -v 安装好后在windows的cmd窗口下运行 如果能运行出结果就说明安装好了。 2.换源(建议) //…

uniapp 小程序 textarea 层级穿透,聚焦光标位置错误怎么办?

前言 在开发微信小程序时,使用 textarea 组件可能会遇到一些棘手的问题。最近我在使用 uniapp 开发微信小程序时,就遇到了两个非常令人头疼的问题: 层级穿透:由于 textarea 是原生组件,任何元素都无法遮盖住它。当其…

[c语言日寄]精英怪:三子棋(tic-tac-toe)3命慢通[附免费源码]

哈喽盆友们,今天带来《c语言》游戏中[三子棋boss]速通教程!我们的目标是一边编写博文,一边快速用c语言实现三子棋游戏。准备好瓜子,我们计时开始! 前期规划 在速通中,我们必须要有清晰的前期规划&#xf…

Chatper 4: Implementing a GPT model from Scratch To Generate Text

文章目录 4 Implementing a GPT model from Scratch To Generate Text4.1 Coding an LLM architecture4.2 Normalizing activations with layer normalization4.3 Implementing a feed forward network with GELU activations4.4 Adding shortcut connections4.5 Connecting at…