【计算机网络13】网络安全

2023-11-19

文章目录

1.HTTP协议的安全问题

HTTP 协议默认是采取明文传输的,因此会有很大的安全隐患。

常见的提高安全性的方法是:对通信内容进行加密后,再进行传输。

常见的加密方式有:

  • 不可逆
    • 单向散列函数:MD5、SHA等
  • 可逆
    • 对称加密:DES、3DES、AES等
    • 非对称加密:RSA等
  • 其它
    • 混合密码系统
    • 数字签名
    • 证书

2.单向散列函数(One-way hash function)

单向散列函数,可以根据消息内容计算出散列值。

在这里插入图片描述

散列值的长度和消息的长度无关,无论消息是1bit、10M、100G,单向散列函数都会计算出固定长度的散列值。

在这里插入图片描述

单向散列函数,也被称为消息摘要函数(message digest function)、哈希函数(hash function)。

输出的散列值,也被称为消息摘要(message digest)、指纹(fingerprint)。

2.1 单向散列函数的特点

(1) 根据任意长度的消息,计算出固定长度的散列值。

(2) 计算速度快,能快速计算出散列值。

(3) 消息不同,散列值也不同。

在这里插入图片描述

(4) 具备单向性。

在这里插入图片描述

2.2 常见的几种单向散列函数

MD4、MD5:产生 128bit 的散列值,MD 就是 Message Digest 的缩写

SHA-1:产生 160bit 的散列值

SHA-2:SHA-256、SHA-384、SHA-512,散列值长度分别是 256bit、384bit、512bit

SHA-3:全新标准

2.3 防止数据被篡改

在这里插入图片描述

在这里插入图片描述

2.4 几个网站

MD5加密

https://www.cmd5.com/hash.aspx

MD5解密

https://www.cmd5.com/

其它加密

https://www.sojson.com/encrypt_des.html

https://tool.chinaz.com/tools/md5.aspx

3.对称加密(Symmetric Cryptography)

对称加密,也叫对称密码,在对称加密中,加密、解密时使用的是同一个密钥。

在这里插入图片描述

常见的对称加密算法有:

  • DES
  • 3DES
  • AES

3.1 DES(Data Encryption Standard)

DES 是一种将 64bit 明文加密成 64bit 密文的对称加密算法,密钥长度是 56bit。

规格上来说,密钥长度是 64bit,但每隔 7bit 会设置一个用于错误检查的 bit,因此密钥长度实质上是56bit。

由于 DES 每次只能加密 64bit 的数据,遇到比较大的数据,需要对 DES 加密进行迭代(反复)。

目前已经可以在短时间内被破解,所以不建议使用。

在这里插入图片描述

3.2 3DES(Triple Data Encryption Algorithm)

3DES,将 DES 重复 3 次所得到的一种密码算法,也叫做3重DES

三重DES并不是进行三次DES加密(加密→加密→加密),而是加密(Encryption)→解密(Decryption)→加密(Encryption)的过程。

目前还被一些银行等机构使用,但处理速度不高,安全性逐渐暴露出问题。

3个密钥都是不同的,也称为DES-EDE3。

在这里插入图片描述

在这里插入图片描述

如果所有密钥都使用同一个,则结果与普通的DES是等价的。

在这里插入图片描述

如果 密钥1、密钥3 相同,密钥2 不同,称为DES-EDE2。

在这里插入图片描述

3.3 AES(Advanced Encryption Standard)

取代 DES 成为新标准的一种对称加密算法,又称Rijndael加密法。

AES的密钥长度有 128、192、256bit 三种。

目前 AES,已经逐步取代 DES、3DES,成为首选的对称加密算法。

一般来说,我们也不应该去使用任何自制的密码算法,而是应该使用 AES,它经过了全世界密码学家所进行的高品质验证工作。

3.4 如何解决密钥配送问题

在使用对称加密时,一定会遇到密钥配送问题。

如果 Alice 将使用对称加密过的消息发给了 Bob,只有将密钥发送给 Bob,Bob 才能完成解密。

在发送密钥过程中,可能会被 Eve 窃取密钥,最后 Eve 也能完成解密。

在这里插入图片描述

有以下几种解决密钥配送的方法:

  • 事先共享密钥(比如私下共享)
  • 密钥分配中心(Key Distribution Center,简称KDC)
  • Diffie-Hellman密钥交换
  • 非对称加密

4.非对称加密(Asymmetric Cryptography)

在非对称加密中,密钥分为加密密钥、解密密钥两种,它们并不是同一个密钥。

在这里插入图片描述

