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

目录

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

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

TLS1.2握手

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

第三方认证

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

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

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

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

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

存于服务器端,可下载

[应用:yarn/npm certificate has expiredHTTPS 证书过期](#应用:yarn/npm certificate has expiredHTTPS 证书过期)

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

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

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

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

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

[3.4. 服务端用会话密钥加密/解密数据,客户端用会话密钥解密/加密数据](#3.4. 服务端用会话密钥加密/解密数据,客户端用会话密钥解密/加密数据)

SSL重连

[A.通过session ID:只能是同一个服务器](#A.通过session ID:只能是同一个服务器)

[B.通过session ticket:包含对话秘钥和加密方法的加密](#B.通过session ticket:包含对话秘钥和加密方法的加密)

git远程仓库

https:参照上述

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

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

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

对称加密来保护数据传输

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

与TLS区别:身份验证

[SSH 常用秘钥对](#SSH 常用秘钥对)

[TLS 多用证书和公钥](#TLS 多用证书和公钥)

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

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

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

[4.通常使用 Diffie-Hellman共同生成一个会话秘钥](#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/定位:免流量,识别附近对象

参考链接

相关推荐
友友马16 分钟前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
2401_8725149723 分钟前
深入探究HTTP网络协议栈:互联网通信的基石
网络·网络协议·http
清水白石00843 分钟前
C++使用Socket编程实现一个简单的HTTP服务器
服务器·c++·http
chenjingming6661 小时前
windows使用tcpdump.exe工具进行抓包教程
网络·测试工具·tcpdump
初黑子zzz1 小时前
rsync
网络
蜗牛学苑_武汉2 小时前
设计模式之代理模式
java·网络·java-ee·代理模式
不良人天码星2 小时前
HTTP 协议的基本格式
网络·网络协议·http
码哝小鱼3 小时前
iptables限制网速
linux·服务器·网络
月临水3 小时前
JavaEE:网络编程(UDP)
java·网络·udp·java-ee
Coremail邮件安全3 小时前
武汉大学:如何做好高校电子邮件账号安全防护
网络·安全·邮件安全·双因素认证·敏感信息