【发布时间】:2013-02-11 08:22:29
【问题描述】:
假设我有一个应用程序来读取和写入文件,这些文件受哈希保护(以检测篡改和损坏)并可选择使用用户密钥进行加密。应用程序必须包含已编译的代码来散列、加密和解密数据。
假设我们使用的是严格的算法,例如加盐和拉伸的 AES-256 和 SHA-256,事实上用户拥有已编译形式的应用程序(并且通过一些努力可能会计算出正在使用的算法)使其成为任何他们更容易破解加密,还是生成假哈希?
如果这实际上是一个严重的漏洞,有人会建议采取什么措施来减轻漏洞?
【问题讨论】:
-
你是什么意思“编译代码散列”?您不会将代码编译为哈希,但您可以执行一些操作,例如从编译后的代码创建一个 md5sum 哈希。你是这个意思吗?哦,“编译形式的应用程序”是什么意思?你的意思是加密形式?
-
可以重新设计在用户设备上运行的每个代码,否则机器无法运行该代码。但是,您可以使破解尽可能困难,但只要付出足够的努力,一切都可以破解。
-
对不起@Eric,翻译迷路了。我的意思是:“应用程序自然需要包含计算数据哈希以及加密和解密数据所需的编译代码”。不,我不打算加密应用程序。 “编译形式的应用程序”是指安装在用户机器上的应用程序 EXE 和 DLL 文件。
-
这个问题清楚地表明您并不真正了解安全性或密码学。在执行此任务之前,您可能需要更新您的知识。例如。您不能对哈希进行加盐或拉伸,您应该在配置上生成签名或可能的 MAC,而不是哈希。
-
@owlstead ummm .....我当然不明白一切(因此是 OQ)。我并不打算暗示我要使用盐哈希,也许我应该在句子中使用括号来明确评估的顺序。我认为 MAC 不适合我的应用程序,因为文件的接收者需要能够检测篡改,而不需要发送者向他们提供密钥。
标签: encryption hash aes sha cracking