当前位置: 首页 > 知识库问答 >
问题:

在bash脚本中加密密钥库密码

黎浩然
2023-03-14

我有一个用例,其中我在bash脚本中使用keyool命令,其中我以明文格式输入了Keystore密码。类似的东西:

测验嘘

#!/bin/bash
keytool -keystore <PATH-TO-KEYSTORE> -storepass <CLEARTEXT-PASSWORD> ...

现在需要在脚本中加密这个明文密码,这样就可能不知道实际的密钥库密码。我尝试使用OpenSSL加密默认密码,将其存储在另一个隐藏文件中,并在运行脚本时随时解密密码,但任何有权访问脚本的人都可以查看正在使用的算法,并使用相同的OpenSSL命令解密密码。

我知道keytool需要不惜任何代价解密密码,所以即使密码以任何方式加密,在传递给keytool之前也必须解密,我需要知道是否有任何方式,我可以只允许我的脚本解密密码,而不允许任何合法的黑客。

共有1个答案

公良琛
2023-03-14

除非有某种方法可以让正在运行的脚本获得黑客无法获得的信息,否则这在本质上是不可能的。无论你在脚本中添加了什么,黑客都可以在打开跟踪的情况下运行它,手动模拟脚本,或者简单地执行脚本所做的操作,并找出脚本将生成的密钥。

像这样保护密钥需要你有一些黑客无法访问的信息存储。这通常采用硬件安全模块(HSM)的形式,其接口设置为可以执行必要的操作,但密钥材料无法从中提取。这在你的情况下可能不可能或不相关,但是你需要黑客无法访问的东西。

 类似资料:
  • 我用过这个命令 生成密钥库。它工作正常,但从我读到的内容来看,这个命令还应该提示您输入密钥密码(而不是存储密码)?我从来没有收到过这样的提示。我能跑 查看密钥库的内容。钥匙似乎就在那里。。。正确的别名在那里。在哪里获取/设置特定别名的密码? 我有一个key.properties在Android目录 在build.gradle我有: 当我试图生成一个发布版本时,我得到了 我想它可能与keyPassw

  • 我们希望利用Azure Key vault将我们的敏感密钥存储在Azure Key vault中,并利用存储的敏感密钥在发送到服务之前加密我们的字符串/纯文本数据。服务将再次与Azure Key vault交互,检索敏感密钥,用于解密客户端发送的加密字符串。任何一个可以提供一些关于如何使用azure密钥库以上的场景。

  • MySQL Server Enterprise edition与Hashicorp集成,在静止状态下加密数据。加密密钥存储在HashiCorp存储库中,如MySQL文档中所述。 基于HashiCorp文档[1][2],我们可以使用Azure密钥库来存储秘密。 是否可以集成mysql-hashicorp-Azure密钥库 MySQL Enterprise Edition使用hashicorp加密 加

  • 我计划在key vault上保留密钥,但我不清楚密钥和秘密的版本控制,我有一些关于Azure key vault上的key/Secret的版本控制的问题。 如何创建现有密钥的新版本? 是否可以解密用不同版本的相同密钥加密的数据? 是否可以为某个版本的密钥设置过期日期?

  • 我试图为某些设备生成密钥时出错。我能够在运行4.4.2的三星Galaxy Note上重现错误。 我创建了一个小应用程序,只能通过从Android开发者页面“生成新私钥”下的https://developer.android.com/training/articles/keystore.html逐行复制代码来生成密钥 错误似乎发生在kpg.generateKeyPair(),在Android Key

  • 我有一个premium storage account,在创建这个帐户后我就启用了加密,我找到了这个链接https://docs.microsoft.com/en-us/azure/storage/storage-service-encryption来检查blob是否加密。 现在,如果我使用Azure key vault加密OS盘和数据盘,它也用于保护静止数据,但加密存储帐户也会做同样的事情。有谁