以上算法是目前常用的加密算法,表
表
名称 |
算法类型 |
密钥长度 |
摘要长度 |
速度 |
资源消耗 |
安全性 |
MD5 |
散列分组 |
无 |
128 |
快 |
低 |
易受攻击,已有破解方法 |
SHA1 |
散列分组 |
无 |
160 |
慢 |
高 |
不易受攻击,破解难度大 |
AES |
对称分组 |
128、192、256位 |
无 |
快 |
低 |
安全性高,尚未被破解 |
DES |
对称分组 |
56位 |
无 |
快 |
低 |
安全性中、破解难度大 |
3DES |
对称分组 |
112、168位 |
无 |
慢 |
高 |
安全性高 |
由上表可以看出,对于MD5和SHA1这2中签名算法,前者在速度和资源消耗上占优势,但是相对于SHA1算法而言,安全性要低,容易受到攻击;后者虽然在效率上要差,但是考虑到Cookie信息的数据量并不多,对于目前的计算处理速度来说,不构成瓶颈,因此,选用SHA1算法进行电子签名比较合理。对于Cookie信息的加密采用的算法,可以明显看出AES算法无论在算法的效率还是安全级别都比DES和3DES要高,毫无疑问的选择AES算法作为Cookie的信息加密算法。
根据以上对Cookie结构的分析和加密算法的对比,可以清楚的看到,SHA1算法在安全性方面要比MD5高出很多,性能上的损失在当前计算机处理水平上可以忽略,因此确定采用SHA1算法对Cookie信息进行签名;AES算法无论在算法的效率还是安全级别都比DES和3DES要高,因此确定对Cookie中的数据部分采用AES算法。
确定了本次设计的技术方案和设计路线,据此便可以设计出系统的模型。
本系统模型分为二个部分,Web服务器产生Cookie的模型(见图3.1-1)和Web服务器验证Cookie的模型(见图3.1-2)
图3.1-1 Web服务器生成Cookie模型
该模型展示了Web服务器产生Cookie信息的过程。原始信息中加入客户端特征信息(本设计中为客户端MAC地址或者IP地址),经过SHA1数字签名后使用AES加密算法加密,经过以上过程处理后的信息被加入到HTTP报文中发送至客户端浏览器。待下次客户端请求服务器时,发送该Cookie给服务器,服务器对其进行验证。如下图3.1-2所示。
图3.1-2 Cookie验证模型
该模型展示了客户端浏览器请求Web网站时,Web服务器对Cookie的验证过程。Web服务器获取HTTP头中的Cookie信息后,使用密钥将其内容解密,然后提取其中的签名信息,使用签名算法重新计算Cookie签名,若签名不符则拒绝该Cookie的业务操作,若签名通过,则比较Cookie中的客户端特征信息,若特征信息不符,则拒绝该Cookie的业务操作,若特征信息符合,则认为该Cookie合法,运行其进行业务操作。
通过以上对本设计的业务流程的分析,可以对系统的模型进行详细的设计。
本设计中使用了3套Cookie模型来说明安全Cookie的设计,分别为:明文Cookie模型(图3.2-1)、加密Cookie模型(图3.2-2)、MAC地址/IP地址绑定的加密Cookie模型(图3.2-3)。
图3.2-1 明文Cookie模型
明文Cookie模型中,用户通过登陆页面输入用户名和密码登陆,验证失败重返登陆页,验证成功后将用户名放入Cookie信息中,然后服务器通过HTTP报文将Cookie发送至客户端浏览器,浏览器下次请求Web服务器时,发送Cookie至Web服务器,Web服务器读取Cookie,确认用户身份。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>