加密密钥:—般是公开的,因此该密钥称为公钥(public key),因此,非对称加密也被称为公钥密码(Public-key Cryptography)。

解密密钥:由消息接收者自己保管的,不能公开,因此也称为私钥(private key)。

在这里插入图片描述

4.1 公钥和私钥

公钥和私钥是一一对应的,不能单独生成,一对公钥和私钥统称为密钥对(key pair)。

由公钥加密的密文,必须使用与该公钥对应的私钥才能解密。

由私钥加密的密文,必须使用与该私钥对应的公钥才能解密。

在这里插入图片描述

4.2 解决密钥配送问题

由消息的接收者,生成一对公钥、私钥,将公钥发给消息的发送者,消息的发送者使用公钥加密消息。

非对称加密的加密解密速度比对称加密要慢。

在这里插入图片描述

目前使用最广泛的非对称加密算法是 RSA。

RSA 的名字,由它的 3 位开发者,即 Ron Rivest、Adi Shamir、Leonard Adleman 的姓氏首字母组成。

5.混合密码系统(Hybrid Cryptosystem)

对称加密的缺点:不能很好地解决密钥配送问题(密钥会被窃听)。

非对称加密的缺点:加密解密速度比较慢。

混合密码系统:是将对称加密和非对称加密的优势相结合的方法,解决了非对称加密速度慢的问题,并通过非对称加密解决了对称加密的密钥配送问题。

网络上的密码通信所用的 SSL/TLS 都运用了混合密码系统。

5.1 加密

会话密钥(session key):为本次通信随机生成的临时密钥,作为对称加密的密钥,用于加密消息,提高速度。

加密步骤(发送消息):

  1. 首先,消息发送者要拥有消息接收者的公钥
  2. 生成会话密钥,作为对称加密的密钥,加密消息
  3. 用消息接收者的公钥,加密会话密钥
  4. 将前两步生成的加密结果,一并发给消息接收者

发送出去的内容包括:

  • 用会话密钥加密的消息(加密方法:对称加密)
  • 用公钥加密的会话密钥(加密方法:非对称加密)

在这里插入图片描述

5.2 解密

解密步骤(收到消息):

  1. 消息接收者用自己的私钥解密出会话密钥
  2. 再用第 1 步解密出来的会话密钥,解密消息

在这里插入图片描述

5.3 Alice --> Bob 加密解密流程

发送过程(加密过程)

  1. Bob先生成一对公钥、私钥
  2. Bob把公钥共享给Alice
  3. Alice随机生成一个会话密钥(临时密钥)
  4. Alice用会话密钥加密需要发送的消息(使用的是对称加密)
  5. Alice用Bob的公钥加密会话密钥(使用的是非对称加密)
  6. Alice把第 4、5 步的加密结果,一并发送给Bob

接收过程(解密过程)

  1. Bob利用自己的私钥解密会话密钥(使用的是非对称加密算法进行解密)
  2. Bob利用会话密钥解密发送过来的消息(使用的是对称加密算法进行解密)

6.数字签名

在数字签名技术中,有以下 2 种行为:

  • 生成签名:由消息的发送者完成,通过“签名密钥”生成
  • 验证签名:由消息的接收者完成,通过“验证密钥”验证

如何能保证这个签名是消息发送者自己签的?

用消息发送者的私钥进行签名。

6.1 数字签名过程

在这里插入图片描述

6.2 数字签名过程改进

在这里插入图片描述

6.3 小结

在这里插入图片描述

如果有人篡改了消息内容或签名内容,会是什么结果?

签名验证失败,证明内容被篡改了。

数字签名不能保证机密性?

数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改。

数字签名的作用:

  • 确认消息的完整性
  • 识别消息是否被篡改
  • 防止消息发送人否认

7.公钥、私钥总结(非对称加密 vs 数字签名)

在非对称加密中,任何人都可以使用公钥进行加密。

在这里插入图片描述

在数字签名中,任何人都可以使用公钥验证签名。

在这里插入图片描述

数字签名,其实就是将非对称加密反过来使用。

在这里插入图片描述

既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,即公钥负责加密,私钥负责解密。

既然是签名,那肯定是不希望有人冒充我发消息,所以只有我才能签名,即私钥负责签名,公钥负责验签。

8.证书(Certificate)

8.1 公钥的合法性

在这里插入图片描述

如果遭遇了中间人攻击,那么公钥将可能是伪造的。

如何验证公钥的合法性?证书。

8.2 使用

