SSH 安全加固篇:通过“运维密码”小程序实现 SSH 双因子认证
背景
近来很多知名企业都出现了密码泄露,通过单一的密码对敏感和重要信息进行保护已经面临越来越多的挑战,因此业内对多重认证的呼声也越来越高,而其中的双因子认证得到了业界的普遍认可。
什么是双因子认证
双因子认证Two-factor authentication(即 2FA),是一种通过组合两种不同的验证方式进行用户身份验证的机制。
在这种多重认证的系统中,用户需要通过两种不同的认证程序:
- 提供他们知道的信息(如用户名/密码)
- 再借助其他工具提供用户所不知道的信息(如用手机生成的一次性密码)
SSH 双因子认证实现思路
在 SSH 服务器端安装 Google 身份验证器服务器端组件,这样,在使用密码或密钥登录 SSH 服务器时,同时通过与 Google 身份验证器相匹配的客户端所提供的验证信息来确认登录者的身份和权限。这里的客户端可以使用Google 身份验证器Google Authenticator应用,也可以使用我们开发的、采用同一个 RFC 规范的“运维密码”微信小程序。
Google 身份验证器所采用的算法规范基于 TOTP RFC 草案。
(题外话,RSA 硬件令牌,也是采用了类似的机制,只不过客户端是硬件的;而最近 Apple 公司的一些服务所需要的双因子认证也是一样的,但是其用于呈现验证信息的是手机或平板上的 iOS 内部组件,非独立应用。)
关于Google 身份验证器
为了鼓励广泛采用双因子认证的方式,Google 公司发布了Google 身份验证器Google Authenticator,这是一款开源的、可基于开放规则(如 HMAP/ 基于时间)生成一次性密码的软件。它是一款跨平台软件,可运行在 Linux、Android、iOS 上。Google 公司同时也支持插件式鉴别模块pluggable authentication module PAM ,使其能和其它适用于 PAM 进行验证的工具(如 OpenSSH)协同工作。
Google 身份验证器分为两个部分,分别是服务器端组件和客户端应用,都称之为“Google 身份验证器”,这里,我们为了澄清起见,会在说明时指明。
关于运维密码
Google 公司所开发的身份验证器以简洁著称,但也因此缺乏一些必要的特性,比如备份功能——这使得使用该身份验证器的人时时处于手机丢失的恐慌之中。(虽然 Google 提供的服务器端和自身的服务也提供了紧急验证码,以用于这种情况下的自救,但是很多采用 Google 身份验证器的服务并不支持和提供紧急验证码)
作为一家紧密关注于运维安全、积极倡导信息安全的技术社区,Linux 中国 久已有开发一个新的替代品的想法。恰逢微信推出小程序平台,我们感觉到这正是一个良机,可以充分利用到微信和小程序的便利之处,又适合小程序的使用情境。
原文发布时间为:2017-03-30
本文来自云栖社区合作伙伴“Linux中国”
相关文章
- 微软承认 Windows 11 存在用户无法登录的 Bug,现已修复
- 因开发人员放假,微软推迟一天发布 Windows 11 Dev 25197 开发版(附更新内容)
- 一套通用的数据分析学习指南,入门必看!
- 微软警告:夏令时可能引发 Windows 7-Windows 11 出现问题
- 面试官:讲讲SpringAOP的底层代理模式
- 啃论文俱乐部—移植speexdsp到OpenHarmony标准系统(二)
- 微软 Windows 11/10 免费工具集 PowerToys 0.62 发布,增加屏幕标尺、OCR 识别文字等工具
- 面试突击:什么是跨域问题?如何解决?
- Windows 11 22H2功能更新正在为即将到来的发布日做准备
- 啃论文俱乐部—移植Speexdsp到OpenHarmony标准系统(一)
- Windows 11"Moment 1"、"Moment 2"是包含新功能的下一批重大更新
- 面试突击:Lock、TryLock、LockInterruptibly有什么区别?
- 微软发布Windows 11Beta 22621.590、22622.590 (KB5017846) 更新
- 基于 RuoYi-Vue 做一个健身会员管理系统,你学会了吗?
- 微软为Windows Server添加虚拟核心许可
- 微软 Windows 11 Dev 预览版 25193 发布:设置中新增 Xbox 订阅,大量修复内容
- 面试突击:synchronized和ReentrantLock有什么区别?
- 低代码平台的撤销与重做该如何设计?
- 微软 Windows 前高管疯狂吐槽 Windows 11 设计
- 微软 Windows 11 全新任务管理器将使故障排除更容易:支持内核转储等