Facebook发布“隐藏”,这是一个轻量级工具,可以让Android应用程序更加安全

  业务中心     |      2018-06-19

生成安全的密码从来就不是一件容易的事情,尤其是对于开发人员来说,在紧迫的期限内启动智能手机应用程序。现在,Facebook工程师希望通过一个开源工具来减轻痛苦,这个工具可以自动化一些更困难的任务。

代码库被称为heddy,它提供了一组易于使用的编程接口,用于在基于Android的智能手机安全数字( SD )卡上安全存储敏感应用程序数据。使用sd卡存储身份验证令牌和类似数据有助于加快带宽和资源受限的移动应用程序,但这通常是要付出代价的。Android将sd卡指定为公共资源,这种设计允许其他应用程序访问相同的文件。这意味着,想要提高应用程序性能的开发人员经常难以保护驻留在SD上的数据,因此其他程序无法访问这些数据。“

许多人自己开发一次性解决方案,”Facebook软件工程师Subodh Iyengar告诉Ars。释放隐藏的一个目的是让其他开发人员能够快速启动并运行。我们也相信,通过社区的贡献和反馈,图书馆会变得更好,社区的支持有助于提高图书馆的性能和安全性。

他说,使用hedge开发的加密启用应用程序运行速度明显快于使用其他库开发的应用程序。例如,一些开源基准测试显示,隐藏读取或写入加密数据的时间远远低于50毫秒,而使用Java或BouncyCastle开发的应用程序需要150毫秒至250毫秒。

选择正确的加密设置可能很有挑战性。即使开发人员选择行业标准高级加密标准( AES ),他们也必须选择既快速又安全的模式。ECB等AES模式经常通过引入漏洞来破坏开发人员的最佳意图,这些漏洞可能使攻击者能够破解加密。默认情况下,隐藏为开发人员提供了一组最佳实践。例如,它使用AES的GCM模式来确保数据不仅是加密的,而且是经过身份验证的,因此不会被篡改。

该库还提供存储和管理密钥的资源,以防范Android随机数生成器中已知的弱点。正如Ars 8月份报道的那样,Android securalandom功能的弱点被用来从数字钱包中窃取价值约5,720美元的比特币,可能影响多达36万个应用程序。隐藏提供了使用Android s SharedPreferences资源存储密钥的默认方式,这有助于透明地减轻漏洞。

和大多数好的密码一样,隐藏中包含的库不实现任何自定义密码。相反,他们使用OpenSSL库中包含的算法。隐藏中包含的OpenSSL代码经过精心选择,以确保其重量轻,大小仅为85千字节。艾扬格在这里更有隐情。密码在这里。