密码学中的证书,全称叫公钥证书(Public-key Certificate,PKC),跟驾驶证类似,里面有姓名、邮箱等个人信息,以及此人的公钥,并由认证机构(Certificate Authority,CA)施加数字签名。

CA 就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或者组织。

  • 有国际性组织、政府设立的组织
  • 有通过提供认证服务来盈利的企业
  • 个人也可以成立认证机构

各大 CA 的公钥,默认已经内置在浏览器和操作系统中。

在这里插入图片描述

8.3 注册和下载

在这里插入图片描述

8.4 查看 Windows 已经信任的证书

Windows键+R ----> 输入 mmc

文件 ----> 添加/删除管理单元

证书 ----> 添加 ----> 我的用户账户 ----> 完成 ----> 确定

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【计算机网络13】网络安全 的相关文章

  • 计算机网络——传输层

    一 传输层概述 传输层功能 完成主机进程 主机进程之间的报文传输 传输层是真正的端对端的通信 传输层协议在端主机上运行 路由器一般没有传输层 传输层从主机层面上对网络层采取相应补救措施 可以提供更高质量的数据传输能力 传输层独立于网络设备
  • IP地址、子网掩码、默认网关和DNS服务器之间的联系与区别

    文章目录 1 IP地址 2 子网掩码 3 默认网关 4 DNS服务器 1 IP地址 IP 是32位二进制数据 通常以十进制表示 并以 分隔 IP 地址是一种逻辑地址 用来标识网络中一个个主机 IP 有唯一性 指的是公网地址 即每台机器的 I
  • 网络传输基本流程

    网络传输流程图 在数据链路层有一个标识 每一台主机的唯一符 MAC地址 MAC地址 计算机的网卡在出厂时就打上了一串数据 MAC 地址 其通常是唯一的 所以局域网中发消息必须加上目的主机的MAC地址 两台计算机通过 TCP IP 协议通讯的
  • 数据包的传输过程详解及TCP沾包问题

    目录 TCP沾包问题 5个基本知识点 封装报文是从上层到下层 应用层 gt 传输层 gt 网络层 gt 数据链路层 gt 物理层 解封装报文是从下层到上层 数据包传输的过程中 源IP和目标IP不会变 除非遇到NAT SNAT或DNAT 源M
  • IP数据报的发送和转发过程

    IP数据报的发送和转发过程 源主机如何知道目的主机是否与自己在同一网络中 同一个网络中的主机可以直接通信 这属于直接交付 不同网络中的主机不能直接通信 需要路由器的中转 这属于间接交付 现假设主机C给主机F发送ip数据报 主机C将自己的IP
  • tcp三次握手和四次挥手的过程

    TCP是面向连接的 无论哪一方向另一方发送数据之前 都必须先在双方之间建立一条连接 在TCP IP协议中 TCP 协议提供可靠的连接服务 连接是通过三次握手进行初始化的 三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信
  • 端口介绍

    文章来源 https m toutiaocdn com group 6680437870504706572 app news article timestamp 1563010542 req id 201907131735410100230
  • 手撕计算机网络——应用层(四):P2P

    前言 进入应用层学习也有了一段时间了 接下来的这篇文章中小荔枝会将应用层P2P结构体系于我们客户 端系统体系在分发文件中的机理进行整理 希望今天能结束应用层学习哈哈哈 运输层我来啦 目录 前言 一 P2P的自拓展性 二 BitTorrent
  • 什么是protocol分层,垂直service??计算机网络详解【计算机网络养成】

    内容导航 分组丢失和延时 发生原因 四种分组延时 节点处理延迟 排队延迟 传输延时 Transmission 传播延时 Propagation 使用cmd命令tracert 和 tracerert 来检查延迟 分组丢失 吞吐量 有效的数据量
  • 超详细的计算机网络基础知识总结 第四章:网络层

    本文基于 王道计算机考研 计算机网络 其他文章 超详细的计算机网络基础知识 第一章 概述 超详细的计算机网络基础知识 第二章 物理层 超详细的计算机网络基础知识 第三章 数据链路层 超详细的计算机网络基础知识 第五章 传输层 超详细的计算机
  • 前端面试的性能优化部分(3)每天10个小知识点

    目录 系列文章目录 前端面试的性能优化部分 1 每天10个小知识点 前端面试的性能优化部分 2 每天10个小知识点 前端面试的性能优化部分 3 每天10个小知识点 前端面试的性能优化部分 4 每天10个小知识点 前端面试的性能优化部分 5
  • socket编程实现简单的TCP网络程序(下)

    socket编程实现简单的TCP网络程序 下 文章目录 1 封装TCP socket 2 TCP通用服务器 3 英译汉服务器 4 TCP通用客户端 5 英译汉客户端 1 封装TCP socket include
  • 一文搞懂ARP协议

    更多文章请关注我的个人微信公众号 极客熊猫 欢迎扫码关注 什么是ARP ARP是Address Resolution Protocol的首字母缩写 即地址解析协议 如果一台主机要将一个帧发送到另一台主机 只知道这台主机的IP地址是不够的 还
  • 几率大的网络安全面试题(含答案)

    其他面试题类型汇总 Java校招极大几率出的面试题 含答案 汇总 几率大的网络安全面试题 含答案 几率大的多线程面试题 含答案 几率大的源码底层原理 杂食面试题 含答案 几率大的Redis面试题 含答案 几率大的linux命令面试题 含答案
  • 计算机网络运输层运输层协议概述

    运输层协议概述 进程之间的通信 下图说明运输层的作用 可以看出网络层为主机之间提供逻辑通信 而运输层为应用进程之间提供端到端的逻辑通信 根据应用程序的不同需求 运输层有两种不同的运输协议 1 面向连接的TCP 2 无连接的UDP 运输层的两
  • 计算机网络(二)| 物理层上 | 数据通信基础知识 调制 频率范围 信噪比

    文章目录 1 物理层基本概念 2 数据通信基础知识 2 1 数据通信基本概念 2 2 信道基本概念 2 2 1 基带调制 编码 方式 2 2 2 带通调制方式 2 3 信道的极
  • 计算机网络扫盲(4)——时延

    一 概述 在这里 我们考虑分组交换网的情况 因特网可以被看成是一种基础设施 该基础设施为运行在端系统上的分布式应用提供服务 在理想情况下 我们希望因特网服务能够在任意两个端系统之间随心所欲地移动数据而没有任何数据地丢失 然而 这是一个极高的
  • 【计算机网络概述】第一章:概论 1.1什么是Internet

    学习目标 什么是网络 什么是计算机网络 什么是互联网 前言 温馨提示 该文章是小编学习计算机网络的笔记 参考中科大的郑老师hh 这一章是非常重要的 是为之后的学习进行打基础 我们需要努力学习这一章的内容 跨过这座山 他们就会听见你的故事 一
  • 计算机网络基础——光模块(Optical Modules)基础知识介绍

    一 光模块的工作原理 光模块 Optical Modules 的工作原理是将电信号转换为光信号 或者将光信号转换为电信号 实现光纤通信中的光电转换和电光转换功能 具体来说 光模块主要由光电子器件 光发射器和光接收器 功能电路和光接口等部分组
  • 网络安全(黑客)自学秘籍

    想自学网络安全 黑客技术 首先你得了解什么是网络安全 什么是黑客 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 无论网络 Web 移动 桌面 云等哪个

