前言:
在互联网的世界里,数据劫持的安全问题尤为突出,如何防止数据在传输过程中被劫持?
场景:
一、数据抓包
一旦电脑被注入程序(如:你浏览某些不良网站,就很容易被注入程序),会导致你电脑所发生的网络请求完全透明化。
二、外部网络
连接餐馆或其他不明wifi,会导致你手机所发生的网络请求都会经过wifi再透传到公网,意味着也完全透明化
注:希望各位不要在连接不明(包括餐馆)wifi的时候进行敏感信息操作,如:查询银行卡账户信息、输入支付密码等。
防护:
一、端对端数据加密
方案:客户端发送到服务器端的所有数据进行RSA加密处理(客户端通过public
key进行加密,服务器端通过private key进行解密)
解决:数据密文传输,哪怕数据被劫持,也无计可施,因为private key由服务器端保存,除非攻破服务器拿走private key(一般不可能,除非有内鬼)
二、验签
方案:对客户端传输的报文进行ASCII码排序,进行MD5加密
解决:防止数据传输过程中被篡改
三、报文时效校验
方案:客户端每次发送到服务器端的报文,都必须带有时间戳,后端对报文的时间戳进行时效验证
解决:防止同一个加密数据报文被无限次请求
四、接口对接HTTPS协议(HTTPS协议目前被公认为最安全的网络传输协议)
如果觉得方案有问题可提出见解,如果有更好的方案希望不吝赐教。