利用MagicEndpoint的FIDO-TPM技术保障SSH访问安全

本文详细介绍如何通过MagicEndpoint的FIDO-TPM创新技术解决SSH密钥管理难题,实现无需硬件的密码less认证,提供企业级SSH访问安全解决方案,包括TPM绑定密钥和集中管理功能。

利用MagicEndpoint的FIDO-TPM创新技术保障SSH访问安全

SSH(安全外壳)是一种自1995年开始使用的加密网络协议。它由芬兰计算机科学家Tatu Ylönen创建,旨在应对其大学发生的密码嗅探攻击。自此,SSH已成为在不安全网络上进行安全通信的基本工具,广泛用于远程服务器管理、安全文件传输等。

Linux和Windows服务器都支持SSH协议的主机端,同时也有适用于Linux和Windows的客户端实现。

Tatu的网络加密解决了密码嗅探攻击,但如您所知,这并非密码的唯一问题。服务器访问中常共享密码导致缺乏“可追溯性”。密码的其他问题包括可猜测性、重复使用、网络钓鱼等。事实上,由于这些问题,大多数云提供商(例如AWS、Google和Azure)默认禁用密码认证和root登录。

比密码更安全的替代方案是使用非对称密钥。非对称密钥通过多种方式支持:SSH密钥、SSH证书以及最近的FIDO密钥。这三种方法都涉及客户端保存的私钥,这些私钥应保密且不共享。相应的公钥在主机端配置。认证要求客户端在不泄露私钥的情况下通过加密方式证明其拥有私钥。然而,每种方法都存在一些差异和挑战。

让我们看看Windows SSH客户端环境下的这三种方法。

SSH密钥

这些密钥是静态且手动的。设置公钥/私钥SSH访问涉及生成密钥对、配置SSH服务器接受密钥、定义默认密钥以及使用命令行工具。这可能导致密钥蔓延和撤销访问困难等问题。SSH密钥本身不会过期,如果密钥未在主机上手动设置时间限制或定期轮换或撤销,则可能存在安全风险,但管理起来很麻烦,且并不总是执行。如果这些密钥保存在客户端软件中(通常如此),它们可能被共享或复制到其他设备和用户,导致与共享密码相同的缺乏“可追溯性”问题。

SSH证书

请注意,这些不是用于TLS的X.509证书,而是专为SSH设计的证书。证书包含由可信证书颁发机构(CA)签名的公钥以及元数据,如用户或主机身份、过期日期和特定权限。认证时,服务器通过对照CA的公钥检查证书签名来验证客户端身份。这确保证书有效且可信。管理是集中式的;证书由CA颁发和管理,增加了开销,但至少提供了明确定义的授予和撤销访问流程。注意:证书撤销显著复杂化了整体解决方案。证书具有定义的 validity 期限,降低了长期密钥泄露的风险,但过期时间越短,管理开销越大。与SSH密钥一样,如果私钥保存在客户端软件中,则可能被共享或复制到其他设备和用户,导致缺乏“可追溯性”甚至被窃取。

SSH FIDO密钥

FIDO(快速身份在线)密钥易于使用和管理,因为它们不需要复杂的设置或维护。没有CA开销,因此在这方面它们更类似于SSH密钥而非SSH证书。FIDO密钥不会过期,如果这些密钥保存在客户端软件中,则可能存在安全风险,但存在基于硬件的解决方案(如USB密钥),可保护密钥并将其绑定到硬件,减轻共享、窃取或复制密钥的风险。缺点是便携式硬件设备有自己的生命周期需要管理。它们需要采购、运输,并在丢失或被盗时更换,导致在购买更多密钥前可能无法访问。

解决方案

如上所述,所有三种方法都有问题。这些问题都围绕如何管理和保护密钥。解决这些问题的最佳方法是应用WinMagic的MagicEndpoint已经应用于在线基于Web应用程序的联合认证的一些相同原则。使用MagicEndpoint,用户登录我们的应用程序后,唯一的用户设备(非对称)密钥变得“可访问”。该用户设备代表用户对MagicEndpoint身份提供商(IdP)的身份。

对于SSH FIDO密钥,我们做了类似的事情。用户在当地Windows设备上认证后,SSH FIDO密钥变得“可访问”,用户无缝登录其SSH主机。这些密钥存储在PC上,需要时发送到计算机的TPM(可信平台模块)用于SSH FIDO认证。这就是我所说的“可访问”。这里的重点是密钥通过TPM绑定到用户的Windows设备,并且密钥在TPM外部从不以明文形式存在。虽然用户可以将加密的SSH FIDO密钥备份到云中,但除了原始TPM外,它们完全无法访问。这解决了“可追溯性”、密钥被盗和共享问题,而无需购买和部署单独的FIDO硬件认证器的费用和麻烦。同一用户仍可以从不同计算机访问同一主机,但他们将拥有由该设备TPM保护的不同唯一用户设备密钥。

顺便说一下,WinMagic的FIDO-TPM实现已通过FIDO联盟认证:https://fidoalliance.org/certification/fido-certified-products/。

WinMagic的MagicEndpoint客户端提供了一种直观且用户友好的方式,通过TPM和FIDO安全管理SSH密钥。

以下是独立版本的一些亮点:

独立版功能:

  • 自动创建绑定到TPM的默认FIDO SSH密钥。
  • 一键创建额外密钥。
  • 用户友好的密钥管理UI。
  • 密钥备份功能。(密钥可以备份并安全保存在任何地方)

安全优势:

  • 如果用户注销MagicEndpoint(或当然的Windows账户),SSH密钥将变得不可访问。
  • 支持同一设备上的多个用户。

兼容性:

  • 支持PuTTY-CAC和Microsoft原生OpenSSH命令行工具(“ssh”、“scp”、“sftp”和“SSH隧道”)。

该解决方案不仅简化了SSH密钥的管理和安全性,还增强了常见SSH工具的可用性和兼容性。

企业版功能:

我们也有企业版本。独立版解决了客户端可用性和安全问题,而企业版解决了主机端的密钥生命周期问题。

使用企业版,用户无需任何操作即可访问其SSH主机,就像他们登录设备后(通常使用本地MFA)无需任何操作即可访问所有Web应用程序一样。

使用企业版,管理员具有集中控制和可见性。用户没有对主机的常驻访问权限。当需要主机访问时,MagicEndpoint客户端无缝联系MagicEndpoint IdP,后者检查其SSH主机的访问控制列表,然后如果用户应有访问权限,则动态在SSH主机上注册用户及其公共SSH FIDO密钥。如果用户不在访问控制列表中,密钥也可以动态从主机撤回。

以下是我们正在探索的一些可能功能:

  • 密钥创建、删除和主机访问的集中日志记录。
  • 细粒度访问控制组。
  • 对给定SSH主机所有被授予访问权限用户的可见性。
  • 对用于访问SSH主机的所有终端设备的可见性。
  • 如果时间到期则注销人员(终止端口22)。

立即开始:

有关更多详细信息并下载免费独立版试用,请参见以下链接:

  • 免费下载此处:https://github.com/WinMagic/MagicEndpoint-FidoEazy
  • 关于无需用户操作保障SSH访问安全的视频:https://youtu.be/_05ZIO6kS2Q
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计