HTTP有什么缺陷,HTTPS是怎么解决的

缺陷

HTTP是明文的,谁都能看得懂,HTTPS是加了TLS/SSL加密的,这样就不容易被拦截和攻击了。

SSL是TLS的前身,他俩都是加密安全协议。前者大部分浏览器都不支持了,后者现在用的多。

对称加密

通信双方握有加密解密算法,是对称的,但是假设有别人也知道这个算法就寄了

非对称加密

这篇博客讲的巨好

数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。当服务器发送经过数字签名的宏或文档时,证书和公钥也会随之一起发送。浏览器会查一下这个证书是不是它正在访问的这个网站的,并且这个证书合法不合法。

公开密钥是所有人都知道的密钥,私有密钥是只有自己知道的(一般放在服务器里)。
数据被公钥加密就只能用私钥解密,数据被私钥加密就只能用公钥解密

具体对应到实际场景,就是服务器会公布自己的公钥,客户端用这个公钥加密后发送数据给服务器,然后只有服务器用自己的私钥才能解开。

在通信里,实际上是如何相互信任的呢?

假如我有对方的公钥,我就可以用对方的公钥加密我的内容,顺便用我自己的私钥给内容签个名,然后发给他。对方收到后用对方的私钥解密内容,如果解密失败则为密钥过期或者发错人了;对方顺便用我的公钥验证(解密)一下签名,如果签名有误则是冒充或他人伪造。

也就是说:**公钥加密私钥解,任何人都可以加密信息发给持有私钥的对方。

私钥签名公钥验签,私钥签名出来的东西任何人都可以验证是否合法,不可抵赖。

再对信息本身公钥加密,将得到的结果,与接收到的信息进行对比。如果两者一致,就证明这封信未被修改过。

**

SSL证书

向Certificate Authority证书授权中心申请才有,这样用户就可以用https来访问网站了,端口号也会从80变为443

TLS握手流程

第三四步,是服务端发送证书和公钥发给客户端。

相关推荐
w1wi27 分钟前
【Vibe Coding】TCP/UDP包篡改重放工具
人工智能·网络协议·tcp/ip·ai·udp·ai编程
treesforest29 分钟前
IP地址段查询完全指南:从单IP查到IPv4段批量归属地查询
网络·数据库·网络协议·tcp/ip·网络安全·运维开发
wangl_9233 分钟前
Modbus RTU 与 Modbus TCP 深入指南-字节顺序与跨平台问题
网络·网络协议·tcp/ip·tcp·modbus·rtu
wefg11 小时前
【计算机网络】DNS/ICMP协议/ping指令
网络·网络协议·计算机网络
花间相见1 小时前
【全栈开发03】—— curl 常用参数详解与 HTTP 请求实战
网络·网络协议·http
S1998_1997111609•X2 小时前
哈希树函数洪水泛滥污染孪生镜像导致生物量子信息泄露以钩子而爬虫植入ssd探测
爬虫·网络协议·缓存·哈希算法·开闭原则
原来是猿3 小时前
应用层【协议再识/序列化与反序列化】
linux·运维·服务器·网络·网络协议·tcp/ip
天草二十六_简村人3 小时前
对接AI大模型之nginx代理配置SSE接口
运维·网络·nginx·http·阿里云·ai·云计算
报错小能手4 小时前
HTTP/2 牛逼在哪?
网络·网络协议·tcp/ip·http
6190083364 小时前
spring中 HTTP 请求常见格式
java·spring·http