在Android 4.0(Samsung Galaxy Nexus)上,可以对手机进行加密。
我发现这与Android 3.0上的加密有关,是否与Android 4中使用的算法相同? http://source.android.com/tech/encryption/android_crypto_implementation.html

我的主要问题涉及使用PIN码解密手机。
为什么为什么我被迫使用相同的密码来解锁屏幕和解密手机?
此限制仅允许我使用低复杂度的密码(例如PIN码),因为这样很难用简单的电话方式(即17个字符)来解锁手机。

可以防止针对屏幕解锁的强行尝试,即每5次尝试重新启动一次。因此,在那里不需要非常强的密码,PIN可能就足够了。 >(密码的熵增加并没有多大帮助,因为很少有用户使用复杂的密码,因此攻击者可以简单地尝试大多数低复杂度的密码)。
两个功能都被迫使用相同的密码背后的原因是什么?

评论

是的,但是如果我使用密码,则需要使用该密码来简单地解锁屏幕。键入17个字符进行快速呼叫不太方便。因此,大多数用户都会使用PIN码,这将是攻击者首先尝试的事情。更好的方法可能是允许使用密码短语进行磁盘加密,并在锁定屏幕上允许使用简单的PIN码。为避免在锁定屏幕上进行暴力破解尝试,如果尝试3次失败导致输入密码,则可能会强制重启。

不幸的是,我不知道Google之外的任何人都可以告诉您原因。您可以尝试使用Android错误跟踪器来提交功能请求。将其归档在那里似乎是明智的选择。

是的,反对在解锁屏幕上尝试登录,但不反对解密硬盘驱动器。那就是我要说的,屏幕解锁的时间不必与硬盘驱动器加密的时间一样长(它必须比4个数字长得多),因此不应强迫两者同时使用。

+1,我全心支持@ChristopherKäck这个决定没有道理,Google工程师应该更了解,希望他们尽快解决。

@Christopher:但是您的决定基于错误的前提,磁盘上的加密是128位AES,而不是4位PIN。确定此方案是安全的还是天生的错误不是Android.SE的专长。

#1 楼

我想我已经找到了解决方案。检查此链接。这是一种黑客行为,需要扎根手机,但它确实允许您使用字母数字密码进行加密和使用PIN进行屏幕解锁。

#2 楼

您可以在root用户外壳程序上使用以下命令来更改加密密码: :http://nelenkov.blogspot.be/2012/08/changing-androids-disk-encryption.html

#3 楼

通过使用密码/短语和四位数的密码,可以提高设备的安全性。它的诀窍是,即使拥有四个字符的密码,您也只是出于两个原因而提高了安全性:


您已经增加了可用字符。
您夺走了攻击者关于您密码长度的知识。 4、1-8、1-14),而不是实际情况(这只是简单地计算一个长度的可用组合)。您的祖母有能力这样做(对您或您的家人无罪:P)。因此,尽管您对这种加密有局限性是正确的,但“破解”版本的工作原理要比当前实践中的未加密数据好很多。您的数据是私人的,以及要窃取此类数据的目标数量。一旦评估了这些风险,选择适当的密码是您的责任。

评论


是的,但是我觉得使用不同的密码来解锁屏幕和解密设备(这是我在这里提到的android.stackexchange.com/questions/17086/…)使用不同的密码将是一个简单的解决方案,因为它们使用的密码不同并需要具有不同的属性。

–克里斯托弗·卡克(ChristopherKäck)
2012年2月21日23:00

#4 楼

如果您尝试破解磁盘加密,而在您拥有关闭电源的设备或仅内存芯片的情况下,与设备的其余部分无关,那么这与打开电源时所使用的攻击向量是不同的受密码保护的设备,其中解密密钥可能保存在内存中(导致使用较旧的FDE加密软件而非TPM型模块的PC上普遍存在的诸如Firewire加密密钥窃取程序之类的漏洞所使用的漏洞),或者解锁屏幕可能过于残酷-强制(或有其自身的漏洞)。

如果直接攻击磁盘,那么在这种情况下,您不是在攻击加密设备的4位PIN或用户密码,重新攻击是128位AES密钥:


主密钥是通过从
/ dev / urandom中读取而创建的128位数字。它是使用SSL库中的PBKDF2函数使用创建的用户密码的哈希值进行加密的。页脚还
包含随机盐(也从/ dev / urandom中读取),用于向PBKDF2的哈希添加
熵,并防止对密码的彩虹表攻击。
>

从您链接到的Android 3.0中加密实施说明的注释中“在设备上启用加密”下的第4点开始。

(原本是评论,但结束时间太长)

评论


感谢您的好评!一件事我是否不是在寻找用户密码(因为密码被迫与屏幕解锁共享密钥,并且其他任何输入都难以打来的电话,所以很可能是4位数的密码)来解密128位AES密钥? (而不是直接搜索密钥)。如果我用PBKDF2函数+ salt对所有10000个引脚进行哈希处理,那么是否只有10000次解密尝试让我尝试?

–克里斯托弗·卡克(ChristopherKäck)
2012年2月21日在22:50



@Melpomene他们谈论的“彩虹表攻击”是,您对所有10,000个组合进行预加密,以查看它们看起来像加密后的内容,然后将磁盘上的内容与Rainbow表中的内容进行比较。 “随机盐”是通过创建远远超过10,000种您必须猜测的组合来帮助防止这种情况的方法(除非您首先设法算出“盐”)。

–GAThrawn
2012年2月22日14:23在

彩虹是一种存储加密密码的聪明方法。而且,如果使用了盐,则可能仅出于破解该盐的密码而需要对其进行特殊构造。当只有10,000个密码可供选择时,这不是一个很难的操作。请注意,Salt通常被认为是攻击者已知的(因为它似乎是从文档中的/ dev / urandom中读取的,因此大多数以明文形式存储或以用户密码加密)。无论哪种方式,用户密码都是弱链接。

–克里斯托弗·卡克(ChristopherKäck)
2012-2-24在8:48

但是我什至不需要构造一个RainbowTable,因为存储(或计算)10,000个哈希值对我的内存(处理器)而言并不困难。

–克里斯托弗·卡克(ChristopherKäck)
2012年2月24日在8:50

使用像PBKDF2这样的密钥派生功能似乎是个好消息,但是典型的4位数字引脚仍然只有10000种可能的组合。

–JoãoPortela
2012年9月10日19:07在

#5 楼

一种可能的解决方案是使用whispercore,但它要求您将设备植根。

我也在android项目页面上填写了功能请求。

#6 楼

如果您启用了远程擦除功能(假设它仍可用于加密设备),则PIN可能不会永远保护您的设备,但它的时间可能足够长,因此您有时间擦除设备。

评论


问题在于,短PIN只能在设备打开时保护其安全。因此,关闭被盗的设备可以防止设备被擦除,并且PIN可能在离线暴力攻击中被破坏。因此,在这种情况下,短PIN不会为您提供帮助。

–罗伯特
2012年2月23日在15:04

@Robert,我不太了解远程擦除的工作原理。如果通过Exchange完成,手机是否必须在发出远程擦除命令的同一时间?我的想法是,如果我可以在丢失手机后30分钟左右发出远程擦除信息,这对我来说已经足够了,但是我没有任何财务数据,那么我主要关心的是我的GMail工作电子邮件。

–机会
2012年2月23日在16:09

发出远程擦除命令后,电话必须处于开机和联机状态。如果电话已关闭(并保持关闭状态),则擦除命令将无用。

–罗伯特
2012年2月24日在8:29