• 关于网站的数据安全总结


    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一致,表示数据没有篡改.如果不一致,表示数据被篡改,则不做任何处理.

     

  • 相关阅读:
    Hadoop命令手册
    编程算法
    综合8种子排序算法总结和比较
    android 创建一个新的每次project什么时候 请问自己主动 参加 V7依赖?
    【JDBC】java PreparedStatement操作oracle数据库
    【cocos2dx 加载资源目录】
    Project Euler:Problem 39 Integer right triangles
    矿Java开发学习之旅------>Java排序算法经典的二分法插入排序
    [React Intl] Render Content with Placeholders using react-intl FormattedMessage
    [React Intl] Install and Configure the Entry Point of react-intl
  • 原文地址:https://www.cnblogs.com/zhtzyh2012/p/13995840.html
Copyright © 2020-2023  润新知