图3.2-2 加密Cookie模型
加密Cookie模型中,用户通过登陆页面登陆系统,若用户名密码无效,返回登陆页,若用户名密码正确,则生成用户的身份验证票据,并使用SHA1算法对票据签名,接着使用AES算法对票据加密,最后将密文作为Cookie通过HTTP头发送至客户端浏览器。浏览器下次进入网站时,将Cookie发送至Web服务器,Web服务器读取该Cookie,使用AES密钥解密该Cookie密文,然后对Cookie进行签名校验,若校验通过,即可确认用户身份,否则,返回登陆页面。
若图片无法显示请联系QQ752018766,C#安全Cookie的设计开发系统免费,转发请注明源于www.751com.cn
图3.2-3 MAC地址/IP地址绑定加密Cookie模型
MAC地址/IP地址绑定加密Cookie模型中,用户通过登陆页面登陆系统,若用户名密码无效,返回登陆页,若用户名密码正确,则使用客户端MAC/IP地址结合用户信息生成用户的身份验证票据,然后使用SHA1算法对票据签名,并使用AES算法对票据加密,最后将密文作为Cookie通过HTTP头发送至客户端浏览器。浏览器下次进入网站时,将Cookie发送至Web服务器,Web服务器读取该Cookie,使用AES密钥解密该Cookie密文,然后对Cookie进行签名校验,若校验失败,返回登陆页面,否则,提取Cookie中的MAC/IP地址与当前获得的客户端MAC/IP地址对比,若MAC/IP地址相符,即可确认用户身份,否则,返回登陆页面。
经过以上对系统模型的建立以及分析,可以顺利的进行模型开发,开发的流程及方法已经很明确,在下一节将重点介绍。
本次设计主要有辣个流程来实现对安全Cookie的实现和验证过程[4,7,11]。
1 建立存储用户信息的SQL 数据库(aspnetdb),以在网站中验证用户身份;
2 设计ASP.NET网站的基本框架,包括一个登陆界面(Login.aspx)和一个登陆后显示Cookie信息的页面(Default.aspx),并对页面外观进行适当的美化和修饰;
3 设计程序代码,建立一个HttpCookie对象来进行身份验证,并以明文形式将其存储在客户端Cookie中;
4 改进以上程序中使用明文Cookie方法,使用ASP.NET的身份验证票据(FormsAuthenticationTicket)进行身份验证,使用FormsAuthentication的Encrypt方法来加密身份验证票据,该方法实现了2个功能,其一是使用SHA1算法对票据进行电子签名,防止票据信息被修改;其二是使用AES加密算法对票据进行加密,防止票据信息泄露;
5 继续改进以上程序中的Cookie信息,在验证票据中加入客户端的MAC地址,若无法获取MAC地址,则取IP地址替代。这样,在Web服务器验证Cookie时,对Cookie中的MAC/IP地址进行判断,从而来防止Cookie被冒用。
6 分别对以上3种方法生产的Cookie进行验证,证明第三种方法产生的Cookie具有很高的安全性。
按照上述流程和方法设计系统模型,并对模型理论进行实际验证之后,可以确定最终模型,证明了安全Cookie的设计是可靠的,在下一节中将给出结论。
本设计从三个方面来考虑了Cookie的安全性,分别是保密性、完整性、可鉴别性。在保密性方面,本设计在程序中采用了AES加密算法来确保Cookie信息几乎不可能破解;完整性方面,采用SHA1签名算法来保证Cookie信息没有被篡改,在目前的技术水平下,这点是可以保证的;在可鉴别性方面,需要在Cookie中加入客户端的特征信息,在客户端每次请求Web页时,服务器就从Cookie中提取该特征信息来对请求页面的客户端身份进行鉴别,本设计中采用的是MAC地址或者IP地址其中之一来鉴别。由于考虑到IPV4网络中,IP地址大多都不是固定的,而只有MAC地址是固定的,所以程序中优先采用MAC地址验证,在无法取得MAC地址的情况下,采取IP地址验证的方法。当然,此方法存在缺陷,IP地址变化之后,Cookie会被拒绝,但是在能够获取MAC地址的情况下就不会存在这个问题了,因此,这种方法虽然降低了适用性,但是安全性得到了大幅度的提高。在未来的IPV6网络中[20],可以采用MAC地址和IP地址双重验证的方法来解决IP变更的问题,进一步提高安全性。
由此,系统模型可以确定,即采用“MAC/IP地址绑定加密Cookie模型”为安全Cookie设计模型。本设计采用ASP.NET开发,有广泛的适用性。在下一章节中具体实施。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>