物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

基于單片機(jī)的便攜防盜密碼輸入器方案設(shè)計(jì)

作者:不詳
來源:CK365中國測(cè)控網(wǎng)
日期:2015-01-29 15:23:07
摘要:在信息化的今天,很多情況下都需要輸入密碼。由于輸入方式和裝置采用按鍵的限制,密碼輸入方式變?yōu)殚_放式,對(duì)密碼的安全性構(gòu)成威脅。此領(lǐng)域的專利雖然很多,但多是遮擋式和隱蔽式的,輸入完整的密碼依然會(huì)存在安全隱患。

  一、項(xiàng)目概述

  1.1 引言

  在信息化的今天,很多情況下都需要輸入密碼。由于輸入方式和裝置采用按鍵的限制,密碼輸入方式變?yōu)殚_放式,對(duì)密碼的安全性構(gòu)成威脅。此領(lǐng)域的專利雖然很多,但多是遮擋式和隱蔽式的,輸入完整的密碼依然會(huì)存在安全隱患。

  1.2 項(xiàng)目背景/選題動(dòng)機(jī)

  在信息化時(shí)代的今天,很多情況下都要有密碼的確認(rèn),即要輸入密碼,然后才能進(jìn)入特定的“空間”,或執(zhí)行某種“動(dòng)作”。如學(xué)校、金融、零售、網(wǎng)絡(luò)等需要輸入密碼的場(chǎng)所和行業(yè)。目前,采用密碼的輸入方式和裝置,都是以鍵盤式(包括普通鍵盤、特殊鍵盤、小鍵盤等)為主,此種輸入裝置及其輸入方法的缺陷是:由于是鍵盤按鍵式,其輸入密碼方式為開放式,也就是說,在使用者輸入密碼時(shí),旁觀者可通過其操作方式偷窺或推算到其密碼,也可通過使用者所按按鍵的位置獲悉其密碼,從而在安全上構(gòu)成威脅。即使旁觀者無意想知道使用者的密碼,比如:上下級(jí)、師生、同事、同學(xué)等,采用此種方法雙方都會(huì)感到尷尬。此領(lǐng)域的專利有很多,但多數(shù)是遮擋式的或隱藏式的,但不管怎樣都要在現(xiàn)場(chǎng)輸入完整的密碼,這樣就存在安全隱患。

  本設(shè)計(jì)是解決開放式密碼輸入裝置在輸入密碼時(shí)容易被周圍的人偷窺到所輸入的密碼信息而存在安全隱患的問題,提出一種新的密碼輸入系統(tǒng)。該系統(tǒng)即便在沒有任何防護(hù)的情況下,人或攝像設(shè)備也無法得知所輸入的密碼,從而從根本上杜絕了密碼被他人因窺視而被盜。

  二、需求分析

  2.1 功能要求

  設(shè)計(jì)目的是解決開放式密碼輸入裝置存在安全隱患的問題,提供一種密碼輸入方式與密碼輸入裝置。使該裝置即便在沒有任何防護(hù)的情況下從根本上杜絕了密碼被他人因窺視而被盜。

  用戶掌握開機(jī)密碼才可開啟PC機(jī)及進(jìn)入用戶工作頁面,并可以自己通過該密碼編輯軟件修改密碼,用數(shù)字鍵代表的字符串來取代固定的數(shù)字。可以將原來的簡(jiǎn)單數(shù)字密碼,變?yōu)楸容^復(fù)雜的由大寫字符、小寫字符、數(shù)字、下劃線等字符組成的密碼,從而使密碼的破解更為困難,這樣可以一舉兩得。

  2.2 性能要求

  本設(shè)計(jì)的密碼輸入器在設(shè)計(jì)時(shí)還特別添加了保護(hù)措施,單片機(jī)上的程序是加密而不可讀的,存儲(chǔ)模塊內(nèi)存儲(chǔ)的密碼是經(jīng)過加密處理的,不是原始密碼,本密碼輸入器設(shè)有開機(jī)密碼,只有輸入正確的開機(jī)密碼才能進(jìn)行密碼操作,而開機(jī)密碼可以設(shè)定輸入次數(shù),一旦錯(cuò)誤開機(jī)密碼次數(shù)達(dá)到某一規(guī)定數(shù)值,密碼輸入器將自鎖。

  三、方案設(shè)計(jì)

  3.1 系統(tǒng)功能實(shí)現(xiàn)原理

  圖1所示為密碼輸入裝置的原理框圖。

