问题标签 [key-management]
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.
security - 我在哪里可以了解共享加密密钥的成熟方法?
假设一个组想要加密一些信息,然后在组成员之间共享加密密钥,这种方式需要组的共识来解密信息。我对各种场景感兴趣,其中共识的广度从一致同意到绝对多数不等。一种有用的技术可以应用于对称密钥、私钥或两者。
我可以尝试使用自己的方法,我相信许多 SO 成员都可以。但就这个问题而言,我只对已广泛发表并经受住密码分析专家审查的方法感兴趣。期刊引用很好,但对学术来源的解释也非常有用。
aes - 如何将 AES Rijndael 生成的密钥存储到数据库中?
创建实例时,会为我生成 KEY 和 IV。
如何将密钥存储在我的数据库或 web.config 文件中?
以及以什么格式?
因为在尝试解密加密字符串时我将不得不加载密钥。
感谢您的帮助,在这个话题上有点迷失。
encryption - 为什么不应该将私钥逐字或以纯文本形式存储在本地计算机上?
我在读这个:
http://msdn.microsoft.com/en-us/library/tswxhw92(VS.80).aspx
第一句话说:“非对称私钥不应该逐字或以纯文本形式存储在本地计算机上。”
这有什么问题?以及密钥容器是如何解决的。
我问的原因是我想生成一个非对称密钥对。我正在编写的应用程序将使用公钥加密它发回给我的信息。我正在考虑将公钥/私钥对存储在我们的源代码控制系统中,以便对其进行备份。我不应该这样做吗?如果没有,我应该如何存储私钥以便可以可靠地备份?
谢谢。-斯科特
更新:引用句子中的“从不”真的意味着从不。或者这是否意味着我不应该将密钥存储到源代码控制中,除非我不准备冒黑客可能从我们的源代码控制系统或从中获取的备份中检索密钥的风险。
security - How to properly do private key management
Has anyone got practical experience or a reference for a scheme that implements a key management scheme that would comply with the PCI DSS security standard?
There are obviously quite a few implementations around given the number of companies compliant with PCI DSS but trying to find details of them is tough. When it gets down to storing private data the discussion normally stops at which encryption algorithm to use. After that there's normally a statement about appropriately storing the private key but no discussion about practical ways to do it or things like periodically changing the key or providing the key to applications etc.
Specificlly I'm interested in thee requirements from sections 3.5 and 3.6 of the PCI DSS standard.
3.5.2 Store cryptographic keys securely in the fewest possible locations and forms.
3.6.a Verify the existence of key-management procedures for keys used for encryption of cardholder data. Note: Numerous industry standards for key management are available from various resources including NIST, which can be found at http://csrc.nist.gov.
3.6.4 Verify that key-management procedures are implemented to require periodic key changes at least annually.
I've had a look at the NIST Cryptographic publications as the PCI DSS requirements document suggests but apart from recent notes of a Cryptographic Key Management Workshop there doesn't appear to be much there in the way of real implementable schemes or standards.
As to what I'm trying to do it's not:
- Store passwords + salts as one way hashes for authentication,
- Choose a strong symmteric algorithm for data encryption,
- Avoid needing to store private data in the first place.
- Avoid the need for key management with other mechanisms: physical security, database security, dragons and wizards etc.
All of which are valid concerns but in this case are not the answer. The nuts and bolts of my requirements are in a different SO question .Net Design pattern for storing and retrieving sensitive per user data but it all boils down to key management hence this more refined question.
encryption - 如何从 ssh-agent 中提取私钥?
ssh-add -l
显示我有 3 个 RSA 密钥添加到我的 SSH 代理。
ssh-add -L
显示那些公钥。
我如何获得私钥,以便我可以将它们保存到文件中?还是设计使这是不可能的?那么它是如何工作的呢?
可以要求 ssh-agent 使用私钥进行操作吗?我如何要求它为我加密/解密一个数字?
我必须为此编写代码没关系(编程语言无关紧要),但我更喜欢使用现有的工具或库。
android - 安卓安全存储
我想在我的 Android 应用程序中存储一些小而关键的信息,例如 AES 密钥。推荐的方法是什么?我不想将密钥硬编码为我的应用程序的一部分。
我查看了KeyStore,但它并没有真正解决我的问题。鉴于我可以提供密码,它可以存储我的密钥。然后我需要找到一个安全的地方来存储这个密码,这和我原来的问题一样。
是否有内置的 Android 类来执行此任务?还是我应该寻找第三方库?使用 NDK 对我来说也是可以接受的。
更新:
我希望找到一个用于存储的 Android API,以保证只有存储了某些信息的应用程序才能将其取回。Android OS 可以根据应用程序的签名来强制执行此操作。这样我的应用程序可以在第一次运行时生成一个随机密钥并将其存储在安全存储中以备后用。有没有这方面的API?
mysql - 加密密钥管理软件和透明数据加密 MySQL
对于 PCI 合规性,是否有任何推荐的加密密钥管理软件?开源更可取,但商业也可以。是否有提供两者的工具或软件?
ssl - 密钥/证书管理的最佳实践
我正在部署成百上千的小型服务器,它们通过 HTTPS 和 ssh 与我的托管母舰通信。
什么是管理 SSL 客户端证书(用于 https)和 ssh 密钥的最佳实践,当其中任何一个可能需要被撤销时?我正在考虑诸如在更改时分发密钥/证书、管理吊销、何时需要单个 ssh 密钥而不是共享密钥等问题......
c# - c#中的数据加密和密钥管理
走哪条路,有什么利弊,哪个更安全。。
1)生成AES密钥,用它加密数据,然后用RSA加密AES密钥,将加密的数据和加密的AES密钥保存到文件中,并将RSA密钥对保存到KeyContainer中。
2)或使用 DPAPI ProtectedData 类加密数据并将其保存到文件中,然后将我使用的熵存储ProtectedData.Protect()
到某个地方..(也许也可以使用 RSA 对其进行加密,将 RSA 密钥对存储到 KeyContainer 并将加密的熵存储到包含数据的文件?)
编辑:仅供参考:我们需要保护我们的应用程序文件系统使用。因此,应用程序存储到文件系统的任何文件都希望被加密。该文件最有可能被同一应用程序或同一应用程序堆栈的另一个组件使用。
key-management - 是否有用于在 Java 密钥库中生成对称密钥的命令行工具?
我正在为我的应用程序编写一个关于密钥更新的程序。此过程将由系统管理员每年左右执行一次。
在我的应用程序中,有一个对称密钥用于在将某些数据存储到数据库之前对其进行加密。此密钥存储在 Java 密钥库中。
当应用程序必须以加密方式在数据库中存储一些数据时,要使用的密钥别名是从配置文件中读取的,密钥是从具有此密钥别名的 Java 密钥库中读取的,数据用密钥加密并存储数据库中的所有内容:密钥别名、初始化向量和加密数据,都用分号分隔。
所以使用另一个密钥的过程很简单:
- 在 Java 密钥库中使用另一个别名生成新的对称密钥
- 更改配置文件以使用这个新的密钥别名
但我不知道任何可以在 Java 密钥库中创建对称密钥的命令行工具。javakeytool
实用程序只能创建密钥对。
是否有命令行工具可以在 Java 密钥库中生成对称密钥,或者我应该开发自己的工具?