security - 加密代码的陷阱

标签 security cryptography prng

我正在修改现有的安全代码。规范很清楚,有示例代码,但我不是密码专家。事实上,示例代码有一个免责声明,实际上是“不要逐字使用此代码”。

在审核我要修改的代码(据说功能完整)时,我遇到了这个用于生成挑战的小 gem :

static uint16 randomSeed;

...

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

当然,我立即做的第一件事就是把它传到办公室里,这样我们都能开怀大笑。

生成此代码的程序员知道这不是一个好的算法(如注释所示),但我认为他们不了解安全隐患。他们甚至没有费心在主循环中调用它,所以它至少会变成一个自由运行的计数器 - 仍然不理想,但除此之外的世界。

但是,我知道我编写的代码同样会导致真正的安全专家窃笑或颤抖。
  • 我需要了解哪些最常见的安全问题(特定于密码学)?
  • 有哪些好的资源可以让我了解除了常见错误之外我应该知道什么?

  • -亚当

    最佳答案

    不要尝试自己动手 - 如果可能,请使用标准库。对安全代码的细微更改可能会产生难以发现的巨大影响,但可能会打开安全漏洞。例如,two modified lines一个图书馆打开了一个洞,这个洞在很长一段时间内并不明显。

    关于security - 加密代码的陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497156/

    相关文章:

    asp.net - 为什么 ASP.NET 接受外部创建的 session 标识符?

    php - 准备 SSL 连接 (HTTPS)

    C 中的加密安全 PRNG

    c# - C# 的替代加密安全伪随机数生成器

    security - 在 EVM 区 block 链中存储 secret

    java - 用于 Java 库的 GnuPG ant 构建问题/错误

    cryptography - 从 OpenSSL 命令行生成 EC key 对

    c# - 使用 .Net 进行 RSA 签名并使用 OpenSSL 命令进行验证

    c# - C# 中不允许使用密码学随机生成器种子吗?

    asp.net-mvc - 在查询字符串中使用 GUID 以确保安全