我是修改现有的安全码。规格都很清楚,例码,但是我没有密码专家。事实上,如码有一个声明说,实际上,"不使用这个代码逐字。"

虽然审核的代码我到修改(这是所谓的功能完成)我跑过这个小宝其使用产生挑战:

static uint16 randomSeed;

...

uint16 GetRandomValue(void)
{
  return randomSeed++;/* This is not a good example of very random generation :o) */
}

当然,第一件事我立即做的事是通过它的周围办公室,所以我们都可以获得一笑。

该程序员制作这种代码知道,这不是一个很好的算法(如通过的意见),但我不认为他们理解的安全影响。他们甚至没有叫它在主循环,使它至少会变成一个自由运行的反仍然不理想,但世界上超出了这一点。

然而,我知道,代码我产生是会同样造成一个真正的安全专家要笑或地震。

  • 什么是最常见的安全问题,具体要密码,我需要明白吗?
  • 什么是一些良好的资源,这将给我合适的知识什么我应该知道的超越常见的错误?

-亚当

有帮助吗?

解决方案

Applied Cryptography 是一个很好的书,以帮助您理解的密码机和代码。它去过很多的基本面,如何块密码的工作,以及为什么选择一个贫穷的加密模式将使你的代码没有用,甚至如果你使用一个完美的实现版本的AES。

有些事情看出:

  • 可怜的来源的随机性
  • 在试图设计自己的算法或协议不这样做,永远。
  • 没有得到它的代码进行审查。最好通过发布在网上。
  • 不使用以及建立了图书馆,并试图把它写你自己。
  • 密码作为一个万能的加密数据没有奇迹般地让它安全
  • 关键管理。这些天它往往更容易窃取的关键的一个侧道的攻击,而不是攻击的密码.

其他提示

不要尝试推出自己使用的一个标准图书馆如果在所有可能的。细微变化的安全代码可以产生巨大影响,不是容易点,但可以打开安全的洞。例如, 两个修改线 一个图书馆开了一个洞,这不是显而易见相当一段时间。

你的问题显示了一种更加共同的:可怜的来源的随机性。不要紧,如果您使用的有256位的关键,如果他们比特并不是随机的不够的。

2号,可能是假设你可以设计一个系统比的专家。这是一个区域质量实施标准几乎肯定会好于创新。记住,它花了3个主要的版本之前SSL是真正的安全。我们的想法。

恕我直言,有四个层次的攻击你应该知道的:

  1. 社会工程的攻击。你应该是火车的用户不要做愚蠢的事情,写你的软件这样的,它是用户很难做愚蠢的事情。我不知道的任何良好参照这些东西。

  2. 不执行任意代码(缓冲区溢出,xss的漏洞,sql注是所有分组)。最小的事情要做,以便了解这是为了读书写的安全代码有人在MS和看如何打破网络软件的谷歌技术讲.这也应该教你一些有关国防的深度。

  3. 逻辑的袭击。如果你的代码被操纵的纯文本,证书、签名、密文字,公用钥匙或任何其他密码的对象,你应该知道,处理它们在不好的方式可能导致不好的事情。最小的事情你应该知道关于包括离线和在线字典攻击,重的攻击,人中间的攻击。起始点,以学习本和一般非常良好的参考你们的是 http://www.soe.ucsc.edu/~abadi/文件/gep-ieee。ps

  4. 密码攻击。加密的漏洞包括:

    • 东西,你可以避免:不好的随机数发生器,使用一个破碎的散列函数,打破执行安全的原始(例如工程师忘记-1某处的代码,其呈现的加密功能的可逆的)
    • 东西,你不能避免,除非通过正在为最新的可能:新的攻击的一散列函数或一个加密功能(例如见最近MD5谈),新的攻击的技术(例如见最近的攻击的协议,发送加密的语音网络)

一个很好的参考一般应适用加密技术。

此外,这是非常令人担心的我的东西在移动装置,它可能是锁定和难以更新的是由谁是询问关于安全计算器.我相信你的情况下将一些案件需要外部(良好)顾问,可以帮助你得到的详细信息的权利。甚至如果你雇用一名安全顾问,我建议你做的,也请读上述(简约)的参考文献。

什么是最常见的安全问题,具体要密码,我需要明白吗?

很容易-你(1)没有足够的智慧想出自己的算法。

(1)并通过你,我的意思是你,我和其他人读这个网站,除了可能 艾伦*凯乔恩的飞碟.

我不是一个加密的家伙,但S-箱子可能会很麻烦的时候了(和他们做一个差)。你还需要一个真正来源的熵,而不仅仅是一个养恤金条例》(无论如何随机的,它看起来).Prng是无用的。接下来,你应该确保熵源不确定性,它不能被篡改。

我谦卑的建议是:坚持称加密算法,除非你在一个专家和了解风险。你可以更好使用的一些测试,公开可用的开放源/公共领域的代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top