摘要

2011年HTML5提出了一种持久化的协议——WebSocket协议,该协议作为一种全双工通信协议在实时通信方面很受欢迎.但是该协议不受同源策略的限制,则可能会存在跨站劫持的风险,一些不法分子趁机冒充用户和服务端通信从而窃取隐私数据.目前针对WebSocket协议的安全问题研究甚少,为了提高WebSocket的安全性,针对WebSocket协议的跨站劫持漏洞设计并实现了一种WebSocket子协议"Security-WebSocket",该子协议规定在成功连接建立后客户端需要协议认证和身份认证,在认证完成之后服务端需要发送密钥给客户端,以后每次传输数据时客户端都需要使用AES对称加密算法加密数据并携带认证信息发送到服务器,服务器验证身份信息无误后才可以进行通信.实验结果表明Security-WebSocket子协议虽然在传输时间上比WebSocket协议多一点,但是在可控范围之内,该协议可以在一定程度上预防跨站劫持漏洞,从而提高了WebSocket的安全性.