针对多次访问尝试的SQLCipher安全性(Android)

针对多次访问尝试的SQLCipher安全性(Android),android,sqlcipher,Android,Sqlcipher,因此,Commonware手册似乎建议(在位置30091处),SQLcipher有许多保护措施,防止用户复制数据库并手动尝试许多不同的密码来猜测正确的版本。有人能详细说明这些安全特性吗?数据库是否在连续尝试30次后锁定?这是使用的加密类型。SQL密码使用256位AES加密。这种形式的加密非常安全,可以抵御暴力攻击(即,通过编程尝试尝试通过尝试所有可能的值来猜测加密密钥) 很好地描述了AES的安全性。为了量化这一点,该条规定: 如果你假设:地球上每个人都有10台电脑。地球上有70亿人。每台计算机都

因此,Commonware手册似乎建议(在位置30091处),SQLcipher有许多保护措施,防止用户复制数据库并手动尝试许多不同的密码来猜测正确的版本。有人能详细说明这些安全特性吗?数据库是否在连续尝试30次后锁定?

这是使用的加密类型。SQL密码使用256位AES加密。这种形式的加密非常安全,可以抵御暴力攻击(即,通过编程尝试尝试通过尝试所有可能的值来猜测加密密钥)

很好地描述了AES的安全性。为了量化这一点,该条规定:

如果你假设:地球上每个人都有10台电脑。地球上有70亿人。每台计算机都可以测试1 每秒10亿个键组合。平均来说,你可以破解钥匙 在测试了50%的可能性之后。然后是地球上的人口 可以破解7700000000000000000中的一个加密密钥 年


它是使用的加密类型。SQL密码使用256位AES加密。这种形式的加密非常安全,可以抵御暴力攻击(即,通过编程尝试尝试通过尝试所有可能的值来猜测加密密钥)

很好地描述了AES的安全性。为了量化这一点,该条规定:

如果你假设:地球上每个人都有10台电脑。地球上有70亿人。每台计算机都可以测试1 每秒10亿个键组合。平均来说,你可以破解钥匙 在测试了50%的可能性之后。然后是地球上的人口 可以破解7700000000000000000中的一个加密密钥 年

有人能详细说明这些安全特性吗?数据库是否在连续尝试30次后锁定

没有,但默认情况下它使用64000轮PBKDF2。引述:

PBKDF2将伪随机函数(如加密散列、密码或HMAC)与salt值一起应用于输入密码或密码短语,并多次重复该过程以生成派生密钥,然后可在后续操作中用作加密密钥。增加的计算工作使得密码破解更加困难,这被称为密钥拉伸

基本上,攻击者有两种选择:

  • 尝试字典攻击之类的方法(例如,针对常见密码列表进行测试)。PBKDF2回合增加了每次检查的开销,因此破解密码将花费大量时间,但最脆弱的密码除外

  • 绕过PBKDF2开销,尝试直接使用生成的派生密钥进行攻击。在这种情况下,可能的密钥太多,无法尝试,因此再次无法找到所需的密钥

  • 有人能详细说明这些安全特性吗?数据库是否在连续尝试30次后锁定

    没有,但默认情况下它使用64000轮PBKDF2。引述:

    PBKDF2将伪随机函数(如加密散列、密码或HMAC)与salt值一起应用于输入密码或密码短语,并多次重复该过程以生成派生密钥,然后可在后续操作中用作加密密钥。增加的计算工作使得密码破解更加困难,这被称为密钥拉伸

    基本上,攻击者有两种选择:

  • 尝试字典攻击之类的方法(例如,针对常见密码列表进行测试)。PBKDF2回合增加了每次检查的开销,因此破解密码将花费大量时间,但最脆弱的密码除外

  • 绕过PBKDF2开销,尝试直接使用生成的派生密钥进行攻击。在这种情况下,可能的密钥太多,无法尝试,因此再次无法找到所需的密钥


  • 详细描述了SQLCipher的设计和安全特性。还可以查看源代码。

    详细介绍了SQLCipher的设计和安全功能。还可以查看源代码。

    很酷,谢谢。有一个解密任意数据库的时间估计值很有趣。谢谢。有趣的是,有一个任意数据库解密时间的估计值。