于 曉, 閆振雷, 周子杰
(天津理工大學 電氣電子工程學院, 天津市復雜系統控制理論及應用重點實驗室, 天津 300384)
網頁登錄器是一款基于指紋識別登錄加密網頁的裝置。在日常工作中,很多網頁都需要用戶進行密碼登錄驗證,不但過程較為繁瑣,而且用戶密碼較易遺忘,針對這種情況,設計了一款基于指紋識別技術[1]的網頁登錄器,在登錄網頁過程中,通過對指紋信息進行快速比對,取代“用戶名和密碼”錄入驗證,實現智能登錄加密網頁的功能。當下大數據時代,人們更加注重互聯網信息安全,指紋識別作為一項應用較為成熟的生物特征識別技術,提高了用戶網絡數據的安全性。縱覽國內國外指紋識別技術的發展,現較多應用于辦公領域工作考勤和手機、電腦等設備應用的加密,在登錄加密網頁方面還未深入發展,面對這個現狀,這款指紋識別網頁登錄器顯得尤為重要。
網頁登錄器以STC89C52單片機[2-3]為系統控制中心,通過高精度光學指紋模塊,實現指紋錄入,通過鍵盤模塊,實現調用不同的應用功能,LED顯示模塊和聲音提示模塊對用戶操作進行提示和反饋。用戶使用設備前,首先對登錄的網頁驗證信息進行存儲,信息包括用戶名、登錄密碼,在用戶名和密碼之間加入換行符,在密碼結尾加入回車鍵,將這些信息組成一個連貫的字符串,一旦指紋比對成功,立刻觸發中斷,調出中斷服務子程序,將對應網頁字符串信息發送至鼠標光標處,實現指紋驗證快速登錄加密網頁的功能。系統結構如圖1所示。

圖1 系統結構框圖
(1) 密碼信息存儲。將網頁驗證信息,包括用戶名和密碼,存入數據存儲單元。
(2) 指紋錄入。用戶通過操作獨立按鍵,選定指紋錄入,開啟指紋識別模塊,如果指紋錄入成功,LED顯示綠色指示燈,同時采集的指紋特征值存入指紋庫,如果指紋錄入失敗,聲音模塊發出間斷重復響聲,LED將不顯示任何效果。
(3) 指紋刪除。用戶通過操作獨立按鍵,選定刪除鍵,如果指紋刪除成功,LED顯示紅色指示燈,此時設備內部存儲的指紋信息將被清空;如果識別失敗,聲音模塊發出間斷重復響聲,LED將不顯示任何效果。
(4) 指紋識別。當進行登錄需驗證網頁時,打開相應網站,將手指放在指紋識別器上,進行指紋識別比對,如果指紋識別成功,LED顯示黃色指示燈,如果識別失敗,聲音模塊發出間斷重復響聲,LED將不顯示任何效果。
(5) 登錄網頁。指紋比對成功后,便可以進入相應加密網頁,進行個人操作。
基于指紋識別的網頁登錄器,主要由3大模塊組成:鍵盤、單片機和指紋識別等模塊。
鍵盤模塊通過操作按鍵,調用不同場合的服務程序。
(1) 按鍵原理及電路圖。按鍵原理如圖2所示,與電路中的開關元件相似,當按下按鍵時,VCC通過電阻R1、R2、R3、R4與GND形成閉合通路,單片機4個采集信號的輸入引腳IN1、IN2、IN3、IN4將會采集到低電平信號,當松開按鍵時,單片機4個采集信號的輸入引腳將會采集到高電平信號。單片機通過對引腳高低電平的識別來實現不同按鍵對不同子程序的調用。

圖2 獨立按鍵原理圖
(2) 按鍵消抖處理。通過示波器對獨立按鍵不同狀態的電平測量結果,可以發現按鍵接口測量點的電平變化并不像階躍函數一樣理想,而是電平從高到低(或從低到高)的一個抖動變化過程,經過具體測試,得到按鍵動作時的電平狀態變化示意圖,如圖3所示。

圖3 按鍵電平狀態變化圖
從本質上分析,按鍵屬于具有機械性質的開關,其動作具有一定的彈性,當按鍵動作發生時,高低電平的轉化會經過一個短暫的不穩定過程。針對這種特征,在按鍵檢測程序編寫過程中對其電平變化進行二次處理,即在第一次檢測到按鍵有電平變化時,設置一個恰當的過渡時間,然后再進行確認此刻按鍵的狀態。通過多次實驗,從示波器讀取的數值中確定這個過渡時間穩定在10 ms以內,即為后續程序編寫時的參照值。
(3) 獨立鍵盤按鍵、名稱和功能。設備中使用4×1獨立鍵盤,鍵盤按鍵、名稱和功能如表1所示。

表1 鍵盤按鍵、名稱和功能表
單片機最小系統主要由STC89C52芯片、時鐘電路、復位電路3部分組成。
(1) STC89C52單片機。STC89C52單片機作為一種高集成度的芯片,其主要包括中央處理器、存儲器、I/O接口、定時/計數器等。如圖4所示為單片機最小系統原理圖[4],主要由STC89C52芯片、時鐘電路、復位電路3部分組成。
(2) 時鐘電路。在原理圖中,引腳XTAL1 和XTAL2 是獨立的輸入和輸出反相放大器,圖4中采用的是內部時鐘模式,即利用STC89C52芯片內部的振蕩電路。
(3) 復位電路。在單片機程序運行過程中,可能會出現故障情況,導致程序無法正常運行,這時啟動復位電路,將會清除之前的程序運行記錄,將程序的運行還原到初始狀態。如圖4所示為復位電路模塊[5]。