基于單片機(jī)的便攜防盜密碼輸入器方案設(shè)計(jì)

圖1 密碼輸入裝置原理框圖

  單片機(jī)通過USB接口與PC機(jī)相接,單片機(jī)上安裝有應(yīng)用軟件,PC機(jī)上有密碼編輯軟件。PC機(jī)開機(jī)時(shí)要求輸入開機(jī)密碼,只有當(dāng)開機(jī)密碼輸入正確時(shí),才能開啟PC機(jī)進(jìn)入系統(tǒng)。當(dāng)單片機(jī)與PC機(jī)連接后,PC機(jī)顯示屏上出現(xiàn)頁面:要求在密碼輸入裝置中輸入開機(jī)密碼。若開機(jī)密碼不正確,程序?qū)⑻崾纠^續(xù)輸入開機(jī)密碼,當(dāng)開機(jī)密碼達(dá)到限定的輸入次數(shù)時(shí),程序自鎖。

  若開機(jī)密碼正確,則打開用戶工作頁面。這時(shí),用戶可以通過該密碼編輯軟件修改密碼,自己編輯用數(shù)字鍵代表的字符串來取代固定的數(shù)字。該密碼輸入裝置與常規(guī)鍵盤的本質(zhì)區(qū)別在于:常規(guī)鍵盤的按鍵對(duì)應(yīng)于唯一的固定鍵碼,而該輸入裝置的按鍵所對(duì)應(yīng)的是該裝置中存儲(chǔ)器的一個(gè)固定地址。而這一按鍵的映射地址中存儲(chǔ)的數(shù)據(jù)是該按鍵所關(guān)聯(lián)的作為密碼的字符串。這個(gè)字符串由鍵碼組成,因而當(dāng)一個(gè)按鍵按下等同于連續(xù)按下多個(gè)按鍵,因而能用一個(gè)按鍵實(shí)現(xiàn)一串密碼的輸入。該裝置按鍵與密碼關(guān)聯(lián)的實(shí)質(zhì)是在存儲(chǔ)器中按鍵對(duì)應(yīng)的地址寫入密碼數(shù)據(jù)。該裝置輸入密碼過程的實(shí)質(zhì)是從存儲(chǔ)器中按鍵對(duì)應(yīng)地址讀取密碼數(shù)據(jù),然后通過提供的接口將密碼發(fā)送至需要密碼輸入的設(shè)備。

  密碼編輯保存后就可以直接存入系統(tǒng)。系統(tǒng)可以對(duì)該密碼保留記憶,下次使用該系統(tǒng)時(shí)就可以直接按某一個(gè)或兩個(gè)鍵來輸入一串密碼。

  本設(shè)計(jì)的密碼輸入器在設(shè)計(jì)時(shí)還特別添加了保護(hù)措施,中央處理器上的程序是加密而不可讀的,存儲(chǔ)模塊內(nèi)存儲(chǔ)的密碼是經(jīng)過加密處理的,不是原始密碼,這就保證了密碼的安全性,因此在現(xiàn)場(chǎng)輸入的并非真正的密碼,所以即便在有很多人圍觀的情況下也無法獲取用戶的真正密碼,真正的實(shí)現(xiàn)了密碼的安全保護(hù)作用。而且系統(tǒng)的本身也提供了一個(gè)開機(jī)密碼,只有正確輸入開機(jī)密碼后才能進(jìn)入系統(tǒng),因此即使不小心丟失該產(chǎn)品,他人也無法輕易使用。

  選用的開發(fā)板符合USB協(xié)議可以直接與PC機(jī)相連,在PC機(jī)上對(duì)單片機(jī)進(jìn)行編程,設(shè)計(jì)可以在PC機(jī)上安裝應(yīng)用的密碼編輯軟件。數(shù)字鍵盤按鍵和確認(rèn)按鍵可利用PC機(jī)的鍵盤輸入,顯示裝置即為PC機(jī)的屏幕。只需要用單片機(jī)編程出相應(yīng)的安裝應(yīng)用軟件,即可達(dá)到預(yù)期目標(biāo)。

  此處以EEPROM作為存儲(chǔ)器、USB接口作為通信的媒介的密碼輸入裝置為例。當(dāng)該密碼輸入裝置插入需要密碼輸入的設(shè)備(此處以普通PC為例)時(shí),該裝置表現(xiàn)為一個(gè)標(biāo)準(zhǔn)HID鍵盤。該密碼輸入裝置完全可以像普通鍵盤一樣直接向PC發(fā)送鍵碼數(shù)據(jù),同時(shí)也可以使用與之配套的PC軟件,通過USB接口向該裝置發(fā)送新的密碼數(shù)據(jù)并命令其修改EEPROM中按鍵對(duì)應(yīng)地址的數(shù)據(jù)。

  該密碼輸入裝置所需要的兩個(gè)主要步驟的詳細(xì)說明如下:

  1. 按鍵與密碼的關(guān)聯(lián)

  PC軟件先通過圖形界面從用戶處獲悉該用戶希望某個(gè)按鍵對(duì)應(yīng)的密碼,之后軟件會(huì)將其轉(zhuǎn)換成HID協(xié)議中鍵盤的字符編碼,然后通過USB接口將編碼后的密碼以及該密碼在EEPROM中的存儲(chǔ)位置一同發(fā)送給密碼輸入裝置,并通知其修改EEPROM的數(shù)據(jù)。該密碼輸入裝置得到修改的命令以及相關(guān)數(shù)據(jù)后,就會(huì)在EEPROM的指定位置儲(chǔ)存該密碼,完成按鍵與密碼的關(guān)聯(lián)。

  例如,用戶希望為按鍵“2”設(shè)置密碼“123456”?!?23456”對(duì)應(yīng)的鍵盤編碼是“1d 1e 1f 20 21 22”,按鍵“2” 的存儲(chǔ)地址被設(shè)置為“06”。PC軟件會(huì)將這些數(shù)據(jù)以及寫EEPROM的命令通過USB接口發(fā)送給該密碼輸入裝置。該裝置接收到數(shù)據(jù)后就立即會(huì)將“1d 1e 1f 20 21 22”寫入EEPROM的地址“06”中,完成按鍵“2”與密碼“123456”的關(guān)聯(lián)。

  2. 使用關(guān)聯(lián)密碼的按鍵輸入過程

  當(dāng)用戶通過按鍵輸入密碼時(shí),密碼輸入裝置會(huì)從EEPROM存儲(chǔ)器中該按鍵對(duì)應(yīng)地址讀取與之關(guān)聯(lián)的密碼數(shù)據(jù)串,然后通過USB接口將該串?dāng)?shù)據(jù)逐次發(fā)送給PC。此時(shí)密碼輸入裝置對(duì)PC表現(xiàn)為標(biāo)準(zhǔn)HID設(shè)備(即可看成是一個(gè)標(biāo)準(zhǔn)鍵盤),從USB接口發(fā)送來的密碼會(huì)被系統(tǒng)自動(dòng)填充至需要輸入密碼的位置,從而完成密碼的輸入。

  本發(fā)明提供的密碼輸入器上的一個(gè)按鍵或兩個(gè)鍵的組合表示一串密碼,按下不同的按鍵或組合鍵,即可輸出不同的密碼,最后將密碼通過輸出接口傳給密碼接收方。比如通過USB口傳給PC機(jī)、或帶有USB口的自動(dòng)存取款機(jī)、或帶有USB口的超市收款機(jī)以及帶有USB口的任何需要密碼的系統(tǒng)。密碼的編輯可通過密碼編輯系統(tǒng),在PC機(jī)上任意編輯自己所需要的密碼(密碼可以由大寫字符、小寫字符、數(shù)字和下劃線等組成),然后通過USB口將編輯好的密碼存儲(chǔ)到密碼輸入器上,也可在密碼輸入器上編輯簡(jiǎn)單的數(shù)字密碼。

  3.2 硬件平臺(tái)選用及資源配置

