基于M5Stack Cardputer构建一个直观且易于使用的密码管理器
扫描二维码
随时随地手机看文章
它提供安全的密码存储、加密和自动输入密码的USB模拟。
安全硬件密码管理器
这一切都始于一个简单的想法:一种安全的、离线的方式来管理密码,一种可靠的、不依赖于云的方式。
在深入开发之前,我已经准备好了以前项目中的大部分构建块和一些Ui。为了这个项目把它们结合在一起就像把我已经解决的拼图重新组合起来。
计划很简单:构建一个直观且易于使用的密码管理器,同时通过强大的加密技术认真对待安全性,以及在便携式设备上持久安全地存储数据的方法。
加密
AES是自然的选择,它是一种完善的、快速的、广泛信任的加密标准,从银行到军事系统都有使用。
所有密码都使用AES-128加密,加密密钥使用PBKDF2从主密码派生而来。该功能采用数千次迭代和随机盐来减缓暴力攻击并确保安全的密钥派生。
持久和安全存储
加密的密码库以文件的形式存储在SD卡上,但绝不会以明文形式存储。只有加密后的文件被写入磁盘,其中包含:
在PBKDF2推导和aes加密数据(密文)期间使用的一种盐。
解密的数据仅保存在RAM中,并在使用或自动锁定后立即擦除。
电脑是完美的选择
M5Stack Cardputer非常适合作为硬件密码管理器。它很小巧,有一个内置键盘,一个SD卡插槽,运行在带有本地USB支持的ESP32-S3上。屏幕使其易于使用,并且由于USB HID,它可以直接在登录字段中键入密码。
它还配备了两个内置电池,为便携式使用提供了出色的电池寿命。
密码管理器功能概述
AES-128加密:所有存储的密码都使用AES-128算法加密,确保强大的保护,防止未经授权的访问。
存储在SD卡上:加密的密码库以文件的形式存储在设备的SD卡上,提供持久性、可移植性和易于管理。
随机密码生成:设备可以生成安全的随机密码。
HID键盘模式:由于ESP32的HID功能,该设备可以模拟USB键盘,自动在登录字段中输入用户名和密码。
用户身份验证:需要一个主密码来解锁和访问存储的凭据
自动锁定保险库:保险库自动锁定,在物理盗窃或无人值守的情况下降低风险。
架构:完全测试的MVC设计
密码管理器是围绕一个干净的、经过充分测试的模型-视图-控制器(MVC)架构构建的。
这种关注点分离允许更容易的更新、更好的可测试性和更易于维护的代码库。每个组件都经过单独测试,确保整个固件的健壮性和可靠性。
在Password Manager项目中实现了一个完整的测试堆栈,从服务功能的低级单元测试(如AES加密和文件解析)到完整的集成测试(创建保险库、加载保险库等)。
密码管理器的卡片计算机
本文编译自hackster.io