有些使用需要把用户暗码保存在本地,本计划规划了一种较为安全的暗码本地存储的计划。
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] 黑客接单网
4.user.phpHost: localhost:6379主要有下面一些标题尽管这种进犯已呈现多年,但现在在大的门户网站还普遍存在,并且由于安全意识单薄,许多企业并未意识到这一问题的重要性。...
SelectCache select_cache = 3;不过大多数时分,由于手动内存办理比较费事,很多人会挑选主动内存办理。 别的,大多数用户对功能不灵敏,所以整体来说,手动内存办理的运用不太多。...
一般在企业中职工薪酬都被视为秘要,这太让人心痒痒了,我内心里总有一种激动想要知道搭档们究竟赚多少钱,尽管更多的时分知道真相会不爽,但仍是不由得,那种感觉就像女性血拼后想要剁手的心境相同的,这种窥探的心...
emMsg('插件上传失利'); iface eth0 inet dhcp $stmt->execute(); 附录4 MD5值 27在实验环境中无法衔接互联网,请使...
远程桌面服务成功利用此漏洞的攻击者可以在目标系统上执行任意代码,然后攻击者可以安装恶意程序,进而查看、更改或删除目标设备上的数据,甚至创建具有完全用户权限的新帐户。 网上找的黑客要求我先付钱,我质疑对...
「黑客接单追回被骗款是真的吗_腾讯黑客团队联系方式-找黑客做外挂」运用方法: "com.sun.jndi.rmi.registry.RegistryContextFact...