网络安全之密码学
目录
密码学
定义
密码的分类
对称加密
非对称加密
对称算法与非对称算法的优缺点
最佳解决办法 --- 用非对称加密算法加密对称加密算法的密钥
非对称加密如何解决对称加密的困境
密钥传输风险
密码管理难
常见算法
对称算法
非对称算法
完整性与身份认证最佳解决方案
密码学的应用
身份认证技术的应用
如何确认信息发送者是本人
存在问题
解决问题
CA
PKI
PKI体系
CA中心
数字证书
密码学完整应用编辑
SSL协议分析
定义
介绍
无客户端认证的握手过程编辑
有客户端认证的握手过程编辑
会话恢复过程(之前已经建立过会话,再次连接)
SSL协议的细节
协议位置
体系结构编辑
SSL的两个概念
密码学
定义
密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。密码学有数千年的历史,从最开始的替换法到如今的非对称加密算法,经历了古典密码学,近代密码学和现代密码学三个阶段。密码学不仅仅是数学家们的智慧,更是如今网络空间安全的重要基础。
替换法 --- 就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将
b
替换成w
,e
替换成p
,这样bee
单词就变换成了wpp
,不知道替换规则的人就无法阅读出原文的含义。
密码学之于信息传输 --- 在不安全的环境下建立安全输出通道
密码 --- 明文 -->算法+密钥 ---> 密文
举例:
明文: ok
使用凯撒密码
算法:对字母进行平移可以左也可以右,移动若干位
密钥:向右平移3个字母
密文:rn
密码的分类
对称加密
加解密用的是同一个密钥,数学角度是一个双向函数
对称加密首先要保证算法足够复杂以及密钥传输足够安全
加密信息传递又两个通道
密文传递通道
密钥传递通道
存在问题 --- 密钥如何传输
非对称加密
在互联网时代我们希望能偶在网上公开途径传输密钥
diff和hellmen开创了非对称加密算法 --- DH算法
DH算法解决了在公开场合密钥安全传递问题
对称算法与非对称算法的优缺点
- 对称加密算法解决信息的安全传输通道
- 非对称加密算法解决对称加密算法密钥的安全传输通道
- 对称加密速度快,但不安全
- 非对称加密算法速度慢,但安全
最佳解决办法 --- 用非对称加密算法加密对称加密算法的密钥
非对称加密如何解决对称加密的困境
密钥安全传输 --- 对称加密算法的缺陷
密钥传输风险
Alice与bob必须使用一个安全的信道来传输对称密钥,但是消息传输的通道是不安全的。对称加密A的密钥需要用对称加密B来传输---B的密钥不安全会导致A的不安全。
密码管理难
如果没有非对称加密,百度这个企业需要和用户做安全传输,就需要保存至少3-5亿个密钥。根据我们上图的非对称算法只需要一把公钥,而对称需要亿级别的钥匙
常见算法
对称算法
非对称算法
完整性与身份认证最佳解决方案
核心原理 --- 私钥加密、公钥解密
过程 --- 对明文a进行hash运算得到定长值h,然后对h进行非对称运算用私钥加密得到值k,然后对明文值a进行对称运算得到y,传输时同时传输给y和k,收到后用非对称公钥解开k得到h,然后用堆成算法解开y得到a,然后对a进行hash得到h``,如果h
与h``相同, 则证明完整性与身份认证。
密码学的应用
身份认证技术的应用
身份认证 --- 通过标识和鉴别用户身份,防止攻击者假冒合法用户来获取访问权限
身份认证技术 --- 在网络总确认操作者身份的过程而产生的有效解决方法
如何确认信息发送者是本人
发送者是alice,使用非对称算法,生成私钥A,公钥B。
-
alice把公钥给bob
-
alice发送信息hello,world!
-
alice把发送的信息用对称加密算法加密到加密信息C。
-
alice把发送的hello,world!先用hash算法计算得到hash值D。
-
alice把hash值D用非对称加密计算得到E。E值就是用于身份验证的。
-
alice把C,E一起发给bob。
-
bob收到C,E值,先用非对称的公钥对E进行解密,如果能正常解开则证明C值是alice的。
存在问题
上述1中如果黑客偷换了alice的公钥,那么就会出现身份认证漏洞
解决问题
解决思路:
alice把公钥给bob的环节能确保是安全的,一定是alice给的。
想办法证明alice的公钥一定是alice的。
配置公钥的“身份证”-----数字证书
CA
PKI
PKI体系
PKI --- 是创建、颁发、管理、注销证书所涉及到的所有软件、硬件的集合体。其核心元素时数字认证书,核心执行者是CA认证机构
CA中心
数字证书
包括 --- 用户身份信息;用户公钥信息;身份验证机构的信息及签名数据
分类 --- 签名证书 ---- 身份验证,不可抵赖性
加密证书 ---- 加密,完整性与机密性
密码学完整应用
SSL协议分析
定义
SSL协议(Secure Sockets Layer)安全套接层 --- 由美国网景通信(Netscape)公司自1990年开发,用于保证WWW通信安全。主要任务是提供私密性,信息完整性和身份认证。
介绍
SSL --- 一个不依赖于平台和运用程序的协议,位于TCP/IP协议与各种应用层协议之间,为数据通信提高安全支持。
无客户端认证的握手过程
注意:
可能遭受到的攻击:重放攻击
重放攻击(Replay Attacks) --- 又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
PreMasterKey密钥参数 --- 合成对称密钥的前置数值
初始化向量
有客户端认证的握手过程
报文类型 | 参数 |
hello_request | 空 |
client_hello | 版本、随机数、会话ID、密文族、压缩方法 |
server_hello | 版本、随机数、会话ID、密文族、压缩方法 |
certificate | x.509V3证书链 |
server_key_exchange | 参数、签名 |
certificate_request | 类型、授权 |
server_done | 空 |
certificate_verify | 签名 |
client_key_exchange | 参数、签名 |
finished | Hash值 |
会话恢复过程(之前已经建立过会话,再次连接)
SSL协议的细节
协议位置
注意:
ssl --- 介于应用层和tcp层之间。应用层数据不再直接传递给传输层,而是传递给ssl层,ssl层对从应用层收到的数据进行加密,并增加自己的ssl头。
体系结构
SSL握手协议(SSL Handshake Protocol) --- 建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL记录协议(SSL Record Protocol) --- 建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
注意:
SSL协议实际上是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族。
SSL修改密文协议 --- 在客服端和服务器完成握手协议之后,它需要向对方发送相关消息(该消息只包含一个值为1的单字节),通知对方随后的数据将用刚刚协商的密码规范算法和关联的密钥处理,并负责协调本方模块按照协商的算法和密钥工作。
SSL报警协议 --- 是用来为对等实体传递SSL的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。
SSL的两个概念
连接 --- 是一个提供一种合适类型服务的传输(OSI分层的定义)。SSL是点对点的关系。连接是暂时的,每一个连接和一个会话关联。
会话 --- 是在客户与服务器之间的一个关联。会话由handshake protocol创建。会话定义了一组可供多个连接共享的密码安全参数。会话用以避免为每个连接提供新的安全参数所需的昂贵的协商代价。
相关文章:
网络安全之密码学
目录 密码学 定义 密码的分类 对称加密 非对称加密 对称算法与非对称算法的优缺点 最佳解决办法 --- 用非对称加密算法加密对称加密算法的密钥 非对称加密如何解决对称加密的困境 密钥传输风险 密码管理难 常见算法 对称算法 非对称算法 完整性与身份认证最佳解决…...
第14章 项目采购管理
文章目录 采购管理包括如下几个过程14.2 编制采购计划 462编制采购计划的输出1)采购管理计划2)采购工作说明书3)采购文件 14.2.3 工作说明书(SOW) 14.3 实施采购 47414.3.2 实施采购的方法和技术 476(1&…...
Vite+Vue下的多页面入口配置
我发现多页面入口配置在网上的资料比较乱,今天正好结合我们的开源API分析工具项目(APIcat)更新情况总结一下。 更新vite.config.js 主要配置的更新是在vite.config.js里面要增加build里的rollupOptions,因为vite底层使用了rollu…...
ChatGPT背后的打工人:你不干,有的是AI干
AI“出圈” 如今,数字技术发展速度惊人,AI提高了社会生产效率,更真切地冲击到原有的生产秩序。 年初AI技术的爆发,让国内看到了进一步降本增效的希望。 国内多家互联网企业相继推出类ChatGPT产品,复旦大学邱锡鹏教授…...
【Access】Access:SQL 语句汇总
目录 一、SQL 的功能 二、考试重点 三、关系的定义 (1)新建关系 (2)删除关系 四、SQL 的「数据查询」功能 (1)基本结构 ① Select 语句的基本结构 ② Select 子句 ③ Where 子句 ④ 空值的处…...
【小样本分割 2022 ECCV】SSP
文章目录 【小样本分割 2022 ECCV】SSP摘要1. 介绍2. 相关工作3. 自支持小样本语义分割3.1 动机3.2 自支持原型-SSM3.3 自适应自支持背景原型-ASBP3.4 自支持匹配-SSL 3. 代码 【小样本分割 2022 ECCV】SSP 论文题目:Self-Support Few-Shot Semantic Segmentation 中…...
Friendlycore增加inodes数量
背景:为Nanopim1安装了core系统,tf卡大小64G,安装后正常扩展到了整个tf卡,但是在安装hass的docker显示磁盘空间不够,最终发现是inode被用完了。其inode只有960K,但是16G卡树莓派系统的inodes都是其两倍。 一…...
Latex 定理和证明类环境(amsthm)和(ntheorm)的区别
最近在写毕业论文,出现了一些定理和证明的环境的问题,问题出现在对两个包的理解程度不够的问题上: \RequirePackage{ntheorem} 1、\newtheorem*{proof}{\hspace{2em}证:} 这个是让证明失去计数原则,该命令不能用于 amsthm 2…...
Yolov8改进---注意力全家桶,小目标涨点
💡💡💡💡💡💡💡💡💡💡注意力全家桶💡💡💡💡💡💡💡💡💡💡💡 基于Yolov8的注意力机制研究,提升小目标、遮挡物、难样本等检测性能...
[Linux]网络连接、资源共享
⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Linux基础操作。本文主要是分享一些Linux系统常用操作,内容主要来源是学校作业,分享出来的…...
来上海一个月的记录、思考和感悟
作者 | gongyouliu 编辑 | gongyouliu 从4月3号早上来上海,到今天差不多整整一个月了,也是自己正式从杭州离职创业(我更愿意称之为自由职业者,毕竟我没有招聘全职员工,有两个朋友业余时间在帮我)的第一个月…...
学校信息化管理系统通常包含哪些功能?
学校管理信息化是现代教育发展的必然趋势,随着信息技术的飞速发展,学校管理也逐渐地实现了信息化。信息化的学校管理已经成为教育现代化建设的重要内容,也是提高学校教育教学质量和保障学生安全的重要手段。 作为一款低代码开发平台…...
Java时间类(三) -- Calendar()(日历类)
java.util.Calendar类是一个抽象类,它提供了日期计算的相关功能、获取或设置各种日历字段的方法。 protected Calendar() 构造方法为protected修饰,无法直接创建该对象。1. Calendar()的常用方法: 方法名说明static Calendar getInstance()使用默认时区和区域获取日历vo…...
【五一创作】QML、Qt Quick /Qt中绘制圆形
目录标题 Qt Quick中绘制圆形扩展知识Canvas 模块介绍Shapes 模块介绍 Qt Widgets 中绘制圆形两种方式的比较 Qt Quick中绘制圆形 有多种方法可以在 Qt Quick 中绘制圆形。以下是一些主要方法: 使用 Canvas 元素 使用 Shapes 模块: a. 使用 PathArc 和…...
【软考数据库】第七章 关系数据库
目录 7.1 关系数据库概述 7.2 关系代数 7.3 元组演算与域演算 7.4 查询优化 7.5 关系数据库设计 7.6 模式分解 前言: 笔记来自《文老师软考数据库》教材精讲,精讲视频在b站,某宝都可以找到,个人感觉通俗易懂。 7.1 关系数据…...
《SpringBoot中间件设计与实战》第1章 什么是中间件
一、写在前面 在互联网应用初期,所有用于支撑系统建设的,框架结构、基础工具、业务逻辑、功能服务包括页面展示等,都是在一个系统中开发完成,最终也只是把系统和数据库部署在同一台服务器上。也就是大多数开发者入门所接触到的 “单体” 系统。 那为什么会有中间件这个玩…...
spring常用的事务传播行为
事务传播行为介绍 Spring中的7个事务传播行为: 事务行为 说明 PROPAGATION_REQUIRED 支持当前事务,假设当前没有事务。就新建一个事务 PROPAGATION_SUPPORTS 支持当前事务,假设当前没有事务,就以非事务方式运行 PROPAGATION_MANDATORY…...
【Python】什么是爬虫,爬虫实例
有s表示加密的访问方式 一、初识爬虫 什么是爬虫 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略爬虫可以做什么 你可以…...
JavaScript学习笔记(三)
文章目录 第7章:迭代器与生成器1. 迭代器模式2. 生成器 第8章:对象、类与面向对象编程1. 理解对象2. 创建对象3. 继承:依靠原型链实现4. 类class 第10章:函数1. 函数定义的方式有:函数声明、函数表达式、箭头函数&…...
文鼎创智能物联云原生容器化平台实践
作者:sekfung,深圳市文鼎创数据科技有限公司研发工程师,负责公司物联网终端平台的开发,稳定性建设,容器化上云工作,擅长使用 GO、Java 开发分布式系统,持续关注分布式,云原生等前沿技…...
深入了解SpringMVC框架,探究其优缺点、作用以及使用方法
一、什么是Spring MVC SpringMVC是一种基于Java的Web框架,与Spring框架紧密结合,用于开发具备WebApp特性的Java应用程序。Spring MVC是Spring Framework的一部分,因此它具有与Spring框架相同的特性和理念。 二、SpringMVC的优缺点 1. 优点…...
Git教程(一)
1、Git概述 1.1 、Git历史 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)…...
数据结构篇三:双向循环链表
文章目录 前言双向链表的结构功能的解析及实现1. 双向链表的创建2. 创建头节点(初始化)3. 创建新结点4. 尾插5. 尾删6. 头插7. 头删8. 查找9. 在pos位置前插入10. 删除pos位置的结点11. 销毁 代码实现1.ListNode.h2. ListNode.c3. test.c 总结 前言 前面…...
day10 TCP是如何实现可靠传输的
TCP最主要的特点 1、TCP是面向连接的运输层协议。( 每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)) 2、TCP提供可靠交付的服务。 3、TCP提供全双工通信。 4…...
Python | 人脸识别系统 — 背景模糊
本博客为人脸识别系统的背景模糊代码解释 人脸识别系统博客汇总:人脸识别系统-博客索引 项目GitHub地址:Su-Face-Recognition: A face recognition for user logining 注意:阅读本博客前请先参考以下博客 工具安装、环境配置:人脸…...
YOLOv5+单目测量物体尺寸(python)
YOLOv5单目测量尺寸(python) 1. 相关配置2. 测距原理3. 相机标定3.1:标定方法1(针对图片)3.2:标定方法2(针对视频) 4. 相机测距4.1 测距添加4.2 细节修改(可忽略…...
C++异常
C异常 提到异常,大家一定不陌生,在学习new关键字的时候就提到了开空间失败会导致抛异常。其实异常在我们生活中的使用是很多的,有些时候程序发生错误以后我们并不希望程序就直接退出,针对不同的情况,我们更希望有不同的…...
Java中的字符串是如何处理的?
Java中的字符串是通过字符串对象来处理的。字符串是一个类,可以创建一个字符串对象,并在该对象上调用一系列方法来操作该字符串。 Java中的字符串是不可变的,这意味着一旦创建了一个字符串对象,就无法修改它的值。任何对字符串对…...
【热门框架】怎样使用Mybatis-Plus制作标准的分页功能
使用 Mybatis-Plus 实现标准的分页功能需要使用 Page 类来进行分页操作。具体步骤如下: 引入 Mybatis-Plus 依赖 在 Maven 项目中,在 pom.xml 文件中引入 Mybatis-Plus 的依赖: <dependency><groupId>com.baomidou</groupId&g…...
Java方法引用:提高代码可读性和可维护性
前言 在Java 8中,可以使用方法引用(Method Reference)来简化Lambda表达式。方法引用是一种更简洁易懂的语法形式,可以通过指定方法的名称代替Lambda表达式。 本文将介绍方法引用的用法和实现原理,并结合代码案例详细…...
做果蔬零售的网站/深圳全网推广托管
1viewdidLoad在什么时候调用:viewDidLoad在代码运行到[self.view addSubview : x.view]时调用。...
辉县网站建设/seo网站内部优化
资深敏捷专家Lisa Crispin在最近的讲座和参与合著的《Agile Testing – A Practical Guide for Testers and Agile Teams》中分享了敏捷软件测试的七个关键成功要素,包括使用团队整体参与的方法、采用敏捷测试思维、自动化回归测试、提供并获取反馈、构建核心实…...
郑州网站建设选微锐x/商业软文案例
(1)String类是不可变类,即创建一个String对象后,包含在此对象中的字符序列是不可改变的,直至对象被销毁 String a”123”; a”456”; System.out.println(a);//结果是456 解释:重新对a赋值,并不是改变原来堆中实例对…...
wordpress恢复小工具/seo关键词排名优化教程
Python模块化编程 包 模块 模块是一个包含所有你定义的函数和变量的文件,其后缀为.py(就如我们编写的程序就是一个模块),可被其他程序引入。以使用该模块的函数等功能 模块分为三种: 1.内置模块:sys,os,sub…...
行政机关 网站源码/google搜索关键词热度
一. windows 系统下搭建jenkins环境1.1 jenkins环境搭建和构建job流程图1.2 安装jdkJDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html选择对应系统的安装包下载:配置环境变量:新建JAVA_HOME系统环境…...
网站如何做301转向/广州外包网络推广公司
如果想了解更多的知识,可以去我的机器学习之路 The Road To Machine Learning通道 多元函数的泰勒展开Talor以及黑塞矩阵 在学最优化的时候,会遇到很多多元函数的泰勒展开,且很多都是以矩阵形式写的,为了理解更好一点࿰…...