数码之家

 找回密码
 立即注册
搜索
查看: 2673|回复: 12

[外设] 离线[硬件]密码管理器,全平台,全应用,免驱动.MetooKey Arduino版开源

[复制链接]
发表于 2020-4-1 15:04:20 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 metoo 于 2020-4-1 15:24 编辑

昨天看了西部世界S03E03,里面可以说设想了一种大数据的未来.
他们会让你成为谁.jpg
现在各种云同步,免费云服务.真的是"免费"吗?


以下为原文
随着网络发展的迅速发展,现在互联网已经成了大多数人不可隔离的一部分.甚至可以说我们一部分生命就是在互联网中.那么,在互联网中的你,安全吗?
特别是现在全网实名制,很多网站都是使用手机来验证实名信息,同时手机号码也成了你通用的账户名.
我相信基本每个人都知道在网上不能用太简单的密码,甚至很多人可能都用上了数字加大小写字母这种比较复杂的密码.但是许多人在不同的账户使用相同的密码.即使你的密码比较复杂.黑客不需要攻克防御强大的网站,他只需要攻克最弱的那个,比如一些小论坛,就可以通过该网站窃取你所有互联网的信息.
而网站被拖库这种事情几乎每天都在上演.(拖库是指网站的数据库被非法获取)
记住几个复杂的密码对大部分人来说已经非常困难,而每个人的账户数量最少也有几十个,甚至几百个.记住每个账户的密码似乎是不可能的事情.
有需求就有产品,各种密码管理软件应运而生.
目前主流的密码管理软件有KeePass,LastPass,1Password,Enpass
我只用过KeePass,优点是开源,免费,PC有官方客户端,手机有第三方APP,无同步功能
收费的1Password评价最高.
为什么现在不用KeePass?
如果只是密码管理,那么KeePass是完美的,但是密码输入就比较麻烦,谁都不想手敲这么一段密码 C2gjzki5ALuzY^`U ,而且 KeePass各平台同步也比较麻烦.毕竟开源软件使用起来不像商业软件那么方便.许多功能需要折腾.
所以我就想着做一个全平台全应用通用的密码管理器.
作为一个Arduino爱好者,首先想到就是找找有没有现成的好东西.
国内基本上啥都没找到,国外找到挺多这种设备,有基于Arduino的,有简单的ATtiny85的.
最中意的是的这款,采用不太常见的Arduino Pro Micro,这款Arduino 用的是和Arduino Leonardo一样的ATmega32u4芯片.这款芯片的好处支持USB通信,可以模拟成USB HID设备.USB HID设备重点讲一下,可能有很多人不了解.
USB HID全程是人机接口设备,顾名思义就是人类操作机器的设备,包含常见的USB键盘,USB鼠标,USB游戏手柄等等.
而我要做的就是将密码管理器模拟成一个键盘,从而代替我们输入密码.而USB HID的广泛适用性可以让我们做到全平台全应用免驱动,插上即可使用.
今天介绍的这个就是基于PasswordPump重写及汉化.
先来上图对比下参数

功能对比

功能对比
其实这个Arduino版缺陷还是挺多的,所以最后我还是换了平台.这个后面再说.
如果你也想做一个玩,那么就接着往下看吧!干货开始
零件清单:
  • Arduino pro micro x 1
  • SSD1306 OLED 128x32 I2C x 1
  • 25LC256 EEPROM x 2
  • EC11 旋转编码器 x 1
  • SOP8 转接板 x 2 (如果你买的是SOP8封装的那么需要这个)
注意!25LC256常见有两种封装,两种都可以用,如果你买的是的DIP封装,那么不需要买SOP转接版.如果是SOP封装,那么需要买转接板.
接下来我们就上接线图

接线图

接线图
图里的显示屏和我们买的不一样,接线按图中4根线接就可以了
为什么是重画呢,因为Arduino这个项目我是年前弄的,图找不到了.按实物重新画的
代码连接
Arduino编译上传这里就不说了,很简单
python需要安装一个pip3 install pyserial,也很简单.
使用动图 MetooKeyArduino登录什么值得买演示动画.gif

MetooKeyArduino主菜单演示动画.gif

总结
Arduino版是我年前在弄的,程序大概弄完,立马用嘉立创的EDA画了PCB(这款EDA库非常全),年前到货,结果喜闻乐见PCB有错误...修正后已经过年放假,再加上疫情.基本很久PCB工厂才会开工.
大男孩闲着没事怎么受得了.于是第一次拿起STM32,做了STM32版...说是STM32版,其实和Arduino版已经没有什么关系.全部推到重来.
第一次做STM32,上手难度比Arduino大多了,也没有那么多库可用.基本上都要自己写.为了能显示中文,自己写了字库,显示驱动.
一点点敲代码,一点点调BUG.
终于PCB工厂开工.前几天也终于做出成品.
_IGP3948.jpg
删库跑路演示动画.gif





发表于 2020-4-1 17:26:22 | 显示全部楼层
其实没必要外挂eeprom 芯片内部储存空间那么多

点评

EEPROM 的数据不知道是不是明文,还是经过严格加密的。 不然的话就是故意留破绽,毕竟读取EEPROM可比读取加了锁的MCU内存简单得多。  详情 回复 发表于 2020-4-1 19:45
回复 支持 反对

使用道具 举报

发表于 2020-4-1 19:42:10 | 显示全部楼层
太好了,抽空仿一个:smile::smile:
回复 支持 反对

使用道具 举报

发表于 2020-4-1 19:45:19 | 显示全部楼层
2545889167 发表于 2020-4-1 17:26
其实没必要外挂eeprom 芯片内部储存空间那么多

EEPROM 的数据不知道是不是明文,还是经过严格加密的。
不然的话就是故意留破绽,毕竟读取EEPROM可比读取加了锁的MCU内存简单得多。
回复 支持 反对

使用道具 举报

发表于 2020-4-1 19:52:28 | 显示全部楼层
stm的开源吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-1 22:35:12 | 显示全部楼层
la45088d1 发表于 2020-4-1 19:45
EEPROM 的数据不知道是不是明文,还是经过严格加密的。
不然的话就是故意留破绽,毕竟读取EEPROM可比读取 ...

Arduino版程序空间不够了,没有加密.英文Arduino是有加密的.STM32版是加密的.具体功能表那边都有.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-1 22:35:46 | 显示全部楼层
2545889167 发表于 2020-4-1 17:26
其实没必要外挂eeprom 芯片内部储存空间那么多

255条数据,每条用248字节.内部不够的.

点评

怎么可能不够 两片eep就4k的容量,stm32内部最小的型号也有64k,跑掉程序也至少有30-40k剩余  详情 回复 发表于 2020-4-2 09:43
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-1 22:36:22 | 显示全部楼层

STM暂时不考虑开源:smile:
回复 支持 反对

使用道具 举报

发表于 2020-4-2 09:43:44 | 显示全部楼层
metoo 发表于 2020-4-1 22:35
255条数据,每条用248字节.内部不够的.

怎么可能不够 两片eep就4k的容量,stm32内部最小的型号也有64k,跑掉程序也至少有30-40k剩余
回复 支持 反对

使用道具 举报

发表于 2020-4-2 10:34:10 | 显示全部楼层
在张大妈刚看完又看见了,再问一句楼主有成品出不:lol:
回复 支持 反对

使用道具 举报

发表于 2020-4-2 12:44:34 | 显示全部楼层
淘宝帐号用户名是中文的 不知道能不能用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 04:13:06 | 显示全部楼层
睡不着 发表于 2020-4-2 10:34
在张大妈刚看完又看见了,再问一句楼主有成品出不

张大妈的评论里发了群号。:smile:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 04:13:49 | 显示全部楼层
1064865056 发表于 2020-4-2 12:44
淘宝帐号用户名是中文的 不知道能不能用

STM32版中文可以显示。但是不能输出
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 01:29 , Processed in 0.124800 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表