企业级SSH认证技术:基于TPM与FIDO的MagicEndpoint安全架构解析

本文深入解析MagicEndpoint企业级SSH密钥管理方案,详细介绍如何通过TPM硬件保护私钥、实现无密码认证,涵盖密钥生命周期管理、审计日志、基于角色的访问控制等核心企业功能,为企业提供完整的SSH安全解决方案。

SSH Authentication for Enterprise: MagicEndpoint with TPM + FIDO Security

Introducing MagicEndpoint – SSH密钥管理为企业认证

3个月前发布 · Garry McCracken

随着MagicEndpoint对企业SSH支持的推出,企业用户现在可以无缝地"无需用户操作"访问SSH服务器。我们的解决方案使用带密钥的SSH替代密码,其中私钥受硬件保护且从不共享。这极其安全;比大多数其他仅用软件保护密钥的基于密钥的SSH解决方案安全得多。

之前我写过关于我们为Windows客户端机器提供的免费独立版SSH密钥管理器,它利用FIDO SSH密钥:https://winmagic.com/en/freeware-released-securing-ssh-access-with-magicendpoints-fido-tpm-innovation/

回顾一下,一旦用户在Windows设备上本地认证,SSH FIDO密钥就变得"可访问",用户即可无缝登录其SSH服务器。WinMagic的MagicEndpoint独立客户端提供了一种直观且用户友好的方式,通过TPM和FIDO安全地管理SSH密钥。

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

独立版功能:

  • 与传统解决方案不同,用硬件根植的SSH密钥替代密码,私钥从不共享——提供远超基于软件的SSH密钥管理器的安全级别,所有操作都无需用户操作:无需密码、手机或令牌
  • 自动创建绑定到TPM的默认FIDO SSH密钥
  • 一键创建额外密钥
  • 用户友好的密钥管理界面
  • 密钥备份功能(密钥只能备份和恢复到您的设备,不可共享,并安全保存)

安全优势:

  • 如果用户退出MagicEndpoint(或当然的Windows账户),SSH密钥将变得不可访问
  • 支持同一设备上的多个用户
  • 支持PuTTY-CAC和Microsoft原生OpenSSH命令行工具(“ssh”、“scp”、“sftp"和"SSH隧道”)

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

企业版功能:

我们现在有一个基于独立版本构建的企业版本。独立版解决了客户端侧的可用性和安全问题,而企业版增加了中央控制和可见性。大多数企业的最佳实践是用户没有对SSH服务器的常驻访问权限。访问权限由MagicEndpoint服务器动态控制。以下是企业级SSH认证解决方案中管理和合规性所需的能力,以及MagicEndpoint如何提供这些能力:

密钥生命周期管理

需要生成、存储、轮换、归档和删除加密密钥。

  • 使用MagicEndpoint,密钥在端点的TPM(可信平台模块)上生成
  • 这些密钥在PC上加密存储,需要时发送到计算机的TPM用于SSH FIDO认证
  • 密钥通过TPM绑定到用户的Windows设备,且密钥在TPM外部从不以明文形式(即从不暴露)
  • 私钥非常安全,因为企业级PC中的大多数TPM都经过FIPS 140认证
  • 每个用户/设备/SSH服务器都有唯一的密钥,用于细粒度控制
  • 密钥轮换将在手动和自动基础上支持,以防TPM受损的不太可能事件
  • 当密钥不受硬件保护时,建议更频繁的密钥轮换
  • 密钥归档在MagicEndpoint服务器端完成,但私钥始终保持加密,且从不暴露在TPM外部
  • 私钥删除发生在TPM重置时,但更重要的是,用户对SSH服务器的访问权限是集中控制的,可以随时撤销(例如,在重新调整计算机用途时应重置TPM)

审计日志记录

安全和合规性都需要审计日志记录。NIST在《使用安全Shell(SSH)的交互式和自动化访问管理安全性》中提供指导:

“AU-3,审计记录内容, 应启用SSH的增强审计以跟踪密钥的使用情况,并提供源用户(和客户端)使用密钥连接到目标用户的审计跟踪”

MagicEndpoint服务器保留详细的审计日志,包括:

  • 发生的事件类型(例如认证请求)
  • 事件发生时间(即时间戳)
  • 事件发生地点(例如SSH客户端的地理位置)
  • 事件来源(例如SSH服务器名称和IP地址)
  • 事件结果(例如认证成功或失败及原因)
  • 与事件相关的任何个人、主体或对象/实体的身份(例如用户/设备/SSH服务器)

