基于單片機設計的便攜防盜密碼輸入器
為解決開放式密碼輸入裝置存在安全隱患的問題,提供一種密碼輸入方式與密碼輸入裝置。使該裝置即便在沒有任何防護的情況下從根本上杜絕了密碼被他人因窺視而被盜。
本文引用地址:http://www.ex-cimer.com/article/201610/307325.htm用戶掌握開機密碼才可開啟PC機及進入用戶工作頁面,并可以自己通過該密碼編輯軟件修改密碼,用數(shù)字鍵代表的字符串來取代固定的數(shù)字??梢詫⒃瓉淼暮唵螖?shù)字密碼,變?yōu)楸容^復雜的由大寫字符、小寫字符、數(shù)字、下劃線等字符組成的密碼,從而使密碼的破解更為困難,這樣可以一舉兩得。
本設計的密碼輸入器在設計時還特別添加了保護措施,單片機上的程序是加密而不可讀的,存儲模塊內存儲的密碼是經(jīng)過加密處理的,不是原始密碼,本密碼輸入器設有開機密碼,只有輸入正確的開機密碼才能進行密碼操作,而開機密碼可以設定輸入次數(shù),一旦錯誤開機密碼次數(shù)達到某一規(guī)定數(shù)值,密碼輸入器將自鎖。
1 系統(tǒng)功能實現(xiàn)原理
單片機通過USB接口與PC機相接,單片機上安裝有應用軟件,PC機上有密碼編輯軟件。PC機開機時要求輸入開機密碼,只有當開機密碼輸入正確時,才能開啟PC機進入系統(tǒng)。當單片機與PC機連接后,PC機顯示屏上出現(xiàn)頁面:要求在密碼輸入裝置中輸入開機密碼。若開機密碼不正確,程序將提示繼續(xù)輸入開機密碼,當開機密碼達到限定的輸入次數(shù)時,程序自鎖。
若開機密碼正確,則打開用戶工作頁面。這時,用戶可以通過該密碼編輯軟件修改密碼,自己編輯用數(shù)字鍵代表的字符串來取代固定的數(shù)字。該密碼輸入裝置與常規(guī)鍵盤的本質區(qū)別在于:常規(guī)鍵盤的按鍵對應于唯一的固定鍵碼,而該輸入裝置的按鍵所對應的是該裝置中存儲器的一個固定地址。而這一按鍵的映射地址中存儲的數(shù)據(jù)是該按鍵所關聯(lián)的作為密碼的字符串。這個字符串由鍵碼組成,因而當一個按鍵按下等同于連續(xù)按下多個按鍵,因而能用一個按鍵實現(xiàn)一串密碼的輸入。該裝置按鍵與密碼關聯(lián)的實質是在存儲器中按鍵對應的地址寫入密碼數(shù)據(jù)。該裝置輸入密碼過程的實質是從存儲器中按鍵對應地址讀取密碼數(shù)據(jù),然后通過提供的接口將密碼發(fā)送至需要密碼輸入的設備。
密碼編輯保存后就可以直接存入系統(tǒng)。系統(tǒng)可以對該密碼保留記憶,下次使用該系統(tǒng)時就可以直接按某一個或兩個鍵來輸入一串密碼。
本設計的密碼輸入器在設計時還特別添加了保護措施,中央處理器上的程序是加密而不可讀的,存儲模塊內存儲的密碼是經(jīng)過加密處理的,不是原始密碼,這就保證了密碼的安全性,因此在現(xiàn)場輸入的并非真正的密碼,所以即便在有很多人圍觀的情況下也無法獲取用戶的真正密碼,真正的實現(xiàn)了密碼的安全保護作用。而且系統(tǒng)的本身也提供了一個開機密碼,只有正確輸入開機密碼后才能進入系統(tǒng),因此即使不小心丟失該產品,他人也無法輕易使用。
選用的開發(fā)板符合USB協(xié)議可以直接與PC機相連,在PC機上對單片機進行編程,設計可以在PC機上安裝應用的密碼編輯軟件。數(shù)字鍵盤按鍵和確認按鍵可利用PC機的鍵盤輸入,顯示裝置即為PC機的屏幕。只需要用單片機編程出相應的安裝應用軟件,即可達到預期目標。
此處以EEPROM作為存儲器、USB接口作為通信的媒介的密碼輸入裝置為例。當該密碼輸入裝置插入需要密碼輸入的設備(此處以普通PC為例)時,該裝置表現(xiàn)為一個標準HID鍵盤。該密碼輸入裝置完全可以像普通鍵盤一樣直接向PC發(fā)送鍵碼數(shù)據(jù),同時也可以使用與之配套的PC軟件,通過USB接口向該裝置發(fā)送新的密碼數(shù)據(jù)并命令其修改EEPROM中按鍵對應地址的數(shù)據(jù)。
該密碼輸入裝置所需要的兩個主要步驟的詳細說明如下:
1). 按鍵與密碼的關聯(lián)
PC軟件先通過圖形界面從用戶處獲悉該用戶希望某個按鍵對應的密碼,之后軟件會將其轉換成HID協(xié)議中鍵盤的字符編碼,然后通過USB接口將編碼后的密碼以及該密碼在EEPROM中的存儲位置一同發(fā)送給密碼輸入裝置,并通知其修改EEPROM的數(shù)據(jù)。該密碼輸入裝置得到修改的命令以及相關數(shù)據(jù)后,就會在EEPROM的指定位置儲存該密碼,完成按鍵與密碼的關聯(lián)。
例如,用戶希望為按鍵“2”設置密碼“123456”。“123456”對應的鍵盤編碼是“1d 1e 1f 20 21 22”,按鍵“2” 的存儲地址被設置為“06”。PC軟件會將這些數(shù)據(jù)以及寫EEPROM的命令通過USB接口發(fā)送給該密碼輸入裝置。該裝置接收到數(shù)據(jù)后就立即會將“1d 1e 1f 20 21 22”寫入EEPROM的地址“06”中,完成按鍵“2”與密碼“123456”的關聯(lián)。
2). 使用關聯(lián)密碼的按鍵輸入過程
當用戶通過按鍵輸入密碼時,密碼輸入裝置會從EEPROM存儲器中該按鍵對應地址讀取與之關聯(lián)的密碼數(shù)據(jù)串,然后通過USB接口將該串數(shù)據(jù)逐次發(fā)送給PC。此時密碼輸入裝置對PC表現(xiàn)為標準HID設備(即可看成是一個標準鍵盤),從USB接口發(fā)送來的密碼會被系統(tǒng)自動填充至需要輸入密碼的位置,從而完成密碼的輸入。
本發(fā)明提供的密碼輸入器上的一個按鍵或兩個鍵的組合表示一串密碼,按下不同的按鍵或組合鍵,即可輸出不同的密碼,最后將密碼通過輸出接口傳給密碼接收方。比如通過USB口傳給PC機、或帶有USB口的自動存取款機、或帶有USB口的超市收款機以及帶有USB口的任何需要密碼的系統(tǒng)。密碼的編輯可通過密碼編輯系統(tǒng),在PC機上任意編輯自己所需要的密碼(密碼可以由大寫字符、小寫字符、數(shù)字和下劃線等組成),然后通過USB口將編輯好的密碼存儲到密碼輸入器上,也可在密碼輸入器上編輯簡單的數(shù)字密碼。
2 硬件平臺選用及資源配置
硬件選用EVK1100,EVK1100是一個基于AVR32 AT32UC3A單片機控制器的評估套件和開發(fā)系統(tǒng)。它配備一系列豐富的外設、內存。--支持AT32UC3A
--JTAG連接器、Nexus、USART、USB2.0接口、TWI接口、SPI
3 系統(tǒng)軟件架構
PC機開機時要求輸入開機密碼,只有當開機密碼正確時,才可以打開PC機。PC機開機后,單片機與PC機相接時也需要輸入開機密碼才能在PC機上安裝設計的應用軟件。若開機密碼不正確,程序將提示繼續(xù)輸入開機密碼,當開機密碼達到限定的輸入次數(shù)時,程序自鎖。當開機密碼全部輸入正確時,PC機上出現(xiàn)使用界面,用戶可以通過該應用程序修改密碼,自己編輯用數(shù)字鍵代表的字符串來取代固定的數(shù)字。密碼編輯保存后就可以直接存入系統(tǒng)。系統(tǒng)可以對該密碼保留記憶,下次使用該系統(tǒng)時就可以直接按某一個或兩個鍵來輸入一串密碼。
本設計的密碼輸入器在設計時還特別添加了保護措施,中央處理器上的程序是加密而不可讀的,存儲模塊內存儲的密碼是經(jīng)過加密處理的,不是原始密碼,這就保證了密碼的安全性。
密碼編輯軟件即為設計中的應用軟件,使其能在PC機上運行。選用的開發(fā)板符合USB協(xié)議,可以直接與PC機相連,在PC機上進行對單片機進行編程,達到設計軟件的目的。數(shù)字鍵盤按鍵和確認按鍵可利用PC機的鍵盤輸入,顯示裝置即為PC機的屏幕。只需要用單片機編程出應用軟件,即可達到預期目標。
4 系統(tǒng)預計實現(xiàn)結果
設計一個通過USB口傳給PC機、或帶有USB口的自動存取款機、或帶有USB口的超市收款機以及帶有USB口的任何需要密碼的系統(tǒng)。密碼的編輯可通過密碼編輯系統(tǒng),在PC機上任意編輯自己所需要的密碼(密碼可以由大寫字符、小寫字符、數(shù)字和下劃線等組成),然后通過USB口將編輯好的密碼存儲到密碼輸入器上,也可在密碼輸入器上編輯簡單的數(shù)字密碼。
1、從根本上解決傳統(tǒng)密碼輸入所存在的安全隱患問題,保護密碼,避免因為密碼被盜而帶來的巨大經(jīng)濟損失。
2、采用USB接口,與其他設備的連接很簡單,可以很方便的進行擴展,可以自動擴展自ATM機,超市收款機,銀行柜臺等。
3、將原來的簡單數(shù)字密碼變?yōu)橛纱笮懽址?,下劃線,數(shù)字等組成的密碼,從而使密碼的破解更為困難。
4、密碼輸入方式新穎,實現(xiàn)難度不大可以運用于任何帶USB接口同時又需要密碼輸入的裝置,具有很好的實用價值
評論