Z
Published on
· Last modified on
· Public

如何用不到10元人民币DIY一个YubiKey

如何用不到10元人民币DIY一个YubiKeyDigiSpark 开发板

需要用到的额外材料就是图中的 DigiSpark ,在淘宝上大约在10元人民币左右。

DigiSpark 其实是一个小型的类似 Arduino 的开发版,我们可以写代码刷到板子中的芯片里,芯片可以按照代码执行一些简单的任务。最近看到很多人都在海淘 YubiKey 这种小巧的密码保存器,因为正好 DigiSpark 本身有模拟 HID 的功能,何不自己做一个。

如何用不到10元人民币DIY一个YubiKey板子插到 USB 之后的效果

注意我的手指没有挨着板子,这个时候进入 LastPass 或者 PasswordSafe 等软件的主密码输入界面,然后手轻轻碰一下板子的背部,效果如下图。

如何用不到10元人民币DIY一个YubiKey输入密码

板子上的第二个 LED 灯亮起,这个时候会模拟键盘把预先烧到芯片中的密码输入到电脑里。

代码其实很简单,如下。

#include "DigiKeyboard.h"
void setup() {
  pinMode(0, INPUT);
  pinMode(1, OUTPUT);
}
void loop() {
  if (digitalRead(0) == HIGH) {
    digitalWrite(1, HIGH);
    DigiKeyboard.sendKeyStroke(0);
    DigiKeyboard.println("YouPasswordHere");
  }
  DigiKeyboard.delay(5000);
  digitalWrite(1, LOW);
}

用 Arduino 密码下载的 IDE 就可以把代码直接烧到板子上,非常方便。比较适合的场景包括开机密码,前面说的密码管理器的主密码,TrueCrypt 等软件的加密密码等,但不适合在线密码。

几个问题,

  1. 密码是明文的,可以 dump 出来,注意不要直接使用它存储在线密码。
  2. 芯片和板子会损坏,所以一定要有备份。
  3. 可以存储多个密码,但需要修改代码,并且安装几个 Button,用 Button 或 Button 组合区分。
  4. 理论上可以实现 FIDO U2F ,但我没有具体实验,如果你有兴趣欢迎联系我。

如果你不知道怎么淘宝上购买,可以问我要一个,我还有一些富余(仅限酒仙桥或北苑路附近)。

如何用不到10元人民币DIY一个YubiKey静电包装

Happy Hacking

T
Published on

哇... 这个页面风格越来越赞了啊... 

不过点留言按钮的时候会提示是不是离开...

Z
Published on
tonic:

哇... 这个页面风格越来越赞了啊... 

不过点留言按钮的时候会提示是不是离开...

修好了

N
Published on

驱动在哪下?

Z
Published on
nanhuai:

驱动在哪下?

请查看 官网 Wiki Linux 和 Mac 下应该不需要驱动程序。

W
Published on
如何用不到10元人民币DIY一个YubiKey

这样是不是代表烧录成功了?可是我轻触板子背部,第二个LED灯没动静

Z
Published on

@wengqi 可以多试几次,注意要接触到背面的引脚,轻触实际上是需要 5v 和 p0 引脚连起来,如果实在不行,可以用导线连一下试试看。

W
Published on
zhicheng:

@wengqi 可以多试几次,注意要接触到背面的引脚,轻触实际上是需要 5v 和 p0 引脚连起来,如果实在不行,可以用导线连一下试试看。

用导线可以...是不是它表面有绝缘层还是怎么?

Z
Published on
wengqi:
zhicheng:

@wengqi 可以多试几次,注意要接触到背面的引脚,轻触实际上是需要 5v 和 p0 引脚连起来,如果实在不行,可以用导线连一下试试看。

用导线可以...是不是它表面有绝缘层还是怎么?

也可能是我身上有静电吧。

F
Published on

既然可以模拟HID,那么就可以输入预先编写的指令和代码,进行攻击了吧

Z
Published on
fevenor:

既然可以模拟HID,那么就可以输入预先编写的指令和代码,进行攻击了吧

发挥想象力的话,用它能干得坏事儿还真不少。

Sign in or Sign up Leave Comment