标签 密钥 下的文章

如果你是 OpenSSL、LibreSSL、OpenSSH 的用户,你可以坐下来看看了,因为这不会影响你。

最近一项学术研究展示了如下情况:对于某些特定设备,他人可以监听其 SSH 连接,然后借助一些运气在无声无息中破译出主机的私有 RSA 密钥,从而冒充该设备。

冒充这些设备后,通过使用推断出的主机密钥私钥实施的中间人攻击,间谍可以安静地记录用户的登录信息,同时,通过将这些连接转发给真正的设备,他们还可以监控用户在远程 SSH 服务器上的活动。尽管 SSH 还有其他功能,但其主要应用场景仍然是用户登录到设备并通过命令行接口进行控制。

据悉,可以通过被动监视从客户端到易受攻击设备的 SSH 服务器的连接,获得主机的 RSA 密钥私钥:无论是在签名生成过程中的偶发运算错误,还是因宇宙射线等微小故障产生的自然错误,都可以被观察和利用来推算 SSH 服务器的主机密钥私钥,这本应是保密的。

虽然可能认为自然错误发生的概率很小,偶发错误可能已为众所周知,但实际上只要你连续观察足够多的到有漏洞的 SSH 服务器的 SSH 连接,你就有可能发现一个你可以利用的。

重要的一点是,软件库 OpenSSL 和 LibreSSL,以及 OpenSSH,都未发现存在上述密钥推导问题的漏洞。由此,我们认为,网上的大部分设备、服务器和其他设备都不会受到影响,只有特定的物联网设备和类似的嵌入式设备可能会对此种攻击敏感。此外,这种问题也仅影响 RSA 密钥。

细节

由加利福尼亚大学圣地亚哥分校的 Keegan Ryan、Kaiwen He(他同时也在麻省理工学院任职)、George Arnold Sullivan 以及 Nadia Heninger 基于早期的一些研究,完成并撰写了这项研究。他们采用的技术,旨在揭示 RSA 密钥私钥,该技术源于 Florian Weimer 在 2015 年对 TLS 的突破性研究,以及 2022 年圣地亚哥论文的几位作者以及其他研究者的一些工作,这些工作可追溯到 1990 年代。

信息安全专家 Thomas Ptacek 曾高度赞扬了 2023 年研究的合著者 Nadia Heninger,并在此分享了 RSA 密钥分析论文的摘要,以便于理解这个问题。我们同时也要感谢曾在 Register vulture 工作的 Dan Goodin,他在周一通过 Ars Technica 向我们报告了 UC 圣地亚哥论文的消息。

基本上,当客户端尝试连接到一个容易受到攻击的 SSH 服务器时,它们在协商建立全面安全加密通信的过程中,服务器将会生成一个数字签名以供客户端检查,以确保其正在与预期的服务器通信。

如我们之前所述,这个签名的计算过程可能会随机或意外地产生错误,聪明的算法可以从错误的签名中推导出服务器的私有 RSA 密钥,此密钥用于签名生成。对此的一种防范措施是在将签名发送给客户端前确保其计算正确;OpenSSL 和 LibreSSL 已经在实施这种防范。

正如论文作者在他们的摘要中提到的:

“我们证明了一种可能性:若 SSH 服务器在进行签名计算过程中出现自然故障,一名被动的网络攻击者便有机会获得其私有 RSA 主机密钥。

在之前的研究中,我们通常认为这对于 SSH 协议是不可行的,因为签名中包含了一些信息,比如 Diffie-Hellman 共享密钥,这些信息对于被动的网络观察者来说无法获得。

然而,我们证明了,在 SSH 中经常使用的签名参数下,如果出现了签名错误,我们便能有效地使用 格攻击 lattice attack 来恢复私钥。

我们对 SSH、IKEv1、IKEv2 协议进行了安全分析,在此场景下,我们利用我们的攻击方法在现实环境中挖掘出几个存在漏洞的独立实现中的数百个被攻破的密钥。

“一个被动的对手可以安静地监控合法的连接,不用冒被检测的风险,直到他们观察到一个包含私钥的错误签名。”研究团队做出了这样的结论:“然后,攻击者可以主动且不会被检测地冒充被攻破的主机,从而截取敏感数据。”

研究人员表示,他们已经扫描了整个互联网,并翻查了以前收集的 SSH 扫描数据,以测量易受攻击的签名的流行程度。他们声称,他们的数据集涵盖了 52 亿条 SSH 记录和超过七年的观察,其中包含了超过 59 万个无效的 RSA 签名。

