






摘 要:圖書館正進入智能化發展階段,傳統的刷卡、密碼等身份認證方式存在被惡意攻擊和偽造的問題。基于此,文章構建了一種基于動態二維碼的圖書館安全身份認證方案。在總體設計思路和系統架構設計的基礎上,深入研究了動態二維碼的生成與解析、用戶信息解析以及消息管理與傳遞等關鍵應用。為了驗證了該方案在實際應用中的有效性和可靠性,對方案進行了用戶體驗測試和系統安全性能測試。經測試,該方案具有高效性、安全性和易用性等顯著優勢。同時,針對測試中發現的問題,提出了相應的改進措施,為圖書館安全身份認證領域提供了一種有價值的解決方案。
關鍵詞:動態二維碼;圖書館安全;身份認證;系統安全性能
中圖分類號:TP309.2 文獻標識碼:A 文章編號:2096-4706(2024)15-0149-05
A Library Security Identity Authentication Scheme Based on Dynamic QR Code
XU Guanghui, LI hui, DU Wenlong, CHAI YuaolpGUcUl879hBVrxUj5yOg==n
(Library of Xi'an Aeronautical Institute, Xi'an 710077, China)
Abstract: The library is entering the stage of intelligent development, and the traditional identity authentication methods such as swiping card and password have the problems of malicious attack and forgery. Based on this, this paper constructs a library security identity authentication scheme based on dynamic QR code. On the basis of the overall design idea and system architecture design, the key applications such as the generation and analysis of dynamic QR code, the analysis of user information, and the management and transmission of messages are deeply studied. Through user experience test and system safety performance test, the effectiveness and reliability of the scheme in practical application are verified. After testing, the scheme has significant advantages such as high efficiency, safety and ease of use. At the same time, in view of the problems found in the test, corresponding improvement measures are proposed, which provides a valuable solution for the field of library security identity authentication.
Keywords: dynamic QR code; library security; identity authentication; system security performance
0 引 言
從圖書館的發展形態來看,它正處于從數字圖書館向智慧圖書館轉型階段,自動化、數字化和智慧化為智慧圖書館的發展標簽[1]。圖書館自助服務深受廣大讀者青睞,其內容涵蓋了自助借還/續借/預約、自助逾期繳費、自助上機、自助檢索、自助文印、自助場館預約、自助報名培訓等多種形式[2]。然而,傳統的圖書館身份認證方式,如刷卡、密碼等,存在被惡意攻擊和偽造的問題。為了解決這個問題,本文提出基于動態二維碼的圖書館安全身份認證方案,以期提升圖書館的安全性,保護讀者的信息安全和圖書館的財產安全。
二維碼(QR Code)是在一維條碼(Bar Code)的基礎上擴展出一維具有可讀性的條碼。現已廣泛應用于商業、工業、交通運輸、移動互聯網、物聯網、物資管理、倉儲等各個行業[3]。基于動態二維碼的圖書館安全身份認證方案是一種創新的身份認證方式。它利用二維碼技術,將圖書館讀者的信息編碼成動態二維碼。讀者在進入圖書館時,只需要掃描該二維碼,系統會自動驗證讀者身份,并授權其進入圖書館的權限。該方案具有以下顯著優點:
1)動態二維碼具有唯一性和不可偽造性。每個動態二維碼都是獨一無二的,一旦生成,就不能被重復使用。而且,二維碼中的信息是動態變化的,每次掃描都會生成新的信息,難以被惡意攻擊者復制或篡改。
2)動態二維碼的認證過程是自動化的。讀者只需要掃描二維碼,系統就能自動驗證其身份并授權。這種方式無須人工干預,大大節省了人力和時間。
3)動態二維碼的認證過程安全性高。二維碼中的信息經過加密處理,只有讀者和系統擁有密鑰,其他人無法獲取讀者的身份信息。此外,系統還會對認證過程進行實時監控,一旦發現異常情況,會立即發出報警,保障圖書館的安全。
基于動態二維碼的圖書館安全身份認證方案能夠顯著提高圖書館的安全性,保障讀者的信息安全和圖書館的財產安全。相比傳統的身份認證方式,它具有唯一性、不可偽造性、自動化和高度安全性等優勢,是一種新型、高效的身份認證方式。
圖書館作為人們獲取知識和信息的重要場所,以及學術研究和學習的重要基地,其安全性至關重要[4]。然而,隨著圖書館規模的不斷擴大和用戶數量的急劇增加,圖書館的安全問題日益凸顯。因此,圖書館安全身份認證成為保障圖書館資源安全、維護讀者權益的關鍵環節[5]。只有確保用戶身份的真實性和合法性,才能有效防止非法用戶訪問敏感信息,維護圖書館的秩序和安全。
圖書館安全身份認證的重要性表現在以下幾個方面:
1)保障學術資源安全。圖書館是重要的學術資源庫,擁有大量的文獻資料。這些文獻資料對于學術界的研究和廣大讀者的學習具有重要的意義。因此,必須采取有效措施來保障這些文獻資料的安全,防止非法用戶獲取敏感信息,破壞圖書館的秩序。
2)維護讀者權益。圖書館是人們獲取知識和信息的重要場所。圖書館的安全問題不僅關系到圖書館的秩序和安全,更關系到廣大讀者的權益。只有通過安全身份認證,才能有效防止非法用戶獲取敏感信息,保障圖書館的秩序和安全。
3)防止敏感信息泄露。圖書館中的一些文獻資料可能包含敏感信息,如學術成果、商業機密等。這些信息對于圖書館的安全具有重要的意義。通過安全身份認證,可以有效地防止非法用戶訪問這些敏感信息,保障圖書館的安全。
4)提升圖書館秩序與安全。通過安全身份認證,可以有效地防止非法用戶進入圖書館,維護圖書館的秩序和安全。同時,也可以提高圖書館的管理效率,提升服務質量。
綜上所述,圖書館安全身份認證在保障圖書館資源安全、維護讀者權益、防止非法用戶訪問敏感信息、提高圖書館的秩序和安全等方面具有重要意義。因此,圖書館應該采取有效措施加強安全身份認證,保障圖書館的安全。
1 圖書館安全身份認證方案設計
1.1 總體設計思路
圖書館安全身份認證方案的設計旨在實現高效、安全和易用。動態二維碼技術是一種極為合適的解決方案,其具備以下優勢:
1)安全性高。動態二維碼是一種基于用戶行為的身份認證方式,只有通過掃描二維碼并完成相應的操作才能進入系統,這有效防止了非法用戶通過猜測密碼等方式進入系統。
2)方便快捷。用戶只需掃描二維碼并進行相應的操作,即可完成身份認證,無須輸入密碼等個人信息,提高了認證效率。
3)易于使用。動態二維碼可在任何位置進行掃描,無須特定的設備或應用程序,用戶可隨時隨地進行認證,提高了用戶體驗。
鑒于以上優勢,我們設計一種基于動態二維碼的圖書館安全身份認證方案,具體步驟如圖1所示。
1.2 系統架構設計
為了滿足讀者對系統易用性的需求和圖書館對系統擴展性的要求,本文采用多終端類型的結構模式。根據系統設計目標、系統技術需求以及身份認證業務邏輯,該平臺各部分運行如圖2所示。
在圖2中,用戶通過移動端與系統進行交互,注冊模塊與認證模塊負責處理用戶的注冊請求,在與智慧校園用戶信息進行校對后建立賬戶信息,分配加密種子,并在用戶登錄時進行身份認證。動態二維碼生成模塊負責生成動態二維碼,并利用日志模塊記錄操作日志。動態二維碼包含用戶唯一標識信息與時間戳,經過加密處理以確保安全性。當用戶在使用業務系統時,首先出示動態二維碼,在認證機上識別并解析動態二維碼,進行安全校驗后獲取賬戶信息,并將認證結果通過消息傳遞給對應的業務系統。
2 在圖書館安全身份認證中的應用
2.1 動態二維碼的生成與解析
在生成動態二維碼時,需要先驗證APP合法性與版本。通過驗證后,上傳APP種子數據到本地數據庫中查詢用戶信息,如果查詢到用戶記錄并且用戶狀態異常,登記驗證日志,將用戶信息和當前服務器時間加密后生成動態二維碼并返回。為防止二維碼包含的用戶信息泄露或二維碼圖像被篡改利用,還需要對二維碼所包含的信息進行加密處理。AES加密算法是目前對稱加密算法中研究熱點之一,采用分組加密的方式,分組長度固定為128位,即16字節[6-7]。本文采用AES(高級加密標準)加密方法對原文進行加密,加密前的原文格式為:“用戶ID+時間戳+驗證信息”,其中驗證信息是根據用戶ID和時間戳的運算結果,按照CRC-16模型計算密文校驗和。
在解析動態二維碼時,需要用戶掃描二維碼,解密后獲取用戶的身份信息,以防止盜用、冒用等問題。具體過程如下:認證程序獲取掃描后的字符串后,將其拆分為密文A和校驗位B,按照CRC-16模型計算密文A的校驗和,轉化為10進制字符串后與校驗位B進行對比。如果兩者一致,表明字符串未被篡改;根據密鑰,使用AES算法解密得到原文,拆分分隔為用戶ID和時間戳C,判斷時間戳C與當前時間的誤差在5秒內。通過消息機制,將學工號發送到目標系統的學工號輸入框內,二維碼掃描流程如圖3所示,二維碼生成及其掃描運行結果如圖4所示。
2.2 用戶信息解析
系統涉及讀者學工號等敏感信息,在運行時讀取本機網卡MAC地址后與后臺白名單進行比對[8]。如果不在名單內,將停止提供其他服務,并提醒聯系管理員進行登記。
由于用戶信息解析需要在后臺數據庫中進行數據比對,為降低數據庫訪問量并提高執行效率,設計了數據緩存機制。在系統安全后,將后臺映射表一次性讀出并放入Hash表中。安全檢測與數據緩存流程圖如圖5所示,安全檢測與數據緩存模塊運行結果如圖6所示。
2.3 消息管理與傳遞
獲取二維碼信息后,進行密文解密,檢查時間戳的正確性,得到學工號,準備進行消息傳遞。學工號識別過程中任何一個步驟出現錯誤,消息子系統會發出報警音并停止處理。
為提升系統的通用性,采用操作系統全局鉤子技術,鉤取掃碼槍輸入,將處理后的數據模擬成鍵盤輸入傳遞到目標系統,完成消息傳輸。
鉤子是操作系統消息處理的一種機制,每一個鉤子都有一個與之相關聯的指針列表,稱之為鉤子鏈表,由系統來維護[9]。通過調用Win32的API來實現全局鍵盤鉤子,SetWindowsHookEx用于設置鉤子,設置子程以監視指定窗口的鍵盤消息[10];CallNextHookEx將處理后的鉤子信息傳遞到當前鉤子鏈中的下一個子程;UnhookWindowsHookEx用于卸載鉤子,釋放系統資源。
為了代碼結構清清晰,易于維護,將消息處理部分封裝成類,公開方法Start()來啟動鉤子,方法Stop()卸載鉤子,并聲明委托public delegate void BardCodeDeletegate與事件public event BardCodeDeletegate BarCodeEvent來處理消息。其中鍵盤消息處理代碼如下:
public delegate void BardCodeDeletegate(BarCodes barCode);
public event BardCodeDeletegate BarCodeEvent;
private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
{
EventMsg msg = (EventMsg)Marshal.PtrToStructure(lParam, typeof(EventMsg));
if (wParam == 0x100)//WM_KEYDOWN=0x100
{
barCode.VirtKey = msg.message & 0xff;//虛擬碼
barCode.ScanCode = msg.paramL & 0xff;//掃描碼
barCode.Chr = Convert.ToChar(ToAscii(barCode.VirtKey, barCode.ScanCode));
TimeSpan ts = DateTime.Now.Subtract(barCode.Time);
if (ts.TotalMilliseconds > 50)
{//時間戳,大于50 毫秒表示手動輸入,交出控制權
barCode.Time = DateTime.Now;
return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}
else
{//掃碼槍的數據,進入解密、轉義、輸出流程
if ((msg.message & 0xff) == 13 && strBarCode.Length > 3)
{//發現回車且有數據,掃描結束
barCode.BarCode = strBarCode;
//調用處理函數:解密掃描結果并查找學工號,傳遞消息
BarCodeDeal(barCode);
}
strBarCode += barCode.Chr.ToString();//記錄掃描結果
barCode.Time = DateTime.Now;
Return 0;
}
}
}
運行結果如圖7所示。
3 結 論
在用戶體驗測試中,需要設計恰當的測試用例,涵蓋各種用戶場景和操作流程。邀請讀者進行實際操作,記錄用戶在操作過程中可能會遇到各種問題,如操作流程不清晰、界面設計不合理、功能不完善等。針對這些問題,需及時進行調整和改進,以提高系統的易用性和安全性,從而更好地滿足用戶的需求和期望。
首先,需要測試系統的防攻擊能力。包括SQL注入、跨站腳本攻擊(XSS)、拒絕服務攻擊(DoS)等,以評估系統的安全性,確保其能夠有效地抵御各種攻擊。其次,需要測試系統的數據加密性能。如加密和解密的速度、二維碼的靜態截圖等,以確保其能夠有效地保護用戶信息的安全。最后,還需要測試系統的安全日志記錄能力。系統需要記錄用戶的所有操作和安全事件,以便管理員及時發現并處理安全問題。我們可以設計一些針對性的測試用例,對日志記錄的完整性、速度和準確性進行評估,確保其能夠有效地記錄用戶操作和安全事件。
我們發現該方案在二維碼生成和識別方面存在一些問題,由于服務器時鐘誤差,長時間運行后出現二維碼解析后的時間誤差較大,導致校驗出錯。為了解決這個問題,我們在服務器中增加時了鐘校準服務,確保網內各個系統的時鐘始終保持一致,經測試,該問題已得到修正。另外,我們發現人流量較大時出現卡頓現象,經過壓力測試后發現是網盤AP并發數不夠導致,經更換對應場所AP后,該問題亦已得到修正。
參考文獻:
[1] 李慧,杜文龍,徐光輝.區塊鏈技術在智慧圖書館的應用場景研究 [J].物聯網技術,2024,14(2):117-120.
[2] 王棟,宮兆陽.一種基于動態二維碼的圖書館安全身份認證方案 [J].計算機應用與軟件,2021,38(8):12-16.
[3] 燕雨薇,余粟.二維碼技術及其應用綜述 [J].智能計算機與應用,2019,9(5):194-197.
[4] 朱岑園.數字圖書館計算機網絡的安全技術及其防護策略 [J].科技創新與應用,2022,12(1):153-155.
[5] 馬艷艷.信息化背景下高校計算機網絡安全防護技術應用分析 [J].網絡安全技術與應用,2024(1):94-96.
[6] 南亞會,劉繼華,薛艷鋒.混沌參數調制下RSA數據加密算法研究 [J].計算機測量與控制,2017,25(6):203-206.
[7] KAREEM S M,RAHMA A M S. New Method for Improving Add Round Key in the Advanced Encryption Standard Algorithm [J].Information Security Journal: A Global Perspective,2021,30(6):371-383.
[8] 馮波.校園圖書館的二維碼識別技術在自助還書系統中的應用 [J].電子技術,2023,52(11):420-421.
[9] RICHTER J. Windows核心編程 [M]:北京:機械工業出版,2000:204-209.
[10] 張新吉.基于無線身份認證的大型圖書館網絡結構設計 [J].微型電腦應用,2021,37(2):108-110.
作者簡介:徐光輝(1976—),男,漢族,河南人,館員,碩士,研究方向:計算機科學與技術;李慧(1991—),女,漢族,陜西人,館員,碩士,研究方向:新媒體技術;杜文龍(1986—),男,漢族,陜西人,副研究館員,碩士,研究方向:信息技術;柴源(1985—),男,漢族,陜西人,副研究館員,碩士,研究方向:數據挖掘與信息組織。