基于M5Stack Cardputer構(gòu)建一個直觀且易于使用的密碼管理器
它提供安全的密碼存儲、加密和自動輸入密碼的USB模擬。
安全硬件密碼管理器
這一切都始于一個簡單的想法:一種安全的、離線的方式來管理密碼,一種可靠的、不依賴于云的方式。
在深入開發(fā)之前,我已經(jīng)準備好了以前項目中的大部分構(gòu)建塊和一些Ui。為了這個項目把它們結(jié)合在一起就像把我已經(jīng)解決的拼圖重新組合起來。
計劃很簡單:構(gòu)建一個直觀且易于使用的密碼管理器,同時通過強大的加密技術(shù)認真對待安全性,以及在便攜式設(shè)備上持久安全地存儲數(shù)據(jù)的方法。
加密
AES是自然的選擇,它是一種完善的、快速的、廣泛信任的加密標準,從銀行到軍事系統(tǒng)都有使用。
所有密碼都使用AES-128加密,加密密鑰使用PBKDF2從主密碼派生而來。該功能采用數(shù)千次迭代和隨機鹽來減緩暴力攻擊并確保安全的密鑰派生。
持久和安全存儲
加密的密碼庫以文件的形式存儲在SD卡上,但絕不會以明文形式存儲。只有加密后的文件被寫入磁盤,其中包含:
在PBKDF2推導(dǎo)和aes加密數(shù)據(jù)(密文)期間使用的一種鹽。
解密的數(shù)據(jù)僅保存在RAM中,并在使用或自動鎖定后立即擦除。
電腦是完美的選擇
M5Stack Cardputer非常適合作為硬件密碼管理器。它很小巧,有一個內(nèi)置鍵盤,一個SD卡插槽,運行在帶有本地USB支持的ESP32-S3上。屏幕使其易于使用,并且由于USB HID,它可以直接在登錄字段中鍵入密碼。
它還配備了兩個內(nèi)置電池,為便攜式使用提供了出色的電池壽命。
密碼管理器功能概述
AES-128加密:所有存儲的密碼都使用AES-128算法加密,確保強大的保護,防止未經(jīng)授權(quán)的訪問。
存儲在SD卡上:加密的密碼庫以文件的形式存儲在設(shè)備的SD卡上,提供持久性、可移植性和易于管理。
隨機密碼生成:設(shè)備可以生成安全的隨機密碼。
HID鍵盤模式:由于ESP32的HID功能,該設(shè)備可以模擬USB鍵盤,自動在登錄字段中輸入用戶名和密碼。
用戶身份驗證:需要一個主密碼來解鎖和訪問存儲的憑據(jù)
自動鎖定保險庫:保險庫自動鎖定,在物理盜竊或無人值守的情況下降低風(fēng)險。
架構(gòu):完全測試的MVC設(shè)計
密碼管理器是圍繞一個干凈的、經(jīng)過充分測試的模型-視圖-控制器(MVC)架構(gòu)構(gòu)建的。
這種關(guān)注點分離允許更容易的更新、更好的可測試性和更易于維護的代碼庫。每個組件都經(jīng)過單獨測試,確保整個固件的健壯性和可靠性。
在Password Manager項目中實現(xiàn)了一個完整的測試堆棧,從服務(wù)功能的低級單元測試(如AES加密和文件解析)到完整的集成測試(創(chuàng)建保險庫、加載保險庫等)。
密碼管理器的卡片計算機
本文編譯自hackster.io