趣谈网络协议---HTTPS协议:点外卖的过程原来这么复杂

本文深入探讨了对称加密与非对称加密的区别,讲解了数字证书如何确保公钥的合法性,以及HTTPS如何结合两者优势保障信息安全。同时,介绍了Timestamp和Nonce如何防止重放攻击。

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

对称加密
加密和解密的密钥相同。效率高。

非对称加密
加密和解秘的密钥不同。安全性高。有两对,每对中一把是公钥,一把是私钥。公钥加密的信息只有私钥能解。私钥加密的信息只有公钥能解。

客户端给外卖网站发送的时候,用外卖网站的公钥加密。外卖网站给客户端发送消息的时候,使用客户端的公钥。

数字证书
外卖网站需要把公钥传给客户端,但是客户端如何验证这个公钥一定是外卖网站给的,而不是黑客?

数字证书可以验证外卖网站公钥的合法性,由权威机构(Certificate Authority,CA)颁发,权威机构的合法性由上层权威机构证实,层层向上追溯,直到root权威机构。

数字证书中有颁发者、被颁发者、有效期、外卖网站的公钥、签名算法。

CA用自己私钥通过签名算法给数字证书签名。

签名算法大概这样工作:对信息做一个Hash计算,得到一个Hash值,该过程不可逆。信息发送出去是,把该Hash值加密后,作为签名和信息一同发出。

这样,客户端会从外卖网站得到证书。如果不信任该证书,可以一直上溯,直到一个受信的CA。信任了该证书后,需要获得颁发该证书的CA的公钥,用该CA的公钥解密外卖网站证书的签名,解密成功后,如果Hash对的上,说明外卖网站的公钥没问题。

还有一种证书,称为Self-Signed Certificate,自己给自己签名,如根证书。

HTTPS 工作模式
非对称加密算法传输对称密钥,保证传输安全;对称加密算法传输大量实际通信内容,保证传输效率。
在这里插入图片描述
重放与篡改

Timestamp和Nonce随机数联合起来,可做 一个不可逆的签名,防止黑客将截获的包发送多次。

该签名是唯一的,同样的请求只接受一次。

如果黑客篡改Timestamp或Nonce,用签名算法解不出来,就会丢弃。

### P2P网络协议介绍 #### 定义与特 P2P(Peer-to-Peer)网络是一种分布式网络架构,在这种架构下,所有节既是客户端也是服务器。这些节能够相互请求并提供资源和服务,而不依赖于集中式的服务器[^1]。 #### 工作原理 在网络中,各个对等节可以直接相互通信,并共享计算能力、带宽以及存储空间等资源。当某个节需要获取特定数据时,它会查询临近的多个节而不是单个中心服务器;一旦找到所需的数据副本,则可以从多个源同时下载片段直至完成整个文件的组装[^2]。 #### 协议层面上的操作机制 对于具体的消息传递而言,某些实现可能会采用像`store`这样的子协议来进行操作管理——例如保存或检索信息单元。这类活动通常是在更广泛的广播框架之上执行,比如通过Libp2p库创建的安全流通道与其他参与者交互[^3]。 #### 应用场景与发展历程 随着技术进步,基于P2P模式的应用不断涌现和发展壮大。特别是在区块链领域内,去除了传统意义上的中间件之后,使得交易验证变得更加透明高效。然而值得注意的是,“纯正”的P2P体系强调完全分布化特性,这与那些保留了一定程度集权控制的设计有所区别[^4]。 ```python # Python伪代码展示如何在一个简单的P2P环境中发起一次资源共享请求 def request_resource(peer_id, resource_name): # 向邻居节询问是否有该资源 neighbors = get_neighbors() for neighbor in neighbors: response = send_query(neighbor, {"type": "resource_request", "id": peer_id, "name": resource_name}) if response['status'] == 'success': download_from_peer(response['source'], resource_name) break def download_from_peer(source_peer, resource_name): print(f"正在从{source_peer}下载 {resource_name}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值