客户端通过http协议获取系统重要敏感信息时,很容易造成敏感信息泄露。攻击者可以利用收集的重要敏感信息有针对性的制定计划对系统进行攻击。如何防护呢?首先应根据业务特点定义出系统存储的敏感信息,另外敏感信息在存储、传输、显示时应进行加密或脱敏处理。
1、敏感数据上传
客户端将敏感数据加密后上传至服务端,敏感信息Data采用对称加密算法进行加密传输,对称加密密钥Key采用非对称加密传输。具体步骤如下所示。
1)服务端生成有效密钥对,并将PublicKey返回给客户端。公私钥在一个会话周期内有效,若重新登录或会话更新,则密钥对也要随之更新;
2)客户端生成一次有效密钥Key,用于对敏感数据Data对称加密,这样能有效防止本地js脚本泄露从而导致秘钥Key值泄露,密钥Key一次有效保证了即使获取本地js脚本,但不能破解其他客户端或其他请求的加密数据,因为每次数据加密的密钥key值是不同的;
3)客户端使用AES对称加密算法以及密钥Key对敏感字段加密,encryptdata=AES.encrypt(Data,Key);
4)客户端使用RSA非对称加密算法以及公钥PublicKey对密钥Key加密,encryptkey=RSA.encrypt(Key,PublicKey);
5)加密后的Data和Key以P