https原理
一、核心原理
1. 加密通信
通过加密算法(对称加密和非对称加密结合),HTTPS 保证数据在传输过程中的机密性,防止被窃听。
什么时候使用了非对称加密?
协商出来的对称加密算法密钥如果不加密,那么内容加密也就没有意义了,因此需要使用非对称加密算法来保证这个密钥的安全
什么时候使用了对称加密
数据传输阶段:因对称加密算法的开销较小,所以传输的明文内容使用对称加密算法
2.身份认证与校验
由一个权威的第三方机构,以证书的方式进行提供,通过数字证书,验证服务器的真实身份,防止中间人攻击(MITM)。
证书内容中包含以下的关键信息:证书持有者信息(域名、组织名称、组织单位、证书颁发者信息)、服务器公钥信息(公钥、密钥算法、签名算法)、证书签名
证书签名的生成:证书颁发机构对申请者信息的明文内容使用hash算法生成消息摘要,然后使用CA的私钥对消息摘要进行加密得出。
客户端的操作系统内置了CA的公钥,收到服务器发来的证书后采用相同的hash算法计算证书内容->得到信息摘要,然后利用对应 CA的公钥解密证书中的证书签名,对比一致的话,则服务器的公钥是值得信赖的。
二.工作流程图
三. 详细流程描述
1.浏览器将自己支持的对称加密算法发送给服务端
2. 服务器从中选出一套双方都支持的加密算法以证书的形式发送给浏览器
3. 客户端验证证书的合法性
a. 从内置的证书列表中索引,找到服务器下发证书对应的机构,如果没有找到,此时就会提示用户该证书是不是由权威机构颁发,是不可信任的。如果查到了对应的机构,则取出该CA的公钥进行下一步
b. 略(具体请看第一章的身份认证-客户端处理)
4.浏览器端生成一个随机数R,做为对称加密的密钥并使用服务器的公钥对随机数R加密,然后发送给服务器
5.服务器使用自己的私钥解密,得到R
6.服务器使用R来加密网页内容
7.客户端使用R来解密内容
8.客户端使用R来加密要发送的内容
四、常见的加密算法
对称加密算法(Symmetric Encryption)
对称加密是指加密和解密使用相同的密钥,这种加密方式速度较快,适合大数据量的加密。
常用的对称加密算法
-
AES(Advanced Encryption Standard)高级加密标准
- 密钥长度:128位、192位、256位
- 特点:速度快,安全性高,广泛应用于各种场合。
- 应用:WPA2无线网络加密、SSL/TLS加密、文件加密等。
-
DES(Data Encryption Standard)数据加密标准
- 密钥长度:56位
- 特点:经典但已不安全,易受暴力破解。已被AES取代。
- 应用:早期银行业和商业加密。
-
3DES(三重DES)
- 密钥长度:112位或168位(对DES进行三次加密)
- 特点:比DES更安全,但速度较慢,逐步被AES取代。
- 应用:部分老旧系统的兼容性需求。
非对称加密算法(Asymmetric Encryption)
非对称加密使用一对密钥,即公钥和私钥,公钥加密后只能用私钥解密,反之亦然。它通常用于密钥交换、数字签名等场合。
常用的非对称加密算法
-
RSA(Rivest–Shamir–Adleman)
- 密钥长度:1024位、2048位、4096位(推荐使用2048位及以上)
- 特点:广泛应用于数字签名、密钥交换和证书生成,但处理速度较慢。
- 应用:SSL/TLS、数字证书、加密邮件、数字签名等。
-
DSA(Digital Signature Algorithm)数字签名算法
- 密钥长度:1024位、2048位、3072位
- 特点:主要用于数字签名,而非加密数据。
- 应用:数字签名、文档验证。
-
ECC(Elliptic Curve Cryptography)椭圆曲线加密
- 密钥长度:相对较短,如256位ECC等效于3072位RSA
- 特点:比RSA更高效,适合资源受限设备(如移动设备),安全性高。
- 应用:SSL/TLS、加密通信(如Signal应用)、比特币等区块链加密。
-
Diffie-Hellman密钥交换(DH)
- 特点:用于在不安全信道上安全地交换加密密钥,但不直接加密数据。
- 应用:VPN、SSL/TLS等协议中的密钥交换过程。
-
ElGamal
- 特点:基于离散对数问题,用于加密和签名,适用于一些加密协议。
- 应用:GNU Privacy Guard (GPG)中的加密。
对称加密 vs 非对称加密
- 速度:对称加密比非对称加密快,适合大数据量加密;非对称加密较慢,通常用于小数据量或密钥交换。
- 密钥管理:对称加密只需一个密钥,但安全性依赖密钥的秘密性;非对称加密需要维护公钥和私钥对,较为复杂,但公钥可以公开传播,便于通信。
五、常用hash散列算法
- SHA-256(目前推荐使用)
- SHA-1(已不安全,不建议使用)
- MD5(已被淘汰)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!