给HFSoft.Net的Channel引入PublicKey

     HFSoft.Net提供简单的方式来建立基于TCP协议的数据传输的服务,在数据传输过程中存在着一个比较严重的问题,就是如何确定请求用户的合法性;虽然组件提供自定义的验证方式来保证Channel的合法性,从而使一些非法的用户获取不到相关数据.但在实现际应用中这种验证并不足够;试想一下一个用户发出大量的验证请求时服务器会现什么情况?如果验证过程是的运算比较复杂那面对的后果更严重!为了解决以上问题组件引用了PublicKey(公钥),当服务器端配置PublicKey时,那么相应请求的客户端就必须配置相应的PublicKey;客户端配置的PublicKey和服务端不一样,服务端会自动关闭相应请求的连接。当然PublicKey并不能真正解决前面描述的问题,只是加大了攻击的成本。为了保证服务安全还必须定时替换PublicKey。

组件在实现PublicKey过程由Channel派生出两个对象ServerChannel和ClientChannel对PublicKey进行处理。ServerChannel在接收数据时要进和PublicKey验证,ClientChannel在发送数据时在表头添加PublicKey值。

配置PublicKey

       <configSections>

         <section name="netconfig" type="HFSoft.Net.NetConfigSectionHandler, HFSoft.Net, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

     </configSections>

     <netconfig>

         <publickey value="Public"/>

     </netconfig>

    服务端和请求端配置方式一样。

posted on 2006-07-20 17:32  henry  阅读(541)  评论(0编辑  收藏  举报

导航