从汉代调兵制度看设计安全的通信协议除开操作系统,第3方软件的漏洞以外,服务器与客户端进行通信的网络通信协议本身是构成服务器安全保证的一个重要组成部分,如果服务器与客户端的通信协议本身就有漏洞的话那么服务器的安全性也就无从谈起。
通信协议本身的漏洞往往比较隐蔽但是却能造成重大的危害今年那个造成整个互联网危机四伏的DNS漏洞就是由于DNS协议本身所引起的(参考http://www.kb.cert.org/vuls/id/800113
)所以设计出一个安全的通信协议是所有做client-server产品的技术人员所要考虑的重要问题这几天正好看到一个介绍汉代调兵制度的文章,感觉古代为维护国家军事利益所设计的的调兵制度和现在我们做通信协议的考虑有很多相似的地方。
本文并不想探讨如何来设计一个安全的通信协议,只是把我看过这个文章之后的一些感受跟大家分享一下汉代发兵有四种信物:虎符、节、羽檄、诏书首先来看看虎符大家都知道虎符发兵是要2半虎符的,一办在地方官手上,一办在中央。
地方要发兵的时候,应首先向中央申请另一半虎符如果中央同意发兵,会下发另一半虎符同时还有诏书虎符必须与诏书同时使用,由诏书来明确统兵长官的职权和任务,以免造成统兵者滥用权力,危害治安的后果把中央看作服务器,地方看做客户端,兵代表某种资源,这样当客户端想要获取某种资源的时候,它首先拥有自己的一个ID,然后会向服务器申请资源,由服务器返回session和ACL,然后再根据自己的ID,服务器产生的session和ACL来使用资源,这种方式就和虎符调兵比较相似。
汉代发兵的另一信物是节比起虎符来说,以节发兵是比较随便的,虽然节也是由中央发布的,但是一旦有人以非法手段获取到节,他也就有可能可以发兵原则上来讲,节就是一种身份的标志,持节即可发兵很有点认节不认人的意思。
这就不像虎符还必须出据其本人所具有的那半虎符既本人的标志才能发兵在目前的很多网站,尤其一些保持session的论坛里面,只要具有合法的sessionid就可以访问论坛资源而不需要在进行用户本身的认证这种方式和使用节发兵就比较相似。
汉代还曾以羽檄作为征发军队的信物但是由于檄容易被伪造,王朝也不强行规定见檄必发兵如,淮阳王更始二年(公元24年)二月,刘秀与王郎都以羽檄向渔阳征兵,渔阳长官了解清楚刘秀是帝室之胄以后才以兵应之,而王郎的羽檄未被理睬。
现在的邮件服务很类似这样的思想原则上,发件人是可以不存在或者不被信任的,但是邮件服务器可以选择只转发被信任的发件人的邮件我们前面说过,诏书是与虎符同时使用的但,诏书也可独立作为发兵的信物,《后汉书》卷31《杜诗传》:“初,禁纲尚简,但以玺书发兵,未有虎符之信。
诗上疏曰:‘臣闻兵者国之凶器,圣人所惧旧制发兵,皆以虎符,其余征调,竹使而已符第合会,取为大信,所以明著国命,敛持威重也间者发兵,但用玺书,或以诏令,如有奸人诈伪,无由知觉愚以为军旅尚兴,贼虏未敛,征兵郡国,宜有重慎,可立虎符,以绝奸端。
’书奏,从之”可见,在东汉初期曾一度仅以玺书或诏书而不用虎符向郡国征兵这种情况下,诏书更重要的是作为一种信物现在有些服务提供商会给他们的用户颁发一个证书,以后这些用户就可以用他们的证书直接进行登陆,这其实就跟诏书发兵比较类似了。
行文至此,我对汉代调兵制度和通信协议之间的一些联想也就到此了希望本文能够为大家做一些提示,当在一些设计上遇到困难的时候,不妨从其他地方获取一些灵感声明:本文属趋势科技中国研发中心同事原创,转载请附上本文原始出处链接和作者信息(趋势科技中国研发中心)。
谢谢!原作者:趋势研发中心原链接:https://blog.sina.com.cn/s/blog_5cf244a00100bbtk.html声明:本文内容来自博客作者,如有异议请及时联系新浪客服本账号将予以删除。