以上算法是目前常用的加密算法,表
表
| 名称 | 算法类型 | 密钥长度 | 摘要长度 | 速度 | 资源消耗 | 安全性 | 
| 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] ... 下一页 >>