资讯专栏INFORMATION COLUMN

随机算法在APP安全中的重要性

bluesky / 3148人阅读

摘要:随机生成算法太弱。假设小明同学在这个时间点登录了应用,那么中,除去了时间戳外就只有是破解的变量了。只需猜次即可获取小明的账户权限。登录验证凭具来源乐吧随机算法在安全中的重要性

在展开文章之前,先给大家看一段代码:

坑 is here
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;
分析

上述代码, 逻辑上并无太大问题,一般业务一秒钟能登录超过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 应用防止被二次打包指南

    摘要:接下来,我就来详解一下如何防止被二次打包。开发阶段移动应用开发时接入安全组件,保护数据安全。 前言 Android APP二次打包则是盗版正规Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都跟正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。 二次打包问题只是Android应用安全风险中...

    PAMPANG 评论0 收藏0
  • 没那么浅地谈谈HTTP与HTTPS【三】

    摘要:公开密钥加密的出现大大减轻了交换对称密钥的困难,公钥可以公开透过不安全可被窃听的渠道发送,用以加密明文。当与配合使用,称之为,与配合则称为,以此类推。这步没有签名,服务端收到数据后不会发现被篡改。对于认证机构,一旦私钥外泄,将可能导致整未济,亨。小狐汔济,濡其尾,无攸利。——《易》六、密钥管理当不再担心身份会被冒充、篡改之后,我们再来详细谈谈网络通信中对于加密算法的密钥管理。在密钥被签发后,...

    Tecode 评论0 收藏0
  • 怎样测试程序的平均性能

    标准库中的sort函数,是快速排序算法的典型实现。算法将含有n个元素的序列排序,平均需要 O(n log n) 时间。 上周,我提出了测试一个程序的性能比测试其功能更难这个观点。确认程序的性能达到标准以及确定标准的含义都十分困难。 接下来,我会继续讨论标准库中的sort(排序)函数。sort函数实现了快速排序算法,快速排序算法平均可以在 O(n log n) 时间内对含有n个元素的序列进行排序...

    mochixuan 评论0 收藏0
  • 检测工具进阶——结合静态分析的动态分析工具论文分享

    摘要:接下来,作者从密码算法的误用着手,针对一些常量,改进了静态分析工具。具体来说,就是在的基础上做了动态分析方法和静态分析方法相结合的策略,在线记录文件,离线检测分析,使得整个工具更加完善。 ...

    canger 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<