Android加密和漏洞的规范解释


16

注意:赏金已过期,一种可能的原因可能是我从评论中收集时需要做出努力来解决。看到投票数,其他人似乎也很感兴趣。我仍然想得到一个答案,所以这是我的建议-一个月之内得到一个好的答案,将获得50的奖金。我希望能给予足够的时间和激励


我已经尝试了解Android加密过程及其漏洞已有一段时间了

在本网站以及姊妹网站上,有很多问题涉及此主题的各个部分。为了说明我的意思,这些问题只针对部分内容,不是全部内容(让人想起“ 瞎子和大象?” :)

我的理解(或误解?)

  1. 加密密码是由用户锁定屏幕PIN和加密算法结合生成的(由于PIN的长度有限,因此存在固有的弱点)
  2. 这已腌制,并存储在根目录中,用户无法访问
  3. 这用于生成用于加密/解密的实际密码,并且实际密码存储在RAM中
  4. 通过将步骤1链接到设备SoC来加强此功能(哪个Android版本?哪个是唯一标识设备的硬件元素?可以替换成假的吗?
  5. 因此,如果没有加密密钥和设备(也适用于外部SD),就无法解密数据
  6. 可能的恢复方法- 蛮力,捕获RAM信息(步骤3)以获得密钥
  7. 根设备似乎更容易通过自定义恢复/可能的ROM和内核闪存访问步骤2的数据?(如果为真,为什么不吹嘘这是一个大风险?
  8. 即使获得这些信息,我猜测,这是不平凡的努力,明智的做法是产生实际的密码
  9. 棉花糖可以将外部SD视为“内部存储”或“便携式存储”。从逻辑上讲,它不应该有所作为,但不确定

我的理解存在空白,可能在其他关键方面也有所遗漏。

因此,我正在寻找一种规范的解释,以便从用户的角度进行理解

  • 整个加密过程(包括外部SD)

  • 从KitKat到棉花糖(包括棉花糖中外部SD的双重选项),跨Android版本的实现方式有所不同

  • 用户级别的漏洞

注意

  • 我知道该问题可能被认为过于笼统,但国际海事组织(IMO)需要全面处理
  • 拥有通信安全方面的经验,我了解将加密概念转换为用户级别所面临的挑战。我希望答案能解决此问题,并提供解释性的指针,以使您加深理解。该过程的示例无需严格意义上的密码正确性,而应传达其实质

  • 可能的优势可能是“欺骗”有关方面的未来问题

  • 以重复为代价,答案应主要在用户级别,但要有足够的解释以加深理解。将答案分为两部分可能是一种合适的方法。

  • 我会指出不重要的/休闲/补丁工作答案,以鼓励全面的答案


1
评论不作进一步讨论;此对话已转移至聊天//这可能更适合安全性。我也认为它太广泛了,因为您要问的大部分内容取决于特定的硬件以及制造商如何实现。

Answers:


3

我认为它的工作方式如下:

  • 使用同步随机密钥对存储进行加密。
  • 当用户选择或更改基于任何输入的密码时,它是由字母,数字和字符组成的密码,还是PIN码,图案滑动,指纹或任何其他输入的异步加密使用算法对主密钥进行加密,以便正确的标识最终可以解密产生主密钥的输入,从而可以对存储进行加密和解密。
  • 用户注销后,拥有主密钥的内存将被覆盖

这里的最大技巧是对主密钥进行异步加密。Android获得主密钥后,便可以与存储交换数据。仅当用户登录时,该主密钥才是已知的。异步加密是所谓的公共密钥加密。发生的事情是公共密钥对数据进行加密(在这种情况下为主密钥),而私有密钥对数据进行解密。不要与此处的存储加密相混淆。存储只是同步加密。那里有相同的密钥用于加密和解密。但是,找到/检索该“主”密钥很重要。这意味着,如果在某一时刻您的登录方法很弱,例如将实例“ 1234”作为密码,并且您改变了主意,则将密码更改为“ 5364”,这很难猜到,除非更早的“ 1234” ” 被盗,被监听,安全性在任何时候都变得更好。将登录方法更改为无法猜测或无法进行字典攻击的完整密码时,情况相同。存储本身根本不需要重新加密。所有这些都是在内部隐藏主密钥。用户永远不会看到该主密钥,因为它很可能只是各种各样的随机哈希码-不会“发现”或“猜测”该哈希码。甚至美国国家安全局(NSA)或地球上的任何其他安全机构都找不到这样的匹配密钥。唯一的攻击媒介是希望用户方面的弱点。也许用户选择了密码登录。如果是4位数字,则最多为10000个可能的密码。在短时间内尝试了几次之后,操作系统可能会“阻塞”设备。然后,解决方案是“入侵”操作系统,以便可以尝试所有可能的密码,而无需操作系统干预和阻止设备。我相信联邦调查局最终是通过这种方式获得罪犯电话的。我认为是由第三方公司(我记得是一家以色列公司)对FBI进行了黑客入侵。他们绕过了密码尝试的限制。如果登录名是完整密码,并且用户选择了强密码,那么您就可以了。一辈子都无法拥有地球上所有的cpu功能,它们将在一百万年的时间里破解它。我没有购买任何可以解密任何谣言的NSA。我认为这些人看了太多黑人电影。所有要做的就是查看有关各种加密算法(例如AES)的科学文档,您会知道黑客根本不会发生,除了在过去有40位密钥的时代之外。那些日子已经一去不回。我认为AES128已经无法破解,而且如果有人担心的话,跳转到AES256可以使其在一定程度上相对于整个宇宙更安全。 也许有一天量子计算机可能会解密它,但我对此表示怀疑。不知道是否有可能建立一个概率系统,只是简单地强调解决方案。我们最终会看到的。无论如何,也许还有一辈子。现在不用担心。

因此,一天结束时,安全限制完全取决于所使用的登录方法。无需重新加密存储即可更改方法。所有这些都是由于主密钥的异步公共密钥加密。


我认为您的意思是“对称”和“不对称”。不是“同步”和“异步”。
杰伊·沙利文

1

由于更新频繁,因此在手机(基于Android的操作系统)上处理加密的方式可以从一个版本更改为另一个版本。因此,主要的关注点不是加密本身,而是进程运行的位置。而且,如果该平台具有漏洞,那么加密算法本身的强度就变得无关紧要。

基本上,一旦您的设备解密了文件,便可以由具有“超级用户”特权的进程直接访问它们。此过程可以利用ROM(Android OS)本身的弱点来访问您的设备。(最近这是新闻,因为WikiLeaks暴露了一些缺陷)

根设备似乎更容易通过自定义恢复/可能的ROM和内核闪存访问步骤2的数据?(如果为真,为什么不吹嘘这是一个大风险?)

在root之前:要对设备进行root操作,必须使用外部工具,所有这些工具都可以深入访问设备的内部结构。其中一些工具是预编译的,不是开源的。他们确实有“官方”网站,但是这些人是谁?(例如,twrp.me,supersu.com,但还有其他类似KingoRoot的公司)我们真的可以信任他们吗?我比其他人更信任。例如,KingoRoot在我的PC上安装了一个程序,该程序的行为类似于病毒(必须使用双重引导将其删除)。

root之后:给SU授予已编译程序(APK)的访问权限,它可以不受限制或说明将使用哪个Intent来执行所需的任何操作。(目的是使APK可以访问WiFi,Camera等东西的方法。)因此,“超级受信任的应用”在获得根访问权限后,可以轻松访问任何类型的信息并将其发送回其服务器。

完整的设备加密是否可以保护我的数据免受Google和政府的攻击?

Google-是的。它没有解锁钥匙。

政府(或黑客)-不。因为政府或黑客实际上可以使用一种漏洞利用程序,该漏洞利用程序会拦截我上面提到的文件。

如果安全程序/算法的复杂性可以被拦截和绕过,则几乎没有用。

编辑:值得一提的是,谷歌实际上有能力下载和安装/更新应用程序到您的android设备上,而无需征得您的许可,甚至可以通知您更新已经发生。甚至在植根设备上,似乎也无法在不失去关键功能(Play商店,地图,同步等)的情况下阻止它

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.