圖4 STC89C52單片機最小系統原理圖
指紋識別模塊采用STM32F205 高速數字處理器,配有高精度光學傳感器,可以實現指紋錄入、圖像處理[6]、特征值提取、指紋比對等功能。
(1) 指紋結構分析。指紋特征分為整體特征與局部特征,其中指紋的整體特征主要包括指紋的類型特征和頻譜特征。指紋的類型特征是指直接用人眼觀察得到的稱類型特征,包括紋型、模式區、核心點、三角點、紋數,正確識別這些特征點是進行指紋比對的關鍵。指紋的頻譜特征是指紋圖像經過傅里葉變換得到的幅值頻譜圖,它精確地反映了原指紋圖像的頻率與方向信息。
(2) 指紋識別算法分析。通過傳感器采集直接得到的指紋圖像由于具有噪聲信號干擾,因此需要經過背景處理[7]才能進行指紋識別[8-9]。具體指紋識別算法流程圖如圖5所示。
為了增強指紋圖像的紋理,在設計算法時采用高效的Gabor濾波算法[10-11],其定義如下:
h(x,y,θ,f)=
(1)
式中:
xθ=xcosθ+ysinθ
(2)
yθ=-xsinθ+ycosθ
(3)

通過Gabor濾波將指紋圖像進行增強后,進一步利用圖像處理技術,將指紋圖像進行二值化處理[12-14],如用函數f(x,y)表示指紋圖像灰度的像素值,將M0設為閾值,那么二值化函數則為:
(4)
指紋圖像二值化處理后,為了后來的指紋圖像特征提取,還需要對二值圖像進行細化[15-16]。細化算法用數學理論描述如下,根據擊中/擊不中變換定義:
A⊙B=A-(A?B)=A∩(A?B)C
(5)
式中:A為二值圖像;B為結構元素;A⊙B為圖像A進行細化算法處理;A?B表示用B對A進行腐蝕;(A?B)C為A?B的補集。定義式說明圖像A的細化通過A與自身的腐蝕結果之差表示的同時,依據擊中/擊不中變換,圖像A與自身腐蝕結果的補集作交集運算處理同樣能夠實現細化效果。
細化算法的第一步是有條件正常腐蝕,即腐蝕的像素點不會立刻消去,根據這些點是否會破壞連通性,在第二步中消除不必要點,保留基本骨架,從而顯示出圖像的拓撲結構。二值圖像A的形態學骨架S(A)可通過選定合適的結構元素B,采用腐蝕和開運算操作表達,其表達定義式如下:
(6)
式中:Sk(A)為經過k次腐蝕后的骨架;K為將A安全腐蝕的最大腐蝕次數;(AΘkB)為用B對A的連續k次腐蝕;(AΘkB)°B為對k腐蝕結果進行開運算,即用B對(AΘkB)進行先腐蝕后膨脹處理。經過以上算法分別對原始指紋圖像進行處理,得到指紋圖像對比效果圖,如圖6所示。

(a) 指紋灰度圖像(b) 指紋增強圖像

(c) 指紋二值圖像(d) 二值圖像細化
圖6 指紋圖像對比效果圖
設備控制程序分為主程序和中斷服務子程序。在系統控制過程中,主程序主要通過不斷檢測,適時調動中斷服務子程序。主程序包括按鍵循環檢測、邏輯電平判斷和子程序調用指令。中斷服務子程序包含LED顯示、聲音提示、串行通信、指紋錄入、指紋刪除和指紋比對。
主程序執行流程圖如圖7所示。

圖7 主程序執行流程圖
設備根據按鍵狀態觸發對應的中斷,進而調用與按鍵功能相匹配的中斷服務子程序。
if((K1 == 0)&&(K2 == 1))
{ClearAllUser(); //調用刪除指紋子程序
Delay10ms(5);//調用延時子程序}
if(K2 == 0)
{ Delay10ms(3); //調用延時子程序
AddUser(); //調用添加指紋子程序}
if(K3 == 0)
{ Delay10ms(5); //調用延時子程序
VerifyUser(); //調用指紋識別子程序}
voidVerifyUser()
{
ES=0; //關閉總中斷允許
for(j=0;j {SBUF=VerifyUser1[j];//指紋特征值比對 while(!TI);//發送結束前等待 TI=0; //發送標志位軟件清零} ES=1;//開啟總中斷允許 } 系統的控制程序采用C語言進行編寫,經過編譯,生成_.hex文件,下載到單片機里,進行軟件控制。 用戶第一次使用該設備,先進行保存網頁驗證信息,按下輸入鍵,將待登錄網頁中用戶名和密碼保存至數據存儲單元。然后進行指紋錄入,按下錄入鍵,將待錄入手指放在指紋模塊光學傳感器上方,當指紋錄入成功后,會有綠色LED指示燈提示指紋錄入結果。 密碼信息和指紋信息錄入后,進行指紋識別和網頁登錄,打開待登錄網頁,將指紋貼近光學傳感器,按下比對鍵,當比對成功后,會有綠色LED指示燈提示,同時進入相關網頁,指紋識別和登錄網頁調試結果如圖8所示。 該指紋識別網頁登錄器將生物指紋特征與網頁認證結合,利用單片機的智能控制,結合按鍵、LED顯示、指紋識別等相應模塊,實現了利用指紋識別技術進行登錄加密網頁。根據調試結果,設定的指標測試結果正常,出錯率小于1‰。相較傳統鍵入密碼方式,該設備具有登錄網頁快、信息安全性高等特有優勢。4 系統調試
4.1 指紋錄入
4.2 指紋識別和網頁登錄

5 結 語