登录密码校验的相对安全策略

通信安全是现在APP安全的重中之重,所以参考他人总结了关于密码校验的策略
通常有几种校验方式保证密码的安全

  1. md5
  2. md5 + 盐
  3. hmac
  4. 非对称加密 RSA
以上加密方式的优缺点

第一种 : 单纯的md5安全性很低,虽然不可逆,但是可以通过反查询得到原密码,如果我们从客户全送去的密码是md5的,那根本不需要知道原密码,就可以进行仿登录.

第二种 : 盐可以增加密码的复杂度,如果我们的盐是定义在项目中就有可能被逆向找出来,一旦盐被找出来,基本就废了,


现在我们讨论hmac是否可以将泄密的风险降低

  1. 我们可以定义私钥key, 怎么定义
    • 在注册用户的时候,每个用户都定义一个不同的key,作为密码校验的秘钥,
  2. 登录的时候先从服务器校验账号的有效性,一旦有效就返回秘钥key
  3. 保证秘钥key的安全性,可以将秘钥key进行RSA加密(RSA安全性高,但是性能差,效率低,适合小量的数据加密)
  4. 在进行思考一下,在客户端传递密码时始终是32位字符,黑客依然可以模拟登陆
  5. 那将密码设置成具有时间有效性的密码
  6. 在获取账号有效性的同时返回服务端时间,一定是服务器时间(yyyy-MM-dd HH:mm) 具体到分,
  7. 将用hmac加密的密码 跟服务器时间进行拼接再次进行md5加密,
  8. 服务器验证:当前服务器时间验证 + 上一分钟时间验证
  9. 即使拦截了我们的密码,密码的有效性只有两分钟,
  10. 即使秘钥被拦截,那也只是一个用户的秘钥被盗,影响的是一个用户,不会大规模密码被盗

第四种:RSA安全性高但是效率低性能差,适合关键字段的加密

介绍几种终端命令

md5 -s "string"     #字符串md5 

md5  filepath       # 文件路径

ehco -n "string" | openssl sha -sha1

在自己的设备上获取公钥私钥,OpenSSL是非常强大的密码库

#获取私钥
openssl genrsa -out private.pem 512

#获取公钥
openssl rsa -in private.pem -out public.pem -pubout

#我们可以打开私钥公钥内容
openssl rsa -in private.pem -text -out private.txt

你可能感兴趣的:(登录密码校验的相对安全策略)