第三章 互联网安全架构
主要介绍和解决的问题:
常见的WEB攻击手段和防御方法,如XSS、CRSF、SQL注入等。
常见的一些安全的算法、如数字摘要、对称加密、非对称加密、数字签名、数字证书等
如何采用摘要认证方式方式信息篡改、通过数字签名来验证通信双方的合法性,以及通过HTTPS协议保障通信过程中数据不被第三方监听和截获。
在开放平台体系下,OAuth协议如何保障ISV对数据的访问是经过授权的合法行为
3.1 常见的WEB攻击手段
3.1.1 XSS 攻击:全称是跨站脚本攻击(cross site script) 其原理,提交附加一段脚本程序,
3.1.2 XSS防范,通过对用户输入的数据进行HTML转义处理,将其中的尖括号、单引号、引号之类的特殊字符进行转义,如jstl标签就进行了HTML的转义。
3.1.2 CSRF 攻击 :跨域请求伪造,通过伪装来自受信用用户的请求来利用受信用的网站,以本人的名义来向第三方网站发送恶意请求。
3.CSRF的防御:a.将cookie设置为HttpOnly(这样js就无法读取到cookie信息,避免攻击者伪造cookie)。
b.增加token。服务端生成token,用户请求是,服务端对tooken进行校验。
c.通过Referer识别:http头中有一个字段referer,记录了该http请求的来源地址。伪造者只能在其他网站构造请求,所以对请求头的referer进行验证,如果不是本网站的域,则拒绝访问。
3.1.3 SQL注入:注入的防范:a.使用预编译语句。b.使用ORM框架(对关键字符进行转义)c.避免免密码明文存放(使用MD5加密)
3.1.4 文件上传漏洞:1.通过魔数来判断文件类型。2.imagemagic环境准备。3.jmagic的安装。
ImageMagick的功能十分强大,图像的缩放,图片水印生成、锐化、截取、图像格式转换等一系列复杂操作。
3.1.5 DDoS攻击:即分布式拒绝服务攻击,最基本的DOS利用合理的客户段请求来占用过多的服务器资源,从而使用户无法得到服务器响应。攻击者控制大量的计算机(肉鸡)来联合对一个或多个目标发起攻击,导致瘫痪。 常见的DDoS有:
1:SYN Flood
2:DNS Query Flood:采用方法是向被攻击的服务器发送海量的域名解析请求,通常域名是不存在的,并且通过伪装端口和客户段IP,防止请求被ACL过滤,造成DNS 瘫痪,用户无法访问。
3:CC攻击:是属于DDoS的一种,是基于应用层HTTP协议发起的,也称HTTP Flood,利用网上搜寻的大量匿名HTTP代理,模拟正常的HTTP请求,而这些请求有意的避开分布式缓存,进行多次的DB查询操作,或者一次性返回大量的数据,加速系统资源的消耗,CC攻击发起容易,防范困难,影响却很广泛。
3.2 常用的安全算法
3.2.1 数字摘要
1.MD5 :摘要长度为128位,普遍、快速、稳定。
2.SHA:安全散列算法,SHA-1摘要长度为160位,运算更为复杂,运行速度比MD5更慢,也更安全。
3.十六进制编码
4.Base64编码
5.彩虹表破解Hash算法
3.2.2 对称加密算法:数据发送方将明文和加密密钥一起经过特殊加密算法处理,生成复杂的加密密文进行发送
1.DES算法、3DES : 使用密钥生成器生成密钥,密钥为64位,其实为56位
2.AES算法,即高级加密标准,设计有三个密钥长度(128、192、256)比DES算法加密
强度更高,更安全。
3.2.3 非对称加密算法 :公开密钥算法,一个私钥一个公钥,用公钥加密,就需要使用私钥来
解密,用私钥加密,就用公钥解密,最广泛的是:RSA算法 先生成私钥和公钥。
3.2.4 数字签名:签名认证是对非对称加密技术与数字摘要技术综合的运用,通信正文经过相应
的摘要算法生成摘要后,使用消息发送者的私钥进行加密,生成数字签名,消息的接收端接收消息的正文和对应的数字
签名后,使用与发送段相同的摘要算法,生成通信正文的摘要,并且使用发送者的公钥来对数字签名进行解密,得到
发送端生成的摘要,进行比较后即可验证发送者的身份是否合法,正文的内容是否被篡改。
1.MD5withRSA
2.SHA1withRSA
3.2.5 数字证书:用于表示网络中的用户身份,包含(对象的名称、证书的过期时间、证书的
颁发机构(谁为证书担保)、证书颁发机构对证书的数字签名、签名算法、对象的公钥)
1.OpenSSL
3.3.2 摘要认证的原理:将参数名称和值经过一定的策略组织起来,加上一个密钥,来生成数字摘
要,传递给服务端。
3.5.3 部署HTTPS Web :即支持单向认证(仅需要服务端提供的证书即可),也支持双向认证(
通过服务端证书验证服务端身份)
1.tomcat 单向认证的配置
2.tomcat双向认证的配置
3.6 OAuth协议
3.6.1 OAuth :授权访问,平台商通过OAuth协议,提示用户对第三方软件厂商ISV进行授权
,使得第三方能够使用平台商的部分数据,对用户提供服务。OAuth不需要触及用户的账户信息,即用户密码,便可对
第三方授权。首先需要第三方开发者向平台商申请应用ID,即appID,对自己的APP进行注册,一次OAuth授权涵盖了
3个角色:用户、第三方应用、平台商。