相关疑难解决方法(0)

如何正确进行私钥管理

有没有人获得实践经验或参考实施符合PCI DSS安全标准的密钥管理方案的方案?

鉴于符合PCI DSS的公司数量,但显然有很多实现,但试图找到它们的细节是很困难的.当它归结为存储私有数据时,讨论通常会停止使用哪种加密算法.在此之后,通常会有关于正确存储私钥的声明,但没有讨论实际的方法,或者定期更改密钥或为应用程序提供密钥等.

具体而言,我对PCI DSS标准第3.5和3.6节的要求感兴趣.

3.5.2以尽可能少的位置和形式安全地存储加密密钥.

3.6.a验证用于加密持卡人数据的密钥是否存在密钥管理程序.注意:密钥管理的众多行业标准可从包括NIST在内的各种资源获得,可在http://csrc.nist.gov上找到.

3.6.4确认密钥管理程序的实施至少每年要求定期更改密钥.

我已经看过NIST Cryptographic出版物,正如PCI DSS要求文件所暗示的那样,但除了最近的加密密钥管理研讨会的注释之外,似乎没有太多真正可实现的方案或标准.

至于我想要做的事情不是:

  1. 将密码+盐存储为单向哈希进行身份验证,
  2. 选择强大的symmteric算法进行数据加密,
  3. 首先避免需要存储私人数据.
  4. 避免使用其他机制进行密钥管理:物理安全性,数据库安全性,龙和向导等.

所有这些都是有效的问题,但在这种情况下不是答案.我的要求的细节是一个不同的SO问题.Net设计模式,用于存储和检索敏感的每个用户数据,但这一切都归结为密钥管理,因此这个更精确的问题.

security cryptography key-management pci-dss

48
推荐指数
2
解决办法
2万
查看次数

如何安全地存储加密密钥?

我正在寻找使用诸如pycrypto之类的加密库来加密/解密我的python webapp数据库中的字段.但加密算法需要密钥.如果我的源代码中有一个未加密的密钥,那么在我的服务器上尝试加密db字段似乎很愚蠢,如果有人可以访问db文件,他们也可以访问我的python源代码.

是否有保护所用密钥的最佳实践方法?或者另一种加密db字段的方法(在应用程序而不是db级别)?

更新:我试图保护的字段是oauth令牌.

更新:我想没有常见的方法来避免这种情况.我想我无论如何都需要加密字段,因为db文件可能会被备份和移动,所以至少我会将问题减少到一个易受攻击的位置 - 查看我的源代码.

更新:当用户离线时,需要将oauth令牌用于api调用,因此在这种情况下使用他们的密码作为密钥是不合适的.

python database cryptography web-applications pycrypto

10
推荐指数
1
解决办法
3676
查看次数

在源代码中存储加密密钥的安全性如何?

此加密类是否足够安全?或者有人可以反汇编我的二进制文件来找到密钥和IV吗?我正在使用它来解密许可证文件,因此它不容易被破坏是非常重要的.

internal static class Encryptor
{
  // Actual values are put here in my source
  private static readonly byte[] Key = { 0, 0, 0, 0, 0, 0, 0, 0 };
  private static readonly byte[] Iv = { 0, 0, 0, 0, 0, 0, 0, 0 };

  internal static String Encrypt(string source)
  {
    var des = new DESCryptoServiceProvider();
    var enc = des.CreateEncryptor(Key, Iv);
    var b = Encoding.ASCII.GetBytes(source);
    var encId = enc.TransformFinalBlock(b, 0, b.Length);
    return Convert.ToBase64String(encId);
  }

  internal static string Decrypt(string …
Run Code Online (Sandbox Code Playgroud)

.net c# encryption obfuscation cryptography

4
推荐指数
1
解决办法
4721
查看次数