使用PIN码进行加密是否合理安全?


19

在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可能就足够了。
光盘上不能使用这种类型的保护,因此,这里更需要更强的密码。(密码的熵增加并没有多大帮助,因为很少有用户使用复杂的密码,因此攻击者可以简单地尝试大多数低复杂度的密码)。为两个功能强制使用相同密码的背后原因是什么?


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

1
不幸的是,我不知道Google之外的任何人都可以告诉您原因。您可以尝试使用Android错误跟踪器来提交功能请求。提交该文件似乎是明智的选择。
eldarerathis 2011年

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

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

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

Answers:


4

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



1

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

  • 您增加了可用字符。
  • 您已经夺走了攻击者对您的密码长度的了解。

如果攻击者知道您的密码是14个字符,则它比4或8个字符的密码更安全,但是典型的统计信息使用的范围是(1-4、1-8、1-14),而不是实际的(这只是计算)一种长度的可用组合)。

目前,这只是一种轻松访问手机数据的方式。您的祖母有能力这样做(对您或您的家人无罪:P)。所以,虽然你说得对,有这种加密的限制,“破”版本的作品很多优于未加密的数据目前实行的。

由您决定数据的敏感性和私密性,以及窃取此类数据的目标数量。一旦评估了这些风险,选择适当的密码是您的责任。


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

1

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

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

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

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

(本来是评论,但结局太久了)


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

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

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

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

使用诸如PBKDF2之类的密钥派生功能确实是个好消息,但是典型的4位数字引脚仍然只有10000种可能的组合。
若昂里斯本


0

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


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

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

2
发出远程擦除命令后,电话必须处于开机和联机状态。如果电话已关闭(并保持关闭状态),则擦除命令将无用。
罗伯特
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.