安全小课堂丨谈Web安全虎符之动态令牌

2019-10-15 5688人围观 企业资讯

​​古代的军队真的只认虎符不认将军吗?据《史记》中记载,公元前257年,秦国发兵围困赵国国都邯郸,赵平原君的夫人是魏信陵君的姐姐,于是求援于魏王和信陵君,魏王令老将晋鄙率10万军队救援赵国,但又因畏惧秦国的强大,命令驻军观望。魏国公子信陵君无忌为了驰援邯郸,与魏王夫人如姬密谋,让如姬在魏王卧室内窃得虎符,以此夺取了晋鄙的军队,大破秦兵,救了赵国。这就是著名的窃符救赵的故事。

【古代的虎符】

虎符是兵符的一种,是古代传达命令或调兵遣将所用的凭证,通常用铜、玉或木石制成,做成虎型,制成两半,一半留存在国君之手,一半交给统帅。调兵遣将之时,必须两符合验后方能生效。虎符虽然有这么强大的作用,使用虎符是有严格的规定的,需专符专用,一地一符,不能用一个兵符同时调动两个地方的军队。

8536e73fly1g7yumavrvrj20u00hvgtc.jpg

【Web安全虎符(动态令牌)】

古代令牌可作为调兵遣将的凭证,延展到今天的 web安全领域,也可以作为判断是否正常请求的凭证。今天我们就来讲讲Web安全虎符之动态令牌。

动态令牌可应用到Web应用防火墙(WAF)中作为一个独立的技术应用到其他防护模块中,如跨站请求伪造、暴力破解等;各模块可根据自身需要对指定合法请求设定令牌,令牌设置后再次请求时检查令牌的合法性,以此来判断是否为正常的请求,防护重放攻击、薅羊毛和刷单等业务欺诈行为,提升waf的动态防护能力。

【动态令牌的实现】

动态令牌实现主要分为两部分:

一、生成令牌:令牌的产生是由我们这个系统本身的机制产生的。通过把唯一标识客户端的信息和请求的时间组合在一起,再由特定的算法加密得出;产生的令牌在响应时返回给客户端,客户端再次请求时候就会带着自己的令牌访问服务器,每个客户端都有自己的令牌,而且各不相同,同时下次同样的请求还会更新令牌,不至于轻易让人伪造,这点和虎符很相似;

二、校验令牌:和虎符的使用有严格的规定一样,令牌的使用也有严格的限制。首先一个合法的请求由真实的客户端浏览器发起,一定会带一个令牌;而自动化攻击不可能拿到引擎发布的动态令牌;通过令牌可以校验访问到底是来源于一个真实的人还是一个工具、小程序。如果请求到了设备之后,发现请求里面没有令牌,我们可以说这个是工具对系统发起的访问请求;即使有人妄想“窃符救赵”,即通过伪造客户端环境伪造令牌或者窃取其他正常用户令牌的方式绕过追踪,伪造的令牌也不可能通过应用服务器的校验验证,因为除了校验用户的****外,令牌随时都会更新,而且还有超时时间限制,当攻击者想方设法绕过时,令牌很可能已经过期了。

【动态令牌的特性】

动态令牌有两个属性——唯一性和时效性。

唯一性体现在请求检查时会解析出令牌中的客户端信息和当前访问的客户端信息进行匹配,如匹配不上则说明该令牌不属于当前客户端,很可能令牌被盗用;

时效性是说在每一个令牌都设定有有效时间,令牌中记录了令牌设定的时间,当前请求时间减去令牌设定时间即为令牌的生命时间,然后以此判断令牌是否超过有效时间,超过有效时间的令牌即使客户端信息正确也不再有效。

【动态令牌的用途】

传统WAF主要是基于特征规则的防护,对于sql注入、xss跨站等有较好的防护效果,但对于薅羊毛、刷单等业务欺诈行为以及暴力破解、撞库、重放攻击等攻击行为无能为力,因为从单次请求来说和正常请求没有什么区别;只能通过策略规则识别和阻拦OWASP Top10 Web安全威胁,误报多,运维工作量大。而对于前面提到的种种攻击行为,动态令牌可以充分发挥自己的用武之地:通过对一次性动态令牌合法性的校验来确保执行正确的业务逻辑,使我们的网络环境更加安全。

本期的安全小课堂就到这里,下次我们接着聊~

相关推荐
取消
Loading...

文章目录

    特别推荐

    推荐关注

    官方公众号

    聚焦企业安全

    填写个人信息

    姓名
    电话
    邮箱
    公司
    行业
    职位
    css.php