Yubikey 是一个小型的USB设备,在电脑看来,它是一个USB键盘设备。当将Yubikey接入电脑后,其上会亮起一个绿色的圆环,代表这个USB键盘已经可以正常传输字符了。应用的比较多,同类的有umikey(这个有国产和销售,官网好像不大好使了~)
最近看一个内容不错的网站,习惯性的看下源代码,发现了/wp-xxxxx这样的内容,然后果断习惯性的又访问了了下/wp-admin/
出现了后台~当然了~只是来看看而已~但是居然有三个输入框~不科学啊~
随即,看到了yubikey OTP~
什么是OTP?大家应该相当熟悉了~把鼠标放上去,就会显示这样一段话~
“If You don'st have a Yubikey enabled for Your Wordpress account, leave this.field.empty.”
恩,是的,OTP就是One-Time-Password,这玩意就是跟各种U盾啊~游戏令牌一样的东西,根据一定算法随机产生密码的输入设备。
但是呢,yubikey还有别的功能,就是存储一些复杂密码,比如超级变态的32位随机大小写+数字+符号等等.并且支持 记录验证和自动验证填写。
怎么说呢,就是说我把所有要记录的密码全部存储后加密,我只需要记住这一个密码就可以了,而且这个密码又很变态,那我就把他存储在yubikey里,这样我只需要验证yubikey和保护好yubikey就行了。
之前说的那个wordpress后台就是wordpress提供的一个yubikey插件,如图:
这是一个很不错的想法,当我输入了账户和密码以后,没有yubikey硬件也没有其生成的OTP时就没办法登陆后台了!而且密码不用你去记住,他存储后只用你轻轻触碰以下他,就可以自动填写密码。说了这么多,来看看他的样子:
可以看到最便宜的只要25刀,相当的便宜了~
——————————-分割线——————————
好了,言归正传,其实这个东西最初并不被运用在web上~
他其实是为了搭配其他软件而生的,相信大家见过很多密码管理器,密码管理软件等等。
他们去加密你所有的密码,而你用的这个软件的master key就由yubikey保管。
但是这样的软件有个问题,就是同步~我不能每个电脑都装一个软件管理密码吧?
后来有了百度云,360云,还有之前freebuf上讨论过的lastpass,
反正各种云存储,是解决了同步的问题,可是如果百度云这样的账号密码忘了或者不够强大?或者被社工者猜出了?或者谁谁谁的裤子又满天飞了?怎么办?
大家再次想到了硬件,yubikey因为他的廉价,又被广泛运用了。
现在来看,yubikey确实是一种不错的密码管理master key存储的一个很好的解决方式。
但是回到文章开头的那个画面,运用在独立网站后台,如博客,门户,论坛的后台登陆上是否真的万无一失,或者说能彻底阻断黑客入侵方式?
先总结下:
1.首先,yubikey,只对后台验证登录时加了一层token验证 2.yubikey还无法做出对cookie, session,以及不同平台的权限的控制和识别 3.Yubikey还在发展,后面可能会支持更多协议的保护和自动识别
现在相信很明显了,必须承认,在后台登陆上,yubikey比其他cms所提供的认证码要靠谱的多。但是并不能保证整个web应用的安全(老实说这么看下去,估计永远没有啥硬件能保证web应用的安全,哪怕是相对安全)。因为,你要保护的地方太多了,你要保护的协议太多了,你要识别的认证太多了,还有尼玛更多的平台不同的权限控制有木有?
是的,这里我们还不谈数据库方面的验证~
我们也不谈各大系统和浏览器对你验证方式的支持!
更不谈高深的加密算法。
仅仅是一个web应用依赖或辅助的一些服务,恐怕靠yubikey还都无法保证,比如大牛们可以搞定你的ftp,搞定你的远程桌面,或者各种漏洞上传了一个webshell,然后单手倒立撸着,就把你的yubikey认证插件给删除了~
好吧,再总结下,yubikey在独立中小型网站中的后台上做验证,究竟带来了哪些安全?
恩,真的有一点,sql注入没意义了,知道账号密码,没yubikey登陆不了!
好吧!你赢了!
附:
顺便附上一个小截图,开头那个网站开放的端口
我擦,ssh试了弱密码,第六次就进去了~
Pass=域名+ftp123
擦,你这安全意识,用毛的yubikey啊!