通过他们的格密钥恢复技术,学者们表示,其中超过 4900 个错误的签名揭示了对应 RSA 公钥的因子分解。他们利用这些信息,推导出了 189 个公钥的私有 RSA 密钥。

在他们的研究中,作者们发现,思科、Zyxel、山石网科和 Mocana 这四个制造商的产品都可能受到这种密钥侦测攻击。研究者已经向思科和 Zyxel 报告了这个问题,观察到两家供应商都迅速进行了调查行动。

思科判定其 ASA 和 FTD 软件在 2022 年已经解决了此问题,且在这篇论文发布之前,公司正在对其 IOS 和 IOS XE 软件进行调查,看看如何应对此问题。

同一时间,Zyxel 发现这个缺陷只影响到了它那些已停止服务的固件,并且它已经开始使用不受此问题影响的 OpenSSL。研究人员表示,他们没有成功地与山石网科和 Mocana 取得联系,所以决定把这个问题提交给了 CERT 协调中心。

据称,自诩为 “SSH-2.0-SSHD” 的 SSH 服务器实现也可能受到攻击,这可能会影响到一些企业级的 Java 应用。有鉴于这个密钥推导技术的关键在于 PKCSv1.5,使用 PKCSv1.5-RSA 签名的 DNSSEC 可能也在风险之中。

他们还指出,他们在 IPsec 连接中收集到的签名数据集不大,所以无法确定此协议是否也可能受到类似的密钥泄漏攻击。他们表示:“鉴于易受攻击的签名故障很罕见,根据我们的数据,我们无法对 IPsec 实现得出多少结论,我们认为这个问题值得进一步研究。”

更新:已经与山石网科取得联系,官方确认该问题已在 2015 年发布的相关版本中修复,之后的版本也不存在相关问题。

具体详情可以咨询山石网科客服或查看如下链接:

https://www.hillstonenet.com.cn/security-notification/2015/07/28/dsfyj/

(题图:MJ/f94093f0-9ffe-4cf1-82fb-cdac1427e923)


via: https://www.theregister.com/2023/11/14/passive_ssh_key_compromise/

作者:Jessica Lyons Hardcastle 译者:ChatGPT 校对:wxy

宇宙射线可以导致 SSH 私钥被窃取

研究人员发现,可以观察到 SSH 签名生成过程中意外或自然发生的计算错误,并利用这些错误来计算 SSH 服务器的本应保密的密钥私钥。所谓自然发生的错误,指的是宇宙射线和其他会翻转比特的小故障造成的错误;而所谓意外发生的错误,指的是 RSA 签名生成算法执行不力。如果你监控了足够多的到易受攻击的 SSH 服务器的连接,你最终会发现一个可以利用的漏洞。研究人员检查了过去七年扫描互联网收集的 10 亿个使用了 RSA 算法的签名。在这些签名中,有百万分之一的主机私钥会被暴露。

消息来源:The Register
老王点评:所以,加密算法还得防着宇宙射线的攻击。

苹果公司拿走了 1/3 的 Safari 上的谷歌搜索广告收入

谷歌和苹果公司早在 2002 年就建立了合作关系,谷歌成为苹果 Safari 浏览器的默认搜索引擎,过去几年谷歌每年为此向苹果支付了数十亿美元。在诉谷歌反垄断案审判中,谷歌的经济学家在法庭上意外披露了用户通过 Safari 浏览器使用谷歌搜索产生的广告收入,其中 36% 会支付给苹果公司。谷歌和苹果公司都曾反对公开披露双方协议的细节。

消息来源:彭博社
老王点评:好家伙,浏览器可真是个摇钱树啊。

谷歌起诉涉嫌发布植入恶意软件的山寨版 Bard 的骗子

谷歌起诉称,越南的一些人一直在建立社交媒体页面并发布广告,鼓励用户下载一个 “Bard”,但这个版本的 “Bard” 并不能提供如何烹饪意大利烩饭之类的有用答案。一旦某个傻瓜下载了这个 “Bard”,它就会侵入系统并窃取密码和社交媒体凭证。诉讼指出,这些骗子特别将 Facebook 作为他们的首选传播方式。

消息来源:Engadget
老王点评:这是把免费服务当成恶意软件的载体了,不过我觉得比起来今天圈内将开源 LLaMA “改成” 自己的开源大模型的大瓜,也算不了什么。

