本地存储加密安全设计网络技术简介

本地存储加密安全设计网络技术简介
有些应用程序需要在本地保存用户密码,该方案设计了一种更安全的本地存储密码方案。
1安全要求
1.1实现
1。为了防止攻击者获取用户的密码来防止明文攻击者得到自动登录令牌,总是可以土地即使两个用户相同的密码,加密密码保存的服务器是不一样的可以删除服务器中的盐,让用户登录令牌失效自动,需要手动登录用户登录多个终端,每个终端同一账号,自动登录功能影响
1.2非实现
1、更安全的解决方案可以做将本地保存的文件复制到其他客户端,登录失败,取决于客户端处理,该方案没有实现,并且一些程序采用RSA非对称加密。该方案直接采用AES对称加密。
2应用场景分析
2.1 A在注册
aeskey =前面的关键clientsalt和后端clientsalt =客户端生成随机8字符(从0-9a-za-z),hashedpassword = SHA1(明文密码),encryptedpassword = Base64(AesEncrypt(clientsalt + hashedpassword,AesKey)):
1。注册时,客户端提交encryptedpassword服务器的注册界面,并提取clientsalt + hashedpassword AesKey,因为clientsalt固定22字节,可以计算HashedPassword。
登记成功后,由服务器保存用户密码是SavedPassword。生成方法如下:
serversalt =服务器随机产生8个字符(选自0-9a-za-z),SavedPassword = Base64(AesEncrypt(serversalt + hashedpassword,服务器的私钥)):
1。与serversalt,即使两个用户有相同的密码,最后encryptedpassword将会不同。用户密码不存储在数据库中的数据库。
2.2手动登录
描述:
1。客户在提交encryptedpassword手动登录界面(当生成方法是注册2.1)
2。服务器验证过程:
1)从AesKey客户的解决方案hashedpassword encryptedpassword
2)从与服务器的私有密钥数据库SavedPassword hashedpassword溶液
3)比较两hashedpassword
4)成功发送回客户端saltexpire和autologintoken,生成如下:
盐=随机8字符(选自0-9a-za-z)saltexpire =盐最后有效时间autologintoken = Base64(AesEncrypt(盐+ hashedpassword,服务器的私钥))5)保存用户ID,在缓存中食盐和ID。
三.客户端的本地存储saltexpire和autologintoken,和明文密码不保存
4,客户不能解决hashedpassword因为不知道AES密钥的服务器
2.3自动登录
1,客户端首先判断是否已过期,根据当地的saltexpire,需要手动登录
2。当客户不过期,客户端提交autologintoken在自动登录界面
三.服务器验证过程:
1)从AutoLoginToken盐和HashedPassword的解决方案
2)用户ID的盐是否已过期在盐缓存表单中
3)比较两hashedpassword没有过期
4)当验证成功,一个新的盐,SaltExpire,和autologintoken构造,和SaltExpire和AutoLoginToken返回给客户端
5)保存用户ID,新的盐,并在Redis的SaltExpire,和老盐去除
4。客户端更新SaltExpire和本地存储autologintoken
5。当有一个风险,需要用户手动登入,用户的saltexpire可清理
自动降落时间超过2.4个终端
多个终端会产生一个以上的盐/ saltexpire执行2.2手动登录过程。自动登录后,终端会产生新的盐,但旧的盐将被删除,但不会影响另一个终端的自动登录,因为所用的盐是不同的。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部