博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何用不到10元人民币 DIY 一个 YubiKey
阅读量:6085 次
发布时间:2019-06-20

本文共 953 字,大约阅读时间需要 3 分钟。

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

DigiSpark 开发板

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

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

板子插到 USB 之后的效果

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

输入密码

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

代码其实很简单,如下。

 
  1. #include "DigiKeyboard.h"
  2. void setup() {
  3. pinMode(0, INPUT);
  4. pinMode(1, OUTPUT);
  5. }
  6. void loop() {
  7. if (digitalRead(0) == HIGH) {
  8. digitalWrite(1, HIGH);
  9. DigiKeyboard.sendKeyStroke(0);
  10. DigiKeyboard.println("YouPasswordHere");
  11. }
  12. DigiKeyboard.delay(5000);
  13. digitalWrite(1, LOW);
  14. }

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

几个问题:

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

Happy Hacking

本文来自云栖社区合作伙伴“Linux中国”,原文发表于2013-04-02.

转载地址:http://dauwa.baihongyu.com/

你可能感兴趣的文章
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>
字符设备与块设备的区别
查看>>
为什么我弃用GNOME转向KDE(2)
查看>>
Redis学习记录初篇
查看>>
爬虫案例若干-爬取CSDN博文,糗事百科段子以及淘宝的图片
查看>>
Web实时通信技术
查看>>
第三章 计算机及服务器硬件组成结合企业运维场景 总结
查看>>
IntelliJ IDEA解决Tomcal启动报错
查看>>
默认虚拟主机设置
查看>>
php中的短标签 太坑人了
查看>>
[译] 可维护的 ETL:使管道更容易支持和扩展的技巧
查看>>
### 继承 ###
查看>>
数组扩展方法之求和
查看>>
astah-professional-7_2_0安装
查看>>
函数是对象-有属性有方法
查看>>
uva 10107 - What is the Median?
查看>>
Linux下基本栈溢出攻击【转】
查看>>