FIDO U2F 安全密钥是一种小型的基于 USB/NFC 的设备。它是一种硬件安全令牌,具有多个安全相关的用途模块。FIDO U2F 标准兼容的密钥品牌有多种,包括 NitroKey、SoloKey v2 和 YubiKey。与类似 Yubico OTP 的专有协议相比,FIDO 协议是不依赖特定硬件令牌的,并且使用的工具也不依赖特定制造商。

本文介绍了 FIDO 协议,并展示了如何安装和启用 FIDO U2F 安全密钥作为替代身份验证因素,以用于登录终端、GDM 或进行 sudo 认证。

对于 YubiKey,特别是其不支持 FIDO2/U2F 的旧版设备,请参阅之前的文章:

如何在 Fedora Linux 上使用 YubiKey

本文不涵盖存储 OpenPGP 密钥或 X.509 证书的操作,因为这些功能与硬件相关,不属于 FIDO U2F 标准的一部分。

保留备用安全密钥

一旦你开始使用安全令牌,就必须考虑到自己可能会被锁定在与这些令牌相关联的账户之外的情况。由于硬件安全令牌是独特的,并且被设计为非常难以复制,你不能像在使用 KeePass 或 AndOTP 等软件保险库时那样制作备份。因此,你使用主要密钥进行的所有注册都应立即使用第二个备份密钥重复进行,并将其存储在安全的位置,甚至可能是保险箱中。

在实践中,这意味着你需要将两个硬件令牌注册到你的 Linux 和 Web 账户中,并生成两份 OpenSSH 私钥,并将这两份 OpenSSH 公钥上传到你使用的服务器和服务(例如 GitHub)中。

如果你丢失了一个密钥,你将需要使用第二个密钥登录与密钥注册的每个服务,删除丢失的密钥,并注册一个新密钥。对于使用 FIDO2 协议的无密码登录尤其如此。

FIDO2、U2F 和 FIDO 联盟

FIDO2 是由 FIDO 联盟 维护的一系列标准。FIDO 联盟希望最终完全摒弃密码,并提供通过多个因素安全验证用户身份的过程,而无需使用密码。

该标准包括万维网联盟(W3C)的 网页认证 Web Authentication (WebAuthn)和 FIDO 联盟的 客户端到认证器协议 Client-to-Authenticator Protocol (CTAP)。WebAuthn 是一种用于请求和处理公钥挑战进行认证的标准 API。通过这个标准,浏览器会向客户端发送一个 挑战 challenge ,然后客户端使用私钥生成一个 响应 response ,挑战者再使用之前交换的公钥进行验证。如何生成挑战答案对于服务来说是不可知的,而是由 CTAP 控制。用户可能会被要求使用多种验证方法,如生物识别、PIN 或存在性检查(或这些方法的组合)。这些验证方式在认证时与注册密钥时的方式相同。

为了保护与硬件令牌的任何交互,可以选择设置一个访问 PIN,并且默认情况下未设置。大多数密钥在连续八次输入访问 PIN 失败后将自动失效。恢复失效的密钥并设置新 PIN 的唯一方法是重置密钥。然而,当密钥重置时,所有其服务注册将丢失!

FIDO2 密钥还支持 FIDO U2F 协议(现已更名为 CTAP1)。该协议旨在提供第二或多因素(但非无密码)认证。Linux 的 PAM 认证系统也可以配置为使用 U2F 协议。虽然 FIDO U2F 不是为无密码认证设计的,但 U2F PAM 模块允许无密码认证。

安全影响

FIDO2 / U2F 通过将安全密钥与用户账户绑定来工作。大多数密钥默认启用/使用基本的存在性检查。它们通常通过点亮并提示你触摸密钥来进行存在性检查。FIDO2 PIN 是可选的,默认情况下未设置。当密钥用于登录 Linux 帐户或用于使用 sudo 时,只需确保设备和密钥物理上存在即可。FIDO2 PIN 是一个重要的附加验证步骤,用于确保只有你才能使用密钥进行身份验证。

等一下!现在我还要记住额外的 PIN 吗?这不就是一个更短的密码吗?

—— 担心的读者

FIDO2 PIN 不是密码,它是一个简短、容易记住的短语。这并不是一个问题,因为:

  1. 你需要物理访问密钥 需要知道 PIN。
  2. 输入 PIN 错误达到八次会使密钥失效,这使得暴力破解变得困难。

相反地,现在你可以使用存储在密码管理器中的安全密码,而无需记住它。

谷歌在 2016 年进行的一项案例研究,题为 《安全密钥:现代网络的实用密码学第二因素》,显示了安全密钥有效地保护用户免受密码重用、钓鱼和中间人攻击的影响。

