文档章节

Linux Token Auth 一次性密码认证

netkiller-
 netkiller-
发布于 2014/08/04 10:57
字数 1253
阅读 613
收藏 6
点赞 0
评论 2

Linux Token Auth 一次性密码认证

MrNeo Chen (netkiller)陈景峰(BG7NYT)


中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890
+86 755 29812080
<netkiller@msn.com>

Mr 祥建Android 手机端开发


中国广东省深圳市南山区

+86 18665871161

<zeng_xiang_jian@foxmail.com>

版权 © 2014 http://netkiller.github.io

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

文档出处:
http://netkiller.github.io
http://netkiller.sourceforge.net

2014-08-01


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

6.1. 设置密码

确认密码

选择环境

设置干扰码

6.2. 查看服务器密码

6.3. 设置刷新时间

默认1分钟刷新一次,可能没有来得及输入完密码就会更新密码

如果修改此项,服务器端crontab中的设置同步更改即可。

© 著作权归作者所有

共有 人打赏支持
netkiller-

netkiller-

粉丝 671
博文 240
码字总数 322337
作品 10
深圳
部门经理
加载中

评论(2)

netkiller-
netkiller-
是的需要一致,其实更好的做法是写一个 pam 插件认证。
LianyouCQ
LianyouCQ
不错,但是无服务时间与手机时间得一致吧
docker index服务概述

index顾名思义“索引”,index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上 做认证,然后查找镜像所在的registry的地址并放回给docker客户端,最终d...

酱醋茶丶
2015/11/17
0
0
多因子认证之 Keystone TOTP

随着 blueprint totp-auth 的实施,Keystone 自 M 版本新增了一次性密码 Time-base One-time Password(TOTP) 认证方式。其功能基础,操作稍有不便,距离生产环境尚有一段距离: 一次性密码的...

koala bear
2016/10/08
0
0
LinOTP 2.6.0.1 发布,一次性密码解决方案

LinOTP 2.6.0.1 发布,此版本更新内容如下: 添加了 radius 客户端测试工具 "linotp-auth-radius"(支持 challenge response); fixes the otppin=2 (no pin) problems with email and totpto......

oschina
2014/02/14
285
0
Subversion客户端认证凭证缓存总结

Subversion1.7或者更旧版本,主要使用一个磁盘缓存解决方案用来缓存认证凭证。 Subversion1.8中,其配置文件($HOME/.subversion/config)允许--disable-plaintext-password-storage选项绕过...

donhui
2014/10/17
0
1
Linux Token 一次性密码认证

Linux Token 一次性密码认证 http://netkiller.github.io/journal/token.html 版权 © 2014 http://netkiller.github.io 2014-08-01 目录 1. 什么是Token 2. 为什么使用令牌 3. 什么时候能用......

neo-chen
2014/08/01
949
0
Multi-OTP 4.1.0 发布,PHP 一次性密码管理

Multi-OTP 4.1.0 发布,此版本更新内容如下: 开源版的 multiOTP 的 HOTP 和 TOTP 已被 OATH 认证,包括支持加密 PSKC 导入 添加了在 Raspberry Pi nano-computer 上面构建强认证服务器设备的...

oschina
2013/12/26
1K
1
yii2 restful 风格搭建(二)接口认证

做完了基本的 restful 搭建,就需要接口认证和定义返回码了 一、yii2 支持的 3种认证方式 1、HTTP 基本认证: yiifiltersauthHttpBasicAuth 支持两种认证方式,输入用户名和密码和只输入用户名...

botkenni
05/03
0
0
linux 限制用户登录

vim /etc/pam.d/sshd 增加 account required pam_access.so 或者增加 auth required pam_access.so 两个都试试 vim /etc/security/access.conf + : temp : 211.100.99.224 - : temp : ALL s......

ninnycalf
2017/01/05
0
0
如何快速利用Harbor搭建自己的企业级registry server?

小贴士 Harbor是由VMware团队为企业用户设计的Registry Server开源项目,用户可以利用Harbor搭建自己的私有镜像仓库。即使你是harbor小白,也可以从本文快速从认识Harbor到利用Harbor搭建自己...

wise2c
2016/12/28
174
0
wifidog接口文档

wifidog是搭建无线热点认证系统的解决方案之一,他比nocat更适合互联网营销思路。目前支持openwrt系统,他实现了路由器和认证服务器的数据交互,在路由器方是用C语言代码,通过wifidog程序和...

sgwyj
2014/04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

崛起于Springboot2.X之开发拦截器(21)

序言:几乎所有项目都需要拦截器,所以小伙伴们必须要掌握这门技术哦,不然只会mybaits增删改查那是实习生干的活呀。 1、创建拦截器类,implements HandlerInterceptor public class MyInce...

木九天
16分钟前
1
0
(转)SQL语句的执行顺序

(7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (......

Avner
26分钟前
0
0
1.14 救援模式

确保开机启动时连接镜像文件,如果是真机服务器,就需要:U盘或光盘镜像启动进入BIOS 不同主板进入bios按键不同,一般是F12或Esc 光标:移动到Boot(开机启动项) 减号移动:光标选中行,按-...

小丑鱼00
33分钟前
0
0
ES11-全文检索

高级别全文检索通常用于在全文本字段(如电子邮件正文)上运行全文检索。 他们了解如何分析被查询的字段,并在执行之前将每个字段的分析器(或search_analyzer)应用于查询字符串。 1.term查...

贾峰uk
36分钟前
0
0
java 复制对象有哪些方式

java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.beanutils.BeanUtils.copyProperties(dest,origin); Springframework 的BeanUtil 依赖: <dependency> ......

黄威
52分钟前
2
0
jstack的简单使用

公司测试反应, 一个java应用的机器, 即使不做交易, cpu始终是30%多, 于是想到了jstack, 实践步骤记录一下: 1, 找出java应用的进程号 ps -ef|grep 应用名|grep -v grep 2, 找出pid下的cpu占用...

零二一七
59分钟前
1
0
导入CSV文件就行数据整理分析

#-*-coding:utf-8-*-import csv,os,re,mathlocalPath=input("请输入所有群文件的根目录:") #所有QQ群文件的物理根目录路径def info(): info_dic=[] dirList=os.listdi...

Kefy
今天
5
0
CoreText进阶(六)-内容大小计算和自动布局

CoreText进阶(六)-内容大小计算和自动布局 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更...

aron1992
今天
1
0
一个Unity高人的博客,涉猎范围很广,深度也很深。

https://blog.csdn.net/ecidevilin/article/list/

爽歪歪ES
今天
0
0
Spring Cloud Config-Git后端

EnvironmentRepository的默认实现使用Git后端,这对于管理升级和物理环境以及审核更改非常方便。要更改存储库的位置,可以在Config Server中设置“spring.cloud.config.server.git.uri”配置...

itcloud
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部