当前位置: 首页 > news >正文

通信流程:https【SSL/TLS】,git仓库【https/SSH】,蓝牙【面对面快传/AirDrop】

目录

HTTPS = HTTP(80端口) + SSL/TLS协议(传输层,443端口)

密文传输:SSL的后续版本TLS

TLS1.2握手

1.摘要算法(散列函数 Hash Function):验证信息的完整性,不可逆

第三方认证

引入场景:中间人篡改数据和公钥

引入场景:中间人篡改证书

1.1数字签名:保证数据不被篡改

1.2安全证书:保证公钥不被篡改

包含公钥、域名、有效期、数字签名(第三方机构私钥生成)

存于服务器端,可下载

应用:yarn/npm certificate has expiredHTTPS 证书过期

2.非对称加密(一对秘钥):身份认证,加密解密会话秘钥

        2.1服务端发送公钥,作为身份认证

        2.2客户端用密钥交换算法(如 RSA 或 ECDHE)生成的随机对称秘钥,作为协商的会话密钥

        2.3 RSA :客户端用公钥加密会话密钥,服务端用私钥解密该预主密钥(pre-master secret)

3.对称加密(一个秘钥):密文通信,加密和解密数据

      3.4. 服务端用会话密钥加密/解密数据,客户端用会话密钥解密/加密数据

SSL重连

A.通过session ID:只能是同一个服务器

B.通过session ticket:包含对话秘钥和加密方法的加密

git远程仓库

https:参照上述

SSH:传输层(TCP的22端口)

与TLS同:公钥加密,对称会话秘钥,哈希

公钥加密来安全交换或生成对称会话密钥

对称加密来保护数据传输

使用哈希或MAC防篡改数据。

与TLS区别:身份验证

SSH 常用秘钥对

TLS 多用证书和公钥

1.客户端生成密钥对SSH Key(公钥和私钥)

2.客户端:私钥 签名 随机数 或 特定挑战(challenge)

3.服务器:公钥来验证签名,确认身份

4.通常使用 Diffie-Hellman共同生成一个会话秘钥

5.哈希函数加密数据,会话秘钥加密解密秘文

蓝牙

1.初始配对:互输PIN码(传统),公钥私钥加密

2.基于PIN,设备地址,随机数等生成一个共享/链路秘钥

3.会话秘钥加密解密

应用:面对面快传/AirDrop

蓝牙/wifi/定位:免流量,识别附近对象

参考链接

HTTPS = HTTP(80端口) + SSL/TLS协议(传输层,443端口)

用SSL/TLS对数据进行加密和解密

SSL的全称是Secure Sockets Layer,即安全 套接 层协议

TLS的全称是Transport Layer Security,即安全 传输 层协议

密文传输:SSL的后续版本TLS

TLS1.2握手

1.摘要算法(散列函数 Hash Function):验证信息的完整性,不可逆

用散列/哈希函数得到摘要/哈希值

MD5: 128位散列值 (要被淘汰了)

SHA-1: 160位散列值

SHA-256: 产出256位的散列值

第三方认证
引入场景:中间人篡改数据和公钥

引入场景:中间人篡改证书

1.1数字签名:保证数据不被篡改

一般收发双方会约定好签名串的需要包含哪些内容。

