|Hacker实例:自动按YubiKeys


黑客精神的第一法则是遇到问题自己解决 , 不管硬件还是软件都要自己动手DIY来解决问题 。 很多人可能对这个可能有些好奇 , 实际上这也是一个平常探索的过程 。 今天我们就通过一个实例来学习该过程——打造一个自动按YubiKeys机 。
缘起
从事技术工作的小伙伴们可能很多人都知道YubiKey , 比如下面的这个YubiKey 5C Nano 。
|Hacker实例:自动按YubiKeys
本文插图

YubiKeys主要用来充当两因素身份验证 。 在以前的文章中 , 虫虫曾经介绍过用YubiKeys来认证以及SSH登陆的文章 。 这Web双因子认证过程中使用用户名和密码登录到系统后 , 系统还需要以额外的第二种方式进行授权 。 这样 , 如果账号密码泄露 , 攻击者也将无法得到第二种身份验证形式 , 这样防止账号被盗保障安全 。 两因子验证有多种形式一种常见的形式是网站会要求使用手机上的谷歌Authenticator应用程序(或类似程序 , 比如FreeOTP)扫描QR码 , 该代码会生成6位数字的验证码 。 服务器和应用程序都有一个共享的机密 。 手机会根据密钥和当前时间戳生成代码 , 服务器会生成相同的代码并验证两者是否匹配 。

|Hacker实例:自动按YubiKeys
本文插图

还有基于短信的的双因子认证:服务器会生成一个代码 , 并通过短信将其发送到的手机 。 由于存在SIM劫持的攻击 , 诱骗手机运营商将号码移植到新的SIM卡上 , 从而可以所有SMS流量引向他们的手 。 所以被认为是不太安全的双因子认证方式 。
YubiKeys是插入计算机USB端口并模拟键盘的小型设备 。 轻按后 , 它们会发出一次性密码(OTP) , 然后可以由验证服务器进行验证 。 YubiKeys上保存着用于签名信息的私钥 , 而且该私钥无法被复制和窃取 , 所以保证了安全 。
本案例中 , Bertrand使用的YubiKey始终插在笔记本电脑上 , 所以 , 不论将笔记本电脑从办公桌上带到会议室或其他办公室 , 保证就始终可用 。 但是他的笔记本不打算移动使用 , 并且还外部显示器并节省了一些桌面空间 , 笔记本翻盖垂直放置在架子上 。 这样一来 , 按下YubiKey会非常麻烦而且触发率不高 。
由于YubiKey 5C Nano的触发目标区域非常小 , 如下面的黄色线部分 。
|Hacker实例:自动按YubiKeys
本文插图

YubiKey的功能之一是 , 黄色小金属条防止由于将笔记本电脑撞到某物而意外触发它 , 尝试触发它的5次中有1次 。 确保不能从计算机本身的软件触发YubiKey的想法已经很多 。
如果远程攻击者要破坏的笔记本电脑 , 则可以从计算机上的软件触发YubiKey , 这将使无法使用YubiKey 。 但是在安全性和便利性之间进行权衡:例如 , 通常不必在每次访问系统时都输入YubiKey , 某些系统只会询问一次 , 而在以后的某个登录中不再询问多少时间 。
Bertrand本次Hack的目标是是如何使用软件自动触发YubiKey——Finger 。
硬件设计
首先 , 需要某种方式让计算机与The Finger对话 。 有一堆这些IZOKEE D1 Mini开发板 , 它们是使用许多IoT设备中ESP8266芯片的较小版本的板 。
|Hacker实例:自动按YubiKeys
本文插图

可以将其连接到笔记本电脑并通过USB串行与之对话 , 但是由于它具有WiFi , 也可以在其上运行网络服务器并发送HTTP请求 。
接下来 , 需要一些方法将Finger推向Yubikey 。 Bertrand谷歌后 , 发现了28BYJ-48步进电机可以与D1 Mini板配合使用 。
|Hacker实例:自动按YubiKeys


推荐阅读