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