新版CQCQ编写进展速度很快,毕竟之前林鸿已经有过类似的编程经验,其中很多代码都可以进行重用,不过由于架构变化比较大,还有一些重要的代码需要重新构想。
按照这一次的设计,中继服务器上不保存任何可能用户的私密内容,包括用户的账号、密码,以及个人信息,发送的聊天内容,IP地址,信息发送目的地……等等。
中继服务器被林鸿命名为“目录服务器”,只是保存着当前在线的客户端的网络拓扑节点,每一个使用这个软件的用户,都可以充当服务器端,都有可能被选作跳转中继节点。
而当真正创建了一条用户数据交换的私密通道的时候,当前中继节点只知道两个信息,当前的数据包来自哪个节点,以及要发送给哪一个节点。至于上级的上级、下级的下级中继节点就完全不得而知了。
没有一台单独的中继节点会知道数据包的完整路径,这是因为客户端为每一跳都分配读力的加密密钥以保证连接数据通过时不被跟踪。
这个密钥是临时生成的,就算是用户一直和同一个人联系,这条路径也并不是固定的,按照林鸿的设计,每隔十分钟就会更换一次密钥,即建立一条完全不同的连接通道。
林鸿将自己所能想到的所有可能被监听的环节都考虑到了,这样做只有一个目的,为了安全,为了避免被第三方监听。
因为不想使用中央服务器的方式来存储数据和信息,所有数据将会被分散地保存在客户端里面。
最为安全的方式,就是每一个客户端中都将已注册的所有用户信息都下载到本地保存,这样无论哪一个消失了,都不用担心自己的信息会因此而丢失,因为使用了最够安全的加密算法,也不用担心有谁对这些账号进行暴力破解,就算破解了也没用,无非是得到了这个账号而已,聊天记录是不会上传保存的。
但是如果使用这