使用动态令牌连接远程服务器

早期的网游似乎会让,玩家购买动态令牌绑定账户,提高游戏安全性,在那个木马横飞的年代,这种做法很有必要,不过现在的大数据风控加上手机短信验证,似乎比动态令牌来的安全,并且方便,毕竟手机随时随地都带着。

动态令牌产生一串简单的数字,能不能很好的保证安全,以前的我是挺怀疑的。工作原理并不显得复杂,过程就是对一串实现预置的密钥Key使用时间加盐,然后计算哈希值,并且保证30s内的哈希值都是一样的,服务端也保留着这个Key,验证的使用取出这个Key以同样的算法计算然后对比,特点是令牌有时效性,过一会儿就不能用了,为了排除时间不同步带来的偏差,当前时间产生的令牌的下一个或者上一个都是有效的,这种方法称为TOTP。另外一种是基于使用次数而变化算法,称为HOTP),把时间替换成计数器,每使用一次,计数器就加一,令牌也发生变化。上面QQ令牌就是使用TOTP,但不一定是标准协议。事实上如果最开始的Key就泄露了,那么根据Key计算出动态令牌也是很简单,之所以比密码安全,是因为将Key托管给了第三方的软件或者硬件,软件有Google 身份验证器,支持HOTP和TOTP,不支持同步不支持导出,也就是说除了在当前手机上面使用,除此之外,只能重新生成密钥。

Google 身份验证器

December 21

Go通过D-bus直接与systemd通讯

systemd

systemd是一套软件,是Linux系统下面的第一个进程,用来初始化系统的各种任务,提供计划任务、电源管理、挂载磁盘、DNS解析、系统日志、网络配置等等,甚至使用systemd-boot替代Grub,大概感觉就是systemd能接管的,最后都会用systemd

systemctl是用来管理任务的,最直接的操作包括:启动、停止、重启、查看状态。

# 启动 caddy 服务
systemctl start caddy

这个命令是给维护人员在命令行上面使用的,虽然偶尔会偷懒,使用ifconfig命令获取IP地址之类的不是很骚的操作,但是调用二进制执行某些任务,最多只能知道成功了没有,这期间不包括某个命令找不到,缺乏执行权限,版本差异导致获取不到预期输出等等问题,最合适的做法是使用软件提供的开放接口执行命令。

December 13