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

简介:

如何用不到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.

相关文章
|
网络协议 安全 搜索推荐
子域名收集神器:Amass 保姆级教程(附链接)
子域名收集神器:Amass 保姆级教程(附链接)
子域名收集神器:Amass 保姆级教程(附链接)
|
3月前
|
存储 人工智能 缓存
AI应用爆发式增长,如何设计一个真正支撑业务的AI系统架构?——解析AI系统架构设计核心要点
本文AI专家三桥君系统阐述了AI系统架构设计的核心原则与关键技术,提出演进式、先进性、松耦合等五大架构法则,强调高并发、高可用等系统质量属性。通过垂直扩展与水平扩展策略实现弹性伸缩,采用多类型数据存储与索引优化提升性能。三桥君介绍了缓存、批处理等性能优化技术,以及熔断隔离等容灾机制,构建全链路监控体系保障系统稳定性。为构建支撑亿级业务的AI系统提供了方法论指导和技术实现路径。
384 0
|
6月前
|
运维 容器 数据库
2025 轻松部署 Odoo 18 社区版
传统手工部署 Odoo 存在诸多难题:手动安装 Docker 复杂易错、镜像拉取速度慢且易中断、配置参数繁琐、后期运维负担重。Websoft9 提供了一键安装解决方案,自动检测系统环境并加速国内镜像下载,智能配置避免端口冲突与弱密码风险。仅需三步(登录控制台、创建数据库、登录后台)即可完成极简部署,显著提升效率与安全性,是企业用户的理想选择。
820 0
2025 轻松部署 Odoo 18 社区版
|
7月前
|
安全 网络协议 网络安全
只有IP地址没有域名,如何实现HTTPS访问?
在仅有IP地址而无域名的情况下,实现HTTPS访问并非不可能。主要挑战包括证书颁发机构(CA)对IP地址的支持有限及浏览器兼容性问题。解决方案有:1) 搭建私有CA为内部IP地址颁发证书;2) 使用支持IP地址的公共CA服务。选择合适的方案需根据需求权衡。具体步骤包括选择证书类型、生成CSR文件、提交并完成验证、安装SSL证书和配置强制HTTPS访问。确保IP地址稳定,并定期维护安全性。 **申请优惠**:访问JoySSL官网并填写注册码“230907”可优惠申请IP地址证书。
1001 5
|
存储 算法 C语言
C语言手撕实战代码_循环单链表和循环双链表
本文档详细介绍了用C语言实现循环单链表和循环双链表的相关算法。包括循环单链表的建立、逆转、左移、拆分及合并等操作;以及双链表的建立、遍历、排序和循环双链表的重组。通过具体示例和代码片段,展示了每种算法的实现思路与步骤,帮助读者深入理解并掌握这些数据结构的基本操作方法。
278 2
ly~
|
开发框架 小程序 前端开发
抖音小程序的开发难度大吗?
抖音小程序的开发难度因人而异,主要取决于开发者经验、技能及功能需求。技术上需掌握前端技术及抖音开发框架,了解平台生态与规则;设计上需符合用户审美和习惯,具备创新性和实用性。此外,严格的审核标准和激烈的市场竞争增加了开发难度,开发者需制定有效推广策略并持续优化小程序以保持竞争力。
ly~
397 4
|
人工智能 运维 自然语言处理
AI战略丨构建未来: 生成式人工智能技术落地策略
GenAI 的技术落地需要企业进行周密地规划和持续地努力。企业必须从自身的战略出发, 综合考虑成本、效果和性能,制定合理的技术架构,通过全面的 AI 治理,实现可持续的创新和发展。
|
API Python JSON
使用django创建简单restful应用接口的步骤
【6月更文挑战第2天】本文简介使用Django创建API服务涉及安装djangorestframework,创建api应用,定义URL路由,编写视图和序列化器。这个过程展示了如何用Django Rest Framework构建JSON格式的API。
179 2
|
运维 Linux 网络安全
在Linux中,如何进行系统故障排查?
在Linux中,如何进行系统故障排查?