60、分布式系统中的信任机制解析

分布式系统中的信任机制解析

客户端与服务器通信的密钥生成与认证

在客户端与服务器的通信过程中,起初客户端并不能确保其实际通信的对象就是预期的服务器。双方最初交换的仅仅是生成的公钥,利用这些公钥可以计算出共享密钥 (SK_{DH_{C,S}} = g^{xy} \mod p)。

接下来,客户端和服务器各自计算如下哈希值:
[MAC = H([PK_{DH_{C}}, R_{C}, G, PK_{DH_{S}}, R_{S}])]
其中 (H) 是 SHA256 哈希函数。也就是说,(MAC) 是通过连接客户端问候消息和服务器问候消息得到的 256 位哈希值。然后,利用 (MAC) 和 (SK_{DH_{C,S}}) 生成最终的共享秘密会话密钥 (SK_{C,S}^ = f (MAC, SK_{DH_{C,S}})),这里的 (f) 是所谓的密钥派生函数。从此时起,客户端与服务器之间的通信就使用共享秘密密钥 (SK_{C,S}^ ) 进行加密,保证了通信的私密性。

随后,服务器进行自我认证。假设服务器能够提供一个包含由认证机构 (CA) 签名的公钥 (PK_{S}) 的证书。服务器使用 (SK_{C,S}^ ) 对与客户端的所有通信进行加密:
[Server\ sends\ SK_{C,S}^
([PK_{S}, sig_{CA}])\ with\ sig_{CA} = SK_{CA}(PK_{S})]
此时,客户端就可以对服务器进行认证。运行在 TLS 之上的应用程序原则上可以完全依赖共享秘密密钥 (SK_{C,S}^ ) 来保证通信的私密性。不过,更好的做法是生成应用层协议可以使用的密钥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值