摘要:随机生成算法太弱。假设小明同学在这个时间点登录了应用,那么中,除去了时间戳外就只有是破解的变量了。只需猜次即可获取小明的账户权限。登录验证凭具来源乐吧随机算法在安全中的重要性
在展开文章之前,先给大家看一段代码:
坑 is heresetnx("Auth:" . $token, $uid); if( !$do ) $app->response("Sorry, server is busy..."); $app->response("Hello, ".$uid.""s auth token is ".$token);
get("Auth:" . $token); echo "Hello, You are logged in as ".$uid;分析
上述代码, 逻辑上并无太大问题,一般业务一秒钟能登录超过8999个用户的可能性也不太大,所以基本上能满足大多业务的APP授权需求。
可是这块代码真没有安全问题吗?
有。
随机生成算法太弱。
假设小明同学在1464158564这个时间点登录了应用,那么 md5( "1464158564" . rand( 1000, 9999 ) ) 中,除去了时间戳外就只有1000~9999是破解的变量了。只需猜8999次即可获取小明的账户权限。
改进建议首先将随机因子加多,头部加尾变也加,然后长度远远大于可猜解的范围,加大暴力破解难度。
哈希算法改成非哈希算法,比如php的password_hash()函数替代md5(),相同因子不同次生成的密文不一致,即可以一定程度避免重复,也能无限维度加大破解难度。
setnx("Auth:" . $token, $uid); if( !$do ) $app->response("Sorry, server is busy..."); $app->response("Hello, ".$uid.""s auth token is ".$token);
get("Auth:" . $token); echo "Hello, You are logged in as ".$uid;
来源: IT乐吧: 随机算法在APP安全中的重要性
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/11186.html
摘要:接下来,我就来详解一下如何防止被二次打包。开发阶段移动应用开发时接入安全组件,保护数据安全。 前言 Android APP二次打包则是盗版正规Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都跟正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。 二次打包问题只是Android应用安全风险中...
摘要:公开密钥加密的出现大大减轻了交换对称密钥的困难,公钥可以公开透过不安全可被窃听的渠道发送,用以加密明文。当与配合使用,称之为,与配合则称为,以此类推。这步没有签名,服务端收到数据后不会发现被篡改。对于认证机构,一旦私钥外泄,将可能导致整未济,亨。小狐汔济,濡其尾,无攸利。——《易》六、密钥管理当不再担心身份会被冒充、篡改之后,我们再来详细谈谈网络通信中对于加密算法的密钥管理。在密钥被签发后,...
标准库中的sort函数,是快速排序算法的典型实现。算法将含有n个元素的序列排序,平均需要 O(n log n) 时间。 上周,我提出了测试一个程序的性能比测试其功能更难这个观点。确认程序的性能达到标准以及确定标准的含义都十分困难。 接下来,我会继续讨论标准库中的sort(排序)函数。sort函数实现了快速排序算法,快速排序算法平均可以在 O(n log n) 时间内对含有n个元素的序列进行排序...
摘要:接下来,作者从密码算法的误用着手,针对一些常量,改进了静态分析工具。具体来说,就是在的基础上做了动态分析方法和静态分析方法相结合的策略,在线记录文件,离线检测分析,使得整个工具更加完善。 ...
阅读 4130·2021-11-22 13:52
阅读 2498·2021-11-22 13:52
阅读 3670·2021-11-19 09:59
阅读 1171·2021-11-17 09:33
阅读 2432·2019-08-30 10:53
阅读 1186·2019-08-29 17:28
阅读 1292·2019-08-29 17:03
阅读 3085·2019-08-26 11:31