RBAC(基于角色的访问控制)

必须强制执行基于角色的访问控制,以确保只有授权用户和应用程序可以访问SSH服务器。

  • MagicEndpoint使用组作为中央机制,通过组成员资格将用户与特定SSH服务器关联来强制执行RBAC
  • 组通过MagicEndpoint控制台创建和管理。这些组可以从外部身份提供者(如Active Directory或Azure AD)导入并与之同步
  • 在MagicEndpoint控制台中,每个组都有一个"SSH服务器"选项卡。管理员可以将一个或多个SSH服务器定义分配给一个组
  • 用户根据他们所属的组继承访问权限。由于用户可以在多个组中,他们可以访问多个服务,而无需单独配置
  • 从组中添加或删除用户会立即更新他们的访问权限。这支持最小权限原则并简化入职/离职流程
  • 系统在访问时检查组成员资格。只有与给定SSH服务器关联的组中的用户才被授予对该服务的访问权限

监控和警报

需要实时监控关键SSH服务器访问,并为异常、未经授权的访问尝试或策略违规生成警报:

  • MagicEndpoint提供对所有被授予访问给定SSH服务器权限的用户以及用于访问SSH服务器的所有终端设备的可见性
  • 通过查看组,可以轻松查看哪些用户/终端设备有权访问每个SSH服务器
  • 如果对单个服务器的访问尝试失败,则可以配置警报在超过特定阈值时触发

支持可配置的权限和访问条件

MagicEndpoint支持可配置的权限和访问条件,控制SSH服务器如何使用和何时使用SSH密钥,例如源IP限制。SSH中的源IP限制是一种将特定SSH密钥的使用限制为来自某些IP地址的连接的方法。这通过确保即使有人获得私钥,他们也只能从批准的位置使用它来增加额外的安全层。

可嵌入输出的元数据

选项 目的
from=“IP/CIDR” 将密钥使用限制为特定IP或网络
command="…" 强制执行特定命令(例如受限shell)
no-pty 防止分配伪终端(禁用交互式shell)
no-port-forwarding 禁用TCP端口转发
no-agent-forwarding 禁用SSH代理转发
no-X11-forwarding 禁用X11转发
environment=“VAR=VAL” 为会话设置环境变量

工作原理

以下是用户从新设备访问SSH服务器的分步描述(在此示例中,SSH服务器已为MagicEndpoint服务器所知):

  1. 用户在其Windows TPM上生成新的SSH密钥,并适当命名密钥,例如"SSH服务器A"
  2. MagicEndpoint客户端向MagicEndpoint服务器注册公钥和加密的私钥SSH密钥
  3. MagicEndpoint管理员在MagicEndpoint服务器上将用户添加到"SSH服务器A"组
  4. 用户连接到SSH服务器(SSH服务器管理员之前已为其用户名开设账户)
  5. 由于SSH服务器执行AuthorizedKeysCommand,从MagicEndpoint服务器请求该用户的公钥
  6. MagicEndpoint服务器接收请求并验证用户确实在"SSH服务器A"组中
  7. MagicEndpoint服务器检查是否有任何其他策略适用
  8. 例如,用户是否从允许的国家/地区连接?(参见https://winmagic.com/en/enhancing-authentication-security-with-geolocation/)
  9. MagicEndpoint服务器使用其与客户端SSH机器的持久连接来验证安全状态和意图
  10. 如果以上所有条件都通过,则提供特定允许的Windows设备上用户对SSH服务器A的公钥
  11. 使用此公钥,SSH服务器通过发出只能由该设备上TPM保护的私钥完成的质询,对特定Windows设备上的用户进行强加密认证(SSH服务器也可以应用元数据策略)
  12. 授予对SSH服务器的访问权限

点击此处观看短视频:https://youtu.be/UKNJPFJCHm4

总结

随着MagicEndpoint对企业SSH支持的推出,用户现在可以获得与联邦应用程序和RDP(远程桌面)相同的无缝"无需用户操作"访问SSH服务器的体验。当需要远程Windows机器的图形界面时,RDP是SSH的替代方案,而SSH更适合安全、高效的命令行访问,特别是对于Linux/Unix系统或自动化。SSH现在也可用于登录Windows机器命令行执行PowerShell。选择最适合您需求的方法,MagicEndpoint都支持。

立即开始

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

免费下载:https://github.com/WinMagic/MagicEndpoint-FidoEazy 关于无需用户操作保护SSH访问的视频:https://youtu.be/_05ZIO6kS2Q

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计