向大家请教一个问题
赖勇浩(http://laiyonghao.com)
以下问题来自我们的真实需求,并加上在一个氛围尚可的 QQ 群讨论的补充,我们没有得出比较好的答案,特向大家请教。
=============
有个 A B 两种业务服务器进程(各有多个),A 开放端口,B 主动用 TCP 去连 A,A 用什么方法判断连上来的客户端是合法的 B 进程?
=============
以下是补充:
0、可以引入第三个进程 C 来做一些事;
1、A B 两个进程可能是运行在不同 IDC 的机房内,所以内网 IP 限制的方法不行;
2、弄个 VPN,然后整个隔离子网,成本太高,不能接受;
3、数字签名,非对称加密之类的,我们有讨论过,但有悬尔未决的问题,欢迎进一步讨论;但如果是“只想了一步”的想法,就不必说了,我们已经说过了;
4、尽量减少人的参与,有人的地方必然容易出错;
5、使用预设的 ticket,然后全程 SSL,影响性能,不打算采用。
=============
后来,我又想到一个故事,来描述这个需求:
挖玉人得到一块宝玉,他觉得自己应该献给皇帝,但他见不到皇帝的嘛,于是就放话出来说“只要皇帝派个钦差大臣过来,我就让他把宝玉带给皇上”,第二天就来了一批自称钦差大臣的人,这时候挖玉人有什么办法鉴别出真正的“钦差大臣”?
附带的条件是:挖玉人不识尚方宝剑,也不识皇帝玉玺,总之,挖玉人不会因为“钦差大臣”拿出什么东西就相信他是“真正的钦差大臣”。
=============
谢谢大家,敬请赐教。我不是想要完整的解决方案,所以我不会缠着你从头到尾帮我搞定方案,给我一两个关键术语,我自己可以去寻找答案。证明无法解决这个问题,也非常感谢。