使用 PAM 进行用户认证

本地系统认证使用 可插拔认证模块(PAM)。U2F 设备的 PAM 模块(因此进行认证)是 pam_u2f。你的密钥是否支持 FIDO2 或 FIDO U2F 取决于其固件版本和硬件型号。

设置如下:

  1. 安装 PAM 模块。
  2. 将密钥注册到你的用户账户上。
  3. 使用 authselect 在 PAM 中激活智能卡支持。

authselect 是一个用于配置带有可重现配置文件的 PAM 的工具。使用 authselect 的配置文件可以避免手动修改 /etc/pam.d 目录下的配置文件。

依赖项

所需的软件包可在官方仓库中获取。

[…]$ sudo dnf install pam-u2f pamu2fcfg fido2-tools

在密钥上设置 FIDO2 PIN

FIDO2 标准定义了一种用于访问保护的可选 PIN。如果 PIN 丢失或失效,没有 PUK 或其他恢复方式,请确保你有一种备用的身份验证方法。如果通过连续输入无效的 PIN 使 PIN 失效,恢复的唯一方法是重置密钥。然而,重置密钥会删除其所有凭据,并将其与以前注册的所有服务断开连接。

fido2-tools 包含一个用于设置密钥的 FIDO2 PIN 的工具: fido2-token。使用 fido2-token -L 获取当前连接的 FIDO2 设备列表,并使用 fido2-token -C </path/to/device> 设置一个新的 PIN:

[…]$ fido2-token -L
/dev/hidraw1: vendor=0x1050, product=0x0407 (Yubico YubiKey OTP+FIDO+CCID)
[…]$ fido2-token -C /dev/hidraw1
Enter current PIN for /dev/hidraw1:
Enter new PIN for /dev/hidraw1:

将安全密钥注册到本地账户

使用工具 pamu2fcfg 检索一个配置行,该行将放入 ~/.config/Yubico/u2f_keys 中。pam_u2f 是由 Yubico 提供的通用 U2F 密钥模块,因此使用 Yubico 特定的默认配置路径。该文件中的每个配置行由用户名和密钥特定的凭据/配置部分以冒号分隔。确保每个用户仅使用一行。

fedora-user:owBYtPIH2yzjlSQaRrVcxB...Pg==,es256,+presence+pin[:该用户另外的密钥]

如果密钥受 PIN 保护,你将被要求输入 PIN 来进行此操作。对于第一个密钥的初始注册,请使用以下命令:

[…]$ mkdir -p ~/.config/Yubico
[…]$ pamu2fcfg --pin-verification > ~/.config/Yubico/u2f_keys

要将另一个密钥(例如备份密钥)添加到此单用户配置中,请使用以下命令:

[…]$ pamu2fcfg --nouser --pin-verification >> ~/.config/Yubico/u2f_keys

pam_u2f 还支持使用一个中心身份验证文件。在这种情况下,请确保每个用户使用一行,并将给定用户的所有密钥保持在同一行上。如果两行引用相同的用户名,那么只有最后一行将被使用!请参阅 pam\_u2f 手册页 获取所有可用选项的详细信息。

使用 authselect 配置 PAM

authselect 是一个用于控制系统 PAM 配置的工具。它引入了配置文件作为额外的抽象层。一个 authselect 配置文件可以更改多个 PAM 配置文件。配置文件具有控制附加功能和行为的参数,例如启用 FIDO U2F 安全密钥。有关 authselect 的详细介绍计划在未来的文章中进行。

显示当前活动的 authselect 配置文件。如果选择了 SSSD(系统安全服务守护程序)配置文件并启用了 U2F 支持,则输出可能类似于以下内容:

[…]$ authselect current
Profile ID: sssd
Enabled features:
- with-pam-u2f

使用 authselectwith-pam-u2f 标志,在 PAM 中激活 FIDO U2F 支持:

[…]$ sudo authselect select sssd with-pam-u2f

如果你还想使用指纹读取器,必须同时启用这两个功能:

[…]$ sudo authselect select sssd with-pam-u2f with-fingerprint

这会在 PAM 中激活具有 pam_u2f 和指纹读取器支持的 SSSD 配置文件。例如,当使用上述 authselect 配置文件在终端上使用 sudo 时,首先会要求你提供指纹,如果指纹识别失败,则使用 U2F 密钥。然而,GDM 将首先使用 U2F 密钥。

解锁 GNOME 钥匙环守护程序

