建立一个channel connection
1. 连接过程
- client端初始化channel连接进程,然后发送一个SpiceLinkMess 。
- server端回应一个SpiceLinkReply。
- 当client 收到SpiceLinkReply后,确保没有错误的情况下,使用公钥(在SpiceLinkReply中)加密密码并发送至server。
- server收到密码之后将连接结果发送给client。
- client验证连接结果,确保其值为SPICE_LINK_ERR_OK,一个合法的连接就被建立了。
2. 验证(Ticketing)
- Ticketing是spice用于确保只有授权的source才可以打开连接的机制
- 要启用此机制,需要在spice服务器中设置一个包括密码和时间有效性的ticket。
- 时间有效性过期之后整个ticket被废弃。
- ticket是被加密的
- server生成一个1024bit的RSAkey 将公钥发送给client (via RedLinkInfo)
- client 使用公钥加密密码并发送至server(after SpiceLinkMess)。
- 服务器解密密码,将其与ticket进行比较,并确保它在允许的时间范围内收到。
4. SpiceLinkMess 定义
详见 https://www.spice-space.org/spice-protocol.html
5. SpiceLinkReply 定义
详见 https://www.spice-space.org/spice-protocol.html
本文详细阐述了Spice协议中建立channel连接的步骤,包括客户端发送SpiceLinkMess,服务器响应SpiceLinkReply,以及使用公钥加密密码的过程。此外,还介绍了Ticketing机制,一种用于授权连接的安全措施,涉及到服务器设置带有时效性的ticket,以及客户端如何使用公钥加密密码进行验证。整个流程确保了只有授权的源才能成功建立连接。
429

被折叠的 条评论
为什么被折叠?