随机推荐

  • 金算盘高手论坛资料中心_3D006期 菜鸟论坛精英PK专栏 速来围观!!

    点上方 菜鸟选号论坛 点右上角 选 星标 每日上午更新 星标置顶与大神不走散 苹果是置顶 安卓是星标 点击 菜鸟选号论坛 关注我们 论坛明星版块 集全网各路高手之大乘 打造草根明星 展示舞台 同时主要是为广大关注彩友 在每一期 推出个人擅长
  • swift编程入门(非常详细)从零基础入门到精通,看完这一篇就够了

    文章目录 1 读后概述 2 语法笔记 2 1 说明 2 2 基础类型 2 3 运算符 2 4 字符与字符串 2 4 控制流 2 5 函数 2 6 闭包 2 7 枚举 结构体 类 2 8 类的构造与析构 2 9 属性监听器 2 10 类的继承
  • python 图像处理(7):对比度与亮度调整

    图像亮度与对比度的调整 是放在skimage包的exposure模块里面 1 gamma调整 原理 I Ig 对原图像的像素 进行幂运算 得到新的像素值 公式中的g就是gamma值 如果gamma gt 1 新图像比原图像暗 如果gamma
  • 毕业设计-基于微信小程序的电影推荐系统

    目录 前言 课题背景与简介 实现设计思路 一 电影推荐算法的设计与实现 二 电影推荐系统分析与设计 实现效果样例 更多帮助 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力
  • 基于情感词典的情感分析

    思路以及代码都来源于下面两篇文章 一个不知死活的胖子 Python做文本情感分析之情感极性分析 Ran Fengzheng 的博客 基于情感词典的文本情感极性分析相关代码 基于情感词典的情感分析应该是最简单的情感分析方法了 大致说一下使用情
  • http服务器_本地简易http服务器

    本地简易http服务器 下面实现一个简单的http服务器 听起来高大上的样子 其实就是网络通信加上http协议 运用上篇的网络编程的基础模型 上篇的网络通信是开两个vs程序 一个做服务器 一个做客户端 互相发送数据 http服务器其实也是同
  • 【Unity-学习-021】异步实现HTTP请求

    对Http访问操作 Unity中一般使用协程操作 但是协程有一个比较要命的要求就是所在Mono必须在场景中是激活的 所以一些操作就会被限制 所以我们就找办法替代掉协程做一些异步的操作 那就用异步方法 首先扩展一下AsyncOperation
  • java操作RabbitMQ

    文章目录 一 基本消息模型 1 导入依赖 2 准备连接工具类 3 创建消息发送者 生产者 4 创建消息接受者 消费者 5 消息确认机制 ACK 二 Work queues 1 创建消息发送者 2 创建多个消息接受者 3 测试 4 设置能者多
  • QtIFW:制作程序安装包

    程序发布方式一般有两种 1 静态编译发布 这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中 其优势是简单单一 所有的依赖库都集中在一起 其缺点也很明显 可执行程序体量较大 2 制作安装包发布 这种方式的原理也简单 就是将
  • 输入延时(Input Delay)与输出延时(Output Delay)

    一 设置输入延时 Input Delay 1 不同的路径需要使用不同的约束 2 输入延时的定义 由下图可以看出Input Delay是以上游芯片的时钟发送沿为参考 上游的输出数据到达FPGA的外部输入端口之间的延迟 输入延迟 input d
  • 你也想拥有你的个人博客吗(阿里云域名+github方案+hexo)

    虽然平时学习有写笔记的习惯 可是都没有上传过 记录一下学习日常吧 以后也会更容易整理了 因为在每个版本 对各个设备的配置情况都有一些细小的区别 希望我的记录也同时可以帮助一下需要的朋友 现在的时间点是2020 9 28 我的电脑是 MacB
  • runtime属性的读与写

    文章目录 通过ivar读 写 举例 通过ivar读 写 这里以Person类为例 来看怎么对属性值进行操作 Person类有一个属性name property nonatomic copy NSString name 对应的变量名 name
  • Stream流还可以这样用,省时又省力,你不知道的去重方法,快来一起解决这道常见的面试题吧

    下面归纳出几种常见的去重方法 使用stream流collectingAndThen 根据某一属性去重 studentList studentList stream collect Collectors collectingAndThen C
  • Solidworks的simulation组合分析显示单独零件

    具体参考以下链接 https jingyan baidu com article f96699bbe98e8e894f3c1b59 html
  • QT QTabWidget

    QTabWidget 使用 1 1 ui界面添加tabWidget 想展示的Widget 1 2 TabWidget 动态添加tab 1 3 tabWidget 动态删除tab 1 4 TabWidget 获取所有tab的界面值 2 1 T
  • 设计模式--Abstract server模式 VS Adapter 模式

    适配器类似于现实世界里面的插头 通过适配器 我们可以将分属于不同类的两种不同类型的数据整合起来 而不必去根据某一需要增加或者修改类里面的方法 Adapter mode和Proxymode的区别 Proxy的关注点是职能转移 通过引入Prox
  • 单链表——多项式相加

    时间限制 1000ms 内存限制 256M 实验目的 编写代码 使用两个单链表表示下面的多项式 完成两个多项式相加 并输出相加后的多项式结果 实验要求 1 单链表的类型定义如下 typedef int datatype 结点数据类型 假设为
  • Linux学习(八):文件名的查找Find

    Find 一 时间维度 atime ctime mtime 以 mtime为例 mtime n n为数字 意义为在n天之前的 一天之内 被更改过的文件 mtime n 列出在n天之前 不包含n本身 被更改过的文件 mtime n 列出在n天
  • linux超级工具,linux运维超级工具--sysdig

    sysdig 是一个超级系统工具 它可以用来捕获系统状态信息 在运维工作中sysdig能很方便的排查异常 定位故障 它还能保存数据进行分析 并且提供强大的命令接口 在了解sysdig强大之处之前 首先得安装sysdig 我这里是环境是cen
  • 【计算机网络13】网络安全

    文章目录 1 HTTP协议的安全问题 2 单向散列函数 One way hash function 2 1 单向散列函数的特点 2 2 常见的几种单向散列函数 2 3 防止数据被篡改 2 4 几个网站 3 对称加密 Symmetric Cr