关于网络通信安全协议的一些知识(ssl,tls,CA,https)
首先了解一下http协议的变迁。
http1.0默认短连接,1.1默认长连接并且可以管道传输,但是存在队头阻塞问题;
https就是在tcp和http之间加了SSL/TLS层。
http2也是安全的,改进是hpack二进制和编码压缩减小体积,stream没有队头阻塞了(TCP层还有),以及服务器主动推送功能;
http3把TCP变成udp了, 并且在上层用QUIC协议保证可靠传输,速度更快了,并且QUIC,TLS在一层可以合并,所以连接只需要1RTT就够了,基于连接id还可以实现连接迁移。
SSL/TLS
tls是升级版的ssl,ssl到3.0之后就改名tls1.0了。ssl分成两层:ssl记录协议和ssl握手协议。记录协议主要负责对tcp的数据进行封装压缩加密,相当于表示层了。握手协议就是常说的https的四次握手过程(建立连接,协商秘钥,协商加密算法),不过四次握手还涉及到CA证书的验证。ssl叫习惯了
tls的改进点在于:HMAC算法保证更安全的MAC功能;更多的告警代码;支持的加密算法不同。
到现在看来,https包含了ssl/tls,然后ssl协议里面又会涉及到CA证书的验证过程保证双方的可靠性。以及加密和数字摘要保证消息不被监听和篡改。
(关于加密算法
对称加密算法:加密解密用一种,DES,DES3等等,但是因为有可能对称秘钥传输过程会被窃取所以不安全;
非对称加密:公钥加密,私钥解密。如RSA,由于私钥不会传输,所以信息无法被窃取。但是速度慢,所以一般用来对秘钥进行加密的。
四次握手大致过程: hello打招呼,把密码列表版本号以及随机数给服务端,服务端也会生成随机数确定密码列表给额客户端;中间有CA证书验证过程,保证服务端合法的;后两次就是客户端利用服务端的公钥加密一个随机数,利用这三个随机数生成对称秘钥,然后尝试加密消息并消息摘要,看看行不行。
)
CA:
是一个颁发数字证书的权威机构。比如GlobalSign、DigiCert 和 GoDaddy。一般浏览器使用的CA证书都是存在于浏览器和操作系统的,所以可以保证CA证书的安全。
CA作用: 确认服务端可靠;并且里面的公钥可以把三个随机数生成对称秘钥然后和服务端私钥结合实现数据加密作用。
C证书链式结构,每个CA有几个子 CA,信任链,所以编程时如果浏览器没有再到操作系统找根证书链,不然耗时。
CA证书有什么:
有不同的格式有的是可编辑的PEM,二进制的DEM. 其中X.509就是可编辑中的一种。
具体的CA证书采用的是X509格式的。主要包含以下三个文件:
key,csr,crt。
key是服务器的私钥,不传输,用于加密解密的。
csr是签名请求文件用于给CA让它签名,签名才有效;
crt:签名后或者自签名(rusttls)的证书:包括服务器公钥,服务器的id信息,以及签名人的信息。
具体rusttls怎么实现签名的?
1、certify的库,主要就是利用内部算法生成一个CA机构,然后把客户端服务端的csr给CA签名。得到
crt文件,存到一个目录中。
2.根据前面得到的 证书,生成clientconfig,serverconfig;
3、利用内2部的connect函数,就可以把stream转换成tlsstream。(实际上就是from into trait)
在开发测试环境中,常见的ssl证书生成的开源工具有openssl,rusttls等。我用的后者,相比openssl,编译连接简单,速度快。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
关于网络通信安全协议的一些知识(ssl,tls,CA,https)
首先了解一下http协议的变迁。 http1.0默认短连接,1.1默认长连接并且可以管道传输,但是存在队头阻塞问题; https就是在tcp和http之间加了SSL/TLS层。 http2也是安全的,改进是hpack二进制和编码压缩减小体积,stream没有…...
![](https://img-blog.csdnimg.cn/a0836993abc346deb473a6d2aad1620d.png)
Generative Diffusion Prior for Unified Image Restoration and Enhancement 论文阅读笔记
这是CVPR2023的一篇用diffusion先验做图像修复和图像增强的论文 之前有一篇工作做了diffusion先验(Bahjat Kawar, Michael Elad, Stefano Ermon, and Jiaming Song, “Denoising diffusion restoration models,” arXiv preprint arXiv:2201.11793, 2022. 2, 4, 6,…...
![](https://img-blog.csdnimg.cn/2b7f056844544a7aab430b4c6ba326dd.png)
GAMES101 笔记 Lecture13 光线追踪1
目录 Why Ray Tracing?(为什么需要光线追踪?)Basic Ray Tracing Algorithm(基础的光线追踪算法)Ray Casting(光线的投射)Generating Eye Rays(生成Eye Rays) Recursive(Whitted-Styled) Ray Tracing Ray-Surface Intersection(光线和平面的交点)Ray Rquation(射线方…...
![](https://img-blog.csdnimg.cn/71eda4a5f70249ccabb7b38a8d2255a0.png)
【多模态】21、BARON | 通过引入大量 regions 来提升模型开放词汇目标检测能力
文章目录 一、背景二、方法2.1 主要过程2.2 Forming Bag of Regions2.3 Representing Bag of Regions2.4 Aligning bag of regions 三、效果 论文:Aligning Bag of Regions for Open-Vocabulary Object Detection 代码:https://github.com/wusize/ovdet…...
![](https://img-blog.csdnimg.cn/img_convert/d5c5e186348575777d7e7df03f405c00.png)
2023“Java 基础 - 中级 - 高级”面试集结,已奉上我的膝盖
Java 基础(对象线程字符接口变量异常方法) 面向对象和面向过程的区别? Java 语言有哪些特点? 关于 JVM JDK 和 JRE 最详细通俗的解答 Oracle JDK 和 OpenJDK 的对比 Java 和 C的区别? 什么是 Java 程序的主类&…...
![](https://img-blog.csdnimg.cn/bfa1f065686b41f4a88364f3d82ddf81.png)
开源项目-erp企业资源管理系统(毕设)
哈喽,大家好,今天给大家带来一个开源项目-erp企业资源管理系统,项目通过ssh+oracle技术实现。 系统主要有基础数据,人事管理,采购管理,销售管理,库存管理,权限管理模块 登录 主页 基础数据 基础数据有商品类型,商品,供应商,客户,仓库管理功能...
![](https://img-blog.csdnimg.cn/4bb5e45450c64d0e95b47d73243ffa1f.png)
Leetcode刷题---C语言实现初阶数据结构---单链表
1 删除链表中等于给定值 val 的所有节点 删除链表中等于给定值 val 的所有节点 给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.valval的节点,并返回新的头节点 输入:head [1,2,6,3,4,5,6], val 6 输出:[…...
![](https://img-blog.csdnimg.cn/8a14cb7cc7ac401c91d6a9b4c8f099fc.png)
opencv hand openpose
使用opencv c 来调用caffemodel 使用opencv 得dnn 模块调用 caffemodel得程序,图片自己输入就行,不做过多得解释,看代码清单。 定义手指关节点 const int POSE_PAIRS[20][2] { {0,1}, {1,2}, {2,3}, {3,4}, // thumb {0,5}, {5,6}, {6,7}…...
![](https://www.ngui.cc/images/no-images.jpg)
flutter fl_chart 柱状图 柱条数量较多 实现左右滑动 固定y轴
一、引入插件 pub.dev:fl_chart package - All Versions 根据项目版本,安装可适配的 fl_chart 版本 二、官网柱状图示例 github参数配置:(x轴、y轴、边框、柱条数据、tooltip等) https://github.com/imaNNeo/fl_c…...
![](https://img-blog.csdnimg.cn/968edd4e9817488a88c5f3a862c7f9e8.png)
CAN学习笔记1:计算机网络
计算机网络 1 概述 计算机网络就是把多种形式的计算机用通信线路连接起来,并使其能够互相进行交换的系统。实际上,计算机网络包括了计算机、各种硬件、各种软件、组成网络的体系结构、网络传输介质和网络通信计数。因此,计算机网络是计算机…...
![](https://www.ngui.cc/images/no-images.jpg)
NAND flash的坏块
NAND flash的坏块 1.为什么会出现坏块 由于NAND Flash的工艺不能保证NAND的Memory Array(由NAND cell组成的阵列)在其生命周期中保持性能的可靠(电荷可能由于其他异常原因没有被锁起来。因此,在NAND的生产中及使用过程中会产生坏…...
![](https://img-blog.csdnimg.cn/301d8df997b140b6b762ecce09e8bc49.png#pic_center)
代码随想录算法训练营第二十五天 | 读PDF复习环节3
读PDF复习环节3 本博客的内容只是做一个大概的记录,整个PDF看下来,内容上是不如代码随想录网站上的文章全面的,并且PDF中有些地方的描述,是很让我疑惑的,在困扰我很久后,无意间发现,其网站上的讲…...
![](https://img-blog.csdnimg.cn/img_convert/8f32fbb06340d9e06a095ff8c1655f02.png?x-oss-process=image/watermark,image_bG9nby9jc2RuXzEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLGhfMjM3,g_se,x_0,y_0,t_100)
18.Netty源码之ByteBuf 详解
highlight: arduino-light ByteBuf 是 Netty 的数据容器,所有网络通信中字节流的传输都是通过 ByteBuf 完成的。 然而 JDK NIO 包中已经提供了类似的 ByteBuffer 类,为什么 Netty 还要去重复造轮子呢?本节课我会详细地讲解 ByteBuf。 JDK NIO…...
![](https://img-blog.csdnimg.cn/img_convert/ebf4d06eb8a9ce27d7a8e123902b6271.png)
#P0999. [NOIP2008普及组] 排座椅
题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的 DD 对同学上课时会交头接耳。 同学们在教室中坐…...
![](https://img-blog.csdnimg.cn/a5db2554242f46f0a60c5a0e49d38f3d.png)
Sentinel 容灾中心的使用
Sentinel 容灾中心的使用 往期文章 Nacos环境搭建Nacos注册中心的使用Nacos配置中心的使用 熔断/限流结果 Jar 生产者 spring-cloud-alibaba:2021.0.4.0 spring-boot:2.6.8 spring-cloud-loadbalancer:3.1.3 sentinel:2021.0…...
![](https://www.ngui.cc/images/no-images.jpg)
深度学习中简易FC和CNN搭建
TensorFlow是由谷歌开发的PyTorch是由Facebook人工智能研究院(Facebook AI Research)开发的 Torch和cuda版本的对应,手动安装较好 全连接FC(Batch*Num) 搭建建议网络: from torch import nnclass Mnist_NN(nn.Module):def __i…...
![](https://img-blog.csdnimg.cn/4dbc11d55cc44262aa33a76e4b01503f.png)
【多模态】20、OVR-CNN | 使用 caption 来实现开放词汇目标检测
文章目录 一、背景二、方法2.1 学习 视觉-语义 空间2.2 学习开放词汇目标检测 三、效果 论文:Open-Vocabulary Object Detection Using Captions 代码:https://github.com/alirezazareian/ovr-cnn 出处:CVPR2021 Oral 一、背景 目标检测数…...
![](https://img-blog.csdnimg.cn/0163133173b74d3bbd65730e0d5cca88.png)
网络编程 IO多路复用 [select版] (TCP网络聊天室)
//head.h 头文件 //TcpGrpSer.c 服务器端 //TcpGrpUsr.c 客户端 select函数 功能:阻塞函数,让内核去监测集合中的文件描述符是否准备就绪,若准备就绪则解除阻塞。 原型: #include <sys/select.…...
![](https://img-blog.csdnimg.cn/8e425d8eb07c4628899b6047061239ce.png)
数学建模学习(7):单目标和多目标规划
优化问题描述 优化 优化算法是指在满足一定条件下,在众多方案中或者参数中最优方案,或者参数值,以使得某个或者多个功能指标达到最优,或使得系统的某些性能指标达到最大值或者最小值 线性规划 线性规划是指目标函数和约束都是线性的情况 [x,fval]linprog(f,A,b,Aeq,Beq,LB,U…...
![](https://img-blog.csdnimg.cn/6d3c142ccb734d88898f017e83966431.png)
Element UI如何自定义样式
简介 Element UI是一套非常完善的前端组件库,但是如何个性化定制其中的组件样式呢?今天我们就来聊一聊这个 举例 就拿最常见的按钮el-button来举例,一般来说默认是蓝底白字。效果图如下 可是我们想个性化定制,让他成为粉底红字应…...
![](https://www.ngui.cc/images/no-images.jpg)
protobuf入门实践2
如何在proto中定义一个rpc服务? syntax "proto3"; //声明protobuf的版本package fixbug; //声明了代码所在的包 (对于C来说就是namespace)//下面的选项,表示生成service服务类和rpc方法描述, 默认是不生成的 option cc_generi…...
![](https://www.ngui.cc/images/no-images.jpg)
adb shell使用总结
文章目录 日志记录系统概览adb 使用方式 adb命令日志过滤按照告警等级进行过滤按照tag进行过滤根据告警等级和tag进行联合过滤屏蔽系统和其他App干扰,仅仅关注App自身日志 查看“当前页面”Activity文件传输截屏和录屏安装、卸载App启动activity其他 日志记录系统概…...
![](https://www.ngui.cc/images/no-images.jpg)
UG NX二次开发(C++)-Tag的含义、Tag类型与其他的转换
文章目录 1、前言2、Tag号的含义3、tag_t转换为int3、TaggedObject与Tag转换3.1 TaggedObject定义3.2 TaggedObject获取Tag3.3 根据Tag获取TaggedObject4.Tag与double类型的转换1、前言 在UG NX中,每个对象对应一个tag号,C++中,其类型是tag_t,一般是5位或者6位的int数字,…...
![](https://img-blog.csdnimg.cn/cbaac9dbb2744327a54b14079b940127.png#pic_center)
Informer 论文学习笔记
论文:《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》 代码:https://github.com/zhouhaoyi/Informer2020 地址:https://arxiv.org/abs/2012.07436v3 特点: 实现时间与空间复杂度为 O ( …...
![](https://img-blog.csdnimg.cn/65a55fb793f440b2b350d5935553ef05.png)
c语言位段知识详解
本篇文章带来位段相关知识详细讲解! 如果您觉得文章不错,期待你的一键三连哦,你的鼓励是我创作的动力之源,让我们一起加油,一起奔跑,让我们顶峰相见!!! 目录 一.什么是…...
![](https://img-blog.csdnimg.cn/e21512a218df4fedbcfd4625ca911f13.png)
FFmpeg aresample_swr_opts的解析
ffmpeg option的解析 aresample_swr_opts是AVFilterGraph中的option。 static const AVOption filtergraph_options[] {{ "thread_type", "Allowed thread types", OFFSET(thread_type), AV_OPT_TYPE_FLAGS,{ .i64 AVFILTER_THREAD_SLICE }, 0, INT_MA…...
![](https://img-blog.csdnimg.cn/ee04fdbfc7544ed2bf2853523a966652.png)
CAN学习笔记3:STM32 CAN控制器介绍
STM32 CAN控制器 1 概述 STM32 CAN控制器(bxCAN),支持CAN 2.0A 和 CAN 2.0B Active版本协议。CAN 2.0A 只能处理标准数据帧且扩展帧的内容会识别错误,而CAN 2.0B Active 可以处理标准数据帧和扩展数据帧。 2 bxCAN 特性 波特率…...
![](https://img-blog.csdnimg.cn/221634902fe24de286adb7360d4b90c4.png)
软工导论知识框架(二)结构化的需求分析
本章节涉及很多重要图表的制作,如ER图、数据流图、状态转换图、数据字典的书写等,对初学者来说比较生僻,本贴只介绍基础的轮廓,后面会有单独的帖子详解各图表如何绘制。 一.结构化的软件开发方法:结构化的分析、设计、…...
![](https://www.ngui.cc/images/no-images.jpg)
[SQL挖掘机] - 算术函数 - abs
介绍: 当谈到 SQL 中的 abs 函数时,它是一个用于计算数值的绝对值的函数。“abs” 代表 “absolute”(绝对),因此 abs 函数的作用是返回一个给定数值的非负值(即该数值的绝对值)。 abs 函数接受一个参数&a…...
![](https://www.ngui.cc/images/no-images.jpg)
vue拼接html点击事件不生效
vue使用ts,拼接html,点击事件不生效或者报 is not defined 点击事件要用onclick 不是click let data{name:测,id:123} let conHtml <div> "名称:" data.name "<br>" <p class"cursor blue&quo…...
![](https://img-blog.csdnimg.cn/20210412092221392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Z4dHh6Mg==,size_16,color_FFFFFF,t_70)
佛山 做网站公司有哪些/郑州seo外包公司哪家好
问题 Charles是Mac上面知名的代理软件,类似Windows上面的fiddler。在调试CDN的过程中,需要远程调试某个地区的节点,就只能使用代理服务区进行访问调试。但是这个过程中同时需要Charles对CDN的客户端进行抓包处理,但同时有需要一个…...
![](http://hi.csdn.net/attachment/201110/15/0_131868255722dX.gif)
免费做mc皮肤网站/营销型企业网站有哪些
Java集合类1—简介及其层次关系 在Java中有一个集合框架,用来表示一个操作集合。在Java 2平台中实现了一个新的集合框架,但是在先前的集合框架依然可以使用。这里的结合框架就是我们所说的集合类。一个集合是一种对象它表示了一组对象。集合框架主要是由…...
![](/images/no-images.jpg)
农林牧渔行业网站建设/深圳网络推广公司哪家好
<<小于号>> 大于号&&和'’单引号""双引号转载于:https://www.cnblogs.com/qinls/p/11199755.html...
![](/images/no-images.jpg)
网站没有地图怎么做的/北京seo分析
https://blog.csdn.net/hongbin_xu/article/details/76284134转载于:https://www.cnblogs.com/ACPIE-liusiqi/p/10665652.html...
![](https://img2018.cnblogs.com/blog/1478219/201809/1478219-20180921175801603-1300647502.png)
沈阳建网站企业/怎样做一个网站
Link: 原型模型设计工具:墨刀。(在学长的推荐下发现有这一款十分好用的原型模型设计工具呢。^_^.) 小伙伴链接:http://www.cnblogs.com/mingsonic/p/9683453.html 原型链接:(如果小樱同学看不懂…...
![](/images/no-images.jpg)
中卫网站设计在哪里/营销策划的重要性
uiwebview加载中文URL _paperGamePath [_paperGamePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog("paper game path is: %", _paperGamePath);转载于:https://www.cnblogs.com/xiangjune/p/5189160.html...