当使用生物识别、U2F 密钥或任何其他不需要密码短语登录 GNOME 的方法时,无法自动解锁“登录”钥匙环。这是因为,默认情况下,钥匙环的密码短语设置为与你的登录密码短语相同。通常,PAM 将你的登录密码短语传递给钥匙环守护程序。由于你在通过生物识别或 U2F 密钥进行身份验证时不需要输入密码短语,因此 PAM 没有密码短语可以传递给钥匙环守护程序。这个问题没有简单直接的解决方法。

如果你为家目录使用 LUKS 加密并且操作的是单用户系统,你可以从钥匙环中移除密码短语。这将使你的 GNOME 钥匙环在文件级别上保持未加密。但它仍然在块级别上由 LUKS 加密,因为 LUKS 加密与单用户系统上的默认基于文件的钥匙环加密等效。由于钥匙环的加密仅旨在保护其内容免受离线访问,钥匙环在登录后将被解密/解锁,任何运行时应用程序或恶意软件在解锁后都有可能访问钥匙环的内容。由于 LUKS 也是一种离线保护机制,因此可以认为它是钥匙环正常基于文件的加密的替代选择。

如果你的系统被多个用户使用,则 LUKS 加密和钥匙环的正常基于文件的加密不是等效的。在具有只由 LUKS 保护的钥匙环的多用户系统中,具有解密磁盘和引导系统授权的任何用户都能够访问同一系统上的任何其他用户的钥匙环。

移除 GNOME “登录”钥匙环密码短语非常简单。只需设置一个新的空密码,钥匙环将被解锁,并且其内容将以未加密的方式存储在文件级别上。可以使用图形实用程序 Seahorse(也称为“密码和密钥”)来在 GNOME “登录”钥匙环上设置一个空密码。

警惕和其他用例

即将发布的文章将探讨如何使用 U2F Dracut 插件使用 FIDO2/U2F 密钥解锁 LUKS 加密的磁盘。

OpenSSH 8.2+ 支持使用 ed25519-sk 安全密钥。这个主题已经在之前的文章《如何在 Fedora Linux 上使用 YubiKey》中涉及到。

需要注意的是,FIDO2/U2F 是一种认证标准。还有其他用于安全令牌的用例(主要由 Yubico 建立),例如 (T)OTP、PIV(用于 x509 密钥管理)或 OpenPGP,这些用例不是一般性的,而是具体硬件上的用例。

(题图:MJ/4bd195dc-130b-4ef2-af6c-9a6ef5d54223)


via: https://fedoramagazine.org/use-fido-u2f-security-keys-with-fedora-linux/

作者:Alexander Wellbrock 选题:lujun9972 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

现代公司的电动汽车在其车载系统使用教程上的示例密钥

一位开发者发帖称,他想要修改汽车上的车载信息娱乐系统,他的汽车是现代公司 2021 款的“全新未来移动生活概念的电动汽车 IONIQ”。在试图找出如何为汽车更新定制固件时发现,其中用来为某些部分签名的 RSA 公钥可以在网上搜索找到。更离谱的是,正如这位开发者说的,“如果运气好的话,他们不仅留下了公钥,还留下了私钥”,它是一个常见的密钥对,出现在“使用 OpenSSL 进行 RSA 加密和解密的 C 语言示例”之类的在线教程中,在这些教程中列出了使用的示例公钥和私钥。现代公司对此没有置评。

消息来源:The Register
老王点评:这可真是按照教程来的,连示例的密钥对都一起学习了。

AI 被用于通过监控视频中的行人步态识别和分类行人

据报道,马里兰大学的一个明星教授研究团队在资金的支持下,开发了一种城市监控软件,可以根据行人的独特步态特征来识别他们。然后,该算法将使用这些步态特征将行人分为“好斗”、“害羞”、“冲动”和其他性格。“这些能力将被用来预测每个行人的行为,对监视很有用”。他们在赞助方提供的视频上进行了测试,并提供了该软件的 C++ 代码库和原始数据集作为交付品。该团队还进行了“模拟大规模异质人群的有效计算模型”等类似研究。这一研究引发了对“关于机器学习研究中的严重道德问题”的关注。

消息来源:The Daily Beast
老王点评:AI 究竟该用于什么地方,该如何用,这里面不仅仅是道德问题,还应该是法律问题。我只能说这么多了。

苹果公司的服务成为其收入的重要来源

