SSL/TLS加密基本原理

本文介绍了SSL/TLS协议的基础原理及握手流程。SSL/TLS是一种传输层协议,它基于TCP实现,通过公钥加密确保信息安全传输。文章详细解释了非对称加密在握手阶段的应用以及后续对称加密的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSL/TLS是传输层协议,也就是说,这两个协议与TCP/UDP是同级的。但是在底层实现上,SSL/TLS都是基于TCP协议的。‘’

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

普通级别的保护,是服务器需要向用户证明自己的身份,而客户端无需向服务器证明自己的身份,这个过程是通过数字证书完成的,每个提供服务的服务器需要申请一张由系统内置的证书颁发机构颁发的证书证明自己的身份,来保证连接时数据传输到了合理合法的服务器上。对于银行这种,需要验证客户端是否合法的情景,需要客户端插入一张保存了银行派发的证明客户端的U盘来完成这个任务。

SSL/TLS握手的时候使用的是非对称加密,速度相对比较慢,为了减少计算耗时,在握手完成之后,就会切换到对称加密状态。对称加密的秘钥叫做“对话秘钥”(session key),每个session生成一次,通过握手的时候生成的三次随机数完成的。

握手的四次过程如下

  • 客户端发出请求(ClientHello)。这一过程客户端需要发送自己的这些信息:

包含协议和加密方式的密码套件,类似这样:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 的组合集合

支持的压缩方式

一个用于稍后生成对话秘钥的随机数

  • 服务器回应(ServerHello)。这一过程服务器需要发送自己的这些信息:

从密码套件中选出一个自己和客户端都支持的,作为确定信息发回

一个用于稍后生成对话秘钥的随机数

服务器证书

  • 客户端回应

客户端用操作系统内置的证书来检验服务器发送的证书是否有效,如果有效,则信任这是合法的服务器。

客户端再次产生一个随机数,用服务器的证书中的公钥加密,发送给服务器

客户端发送握手结束通知,表示握手结束

  • 服务器最后回应

服务器用私钥解密客户端发送过来的随机数,生成pre-master key,用于接下来的对称加密。

服务器发送编码改变通知,表明下面使用协商的加密和秘钥传送信息

服务器发送握手结束通知,表示SSL/TLS握手结束。

接下来客户端和服务器进入加密通信,其内部是普通的应用层协议。由于SSL/TLS是传输层协议,因此完全兼容。HTTPS,POP3,SMTP都可以在上边跑。

参考链接:

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

https://www.jianshu.com/p/c93612b3abac

https://xz.aliyun.com/t/2531

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值