首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入了解HTTPS?

日常生活中的互联网接入方式可以看到在这个过程中客户端的数据(流量)需要经过路由器和互联网(Internet)的正确转发才能到达服务器,而服务器返回的数据也需要经过互联网和路由器才能到达客户端,而在一些不安全的网络环境中,你所连接的路由设备很有可能被黑客所控制(如下图所示),那么黑客就可以通过流量分析出其中的信息从而造成信息泄漏的问题,甚至可以在你不知情的情况下用你的身份信息做一些别的事情(数据篡改、请求重放)。 了解过计算机网络的同学应该知道,计算机网络的核心部分是由许多的路由设备连接在一起构成的,Client产生的流量往往会在网络中途径许多路由设备才能到达Server。作为终端用户,即使我们可以保证自己的路由设备是安全的,但是仍然无法确保互联网中所有的路由器都是安全的。

02
您找到你想要的搜索结果了吗?
是的
没有找到

webservice 安全和加密的方法

众所周知,WebService访问API是公开的,知道其URL者均可以研究与调用。那么,在只允许注册用户的WebService应用中,如何确保API访问和通信的安全性呢?本文所指的访问与通信安全性包括: 访问安全性:当前访问者是注册合法用户 通信安全性:客户端与服务器之间的消息即使被第三方窃取也不能解密 本文安全的基本思路是: 注册用户登录时使用RSA加密 Web API调用参数使用DES加密(速度快) Web API调用中包含一个身份票据Ticket Web服务器保存当前Ticket的Session,包括:Ticket、DES加密矢量、注册用户基本信息 1 WebService身份验证 确保注册用户的访问安全,需要如下步骤:1)产生一个当前客户端机器票据(Ticket);2)请求服务器RSA公钥(RSAPublicKey);3)使用RSA加密登录口令及发布DES加密矢量(DESCipherVector)。 1.1 产生客户端机器票据Ticket 一般而言,可以由客户端机器根据自己的MAC、CPU序列号等唯一标识产生一个本机器的Ticket字符串票据,其目的是:唯一标识当前客户端,防止其它机器模仿本客户端行为。 1.2 请求服务器公钥RSAPublicKey 客户端携带票据Ticket向服务器请求RSA公钥RSAPublicKey。在服务器端,一般采取如下策略产生RSA加密钥匙: Application_Start时产生一个1024或更长的RSA加密钥匙对。如果服务器需要长久运行,那么Application_Start产生的RSA可能被破解,替代方案是在当前Session_Start时产生RSA加密钥匙对 保存当前票据对应的客户帐号对象,即:Session[Ticket] = AccountObject,在确认身份后在填写AccountObject具体内容:帐号、RSA加密钥匙对、DES加密矢量 完成上述步骤后,服务器将RSAPublicKey传回给客户端。 1.3 加密登录口令及DES加密矢量 客户端获得RSAPulbicKey后,产生自己的DES加密矢量DESCipherVector(至少要8位及以上,该加密矢量用于以后的常规通信消息加密,因为其速度比RSA快)。接着,客户端使用RSAPublicKey加密登录帐号、口令及DESCipherVector,连同Ticket,发送到服务器并请求身份验证。登录API格式如下: public void Login(string Ticket, string cipherLongID, string cipherPassword); 如果验证成功,服务器将当前帐号信息、RSA钥匙、DESCipherVector等保存到会话Session[Ticket]中。 2 WebService通信安全性 2.1 加密WebService API参数 身份确认后,在客户端调用的WebService API中,必须包括参数Ticket,其它参数则均使用DESCipherVector加密。服务器端返回的消息也同样处理。例如,提交一个修改email的函数定义为: public void ModifyEmail(string Ticket, string cipherEmai); 2.2 客户端解密消息 客户端接收到服务器返回消息后,先做解密操作,如果成功则进入下步处理。否则抛出加密信息异常。 2.3 服务器端解密消息 服务器接收到客户提交的API请求后,首先验证Ticket的合法性,即查找Session中是否有该票据以验证客户身份。然后,解密调用参数。如果成功则进入下不操作,否则返回操作异常消息给客户端。 需要指出,如果第三方截获全部会话消息,并保留其Ticket,此时服务器端仍然认可这个第三方消息。但是,第三方不能浏览,也不能修改调用API的参数内容,此时解密参数时将抛出异常。 上面探讨了一个基于加密的WebService访问与通信安全方法,即使第三方获取消息,不能查看原始内容,也不能修改内容,保证了WebService API的安全性。 本方案还是存在一个明显的缺陷,即:如果直接修改调用参数内容,在客户端或服务器端解密时不抛出异常,如何处理?如何保证解密时一定抛出异常?这个待以后研究后回答。

01

[WCF权限控制]从两个重要的概念谈起:Identity与Principal[上篇]

在安全领域,认证和授权是两个重要的主题。认证是安全体系的第一道屏障,守护着整个应用或者服务的第一道大门。当访问者叩门请求进入的时候,认证体系通过验证对方提供凭证确定其真实身份。作为看门人的认证体系,只有在证实了访问者的真实身份的情况下才会为其打开城门,否则将之举之门外。 当访问者入门之后,并不意味着它可以为所欲为。为了让适合的人干适合的事,就需要授权机制为具体的人设置具体的权限,并根据这些权限设置决定试图调用的操作或者访问的资源对该访问者是否是安全的。对于一个安全保障体系来说,授权是目的。但是授权的执行是假

010

部署LVS DR集群

在TUN模式下,由于需要在LVS与真实服务器之间创建隧道连接,这样会增加服务器的负担。与TUN模式类似,在DR模式中LVS依然只承担数据的入站请求,并且根据算法选择出合适的真实服务器,最终有后端真实服务器负责将响应数据包发送给客户端。但是与隧道模式不同的是,DR模式中要求调度器与后端服务器必须在同一个局域网内,VIP地址也需要在调度器与后端所有的服务器间共享,因为最终的真实服务器给客户端回应数据包时需要设置源地址为VIP的地址,目标地址为为客户端的IP地址,这样客户端访问的是LVS调度器的VIP地址,回应的源地址也依然是VIP地址,客户端是感觉不到后端服务器的存在的,由于多台计算机都设置了同样一个VIP地址,所以在DR模式中要求调度器的VIP地址对外是可见的,客户端需要讲请求数据包发送到调度器主机,也就是LVS,而所有的真实服务器的VIP地址必须配置在Non-ARP的网络设备上,也就是该网络设备并不会向外广播自己的MAC及对应的IP地址,真实服务器的VIP对外是不可见的,但是真实服务器却可以接受目标地址为VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址,LVS根据算法选出真实服务器后,在不修改数据报文的情况下,将数据帧的MAC地址修改为选择出的真实服务器的MAC地址,通过交换机将该数据帧发给真实服务器。整个过程中,真实服务器的VIP不需要对外可见

01
领券