基于單片機(jī)的便攜防盜密碼輸入器方案設(shè)計(jì)

  硬件選用AMTEL AVR大賽提供的EVK1100,EVK1100是一個(gè)基于AVR32 AT32UC3A單片機(jī)控制器的評(píng)估套件和開發(fā)系統(tǒng)。它配備一系列豐富的外設(shè)、內(nèi)存。圖2所示為開發(fā)板與PC機(jī)連接的示意圖。

  --支持AT32UC3A

  --JTAG連接器、Nexus、USART、USB2.0接口、TWI接口、SPI

基于單片機(jī)的便攜防盜密碼輸入器方案設(shè)計(jì)

圖2 應(yīng)用時(shí)連接方式及作用

  AVR32 AT32UC3A

  高性能低功耗AVR32UC,32字節(jié)微控制器

  ——單循環(huán)RISC指令,包含DSP指令系統(tǒng)

  ——讀改寫指令和獨(dú)立位控制

  ——運(yùn)行速度1.49DMIPS/MHz

  ——存儲(chǔ)保護(hù)系統(tǒng)

  多層次數(shù)據(jù)總線

  ——高性能的數(shù)據(jù)傳輸,總線分離提高性能

  ——有15條存儲(chǔ)器直接存取通道,改善外圍設(shè)備交流速度

  內(nèi)部高速SRAM——64K字節(jié)

  派生的外置存儲(chǔ)器接口——SDRAM/SRAM兼容存儲(chǔ)總線

  中斷控制器——自動(dòng)運(yùn)行低延遲中斷服務(wù)和程序優(yōu)化

  系統(tǒng)功能

  ——時(shí)鐘管理包括內(nèi)部的阻容時(shí)鐘和一個(gè)32KHz振蕩器

  ——兩個(gè)多功能振蕩器和兩個(gè)鎖相環(huán)路允許CPU和USB頻率分離

  ——監(jiān)視時(shí)鐘,實(shí)時(shí)時(shí)鐘

  USB

  ——USB2.0,符合OTG協(xié)議

  ——DMA(存儲(chǔ)器直接存取通道)

  ——片上收發(fā)器包含上拉電阻

  一個(gè)三通道16比特定時(shí)器/計(jì)數(shù)器

  四個(gè)通用同步異步收發(fā)器

  ——支持SPI,紅外,ISO 7816接口

  ——支持硬件信號(hào)交換,RS485接口和調(diào)試解調(diào)器

  兩個(gè)主從串行接口(SPI)

  ATMEL的開發(fā)板滿足USB的傳輸協(xié)議,而且滿足串口的各種協(xié)議,可以直接將單片機(jī)和CPU進(jìn)行通信和信息的傳遞,保障了設(shè)計(jì)的進(jìn)行。

  3.3系統(tǒng)軟件架構(gòu)

  圖3為進(jìn)行密碼編輯的流程框圖。圖4為進(jìn)行密碼編輯時(shí)的用戶工作界面的設(shè)想圖。

