Linux Token Auth 一次性密码认证

Linux Token Auth 一次性密码认证

http://netkiller.github.io/journal/token.html

目录

  • 1. 什么是Token
  • 2. 为什么使用令牌
  • 3. 什么时候能用到令牌技术
  • 4. 本文的Token应用在什么地方
  • 5. 谁来部署
  • 6. 手机端配置
    • 6.1. 设置密码
    • 6.2. 查看服务器密码
    • 6.3. 设置刷新时间

1. 什么是Token

Token(令牌)是一个身份认证标识,token还有一个特点,那就是存在过期时间的。也就是令牌不是长久有效的。

2. 为什么使用令牌

我们通常需要临时或者一次性使用的身份认证

3. 什么时候能用到令牌技术

例如我们去餐厅就餐,向前台获取Wifi密码,然后可以享受30分钟的上网服务。30分钟过后密码将失效。

我们公司有很多服务器,密码的管理非常麻烦,有时还会有人事变动,一旦人员发生变动,所有的服务器密码都需要修改一次,非常麻烦,偶尔会有漏改情况,使用堡垒机可以更好的管理密码,但成本非常昂贵。

于是我便想起了Token技术,但购买Token硬件成本也要花费不少钱。Token的原理我很清楚,通过对称算法算出相同对等密钥,我们可以不购买硬件设备,自己开发,手机设备随身携带,所以开发移动版Token最好不过。

4. 本文的Token应用在什么地方

我采用Token技术实现Linux指定用户的密码周期变化,以时间为基准,手机同步算出服务器上的密码。为了防止密码被穷举,我增加了4个干扰字符。

如果对密码算法强度感到不安全,你可以自行修改复杂度。

你还可以远程修改密码,不多讲。

5. 谁来部署

首先由管理员部署密码修改程序 chpasswd.sh 然后加入到crontab 中定时运行。

由于考虑到读者的水平参差不齐,所以我使用shell完成,这样绝大多数读者都能看懂。

# cat chpasswd.sh 
		
#!/bin/bash
datetime=`date +%Y-%m-%d" "%H":"%M`
email="neo.chan@live.com"
#password=$(cat /dev/urandom | tr -cd [:alnum:] | fold -w30 | head -n 1)
string=$(date -u "+%Y$1%m$2%d$3%H$4%M")
password=$(echo $string | md5sum | cut -c 2-9 | base64 | tr -d "=" | cut -c 1-32)
echo $password > ~/.lastpasswd
echo $password | passwd www --stdin > /dev/null		

~/.lastpasswd 中保存最后一次密码

crontab 设置,每分钟修改一次密码。

# crontab -l
*/1 * * * * /root/chpasswd.sh a b c d		

a b c d 自行设定,设定与手机端相同即可

至此服务器端配置完成

6. 手机端配置

安装Token.apk文件到你的手机

https://github.com/oscm/Token

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-05-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯开源的专栏

【开源公告】微信团队WeDemo项目于12月22日对外开源

WeDemo项目简介 WeDemo为微信团队开源项目,用于帮助微信开发者完成微信登录、微信分享等功能的接入和开发。开发者可参考源代码完成开发,也可以直接将代码应...

3627
来自专栏小白安全

使用Shadowsocks搭建ipv6 VPN

这篇文章图就不上了,图太多了影响服务器性能 使用Shadowsocks搭建ipv6 VPN,让ipv4上ipv6,下载速度提升到100M ...

2.8K5
来自专栏我的博客

安卓真机调试

1、  安卓驱动 网上说下载这个,下载那个的!我就使用腾讯的手机管家(这里不算广告吧?) 然后手机驱动问题就解决了! 2、  打开eclipse-DDMS界面 ...

2756
来自专栏Python小屋

Python截屏扩展库pyscreenshot安装与使用

PIL是非常成熟的Python图像处理扩展库,但只支持Python 2.x,另一个同样功能的扩展库pillow完美支持Python 3.x。然而,这两个库的部分...

603
来自专栏Youngxj

绕过CDN查找网站真实IP的方法

1714
来自专栏散尽浮华

Linux下批量管理工具pssh使用记录

pssh是一款开源的软件,使用python实现,用于批量ssh操作大批量机器;pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出...

22410
来自专栏小巫技术博客

Android自动化构建之Ant多渠道打包实践(下)

472
来自专栏lulianqi

使用浏览器访问或调试微信公众号(跳过微信认证)

因为大部分公众号web应用实际登录都是使用用户微信认证登录,下文主要是提供一种方法使在PC端使用任意浏览器绕过微信认证完成登录,后面就可以在浏览器中使用或调试w...

882
来自专栏小狼的世界

PHP开发微信被动回复消息遇到的大坑

最近开始做CMS后台与微信公众号的整合,在做被动回复消息时,按照官方文档的XML格式回复消息,总是提示“该公众号提供的服务出现故障,请稍后再试”。但是通过微信提...

1093
来自专栏尹磊的专栏

巧用 Nginx 的 geo 模块来记录地理信息

Nginx 提供了 GeoIP 来记录来源 IP 的地理位置信息,但 GeoIP 所依赖的 IP 库是收费项目,免费的模块只能区分国家信息,不大适合在线上使用。

4570

扫描关注云+社区