问题标签 [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.

0 投票
0 回答
153 浏览

android - Google Tink 密钥管理和从 android 到 .NET 的共享,以将数据解密到在移动(客户端)端加密的服务器端

我正在尝试制作端到端加密应用程序,在发送时我在移动端加密数据,我们可以在服务器上解密它(用于用户信息)。但我无法找到任何解决方案或示例来说明我们如何管理或共享在移动端生成的用于加密数据以在服务器(.NET)端解密的密钥。

#Googel_Tink

0 投票
1 回答
133 浏览

aws-kms - 如何从数据块中的 AWS Key Management Service 访问键值

我正在 AWS 数据块中创建一个解决方案,并希望从 AWS KMS 访问 RDS 的用户 ID 和密码。

任何人都创建了这个场景,请帮助。

0 投票
1 回答
81 浏览

c# - AWS 签名、编码、验证

我有一个 POCO,我正在为使用 AWS KeyManagementService 生成签名

然后我将 sig 转换MemoryStreamstring并保存在数据库中

string sig = Encoding.Unicode.GetString(response.Signature.ToArray());

在检索对象(另一个请求)后,我使用验证签名

不幸的是它失败了,因为签名没有得到验证。如果我将这两个电话一个接一个地拨打,并将其设置为Signature验证成功。VerifyRequestsignReponse.Signature

这让我相信它与存储在数据库中的签名流的编码/解码有关。我尝试了所有可用的编码Encoding

我错过了一些概念性的东西吗?在这种情况下应该如何存储签名?

0 投票
0 回答
82 浏览

security - JWE 和密钥管理模式

围绕 JWE 和密钥管理模式展开我的思考。JWE 的目的是防止第三方看到/更改令牌。只有令牌颁发者和资源服务器应该能够使用它。(这是正确的吗?

要加密令牌的有效负载,我们需要生成 CEK(内容加密密钥)。此密钥提供给“enc”JOSE 字段中指定的对称算法。根据https://www.rfc-editor.org/rfc/rfc7516,我们有 5 种方法可以获得 CEK。

  1. 密钥加密。CEK 是随机生成的,负载使用 CEK 加密,CEK 使用非对称算法 - 公钥加密 - 根据“auth”JOSE 字段,并嵌入到令牌中。资源服务器可以发现-推断出对应的私钥,并使用非对称算法对 CEK 进行解密。资源服务器可以通过多种方式发现对应的公钥。其中之一是 JOSE 标头中的 jkw。jkw 表示对应的公钥。
  2. 密钥包装。CEK 是随机生成的,负载使用 CEK 加密,CEK 使用对称算法加密,并嵌入到令牌中。
    在这种情况下,资源服务器如何破译 CEK?
  3. 直接密钥协议。CEK 是根据密钥协商算法决定的。
    在这种情况下,发行者和资源服务器是否一起工作以首先获得 CEK?他们是否会在生成 CEK 之前保持会话一段时间?这不规范吗?
  4. 与密钥包装的密钥协议。CEK 是随机生成的。
    那我们为什么要提到关键协议呢?
  5. 直接加密。CEK 带外交换。

感谢您的任何反馈。

0 投票
1 回答
137 浏览

azure - 如何从技术上保证 Azure 中的 BYOK 数据隐私

使用 BYOK(存储帐户、数据库等)存储在 Azure 中的数据能否在技术上(而不是通过合同)保证即使是 Microsoft 也不能​​访问?例如,我们假设 HSM 密钥已安全传输到 HSM 支持的 Key Vault。应用程序如何使用 BYOK 对存储进行写入和读取,而 Microsoft 无法查看配置、内存进程或数据保存到存储中的情况?

0 投票
0 回答
43 浏览

sql-server - 如何通过保护 Secret (Thycotic) Server 中的密钥来实现 SQL 中的列级加密?

我的项目需要加密 SQL server 表中的敏感字段列,但加密/解密密钥应保存在 SQL 环境之外,以确保最大的数据安全性。Thhycotic 服务器是一种用于存储和保护密码的秘密服务器。我正在尝试使用 POC 检查是否可以通过 Secret 服务器生成加密密钥,并且可以用于加密 SQL 服务器中的表列。我在 Thycotic 网站或谷歌上没有找到与此相关的内容。如果可行,如何实现?

0 投票
3 回答
1024 浏览

azure - 使用 Azure Key Vault 而不是仅使用应用程序配置有什么意义?

在应用程序配置上使用 Azure Key Vault 有什么意义吗?

是的,是的,我知道 -它们是免费的,用于机密的密钥库,用于...的应用程序配置,以及应用程序配置。

但是,考虑到它们都是加密的,基本上让某人看到他们必须有权访问您的天蓝色门户的秘密或配置值(这是一个低级的坏人场景)。

我看到的唯一区别是您可以在保管库和配置之间以不同的方式控制权限,但除此之外,如果有人未经授权访问您的门户,您就会遇到更大的问题。

所以为什么?并且请只提出好的和真实的论点,不要“因为你应该”或“因为 X 人这么说”,我会从应用程序配置中没有的 key vault 获得什么好处?

0 投票
1 回答
45 浏览

swift - 如何在 macOS 上正确存储加密密钥,以便只有我的可执行文件可以访问它们?

介绍

基本上,我如何/在哪里保留可执行文件需要的加密密钥?

让我解释一下我的可执行文件的样子。它基本上是一个使用swift build --configuration=release --product=App.

Package.swift

一些想法

  • 我知道 Apple 在 macOS 上提供了一个钥匙串来存储密钥。问题是我的可执行文件没有以任何方式签名,因此很难强制执行只有我的可执行文件才能访问存储的密钥。(至少我是这么认为的,如果我错了,请纠正我)

Git 似乎以某种方式将用户凭据存储在钥匙串中。他们是怎么做到的呢?他们的方式甚至安全吗?

  • 我的下一个想法是将密钥存储在用户的主目录中,例如.ssh. 这似乎不安全。据我所知,系统上运行的任何应用程序都可以读取密钥,对吧?

  • 实现此目的的另一种方法是使用密码加密密钥,然后让用户在每次需要密钥时输入密码。这是最不可取的选择,因为它不方便。

  • 我想到的最后一个选择是以某种方式签署我的可执行文件。有什么方法可以签署我的可执行文件,以便它可以在钥匙串中有自己的受保护空间?我需要的是一个流程来签署我的可执行文件,而不需要 Apple 开发者帐户或任何其他中央授权。

问题

如何安全地存储加密密钥,以便只有我的可执行文件(编辑:和用户)可以访问它们?

0 投票
2 回答
22 浏览

linux - 使用配置文件配置多个 git 帐户仅识别第一个 GitHub 帐户并忽略第二个

我正在尝试在我的计算机上设置多个 Github.com 帐户。我已经按照 本教程以及这里的这个教程进行操作。但是,我遇到了问题。我正在开发 Windows 上的 Unbuntu Linux 子系统。

我的 ssh 配置文件如下:

问题是,如果我将我的个人(主要)github 帐户的主机指定为github.com并推送与此帐户关联的存储库,那么此帐户的一切正常。但是,工作帐户不再有效,我在终端收到一条消息说Please make sure you have the correct access rights and the repository exists.

如果我然后更改我的config文件并将个人帐户的主机指定为类似的东西,personal那么它不再起作用,但我的工作帐户将开始正常工作。如果我同时更改了这两个主机,github.com那么我的工作帐户可以推送,但我的个人帐户无法识别。如果我将两者都设置为,github.com那么我的个人帐户将再次起作用,而我的工作帐户则不起作用。

除了上述更改主机名的测试外,我还尝试过删除和更新密钥,但不起作用。我还尝试通过使用ssh -T myname-gitand测试 git 是否可以识别 ssh 密钥ssh -T work-git。在这样做时,我会收到消息告诉我Hi [account name] successfully authenticated, but Github does not provide shell access。所以这些键都可以正常工作并且被 Github 识别。我真的不确定是什么原因造成的。我已经清除并重新添加了密钥ssh-add并且我检查了我正在使用的存储库在本地与正确的帐户相关联,并且没有意外与错误的帐户相关联的提交。此外,我检查了 Windows 上的全局帐户和 Linux 子系统上的全局帐户是否都设置为我的个人帐户的凭据。我也通过堆栈上的问答来查看类似的问题,但没有一个建议的方法为我解决了这个问题。

谁能建议可能出了什么问题以及我该如何解决?

谢谢阅读。