基于單片機(jī)的便攜防盜密碼輸入器方案設(shè)計(jì)

圖3 密碼編輯流程框圖

基于單片機(jī)的便攜防盜密碼輸入器方案設(shè)計(jì)

圖4 用戶工作界面設(shè)想圖

  PC機(jī)開機(jī)時(shí)要求輸入開機(jī)密碼,只有當(dāng)開機(jī)密碼正確時(shí),才可以打開PC機(jī)。PC機(jī)開機(jī)后,單片機(jī)與PC機(jī)相接時(shí)也需要輸入開機(jī)密碼才能在PC機(jī)上安裝設(shè)計(jì)的應(yīng)用軟件。若開機(jī)密碼不正確,程序?qū)⑻崾纠^續(xù)輸入開機(jī)密碼,當(dāng)開機(jī)密碼達(dá)到限定的輸入次數(shù)時(shí),程序自鎖。當(dāng)開機(jī)密碼全部輸入正確時(shí),PC機(jī)上出現(xiàn)使用界面,用戶可以通過該應(yīng)用程序修改密碼,自己編輯用數(shù)字鍵代表的字符串來取代固定的數(shù)字。密碼編輯保存后就可以直接存入系統(tǒng)。系統(tǒng)可以對(duì)該密碼保留記憶,下次使用該系統(tǒng)時(shí)就可以直接按某一個(gè)或兩個(gè)鍵來輸入一串密碼。

  本設(shè)計(jì)的密碼輸入器在設(shè)計(jì)時(shí)還特別添加了保護(hù)措施,中央處理器上的程序是加密而不可讀的,存儲(chǔ)模塊內(nèi)存儲(chǔ)的密碼是經(jīng)過加密處理的,不是原始密碼,這就保證了密碼的安全性。

  密碼編輯軟件即為設(shè)計(jì)中的應(yīng)用軟件,使其能在PC機(jī)上運(yùn)行。選用的開發(fā)板符合USB協(xié)議,可以直接與PC機(jī)相連,在PC機(jī)上進(jìn)行對(duì)單片機(jī)進(jìn)行編程,達(dá)到設(shè)計(jì)軟件的目的。數(shù)字鍵盤按鍵和確認(rèn)按鍵可利用PC機(jī)的鍵盤輸入,顯示裝置即為PC機(jī)的屏幕。只需要用單片機(jī)編程出應(yīng)用軟件,即可達(dá)到預(yù)期目標(biāo)。

  3.4 系統(tǒng)軟件流程

