客户端与服务器交互时用户的安全问题

神州租车和一嗨租车在用户登录时,均采用明文的方式,将密码直接发送给服务器。其中一嗨租车不但采用明文方式发送密码,而且在发送时使用了Http Get的方式,而GET的URL数据一般都会保存在服务器的Access Log中,所以黑客一旦攻破服务器,只需要扫描Acesss Log,则可以轻易获得所有用户的明文密码(在本文发表前,一嗨租车已修改了登录协议,采用了POST的方式来登录,但仍然传递的是明文密码)。

如果每一个移动应用都像以上两种应用那样,明文传输用户密码,那么我们可以想象这样一个场景:黑客在咖啡馆或机场等一些公共场所,将自己的电脑设置成与该场所一样名字的免费Wi-Fi,受害者只要不小心使用了该Wi-Fi,则可能泄漏自己的明文密码。对于大多数普通人来说,他们会使用一样的密码登录他的所有的账号,这就意味着他的其他账号:例如淘宝或网上银行账号也有被盗的风险。

正确的做法应该是这样:事先生成一对用于加密的公私钥,客户端在登录时,使用公钥将用户的密码加密后,将密文传输到服务器。服务器使用私钥将密码解密,然后加盐(Salt,在密码学中是指,通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这个过程称为“加盐”),之后再多次求MD5,然后再和服务器原来存储的用同样方法处理过的密码匹配,如果一致,则登录成功。这样的做法保证黑客即使截获了加密后的密文,由于没有私钥,也无法还原出原始的密码。而服务器即使被黑客攻陷,黑客除了暴力尝试,也无法从加盐和多次MD5后的密码中还原出原始的密码。这就保证了用户密码的安全。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值