欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

通过微信小程序“运维密码”实现SSH双因子认证

来源:本站整理 作者:佚名 时间:2017-06-11 TAG: 我要投稿

近来,京东、优酷等多家知名企业都发生了密码泄露,造成用户隐私泄露。可见,单一密码对敏感和重要信息进行保护力量越来越弱,所面临的挑战亦是愈发严峻。因此业内对多重认证的呼声也越来越高,而其中的双因子认证得到了业界的普遍认可。本文主要介绍SSH双因子认证,结合了当下热门的微信小程序的“运维密码”,来实现认证保护。
双因子认证机制
对于网络信息系统来说,能否识别使用者的身份,是能否确保安全的基础和关键。在实际应用中,许多网络信息系统都会要求使用者在使用系统之前,提供一些相关信息用以实现对使用者的身份认证。双因子认证(2FA)弥补了传统密码认证方法的很多弊端,是指结合密码以及实物(信用卡、SMS手机、令牌或指纹等生物标志)两种条件对用户进行认证的方法。
SSH双因子认证
在实现多重认证的系统中,用户需要通过两种不同的认证程序:用户知道的信息(如用户名/密码)和用户不知道的信息(如用手机生成的一次性密码),想必绝大部分系统管理员都知道OTP,OTP即一次性口令,最常见的一次性口令是基于时间的一次性口令(TOTP),最常见的方式是采用Google身份验证器Google Authenticator来提供基于时间的一次性口令。
在SSH服务器端安装Google身份验证器服务器端组件,这样,在使用密码或密钥登录SSH服务器时,同时通过与Google身份验证器相匹配的客户端所提供的验证信息来确认登录者的身份和权限。由于Google身份验证器没有办法备份场景,这使得使用该身份验证器的人时时处于手机丢失的恐慌之中。于是Linux中国旗下的LCTT技术组开发了一款旨在移动互联网场景中提供更好的多因子认证体验的小程序:运维密码,基于微信平台提供OTP口令管理功能。
如何使用“运维密码”为SSH服务提供双因子认证支持
第一步,需要在运行着OpenSSH服务的Linux主机上安装Google身份验证器服务器端组件。
首先,安装构建Google身份验证器所需的软件包。
在CentOS、Fedora或RHEL上:

在CentOS上安装Google身份验证器服务器端组件,需要启用EPEL软件库,然后运行如下命令:

接着,下载 Google 身份验证器服务器端组件的源代码:

编译安装 Google 身份验证器服务器端组件:

如果构建成功,你会在目录中看到pam_google_authenticator.so和google-authenticator两个二进制文件。
最后,将Google身份验证器的服务器端组件安装到合适位置。其默认会安装到 /usr/local/lib/security下,根据你的系统不同,你可能需要将其符号链接到pam库的位置(比如CentOS7会在/usr/lib64/security)。如下图所示:


至此,Google身份验证器服务器端组件安装完成。
第二步,需要对Google身份验证器服务器端组件、“运维密码”、OpenSSH进行配置
先配置Google身份验证器服务器端组件
使用以下命令生成验证密钥:


这里需要输入y,选择基于时间生成验证码
之后你将看到一个代表着该“场景”密钥的二维码和密钥字符串,它使用如下二维码图形格式表示我们数字形态的密钥
在二维码和密钥字符串后面,接着显示了一个当前的校验码和几个紧急密钥。紧急密钥你可以另行保存到一个安全的地方,以防在无法使用Google身份验证器应用或“运维密码”时使用。

保存Google服务器端组件的配置文件,输入y。

禁止同一令牌多次登录,输入y。

意思是:是否要禁用同一密钥多次登录,这将限制每30秒只能使用该密钥登录一次,但这能够让你可以更多地被提醒受到了中间人攻击,甚至能够防止这种攻击。
时间容错设置,输入y。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载