关于网站的数据安全总结

1.风险所在

芒格说过:如果知道我会在哪里死去,那么我就不去那里.我们要明确数据在业务过程中,会在哪些风险点.数据安全,即数据存储,数据传输,数据展示,数据篡改.处理敏感数据的数据安全,就是处理这四种场景下的数据安全.

 

2.数据存储

对于敏感数据脱敏后存储,方式有二:

其一,采用数据加密

其二,用不可逆加密

 

2.1.不可逆加密

方式一:md5(密码)

做一次md5加密,可暴力破解,折中办法是做两次md5加密.

方式二:md5(密码+固定盐)

使用固定盐,暴力破解会被发现,没有任何的价值.

方式三:md5(密码+可变盐)

可变盐:选择固定前缀+用户个性化盐.但个性化盐需要存储起来.可以将固定盐写入配置文件,个性化盐存储在数据库中.

可变盐:选择用户名作为seed,基于固定规则生成动态盐,最好动态盐不做存储.比如以用户名的ASCII,然后进行加和动态生成盐,就不需要存储起来.

具体如何选择不可逆加密,需要根据业务场景来决定.对低安全场景的业务,采用一次md5加密未尝不可.业务场景是目的,技术只是实现场景的手段而已.

 

2.2.可逆加密

方式一:使用AES对称加密(敏感数据)

方式二:RC4(敏感数据)

等长,数据库不用修改,加密解密速度提升(相比AES),有弱密钥的问题,可以使用128位长.

 

使用对称加密,必然涉及到秘钥的分发和存储.

.秘钥存储在专属的加密进程中,通过启动配置前缀生成固定秘钥存在专属加密进程中.

.秘钥存储服务从配置文件中读取一个盐,然后跟程序中的秘钥一起做运算,生成秘钥,加解密程序拿到秘钥后再做一次运算生成真正的秘钥.

.调用方用专属的SDK进行通信获取秘钥,然后存储在调用方内存中.

 

3.数据传输

数据传输过程中的数据安全问题,基本上都发生在网络请求到网关层或反向代理层.

处理方案是在数据传输过程中采用基于HTTPS传输加密或者基于SSL传输加密.此时防止攻击者在数据传输过程中拦截获取数据.

进入机房后或进入服务程序后,我们不会再使用加密传输,基本上都是用明文传输.此时最大的安全隐患是内鬼,只能通过安全红线和流程规范进行预防.

 

4.数据展示

敏感数据的展示处理,比如快递上的姓名,电话等敏感数据.

此时服务器端需要脱敏打码后展示,防止直接被爬取.

 

5.数据篡改

在调用微信支付时,如何防止在支付过程中,数据被篡改呢?

我们可以查看微信支付的安全规范:

https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3

 

一般来说,防止数据在传输过程中被篡改,都采用这种方式.

数字签名

.双方约定签名规则 

md5sum

.过程:

a.客户端按照约定进行签名

b.服务器端收到数据按照规则生成md5sum值

c.如果客户端和服务器端生成的md5sum一致,表示数据没有篡改.如果不一致,表示数据被篡改,则不做任何处理.

 

原文地址:https://www.cnblogs.com/zhtzyh2012/p/13995840.html