如微信支付规定包含: HTTP请求方法URL请求时间戳请求随机串请求报文主体

  1. 发送方A散列处理(不可逆签名串(固定信息),得到摘要HashA
  2. 私钥加密摘要得到签名,发送给接收方B
  3. 接收方B使用公钥验证签名,得到摘要HashA
  4. 接收方B根据双方规定的构造签名串的方法,按照1的步骤生成新的摘要HashB
  5. 比较哈希值HashA。HashB是否一样,如果一样,则证明数据没有被篡改(签名串包含了请求报文主体(传输的数据),请求体改了则摘要会变).
1.2安全证书:保证公钥不被篡改
包含公钥、域名、有效期、数字签名(第三方机构私钥生成)

存于服务器端,可下载
  1. 浏览器安装后会本地自带 权威第三方机构公钥,对数字签名进行解密,拿到HashA
  2. 使用数字证书中的摘要算法计算一遍数字证书相关内容,生成摘要HashB,比对

证书机构(CA: Certification Authority)的权威:

证书链(上层证书给下层证书认证)+系统自带自签根证书

证书一个一层套一层的链式关系,

上层证书给下层证书颁发证书和数字签名,下层证书找上层证书认证。

最后认证到根证书,最高层的根证书是自签的(自己给自己颁发证书)。

一般微软等公司会根据一些权威安全机构的评估,选取一些信誉很好,并且通过一定的安全认证的证书发布机构,把这些证书发布机构的证书默认就安装在操作系统里面了。

已安装的信任证书:

windows:win+R -> 输入certmgr.msc.

mac:钥匙串中证书

应用:yarn/npm certificate has expiredHTTPS 证书过期

a.淘宝镜像过期

b.镜像源不符合SSL安全套接协议

2.非对称加密(一对秘钥):身份认证,加密解密会话秘钥

        2.1服务端发送公钥,作为身份认证
        2.2客户端用密钥交换算法(如 RSA 或 ECDHE)生成的随机对称秘钥,作为协商的会话密钥
        2.3 RSA :客户端用公钥加密会话密钥,服务端用私钥解密该预主密钥(pre-master secret)

        2.3 ECDHE客户端和服务器通过椭圆曲线 Diffie-Hellman 交换来共同生成会话密钥。

3.对称加密(一个秘钥):密文通信,加密和解密数据

      3.4. 服务端用会话密钥加密/解密数据,客户端用会话密钥解密/加密数据
  • TLS 1.2,消息认证码(MAC,Message Authentication Code):发送方使用共享密钥和MAC算法对消息进行哈希处理
  • TLS 1.3,GCM(Galois/Counter Mode):加密密钥与非加密的MAC密钥相关联来工作。它使用Counter模式和Galois Field运算来实现加密和认证。

SSL重连

A.通过session ID:只能是同一个服务器

目前所有的浏览器都支持这一种方法。

但是这种方法有一个缺点是,session ID 只能够存在一台服务器上,如果我们的请求通过负载平衡被转移到了其他的服务器上,那么就无法恢复对话。

B.通过session ticket:包含对话秘钥和加密方法的加密

session ticket 是服务器在上一次对话中发送给客户的,这个 ticket 是加密的,只有服务器能够解密,里面包含了本次会话的信息,比如对话秘钥和加密方法等。这样不管我们的请求是否转移到其他的服务器上,当服务器将 ticket 解密以后,就能够获取上次对话的信息,就不用重新生成对话秘钥了。

git远程仓库

https:参照上述

SSH:传输层(TCP的22端口)

SSH(Secure Shell)是一种加密的网络协议,用于安全地远程登录服务器、传输数据和执行命令。

与TLS同:公钥加密,对称会话秘钥,哈希

公钥加密来安全交换或生成对称会话密钥
对称加密来保护数据传输
使用哈希或MAC防篡改数据。

与TLS区别:身份验证

SSH 常用秘钥对
TLS 多用证书和公钥

1.客户端生成密钥对SSH Key(公钥和私钥

ssh-keygen 命令

公钥在 ~/.ssh/authorized_keys 文件中,添加到远程服务器

私钥在 ~/.ssh/id_rsa(默认名称)或其他自定义名称的文件中,保留在本地机器上。

RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛用于加密和数字签名

2.客户端:私钥 签名 随机数 或 特定挑战(challenge)

3.服务器:公钥来验证签名,确认身份

4.通常使用 Diffie-Hellman共同生成一个会话秘钥

5.哈希函数加密数据,会话秘钥加密解密秘文

蓝牙

1.初始配对:互输PIN码(传统),公钥私钥加密

无线公钥基础设施(Wireless Public Key Infrastructure,WPKI)的安全连接可能不需要输入

2.基于PIN,设备地址,随机数等生成一个共享/链路秘钥

3.会话秘钥加密解密

应用:面对面快传/AirDrop

蓝牙/wifi/定位:免流量,识别附近对象

参考链接

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【BUG】已解决:To update, run: python.exe -m pip install --upgrade pip
  • 【学习css3】使用flex和grid实现等高元素布局
  • 插入排序和希尔排序
  • 【后端开发】身份和访问管理IAM(MFA,OTP,JWT,OAuth,SSO)
  • python—爬虫的初步了解
  • 核函数支持向量机(Kernel SVM)
  • IDEA中常用的快捷键
  • 【医学影像】RK3588+FPGA:满足远程诊疗系统8K音视频编解码及高效传输需求
  • SpreadsheetLLM:微软对Excel编码的“摊膀伏”
  • LVS+Nginx高可用集群---搭建高可用集群负载均衡
  • 【论文阅读笔记】Hierarchical Neural Coding for Controllable CAD Model Generation
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • LeetCode 每日一题 2024/7/15-2024/7/21
  • 6 回归集成:xgb、lgb、cat
  • Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析
  • [LeetCode] Wiggle Sort
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【笔记】你不知道的JS读书笔记——Promise
  • Android 控件背景颜色处理
  • Angular 4.x 动态创建组件
  • CSS盒模型深入
  • github指令
  • Java读取Properties文件的六种方法
  • Java教程_软件开发基础
  • JS变量作用域
  • mysql常用命令汇总
  • PAT A1092
  • uva 10370 Above Average
  • Zsh 开发指南(第十四篇 文件读写)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #数据结构 笔记三
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (160)时序收敛--->(10)时序收敛十
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (k8s中)docker netty OOM问题记录
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (zhuan) 一些RL的文献(及笔记)
  • (苍穹外卖)day03菜品管理
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)关于多人操作数据的处理策略
  • (转载)OpenStack Hacker养成指南