基于單片機(jī)的便攜防盜密碼輸入器方案設(shè)計(jì)

圖5 程序運(yùn)行流程圖

  3.4 系統(tǒng)預(yù)計(jì)實(shí)現(xiàn)結(jié)果

  設(shè)計(jì)一個(gè)通過USB口傳給PC機(jī)、或帶有USB口的自動(dòng)存取款機(jī)、或帶有USB口的超市收款機(jī)以及帶有USB口的任何需要密碼的系統(tǒng)。密碼的編輯可通過密碼編輯系統(tǒng),在PC機(jī)上任意編輯自己所需要的密碼(密碼可以由大寫字符、小寫字符、數(shù)字和下劃線等組成),然后通過USB口將編輯好的密碼存儲(chǔ)到密碼輸入器上,也可在密碼輸入器上編輯簡(jiǎn)單的數(shù)字密碼。

  1、從根本上解決傳統(tǒng)密碼輸入所存在的安全隱患問題,保護(hù)密碼,避免因?yàn)槊艽a被盜而帶來的巨大經(jīng)濟(jì)損失。

  2、采用USB接口,與其他設(shè)備的連接很簡(jiǎn)單,可以很方便的進(jìn)行擴(kuò)展,可以自動(dòng)擴(kuò)展自ATM機(jī),超市收款機(jī),銀行柜臺(tái)等。

  3、將原來的簡(jiǎn)單數(shù)字密碼變?yōu)橛纱笮懽址?,下劃線,數(shù)字等組成的密碼,從而使密碼的破解更為困難。

  4、密碼輸入方式新穎,實(shí)現(xiàn)難度不大可以運(yùn)用于任何帶USB接口同時(shí)又需要密碼輸入的裝置,具有很好的實(shí)用價(jià)值