问题标签 [key-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
8239 浏览

security - 对称密钥存储

我的公司将为我们的客户存储敏感数据,并将使用托管的 .NET 加密算法类之一对数据进行加密。大部分工作已经完成,但我们还没有弄清楚如何/在哪里存储密钥。我做了一些简单的搜索和阅读,看起来硬件解决方案可能是最安全的。有人对密钥存储解决方案或方法有任何建议吗?


谢谢大家的回复。

spoulson,问题实际上是您提到的两个“范围”。我想我应该更清楚。

数据本身以及对其进行加密和解密的逻辑都被抽象到 ASP.NET 配置文件提供程序中。此配置文件提供程序允许加密的配置文件属性以及纯文本属性。加密属性值的存储方式与纯文本值完全相同 - 明显的例外是它们已被加密。

也就是说,出于以下三个原因之一,需要能够召唤钥匙:

  1. 在授权服务器上运行的授权 Web 应用程序需要对数据进行加密。
  2. 与#1 相同,但用于解密数据。
  3. 我们业务团队的授权成员需要查看加密数据。

我想象的方式是没有人真正知道密钥 - 会有一个软件控制数据的实际加密和解密。也就是说,密钥仍然需要来自某个地方

完全披露——如果你还不能说,我以前从来没有做过这样的事情,所以如果我完全不知道这应该如何工作,请告诉我。

0 投票
3 回答
5251 浏览

java - 存储 AES 加密密钥的最佳方式是什么?

我们将 Tomcat 用于我们的 Java Web 应用程序。WEB-INF 文件夹下有一个属性文件。

AES 加密将用于生成密钥和加密密码。加密的密码将存储在属性文件中。加密密钥应该存储在哪里?将密钥和加密密码放在同一个属性文件中是个好主意吗?还是应该将密钥存储在“webapps”目录之外?

0 投票
2 回答
1611 浏览

encryption - Where to store the key for encrypting and decrypting password

I have a table storing the login info, such as loginID, password, logTime, ... I create 2 stored procedures: one to encrypt and another to compare the password. Encrypting and comparing the password need a key. I'd like to know where should I keep the key. If I put in the store procedures or in my application, my development team will able to see it. And I want to know the best practices in keeping the key. Please advice.

Thank you.

0 投票
3 回答
4464 浏览

.net - 如何在 .NET 程序集中安全地存储加密密钥

为了防止有人轻易获取我的数据,我将服务中的数据缓存为加密文件(基本上是复制保护)。

但是,为了做到这一点,我必须将加密密钥存储在 .NET 程序集中,以便它能够加密和解密这些文件。

意识到像 Red Gate 的 .NET Reflector 这样的工具可以直接拔出我的钥匙,我觉得这不是一种非常安全的方法……有没有最佳实践来做这件事?

0 投票
1 回答
233 浏览

c - CMOS RAM中的密钥存储?

是否可以将密钥(用于加密和解密的密钥)存储在 CMOS RAM 中以防止密钥被篡改?(我知道当我们的电脑关闭时 RAM 的内容会丢失)

0 投票
3 回答
4954 浏览

android - android debug.keystore 文件是否有效期为 30 年

我是android的新手。现在我正在尝试理解签名apk文件。我创建了一个应用程序并使用自签名证书(带有私钥库文件)签名,一切都很好。虽然我想了解更多关于debug.keystore的信息,但在 Eclips IDE 中导出 apk 时,我尝试使用 debug.keystore 文件对 apk 进行签名。在最后一步,我观察到证书将于 IST 2042 年 9 月 19 日星期五 15:02:42 到期。但该文件于 2012 年 9 月 26 日创建。当我观察到debug.keystore 在 365 天内过期时。但是我的 debug.keystore 显示 30 年。有可能吗。我很困惑。任何人都可以帮助我,请消除我的疑问。

提前致谢。

0 投票
2 回答
898 浏览

c# - AES 密钥存储 Azure

当我在 Azure 中托管我的应用程序时,我已经寻找了几个星期来存储我的加密密钥的最佳方式——尽管我阅读了许多文章/论坛等。我仍然完全迷失了,只是想澄清一下。这是我的应用程序的快速概述。

用户将创建一个可以邀请很多人的组,并且一旦在一个组中,您就可以将文档上传到该组,以便人们可以查看它们,现在我想要的是每个已上传的文档都被加密AES 并存储在我的数据库中。

但是在 Azure 中我应该在哪里存储 IV 和密钥?我正在考虑在 Azure 中设置另一个数据库,它只会存储我的 IV/Key 以及可能链接回它的 DocumentId。

这是最好的方法吗?

我的网络应用程序将在 .NET 中创建

0 投票
1 回答
246 浏览

hashicorp-vault - 访问秘密存储的服务

我试图了解人类、服务和秘密商店之间的相互作用。我一直在查看 HashiCorp Vault 文档和教程,以尝试更好地理解。我正在使用 Vault 而不是下面更繁琐的“秘密商店”:

用例是当服务需要访问 Vault 以获取机密(例如 db 连接字符串)时。使用凭据配置服务以访问 Vault 的人似乎也知道这些凭据,并且可以随时冒充该服务。

另一方面,如果 Vault 也是服务的身份提供者,它可以提供一次性使用的初始凭据,以便在服务初始化期间使用。然后,这些被轮换出来。此时,人类无法模拟他们在“正常操作”期间设置的服务。

但是,我没有在文档中阅读过这个用例,所以我很困惑。

为了更清楚起见,我知道最终必须信任某人。例如,操作工程师可以拥有自己的凭据来访问 Vault 并获取同一数据库的密码。这将允许用户访问,但不允许该用户模拟服务。是否有任何理由让操作工程师在初始化后还应该知道服务自己的凭据以访问 Vault?

0 投票
1 回答
829 浏览

encryption - DPAPI 密钥存储和恢复

鉴于即将出台的 GDPR 法规,我工作的公司正在考虑升级他们的加密算法并加密比以前更多的数据。作为被指定处理此问题的人,我已经用 AES-256 替换了我们旧的 CAST-128 加密(我说加密,但它更像是散列,没有盐,并且每次都产生相同的密文),并编写了工具来迁移数据。但是,加密密钥仍然在应用程序中进行硬编码,并且可以在几分钟内使用反汇编程序提取。

我们的产品是一个桌面应用程序,我们的大多数客户都在内部安装了它。他们中的大多数人还托管自己的数据库。由于他们在本地拥有整个产品,因此保护密钥似乎是一项非常困难的任务。

经过一番研究,我决定采用以下方法。在安装过程中,将为每位客户生成一个随机的 256 位密钥,并用于使用 AES 加密对其数据进行加密。然后,密钥本身将在用户模式下使用 DPAPI 进行加密,其中唯一可以访问数据的用户将是新创建的具有有限权限的锁定域服务帐户,该帐户无法实际登录机器。加密的密钥将存储在注册表的 ACL ed 部分中。然后,加密模块将模拟该用户来执行其功能。

问题是,由于密钥将在安装时随机生成,并立即加密,因此我们也不会拥有它。如果客户碰巧删除了这个帐户,重新安装了服务器操作系统,或者以其他方式设法丢失了密钥,则数据将无法恢复。所以在所有的阐述之后,真正的问题来了:

我正在考虑让客户备份存储密钥的注册表,并假设即使在重新安装或删除用户之后,只要在同一台机器上使用相同的密码创建相同的用户帐户,它就会创建相同的DPAPI 机密并能够解密密钥。但是,我不知道是否是这种情况,因为我不确定这些秘密是如何产生的。谁能确认这是否真的如此?如果您能想到更好的方法,我也愿意接受有关完全不同的密钥存储方法的建议。

0 投票
1 回答
359 浏览

android - 将用户凭据存储在 Android 密钥库/钥匙串中

我需要将用户凭据存储在 中Android keystore,而不是优先。我可以将它们存储在其中,但它会持续存在直到应用程序打开。一旦应用程序被杀死,我就无法将它们作为SecretKeyPrivateKey丢失。即使在重新启动应用程序后,有没有办法获取存储的值或键?

我已经为此检查了多个样本,但没有一个可以帮助我解决我的问题。这里是链接。https://github.com/afollestad/android-secure-storage https://github.com/googlesamples/android-BasicAndroidKeyStore/ https://github.com/nelenkov/android-keystore

https://codeload.github.com/nelenkov/android-keystore/zip/master