HTTPS单向认证&双向认证

本文详细解析了SSL单向认证与双向认证的工作原理。单向认证确保服务器的真实性和通道安全,仅需验证服务器证书;双向认证则需验证客户端与服务器证书,提供更高安全级别。文中介绍了对称密钥在两种认证方式中的使用,以及未导入正确证书时的访问情况。

单向认证:保证server是真的,通道是安全的(对称密钥);
双向认证:保证client和server是真的,通道是安全的(对称密钥);


如果是单向认证,不需要导入证书也可以访问,只是会提示“此网站的安全证书有问题,是否继续访问”。 

如果是双向认证,需要导入证书才能访问,否则会提示“SSL节点无法核实您的证书,错误码: ssl_error_bad_cert_alert”。 


单向认证:
1.clinet<——server
2.clinet——>server
1.client从server处拿到server的证书,通过公司的CA去验证该证书,以确认server是真实的;
2.从server的证书中取出公钥,对client端产生的一个密钥加密(该密钥即对称密钥)。将加密后的密钥发送到server端。server端用其私钥解密出数据,即得到了对称密钥;
3.以后的交易都是http+该对称密钥加密的方式来处理;


双向认证:
与单向认证的区别就是在1.2步骤中产生的是二分之一的对称密钥。
即对称密钥是client与server各自产生一半;
--------------------- 
原文:https://blog.youkuaiyun.com/russ44/article/details/52806130 
 

### 原理 - **单向认证**:HTTPS单向认证是一种安全协议,只有服务器向客户端证明其身份,通过服务器提供SSL证书,客户端验证此证书来确保服务器的真实性信任度[^2]。 - **双向认证**:在双向认证中,不仅服务器要向客户端证明其身份,客户端也要向服务器证明自己的身份,双方都需要提供证书进行相互验证。 ### 区别 - **认证主体**:单向认证仅服务器向客户端证明身份;双向认证则是双方相互证明身份。 - **安全性**:双向认证安全性更高,能确保双方身份的可信任性;单向认证安全性相对较低,但也能提供一定保护[^1]。 - **复杂度**:单向认证简洁、高效;双向认证相对复杂。 ### 应用场景 - **单向认证**:适合大多数客户端访问场景,如一般用户访问普通网站,能满足大多数用户访问普通网站的安全需求[^1][2][3]。 - **双向认证**:适用于对安全性要求更高的场合,如企业内部通信、敏感数据交互、服务之间的身份可信通信(mTLS)等,可防止潜在的安全威胁[^1][3]。 ```python # 这里简单示意单向认证双向认证的概念代码(非实际可运行代码) # 单向认证 def one_way_authentication(client, server): server_certificate = server.get_ssl_certificate() if client.verify_certificate(server_certificate): print(&quot;单向认证成功&quot;) else: print(&quot;单向认证失败&quot;) # 双向认证 def two_way_authentication(client, server): server_certificate = server.get_ssl_certificate() client_certificate = client.get_ssl_certificate() if client.verify_certificate(server_certificate) and server.verify_certificate(client_certificate): print(&quot;双向认证成功&quot;) else: print(&quot;双向认证失败&quot;) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值