分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

https/ssl原理

发布时间:2023-09-06 01:32责任编辑:蔡小小关键词:http

在此总结下https协议原理。

http问题

1)明文传输数据,被抓包后很容易可以看出传输内容,传输敏感数据有安全问题。

2)不能保证进行http通信的客户端与服务器是合法的。

为了解决这两个问题,需要对http数据进行加密和对通信双方进行认证。https就是在http协议的下层加了一个ssl协议,通过ssl实现了上述加密和认证的功能。

https协议原理

通常,http直接和tcp通信。而https协议,则是http和ssl通信,ssl和tcp通信,加解密的功能在ssl层实现。ssl是独立于http的协议,也可以用于应用层的smtp、telnet等协议。

要了解ssl原理,先要理解公钥加密和对称加密。公钥加密的优点是传输秘钥方便,除了加密还可以做认证,缺点是运行比对称加密慢很多。对称加密缺点是不方便传输秘钥,优点是加密速度快。ssl结合了公钥加密和对称加密的优点,使用公钥加密传输对称加密的秘钥。实际运行中,服务器将通信用的对称秘钥用自身私钥加密后传输给客户端,然后双方通信时使用此对称秘钥对数据进行加解密。

那么客户端如何确保公钥来自服务器?

通过数字认证机构颁发的数字证书,以及客户端内部嵌入的数字认证机构公钥集合。具体流程如下:

1)服务器运营人员向数字认证机构申请证书,申请证书时填入服务器公钥,数字认证机构用自身私钥加密服务器公钥生成一个数字证书(包含认证机构ID、加密后的服务器公钥和公钥明文),然后运营人员把证书放在服务器上。

2)客户端请求时,服务端把自身证书和公钥下发给服务端,客户端通过证书中的数字认证机构ID查询内部嵌入的公钥列表,得到认证机构的公钥,并使用此公钥解密得到服务端公钥,然后验证公钥如果一致,则同时验证了认证结构与服务器的合法性。 

https的优缺点

https可以很大程度提高安全性,google、百度等许多大网站全站都实现了https,但使用https时,http处理速度回变慢,一种是多了一层,通信量增加,通信变慢,一种是加解密需要消耗cpu、内存等资源,处理时间增加,负载增加。和使用http相比,可能会变慢2~100倍(数据来自《图解HTTP》),所以只有在需要信息隐藏时才使用https,可以节省资源。

PS:客户端证书与服务端证书原理是一样的,常见的客户端证书比如网银U盾,证书是由银行颁发的,用于在服务器端认证客户。

https/ssl原理

原文地址:https://www.cnblogs.com/livepeace/p/8126076.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved