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

相关文章
|
5月前
|
人工智能 监控 安全
AWS Bedrock 接入 Claude 4.6:近期热门讨论背后的企业落地信号
近期X与GitHub热议AWS Bedrock接入Claude 4.6,焦点已从模型性能转向企业落地难题:认证刷新、配额治理、可观测性与限流。讨论凸显AI工程化分水岭——模型能力趋同,真正瓶颈在于如何无缝融入现有IAM、监控、计费与网络治理体系。
|
数据可视化 测试技术
一文了解软件测试规范
软件测试规范是测试工作的依据和准则,在进行软件测试时,应在相关国标文件的要求和指导下完成测试工作,这样可以从根本上保证软件测试工作的质量,进而提升软件产品的质量。 一个完整的软件测试规范应该包括对规范本身的详细说明,例如规范的目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检查表、培训、工具、参考资料等。
1668 0
一文了解软件测试规范
|
安全 关系型数据库 MySQL
Docker 进阶 发布自己的Docker镜像 将镜像上传到阿里云和Docker Hub
上传自己制作的docker镜像的方法,将docker镜像上传到Docker Hub,阿里云的两种方法,以及上传镜像时可能遇见的问题和解决办法,每一步的详解和上传镜像时的规范。
10356 0
Docker 进阶 发布自己的Docker镜像 将镜像上传到阿里云和Docker Hub
|
7月前
|
存储 关系型数据库 MySQL
阿里云数据库产品支持免费试用吗?最新可试用数据库规格信息、配置及可试用人群参考
2026年阿里云数据库试用活动的核心内容参考,涵盖26款可试用数据库产品,包括RDS MySQL、Tair、PolarDB、AnalyticDB等主流类型,覆盖Serverless、集群版、多模态等多种形态。活动支持个人与企业认证用户,适用场景涵盖开发测试、生产环境、AI集成、实时分析等。新用户可享免费试用额度及后续折扣。
1695 6
|
9月前
|
监控 数据挖掘 API
​​​​​​​闲鱼平台根据商品ID获取商品详情的API接口实现
本文介绍如何通过闲鱼开放平台API,根据商品ID获取商品详情。涵盖接口调用流程、参数说明、签名生成、Python示例及注意事项,助力开发者实现数据采集与分析,构建价格监控、信息聚合等应用。
1164 0
|
运维 安全 BI
ERPNext 介绍、安装和维护建议
ERPNext 是一款开源企业资源计划系统,功能涵盖财务、销售、采购、库存等多个模块,支持多组织架构与高度自定义。本文介绍其核心特性,并结合实战经验,提供基于 Websoft9 的简便部署方案及后期维护建议,助力中小企业快速搭建稳定高效的管理系统。
4500 0
|
人工智能 搜索推荐 API
AI尝鲜:使用dify监测金融市场情绪
本实验介绍了如何利用dify创建金融市场情绪工作流,通过输入公司名称(如英伟达),使用Tavily搜索引擎获取相关金融新闻,并借助大模型(如通义千问)进行情绪分析,输出介于-1到1之间的情绪评分。实验分为四步:安装dify、设置模型供应商、配置搜索引擎以及创建工作流。最终,用户可运行工作流,获得量化的市场情绪数据,为量化交易策略提供依据。
AI尝鲜:使用dify监测金融市场情绪
|
安全 开发工具 虚拟化
使用 VMware + win10 + VirtualKD + windbg 从零搭建双机内核调试环境
使用 VMware + win10 + VirtualKD + windbg 从零搭建双机内核调试环境
|
存储 算法 C语言
C语言手撕实战代码_循环单链表和循环双链表
本文档详细介绍了用C语言实现循环单链表和循环双链表的相关算法。包括循环单链表的建立、逆转、左移、拆分及合并等操作;以及双链表的建立、遍历、排序和循环双链表的重组。通过具体示例和代码片段,展示了每种算法的实现思路与步骤,帮助读者深入理解并掌握这些数据结构的基本操作方法。
547 3
ly~
|
开发框架 小程序 前端开发
抖音小程序的开发难度大吗?
抖音小程序的开发难度因人而异,主要取决于开发者经验、技能及功能需求。技术上需掌握前端技术及抖音开发框架,了解平台生态与规则;设计上需符合用户审美和习惯,具备创新性和实用性。此外,严格的审核标准和激烈的市场竞争增加了开发难度,开发者需制定有效推广策略并持续优化小程序以保持竞争力。
ly~
731 4