rsa加密介绍 电脑版发表于:2020/7/1 9:00 ![Kubernetes](https://img.tnblog.net/arcimg/hb/274ef6f115de4c9b8e40ded5deb2f4c2.jpg "Kubernetes") >#RSA以及HTTPS基础 [TOC] HTTPS ------------ <br/> >###HTTP 简介 ```mermaid sequenceDiagram participant 客户端 participant 服务器 客户端->>服务器: Client Hello 服务器->>客户端: Server Hello Note right of 服务器: HTTP请求 客户端-->>服务器: 内容 ``` ```mermaid sequenceDiagram participant 客户端 participant 黑客 participant 服务器 客户端->>黑客: Client Hello 黑客->>客户端: Server Hello Note right of 黑客: 黑客在 “客户” 和 <br/> “服务器” 之间截获 <br/> “客户” 发送给服务器<br/>的信息 客户端-->>黑客: 内容 ``` ![HTTP简介](https://img.tnblog.net/arcimg/hb/d18d11a42bd346c385d086142eb6a95f.png "HTTP简介") >###RSA 加密 ![RSA加密](https://img.tnblog.net/arcimg/hb/d3b0f3fb5d5c4c3d93d4c2ee7c1c508d.png) >###公钥被伪造风险 ```mermaid sequenceDiagram participant Client participant MITM participant Server Client->>MITM: 请求公钥 MITM->>Server: 请求公钥 Note right of MITM:中间人用自己<br/>的假公钥换掉<br/>了Server端传<br/>回来的真公钥<br/> Server->>MITM: 真公钥 MITM->>Client: 假公钥 Note left of MITM:中间人用自己<br/>的假公钥进行<br/>解密,拿到传<br/>输内容,将内<br/>容改为YYY,<br/>然后再用服务<br/>端的真公钥加密<br/>,传回给服务<br/>器端 Client->>MITM: 用假公钥加密加密内容: XXX MITM->>Server: 用真公钥加密加密内容: YYY Note right of MITM:中间人用自己<br/>的假私钥进行<br/>加密,将内容<br/>改为BBB,传<br/>回给服务器端 Server->>MITM: 真私钥 加密内容: AAA MITM->>Client: 假公钥 加密内容:BBB Note left of MITM:客户端用假公<br/>钥解密后看到<br/>BBB ``` >###数字认证 ```mermaid graph TD A(CA机构) -.->|12下发证书| B(服务器端) B(服务器端) -.->|11申请证书| A(CA机构) C(客户端) -.->|21申请证书| A(CA机构) A(CA机构) -.->|22下发证书| C(客户端) C(客户端) -.->|3 身份认证 证书| B(服务器端) B(服务器端) -.->|4 身份认证 证书| C(客户端) C(客户端) -.->|5 通信随机密钥| B(服务器端) ``` >浏览器安装后会内置一些权威第三方认证机构的公钥, 比如VeriSign,Symantec以及GlobalSign等等,验证签 名的时候直接就从本地拿到相应第三方机构的公钥, 对私钥加密后的数字签名进行解密得到真正的签名, 然后客户端利用签名生成规则进行签名生成,看两个 签名是否匹配,如果匹配认证通过,不匹配则获取证书失败。 <br/> >###HTTPS ![HTTPS](https://img.tnblog.net/arcimg/hb/d69f145c73314a138b36866793be20ed.png)