迄今为止,苹果公司已将 18 亿台设备装入世界上一些最富裕的消费者的口袋和办公桌上。现在,它正在向其他公司出售这些客户的使用权,并说服那些拥有其设备的人注册自己的订阅服务。去年,苹果的服务带来了 680 亿美元的收入,占苹果总收入的 19%。在最近一个季度,服务收入的份额甚至高达 24%。据估计,最大的一块是来自其应用商店的费用,去年的费用可能达到 250 亿美元。其次是谷歌为 iOS 中的默认搜索引擎付出的费用,2020 年付出了 100 亿美元,据估计现在接近 200 亿美元。而其广告服务今年估计是 70 亿美元。剩下的是一系列订阅服务:iCloud 存储、苹果音乐和苹果护理保险等等。

消息来源:Economist
老王点评:成功的硬件和软件带来的大量用户,其附加服务也是日进斗金。

如果你用过 Ubuntu 或者其他的 Linux 发行版里的自动登录功能, 你可能遇到过这种弹出消息:

请输入密码以解锁你的登录密钥环

登录密钥环在你登录系统时未解锁。

Enter Password To Unlock Your Login Keyring Ubuntu

如果你一直点击取消,它会不断弹出几次才会消失。你可能想知道,为什么你会一直看到这个密钥环信息呢?

让我来告诉你吧。它其实不是错误,而是一个安全特性。

奇怪吗?下面就让我来解释下 Linux 里的密钥环概念。

Linux 里的密钥环是什么。为什么需要它?

在现实生活中你为什么要用钥匙环(也叫钥匙链)?你用它把一把或多把钥匙串到一起, 以便于携带和查找。

Linux 里也是类似的。密钥环特性使你的系统可以将各种密码放在一起,并将其保存在一个地方。

大多数 Linux 桌面环境,如 GNOME、KDE、Xfce 等采用 GNOME 密钥环来提供这个功能。

该密钥环保存了 ssh 密钥、GPG 密钥以及使用此功能的应用程序(例如 Chromium 浏览器)的密钥。默认情况下,“密钥环”通过主密码来保护,该密码通常是帐户的登录密码。

系统上的每个用户都有自己的密钥环,(通常)密码与用户帐户本身的密码相同。当你使用密码登录系统时,你的密匙环将使用你帐户的密码自动解锁。

当你启用 Ubuntu 中的自动登录功能时时,就有问题了。这意味着你无需输入密码即可登录系统。在这种情况下,你的密钥环不会自动解锁。

密钥环是一个安全特性

记得我说过密钥环是一个安全特性吗?现在想象一下你在 Linux 电脑上开启了自动登录功能。有权访问你电脑的任何人无需密码就能进入你的系统。但是你可能不会在意,因为你只是用它来访问互联网。

但是,如果你在 Ubuntu 中使用 Chromium 或 Google Chrome 之类的浏览器,并使用它来保存各种网站的登录密码,那么你将遇到麻烦。任何人都可以使用浏览器并利用你在浏览器中保存的密码登录网站。这不很危险吗?

这就是为什么当你使用 Chrome 时,它将反复地提示你先解锁密钥环。这确保了只有知道密钥环密码(即账户密码)的人才能使用在浏览器中保存的密码来登录它们相关的网站。

如果你反复取消解锁密钥环的提示,它最终将消失,并允许你使用浏览器。但是,保存的密码将不会被解锁,你在 Chromium/Chome 浏览器上将会看到“同步暂停”的提示。

Sync paused in Google Chrome

如果密钥环一直存在,为什么你从来没有见过它呢?

如果你在你的 Linux 系统上从没见过它的话,这个问题就很有道理。

如果你从没有用过自动登录功能(或者修改你的账户密码),你可能都没有意识到这个特性的存在。

这是因为当你通过你的密码登录系统时,你的密钥环被你的账户密码自动解锁了。

Ubuntu(和其他发行版)在执行普通的管理任务如修改用户、安装新软件等需要输入密码,无论你是否是自动登录的。但是对于日常任务像使用浏览器,它不需要输入密码因为密钥环已经被解锁了。

当你切换到自动登录时,你不再需要输入登录密码。这意味着密钥环没有被自动解锁,因此当你使用利用了密钥环特性的浏览器时,它将提示你来解锁密钥环。

你可以轻松地管理密钥环和密码

这个密钥环放在哪里?它的核心是一个守护任务(一个后台自动运行的程序)。

别担心。你不必通过终端来操作守护任务。大多数桌面环境都自带一个可以和这个守护进程进行交互的图形化应用程序。KDE 上有 KDE 钱包,GNOME 和其他桌面上叫做“密码和密钥”(之前叫 Seahorse)。

