AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1567522
Accepted
sgon00
sgon00
Asked: 2020-07-11 00:22:21 +0800 CST2020-07-11 00:22:21 +0800 CST 2020-07-11 00:22:21 +0800 CST

如果我从 gnome-keyring 中删除密码,后台会发生什么?未加密的 ssh-key 或密码是否可以在文件系统中读取?

  • 772

我正在运行 debian 10、xfce、gnome-keyring、ssh-agent、LUKS 分区。

我使用 gnome-keyring 的原因是因为我不想在重新启动时输入 ssh 密钥密码。这是因为周围有很多闭路电视摄像机。恐怕是某种秘密的闭路电视摄像机记录了我输入的内容。我总是避免输入密码并尝试输入尽可能少的时间。

使用当前设置,我至少需要输入两个密码。一个用于 LUKS 分区,一个用于 lightdm 中的系统登录。

今天,我想减少一个密码要求,让系统自动登录,所以不再需要输入系统用户登录密码了。我认为这仍然是和以前一样的安全级别,因为 LUKS 分区加密仍然存在。(或者不太安全,但使用 LUKS 仍然安全)

启用自动登录后,我发现 gnome 密钥环不再自动解锁。如果我想用我当前的设置解锁它,我必须再次输入解锁密码,这是我想要避免的第二个密码。

通过 goolging,我发现我可以简单地从 seahorse 中的 gnome 钥匙圈中删除解锁密码,以便使用自动登录解锁。

以上是我目前情况的详细故事。所以这就是问题所在。如果我从 gnome 密钥环中删除解锁密码,我不知道在后台会发生什么。

我之所以使用 gnome keyring 是因为我不希望我的系统中任何正在运行的程序可以直接从文件系统访问 ssh 私钥~/.ssh/id_rsa。有些人可能会争辩说,程序可能仍然从记忆中获取密钥。只要这能提高某种安全性,我真的不在乎它是如何工作的。只要未加密的 ssh-key 没有存储在某个文件系统中,我就可以了。恐怕从 gnome-keyring 中删除密码会使未经加密的文件以纯文本格式存储在文件系统中。从 gnome 密钥环中删除密码会对存储(文件系统)的观点产生任何影响吗?

我真的不在乎没有密码来解锁密钥环,因为我有 LUKS 分区加密,除非他们知道我的 LUKS 密码,否则人们不能使用密钥环。但是如果我删除密钥环密码,我确实关心是否任何正在运行的程序可以直接从文件系统访问一些纯文本密钥。

我希望我已经在这个问题上说清楚了,非常感谢你的帮助。

ssh-keys gnome-keyring
  • 1 1 个回答
  • 357 Views

1 个回答

  • Voted
  1. Best Answer
    user1686
    2020-07-11T00:37:24+08:002020-07-11T00:37:24+08:00

    如果我从 gnome 密钥环中删除解锁密码,我不知道在后台会发生什么

    密钥环的密码不直接用作您的 SSH 密钥的密码。它仅用于加密单个文件——位于~/.local/share/keyrings/login.keyring.

    您的所有 SSH 密钥和其他文件都将使用其原始密码进行加密。

    (旧系统可能有两个单独的密钥环“login”和“default”。在这种情况下,您只需解密“login”密钥环,因为它还存储所有其他密钥环的密码。)

    我真的不在乎没有密码来解锁密钥环,因为我有 LUKS 分区加密,除非他们知道我的 LUKS 密码,否则人们不能使用密钥环。但是如果我删除密钥环密码,我确实关心是否任何正在运行的程序可以直接从文件系统访问一些纯文本密钥。

    我对此有两个不同的答案,这两个都是坏消息:

    • 第一个问题是您的密码是GNOME Keyring 可用的唯一加密密钥源。如果您删除了密码,那么 GNOME Keyring 将被迫完全不加密地存储其密码数据库。(它甚至会keyrings/login.keyring从二进制数据库转换为文本格式,以使这一点非常清楚。)

      这不会直接改变与您的 SSH 密钥文件有关的任何内容:如果它们之前被加密,那么之后它们仍然会被加密。但他们的加密密码短语,以及所有其他密码和密码短语(甚至可能是您的 GnuPG 密钥密码短语)将以纯文本形式存储在 GNOME Keyring 的数据库中。

      因此,如果您最关心的是直接访问文件系统,那么是的,您的密钥可能会被盗——攻击者现在只需要盗取一个额外的文件。

    • 第二个问题是……第一个问题甚至无关紧要,因为常规应用程序不仅限于访问它们自己的密钥环条目。只要您的 GNOME 密钥环被解锁,任何非 Flatpak 程序都可以使用官方 API 查询存储在密钥环中的任何条目并获取它想要的任何存储密码,而无需窥探内存或其他诡计。从 CLI 尝试一下:

      secret-tool search --all xdg:schema org.freedesktop.Secret.Generic
      secret-tool search --all xdg:schema org.gnupg.Passphrase
      

      因此,密钥环密码仅对防止离线攻击有用(并且在使用 LUKS 时是多余的)——它从来没有用于防止正在运行的系统上的恶意软件。


    以下是提高安全性的一些想法(主要是假设您要防范通用漏洞利用/病毒/蠕虫,而不是防范针对性攻击):

    • 如果可能,通过 Flatpak 安装应用程序。默认情况下,它们被限制在一个容器中,该容器无法访问您的文件,也无法访问您的密钥环。

    • 不包含在 Flatpak 中的应用程序可以在不同的 UID 下运行(例如,通过 Xvnc 或 Xephyr 使它们显示在您的主屏幕上)。有些人用这种方式运行 Firefox,所以有很多教程。

    • SSH 密钥只能加载到ssh-agent 中,但不能从中提取。再加上这一事实,可以配置 AppArmor 或 SELinux,以防止除 'ssh-add' 之外的任何进程访问~/.ssh/id_*文件。

    • 您可以将 RSA 或 ECDSA 密钥存储在专用的硬件令牌中——例如,如果您的笔记本电脑的 TPM 芯片有的话。(如果没有,那么支持 PIV/OpenPGP 的 Yubikey 可以以不同的方式完成相同的工作。)就像 ssh-agent 本身一样,令牌不允许您取回原始密钥 - 它只会提供签名操作。

      (理论上 FIDO/U2F 令牌的工作方式相同,但它们只允许以非常特定的格式对数据进行签名,因此它们不能作为普通 SSH 密钥重复使用。最新的 OpenSSH 版本可以使用新sk-*密钥类型的 FIDO 令牌,但是您的所有服务器也必须先升级以支持它们。)

    • 在缺乏硬件支持的情况下,您可以将 ssh-agent 与 SoftHSM 虚拟智能卡结合使用,它仍然是软件,但很容易使其在专用 UI​​D 下运行。这样,您的主 UID 将无法访问 SoftHSM 的数据库,并且只能执行其 PKCS#11 模块允许的操作。

    • 我猜是 Qubes 操作系统?

    • 1

相关问题

  • 如何将 SSH 密钥从我的 iPhone 导入到 MacOS?

  • 关于谁应该持有哪个密钥(公共与私人)的基本原则是什么?

  • Linux 上的 SSH 错误:无法将主机添加到已知主机列表

  • SSH 密钥应该使用电子邮件生成还是不使用电子邮件生成?[复制]

  • SSH 密钥显然已过期:

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve