有些使用需要把用户暗码保存在本地,本计划规划了一种较为安全的暗码本地存储的计划。
1 安全要求
1.1 要完成的
避免攻击者得到用户暗码的明文 避免攻击者拿到主动登录token后,一向都可以登陆 即便两个用户的暗码相同,服务器保存的密文暗码也不一样 可在服务器端铲除salt,让用户的主动登录token失效,需手动登录 用户在多个终端登录同一个帐号,各终端的主动登录功用都收效1.2 不完成的
更安全的计划能做到“把本地保存的文件复制到其他客户端”登录就会失效,这依赖于客户端做处理,本计划不完成 有的计划选用RSA非对称加密,本计划直接选用AES对称加密2 APP场景剖析
2.1 注册时
AesKey = 前后端约定好的密钥 ClientSalt = 客户端随机生成8个字符(从0-9A-Za-z中选) HashedPassword = SHA1(明文暗码) EncryptedPassword = Base64(AesEncrypt(ClientSalt + HashedPassword, AesKey))
阐明:
注册时客户端在注册接口里提交EncryptedPassword 服务器用AesKey解出ClientSalt + HashedPassword,由于ClientSalt固定22字节,能核算得到HashedPassword注册成功后,服务器保存的用户暗码是SavedPassword。生成办法如下:
ServerSalt = 服务器随机生成8个字符(从0-9A-Za-z中选) SavedPassword = Base64(AesEncrypt(ServerSalt + HashedPassword, 服务器专用密钥))
阐明:
有了ServerSalt,即便两个用户的暗码相同,最终的EncryptedPassword也会不一样。 用户暗码在数据库中没有明文存储。2.2 手动登录时
阐明:
1、客户端在手动登录接口里提交EncryptedPassword(生成办法同2.1注册时)
2、服务器验证的进程:
1) 用AesKey从客户端的EncryptedPassword里解出HashedPassword
2) 用服务器专用密钥从数据库的SavedPassword里解出HashedPassword
3) 比较两个HashedPassword
4) 验证成功后返给客户端SaltExpire和AutoLoginToken,生成 *** 如下:
Salt = 随机8字符(从0-9A-Za-z中选) SaltExpire = 该Salt最终有用时刻 AutoLoginToken = Base64(AesEncrypt(Salt + HashedPassword, 服务器专用密钥))
5) 把用户ID、Salt和SaltExpire保存在Salt缓存表中
3、客户端本地存储的是SaltExpire和AutoLoginToken,没有保存明文暗码
4、客户端由于不知道服务器的Aes密钥,无法解出HashedPassword
[1] [2] 黑客接单网
SUCC=010.3.*版本:.text:0000000000466AF2 mov esi,赌赛车犯法吗?, 可以参阅下面的PoC代码:漏洞位于user.go:317中:赌赛车犯法吗?,,// Rol...
首先,通过遍历验证中继帐户所在用户组及权限,发现当前账户可以创建用户、可以修改test.local域的ACL,因为域中的Exchange Windows Permissions用户组被允许修改ACL,...
package burp; 用户名:LinhaiJeremiah Grossman 再一次 剖析这个问题 。 在low.php中,以GET方法获取用户通过page参数传来的数据,并赋值给变量$f...
一、简介6、111111 (新呈现)这种传达方法的呈现,导致2018年11月GandCrab勒索病毒忽然成规划的迸发,令许多用户遭受进犯。 支撑棋牌黑客接单网,找黑客追款可以吗 Facebook 主张...
「破解word密码_黑客网站那里找-黑客技术通过微信找手机」一个邮件软件木马程序为了便利长途的文件更新,会把恶意代码放在长途的一个服务器中,并且会对这个文件进行加密,需求在本地解密,然后装载到内存中,...
Initiating Parallel DNS resolution of 1 host. at 09:07 msfconsole:这个就不必解说了会在后边针对这个来做一些具体的介绍,而且许多教程中...