Password And Keys App in Ubuntu

你可以用这个 GUI 程序来查看哪些应用程序在用密钥环来管理/保护密码。

你可以看到,我的系统有自动创建的登录密钥环。也有一个存储 GPG 和 SSH 密钥的密钥环。那个证书用来保存证书机构颁发的证书(如 HTTPS 证书)。

Password and Keys application in Ubuntu

你也可以使用这个应用程序来手动保存网站的密码。例如,我创建了一个新的叫做“Test”的被密码保护的密钥环,并手动存储了一个密码。

这比在一个文本文件中保存一批密码要好一些。至少在这种情况下,你的密码只有在你通过密码解锁了密钥环时才允许被看到。

Saving New Password Seahorse

这里有一个潜在的问题,如果你格式化你的系统,手动保存的密码必然会丢失。通常,你会备份你的个人文件,但并不是所有的用户特定数据,如密钥环文件。

有一种办法能解决它。密钥环数据通常保存在 ~/.local/share/keyrings 目录。在这里你可以看到所有的密钥环,但是你不能直接看到它们的内容。如果你移除密钥环的密码(我会在这篇文章的后面描述操作步骤),你可以像一个普通的文本文件一样读取密钥环的内容。你可以将这个解锁后的密钥环文件完整地复制下来,并在其他的 Linux 机器上运行“密码和密钥”应用程序导入到其中。

总结一下目前为止所学的内容:

  • 大多数 Linux 系统缺省已经安装并激活了密钥环特性
  • 系统上的每个用户都拥有他自己的密钥环
  • 密钥环通常是用账户密码锁定的(保护)
  • 当你通过密码登录时密钥环会被自动解锁
  • 对于自动登录,密钥环不会自动解锁,因此当你试图使用依赖密钥环的应用程序时会被提示先解锁它
  • 并不是所有的浏览器或应用程序利用了密钥环特性
  • (Linux 上)安装一个 GUI 程序可以和密钥环交互
  • 你可以用密钥环来手动存储加密格式的密码
  • 你可以自己修改密钥环密码
  • 你可以通过导出(需要先解锁密钥环)并导入到其他计算机上的方式来获取手工保存的密码。

修改密钥环密码

假设你修改了你的账户密码。当你登录时,你的系统试图通过新的登录密码来自动解锁密钥环。但是密钥环还在使用老的登录密码。

这种情况下,你可以修改密钥环密码为新的登录密码,这样密码环才能在你登录系统时自动解锁。

从菜单中打开“密码和密钥”应用程序:

Look for Password and Keys app in the menu

在“Login”密钥环上右击并点击“修改密码”:

Change Keyring Password

如果你不记得老的登录密码怎么办?

你可能知道在 Ubuntu 上重置忘记的密码很容易。但是密钥环在这种场景下还是有问题。你修改了账户密码,但是你不记得仍然被密钥环使用的老的账户密码。

你不能修改它因为你不知道老的密码。怎么办?

这种情况下,你将不得不移除整个密钥环。你可以通过“密码和密钥”应用程序来操作:

Delete Keyring Ubuntu

它会提示你进行确认:

Delete Keyring

另外,你也可以手动删除 ~/.local/share/keyrings 目录下的密钥环文件。

老的密钥环文件被移除后,你再打开 Chrome/Chromium 时,它会提示你创建一个新的密钥环。

New Keyring Password

你可以用新的登录密码,密钥环就会被自动解锁了。

禁用密钥环密码

在你想用自动登录但又不想手动解锁密钥环时,你可以把禁用密钥环密码作为一个规避方法。记住你正在禁用一个安全特性,因此请三思。

操作步骤和修改密钥环相似。打开“密码和密钥”应用程序,然后修改密钥环密码。

技巧在于当它提示修改密码时,不要输入新密码,而是点击“继续”按钮。这将移除密钥环的密码。

Disable Keyring password by not setting any password at all

这种方法,密钥环没有密码保护,并将一直处于解锁状态。


via: https://itsfoss.com/ubuntu-keyring/

作者:Abhishek Prakash 选题:lujun9972 译者:messon007 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你长期使用亚马逊 Web 服务(AWS)中的实例,你可能会遇到下面这个常见的问题,它不是因为技术性的原因导致的,更多的是因为人类追求方便舒适的天性:当你登录一台你最近没有使用的区域的新实例,你最终会创建一个新的 SSH 密钥对,久而久之这最终就会造成个人拥有太多密钥,导致管理起来复杂混乱。

本文将会介绍一种在所有区域中使用你的公钥的方法。最近,一篇 Fedora Magazine 的文章介绍了另一种解决方案。但本文中的解决方案可以进一步的以更简洁和可扩展的方式实现自动化。

假设你有一个 Fedora 30 或 31 系统,其中存储了你的密钥,并且还安装了 Ansible。当这两件事同时满足时,就提供了解决这个问题的办法,甚至它还能做到更多。

使用 Ansible 的 ec2\_key 模块,你可以创建一个简单的 Ansible 剧本来在所有区域中维护你的 SSH 密钥对。如果你需要增加或者删除密钥,在 Ansible 中这就像从文件中添加和删除行一样简单。

设置和运行 Ansible 剧本

如果要使用剧本,首先需要安装 ec2_key 模块的必要依赖项:

$ sudo dnf install python3-boto python3-boto3

该剧本很简单:你只需要像下面的例子一样,修改其中的密钥及其对应的名称。然后,运行该剧本,它会帮你遍历所有列出的公共 AWS 区域。该示例还包括一些你可能要访问的受限区域,只需根据需要来取消对应行的注释,然后,保存文件重新运行剧本即可。

---
- name: Maintain an ssh key pair in ec2
  hosts: localhost
  connection: local
  gather_facts: no
  vars:
    ansible_python_interpreter: python
  tasks:
    - name: Make available your ssh public key in ec2 for new instances
      ec2_key:
        name: "YOUR KEY NAME GOES HERE"
        key_material: 'YOUR KEY GOES HERE'
        state: present
        region: "{{ item }}"
      with_items:
        - us-east-2   #US East (Ohio)
        - us-east-1   #US East (N. Virginia)
        - us-west-1   #US West (N. California)
        - us-west-2   #US West (Oregon)
        - ap-east-1   #Asia Pacific (Hong Kong)
        - ap-south-1   #Asia Pacific (Mumbai)
        - ap-northeast-2  #Asia Pacific (Seoul)
        - ap-southeast-1  #Asia Pacific (Singapore)
        - ap-southeast-2  #Asia Pacific (Sydney)
        - ap-northeast-1  #Asia Pacific (Tokyo)
        - ca-central-1   #Canada (Central)
        - eu-central-1   #EU (Frankfurt)
        - eu-west-1   #EU (Ireland)
        - eu-west-2   #EU (London)
        - eu-west-3   #EU (Paris)
        - eu-north-1   #EU (Stockholm)
        - me-south-1   #Middle East (Bahrain)
        - sa-east-1   #South America (Sao Paulo)
  #      - us-gov-east-1  #AWS GovCloud (US-East)
  #      - us-gov-west-1  #AWS GovCloud (US-West)
  #      - ap-northeast-3 #Asia Pacific (Osaka-Local)
  #      - cn-north-1   #China (Beijing)
  #      - cn-northwest-1 #China (Ningxia)

这个剧本需要通过 API 访问 AWS,为此,请使用环境变量,如下所示:

$ AWS_ACCESS_KEY="aws-access-key-id" AWS_SECRET_KEY="aws-secret-key-id" ansible-playbook ec2-playbook.yml

另一个方式是安装 aws 命令行工具并添加凭据,如以前的一篇 Fedora Magazine 文章所述。如果你在线存储它们,这些参数将不建议插入到剧本中!你可以在 GitHub 中找到本文的剧本代码。

完成该剧本之后,请确认你的密钥在 AWS 控制台上可用。为此,可以做如下操作:

  1. 登录你的 AWS 控制台
  2. 转到 “EC2 > Key Pairs”
  3. 你应该会看到列出的密钥。唯一的限制是你必须使用此方法逐个区域来检查。

另一种方法是在 shell 中使用一个快速命令来为你做这些检查。

首先在剧本上创建一个包含所有区域的变量:

AWS_REGION="us-east-1 us-west-1 us-west-2 ap-east-1 ap-south-1 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 eu-north-1 me-south-1 sa-east-1"

然后,执行如下循环,你就可以从 aws 的 API 获得结果:

for each in ${AWS_REGION} ; do aws ec2 describe-key-pairs --key-name <YOUR KEY GOES HERE> ; done

请记住,要执行上述操作,你需要安装 aws 命令行。


via: https://fedoramagazine.org/using-ansible-to-organize-your-ssh-keys-in-aws/

作者:Daniel Leite de Abreu 选题:lujun9972 译者:hj24 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出