摘 要:圖書(shū)館正進(jìn)入智能化發(fā)展階段,傳統(tǒng)的刷卡、密碼等身份認(rèn)證方式存在被惡意攻擊和偽造的問(wèn)題。基于此,文章構(gòu)建了一種基于動(dòng)態(tài)二維碼的圖書(shū)館安全身份認(rèn)證方案。在總體設(shè)計(jì)思路和系統(tǒng)架構(gòu)設(shè)計(jì)的基礎(chǔ)上,深入研究了動(dòng)態(tài)二維碼的生成與解析、用戶信息解析以及消息管理與傳遞等關(guān)鍵應(yīng)用。為了驗(yàn)證了該方案在實(shí)際應(yīng)用中的有效性和可靠性,對(duì)方案進(jìn)行了用戶體驗(yàn)測(cè)試和系統(tǒng)安全性能測(cè)試。經(jīng)測(cè)試,該方案具有高效性、安全性和易用性等顯著優(yōu)勢(shì)。同時(shí),針對(duì)測(cè)試中發(fā)現(xiàn)的問(wèn)題,提出了相應(yīng)的改進(jìn)措施,為圖書(shū)館安全身份認(rèn)證領(lǐng)域提供了一種有價(jià)值的解決方案。
關(guān)鍵詞:動(dòng)態(tài)二維碼;圖書(shū)館安全;身份認(rèn)證;系統(tǒng)安全性能
中圖分類(lèi)號(hào):TP309.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 引 言
從圖書(shū)館的發(fā)展形態(tài)來(lái)看,它正處于從數(shù)字圖書(shū)館向智慧圖書(shū)館轉(zhuǎn)型階段,自動(dòng)化、數(shù)字化和智慧化為智慧圖書(shū)館的發(fā)展標(biāo)簽[1]。圖書(shū)館自助服務(wù)深受廣大讀者青睞,其內(nèi)容涵蓋了自助借還/續(xù)借/預(yù)約、自助逾期繳費(fèi)、自助上機(jī)、自助檢索、自助文印、自助場(chǎng)館預(yù)約、自助報(bào)名培訓(xùn)等多種形式[2]。然而,傳統(tǒng)的圖書(shū)館身份認(rèn)證方式,如刷卡、密碼等,存在被惡意攻擊和偽造的問(wèn)題。為了解決這個(gè)問(wèn)題,本文提出基于動(dòng)態(tài)二維碼的圖書(shū)館安全身份認(rèn)證方案,以期提升圖書(shū)館的安全性,保護(hù)讀者的信息安全和圖書(shū)館的財(cái)產(chǎn)安全。
二維碼(QR Code)是在一維條碼(Bar Code)的基礎(chǔ)上擴(kuò)展出一維具有可讀性的條碼?,F(xiàn)已廣泛應(yīng)用于商業(yè)、工業(yè)、交通運(yùn)輸、移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、物資管理、倉(cāng)儲(chǔ)等各個(gè)行業(yè)[3]?;趧?dòng)態(tài)二維碼的圖書(shū)館安全身份認(rèn)證方案是一種創(chuàng)新的身份認(rèn)證方式。它利用二維碼技術(shù),將圖書(shū)館讀者的信息編碼成動(dòng)態(tài)二維碼。讀者在進(jìn)入圖書(shū)館時(shí),只需要掃描該二維碼,系統(tǒng)會(huì)自動(dòng)驗(yàn)證讀者身份,并授權(quán)其進(jìn)入圖書(shū)館的權(quán)限。該方案具有以下顯著優(yōu)點(diǎn):
1)動(dòng)態(tài)二維碼具有唯一性和不可偽造性。每個(gè)動(dòng)態(tài)二維碼都是獨(dú)一無(wú)二的,一旦生成,就不能被重復(fù)使用。而且,二維碼中的信息是動(dòng)態(tài)變化的,每次掃描都會(huì)生成新的信息,難以被惡意攻擊者復(fù)制或篡改。
2)動(dòng)態(tài)二維碼的認(rèn)證過(guò)程是自動(dòng)化的。讀者只需要掃描二維碼,系統(tǒng)就能自動(dòng)驗(yàn)證其身份并授權(quán)。這種方式無(wú)須人工干預(yù),大大節(jié)省了人力和時(shí)間。
3)動(dòng)態(tài)二維碼的認(rèn)證過(guò)程安全性高。二維碼中的信息經(jīng)過(guò)加密處理,只有讀者和系統(tǒng)擁有密鑰,其他人無(wú)法獲取讀者的身份信息。此外,系統(tǒng)還會(huì)對(duì)認(rèn)證過(guò)程進(jìn)行實(shí)時(shí)監(jiān)控,一旦發(fā)現(xiàn)異常情況,會(huì)立即發(fā)出報(bào)警,保障圖書(shū)館的安全。
基于動(dòng)態(tài)二維碼的圖書(shū)館安全身份認(rèn)證方案能夠顯著提高圖書(shū)館的安全性,保障讀者的信息安全和圖書(shū)館的財(cái)產(chǎn)安全。相比傳統(tǒng)的身份認(rèn)證方式,它具有唯一性、不可偽造性、自動(dòng)化和高度安全性等優(yōu)勢(shì),是一種新型、高效的身份認(rèn)證方式。
圖書(shū)館作為人們獲取知識(shí)和信息的重要場(chǎng)所,以及學(xué)術(shù)研究和學(xué)習(xí)的重要基地,其安全性至關(guān)重要[4]。然而,隨著圖書(shū)館規(guī)模的不斷擴(kuò)大和用戶數(shù)量的急劇增加,圖書(shū)館的安全問(wèn)題日益凸顯。因此,圖書(shū)館安全身份認(rèn)證成為保障圖書(shū)館資源安全、維護(hù)讀者權(quán)益的關(guān)鍵環(huán)節(jié)[5]。只有確保用戶身份的真實(shí)性和合法性,才能有效防止非法用戶訪問(wèn)敏感信息,維護(hù)圖書(shū)館的秩序和安全。
圖書(shū)館安全身份認(rèn)證的重要性表現(xiàn)在以下幾個(gè)方面:
1)保障學(xué)術(shù)資源安全。圖書(shū)館是重要的學(xué)術(shù)資源庫(kù),擁有大量的文獻(xiàn)資料。這些文獻(xiàn)資料對(duì)于學(xué)術(shù)界的研究和廣大讀者的學(xué)習(xí)具有重要的意義。因此,必須采取有效措施來(lái)保障這些文獻(xiàn)資料的安全,防止非法用戶獲取敏感信息,破壞圖書(shū)館的秩序。
2)維護(hù)讀者權(quán)益。圖書(shū)館是人們獲取知識(shí)和信息的重要場(chǎng)所。圖書(shū)館的安全問(wèn)題不僅關(guān)系到圖書(shū)館的秩序和安全,更關(guān)系到廣大讀者的權(quán)益。只有通過(guò)安全身份認(rèn)證,才能有效防止非法用戶獲取敏感信息,保障圖書(shū)館的秩序和安全。
3)防止敏感信息泄露。圖書(shū)館中的一些文獻(xiàn)資料可能包含敏感信息,如學(xué)術(shù)成果、商業(yè)機(jī)密等。這些信息對(duì)于圖書(shū)館的安全具有重要的意義。通過(guò)安全身份認(rèn)證,可以有效地防止非法用戶訪問(wèn)這些敏感信息,保障圖書(shū)館的安全。
4)提升圖書(shū)館秩序與安全。通過(guò)安全身份認(rèn)證,可以有效地防止非法用戶進(jìn)入圖書(shū)館,維護(hù)圖書(shū)館的秩序和安全。同時(shí),也可以提高圖書(shū)館的管理效率,提升服務(wù)質(zhì)量。
綜上所述,圖書(shū)館安全身份認(rèn)證在保障圖書(shū)館資源安全、維護(hù)讀者權(quán)益、防止非法用戶訪問(wèn)敏感信息、提高圖書(shū)館的秩序和安全等方面具有重要意義。因此,圖書(shū)館應(yīng)該采取有效措施加強(qiáng)安全身份認(rèn)證,保障圖書(shū)館的安全。
1 圖書(shū)館安全身份認(rèn)證方案設(shè)計(jì)
1.1 總體設(shè)計(jì)思路
圖書(shū)館安全身份認(rèn)證方案的設(shè)計(jì)旨在實(shí)現(xiàn)高效、安全和易用。動(dòng)態(tài)二維碼技術(shù)是一種極為合適的解決方案,其具備以下優(yōu)勢(shì):
1)安全性高。動(dòng)態(tài)二維碼是一種基于用戶行為的身份認(rèn)證方式,只有通過(guò)掃描二維碼并完成相應(yīng)的操作才能進(jìn)入系統(tǒng),這有效防止了非法用戶通過(guò)猜測(cè)密碼等方式進(jìn)入系統(tǒng)。
2)方便快捷。用戶只需掃描二維碼并進(jìn)行相應(yīng)的操作,即可完成身份認(rèn)證,無(wú)須輸入密碼等個(gè)人信息,提高了認(rèn)證效率。
3)易于使用。動(dòng)態(tài)二維碼可在任何位置進(jìn)行掃描,無(wú)須特定的設(shè)備或應(yīng)用程序,用戶可隨時(shí)隨地進(jìn)行認(rèn)證,提高了用戶體驗(yàn)。
鑒于以上優(yōu)勢(shì),我們?cè)O(shè)計(jì)一種基于動(dòng)態(tài)二維碼的圖書(shū)館安全身份認(rèn)證方案,具體步驟如圖1所示。
1.2 系統(tǒng)架構(gòu)設(shè)計(jì)
為了滿足讀者對(duì)系統(tǒng)易用性的需求和圖書(shū)館對(duì)系統(tǒng)擴(kuò)展性的要求,本文采用多終端類(lèi)型的結(jié)構(gòu)模式。根據(jù)系統(tǒng)設(shè)計(jì)目標(biāo)、系統(tǒng)技術(shù)需求以及身份認(rèn)證業(yè)務(wù)邏輯,該平臺(tái)各部分運(yùn)行如圖2所示。
在圖2中,用戶通過(guò)移動(dòng)端與系統(tǒng)進(jìn)行交互,注冊(cè)模塊與認(rèn)證模塊負(fù)責(zé)處理用戶的注冊(cè)請(qǐng)求,在與智慧校園用戶信息進(jìn)行校對(duì)后建立賬戶信息,分配加密種子,并在用戶登錄時(shí)進(jìn)行身份認(rèn)證。動(dòng)態(tài)二維碼生成模塊負(fù)責(zé)生成動(dòng)態(tài)二維碼,并利用日志模塊記錄操作日志。動(dòng)態(tài)二維碼包含用戶唯一標(biāo)識(shí)信息與時(shí)間戳,經(jīng)過(guò)加密處理以確保安全性。當(dāng)用戶在使用業(yè)務(wù)系統(tǒng)時(shí),首先出示動(dòng)態(tài)二維碼,在認(rèn)證機(jī)上識(shí)別并解析動(dòng)態(tài)二維碼,進(jìn)行安全校驗(yàn)后獲取賬戶信息,并將認(rèn)證結(jié)果通過(guò)消息傳遞給對(duì)應(yīng)的業(yè)務(wù)系統(tǒng)。
2 在圖書(shū)館安全身份認(rèn)證中的應(yīng)用
2.1 動(dòng)態(tài)二維碼的生成與解析
在生成動(dòng)態(tài)二維碼時(shí),需要先驗(yàn)證APP合法性與版本。通過(guò)驗(yàn)證后,上傳APP種子數(shù)據(jù)到本地?cái)?shù)據(jù)庫(kù)中查詢用戶信息,如果查詢到用戶記錄并且用戶狀態(tài)異常,登記驗(yàn)證日志,將用戶信息和當(dāng)前服務(wù)器時(shí)間加密后生成動(dòng)態(tài)二維碼并返回。為防止二維碼包含的用戶信息泄露或二維碼圖像被篡改利用,還需要對(duì)二維碼所包含的信息進(jìn)行加密處理。AES加密算法是目前對(duì)稱加密算法中研究熱點(diǎn)之一,采用分組加密的方式,分組長(zhǎng)度固定為128位,即16字節(jié)[6-7]。本文采用AES(高級(jí)加密標(biāo)準(zhǔn))加密方法對(duì)原文進(jìn)行加密,加密前的原文格式為:“用戶ID+時(shí)間戳+驗(yàn)證信息”,其中驗(yàn)證信息是根據(jù)用戶ID和時(shí)間戳的運(yùn)算結(jié)果,按照CRC-16模型計(jì)算密文校驗(yàn)和。
在解析動(dòng)態(tài)二維碼時(shí),需要用戶掃描二維碼,解密后獲取用戶的身份信息,以防止盜用、冒用等問(wèn)題。具體過(guò)程如下:認(rèn)證程序獲取掃描后的字符串后,將其拆分為密文A和校驗(yàn)位B,按照CRC-16模型計(jì)算密文A的校驗(yàn)和,轉(zhuǎn)化為10進(jìn)制字符串后與校驗(yàn)位B進(jìn)行對(duì)比。如果兩者一致,表明字符串未被篡改;根據(jù)密鑰,使用AES算法解密得到原文,拆分分隔為用戶ID和時(shí)間戳C,判斷時(shí)間戳C與當(dāng)前時(shí)間的誤差在5秒內(nèi)。通過(guò)消息機(jī)制,將學(xué)工號(hào)發(fā)送到目標(biāo)系統(tǒng)的學(xué)工號(hào)輸入框內(nèi),二維碼掃描流程如圖3所示,二維碼生成及其掃描運(yùn)行結(jié)果如圖4所示。
2.2 用戶信息解析
系統(tǒng)涉及讀者學(xué)工號(hào)等敏感信息,在運(yùn)行時(shí)讀取本機(jī)網(wǎng)卡MAC地址后與后臺(tái)白名單進(jìn)行比對(duì)[8]。如果不在名單內(nèi),將停止提供其他服務(wù),并提醒聯(lián)系管理員進(jìn)行登記。
由于用戶信息解析需要在后臺(tái)數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)比對(duì),為降低數(shù)據(jù)庫(kù)訪問(wèn)量并提高執(zhí)行效率,設(shè)計(jì)了數(shù)據(jù)緩存機(jī)制。在系統(tǒng)安全后,將后臺(tái)映射表一次性讀出并放入Hash表中。安全檢測(cè)與數(shù)據(jù)緩存流程圖如圖5所示,安全檢測(cè)與數(shù)據(jù)緩存模塊運(yùn)行結(jié)果如圖6所示。
2.3 消息管理與傳遞
獲取二維碼信息后,進(jìn)行密文解密,檢查時(shí)間戳的正確性,得到學(xué)工號(hào),準(zhǔn)備進(jìn)行消息傳遞。學(xué)工號(hào)識(shí)別過(guò)程中任何一個(gè)步驟出現(xiàn)錯(cuò)誤,消息子系統(tǒng)會(huì)發(fā)出報(bào)警音并停止處理。
為提升系統(tǒng)的通用性,采用操作系統(tǒng)全局鉤子技術(shù),鉤取掃碼槍輸入,將處理后的數(shù)據(jù)模擬成鍵盤(pán)輸入傳遞到目標(biāo)系統(tǒng),完成消息傳輸。
鉤子是操作系統(tǒng)消息處理的一種機(jī)制,每一個(gè)鉤子都有一個(gè)與之相關(guān)聯(lián)的指針列表,稱之為鉤子鏈表,由系統(tǒng)來(lái)維護(hù)[9]。通過(guò)調(diào)用Win32的API來(lái)實(shí)現(xiàn)全局鍵盤(pán)鉤子,SetWindowsHookEx用于設(shè)置鉤子,設(shè)置子程以監(jiān)視指定窗口的鍵盤(pán)消息[10];CallNextHookEx將處理后的鉤子信息傳遞到當(dāng)前鉤子鏈中的下一個(gè)子程;UnhookWindowsHookEx用于卸載鉤子,釋放系統(tǒng)資源。
為了代碼結(jié)構(gòu)清清晰,易于維護(hù),將消息處理部分封裝成類(lèi),公開(kāi)方法Start()來(lái)啟動(dòng)鉤子,方法Stop()卸載鉤子,并聲明委托public delegate void BardCodeDeletegate與事件public event BardCodeDeletegate BarCodeEvent來(lái)處理消息。其中鍵盤(pán)消息處理代碼如下:
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)
{//時(shí)間戳,大于50 毫秒表示手動(dòng)輸入,交出控制權(quán)
barCode.Time = DateTime.Now;
return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}
else
{//掃碼槍的數(shù)據(jù),進(jìn)入解密、轉(zhuǎn)義、輸出流程
if ((msg.message & 0xff) == 13 && strBarCode.Length > 3)
{//發(fā)現(xiàn)回車(chē)且有數(shù)據(jù),掃描結(jié)束
barCode.BarCode = strBarCode;
//調(diào)用處理函數(shù):解密掃描結(jié)果并查找學(xué)工號(hào),傳遞消息
BarCodeDeal(barCode);
}
strBarCode += barCode.Chr.ToString();//記錄掃描結(jié)果
barCode.Time = DateTime.Now;
Return 0;
}
}
}
運(yùn)行結(jié)果如圖7所示。
3 結(jié) 論
在用戶體驗(yàn)測(cè)試中,需要設(shè)計(jì)恰當(dāng)?shù)臏y(cè)試用例,涵蓋各種用戶場(chǎng)景和操作流程。邀請(qǐng)讀者進(jìn)行實(shí)際操作,記錄用戶在操作過(guò)程中可能會(huì)遇到各種問(wèn)題,如操作流程不清晰、界面設(shè)計(jì)不合理、功能不完善等。針對(duì)這些問(wèn)題,需及時(shí)進(jìn)行調(diào)整和改進(jìn),以提高系統(tǒng)的易用性和安全性,從而更好地滿足用戶的需求和期望。
首先,需要測(cè)試系統(tǒng)的防攻擊能力。包括SQL注入、跨站腳本攻擊(XSS)、拒絕服務(wù)攻擊(DoS)等,以評(píng)估系統(tǒng)的安全性,確保其能夠有效地抵御各種攻擊。其次,需要測(cè)試系統(tǒng)的數(shù)據(jù)加密性能。如加密和解密的速度、二維碼的靜態(tài)截圖等,以確保其能夠有效地保護(hù)用戶信息的安全。最后,還需要測(cè)試系統(tǒng)的安全日志記錄能力。系統(tǒng)需要記錄用戶的所有操作和安全事件,以便管理員及時(shí)發(fā)現(xiàn)并處理安全問(wèn)題。我們可以設(shè)計(jì)一些針對(duì)性的測(cè)試用例,對(duì)日志記錄的完整性、速度和準(zhǔn)確性進(jìn)行評(píng)估,確保其能夠有效地記錄用戶操作和安全事件。
我們發(fā)現(xiàn)該方案在二維碼生成和識(shí)別方面存在一些問(wèn)題,由于服務(wù)器時(shí)鐘誤差,長(zhǎng)時(shí)間運(yùn)行后出現(xiàn)二維碼解析后的時(shí)間誤差較大,導(dǎo)致校驗(yàn)出錯(cuò)。為了解決這個(gè)問(wèn)題,我們?cè)诜?wù)器中增加時(shí)了鐘校準(zhǔn)服務(wù),確保網(wǎng)內(nèi)各個(gè)系統(tǒng)的時(shí)鐘始終保持一致,經(jīng)測(cè)試,該問(wèn)題已得到修正。另外,我們發(fā)現(xiàn)人流量較大時(shí)出現(xiàn)卡頓現(xiàn)象,經(jīng)過(guò)壓力測(cè)試后發(fā)現(xiàn)是網(wǎng)盤(pán)AP并發(fā)數(shù)不夠?qū)е?,?jīng)更換對(duì)應(yīng)場(chǎng)所AP后,該問(wèn)題亦已得到修正。
參考文獻(xiàn):
[1] 李慧,杜文龍,徐光輝.區(qū)塊鏈技術(shù)在智慧圖書(shū)館的應(yīng)用場(chǎng)景研究 [J].物聯(lián)網(wǎng)技術(shù),2024,14(2):117-120.
[2] 王棟,宮兆陽(yáng).一種基于動(dòng)態(tài)二維碼的圖書(shū)館安全身份認(rèn)證方案 [J].計(jì)算機(jī)應(yīng)用與軟件,2021,38(8):12-16.
[3] 燕雨薇,余粟.二維碼技術(shù)及其應(yīng)用綜述 [J].智能計(jì)算機(jī)與應(yīng)用,2019,9(5):194-197.
[4] 朱岑園.數(shù)字圖書(shū)館計(jì)算機(jī)網(wǎng)絡(luò)的安全技術(shù)及其防護(hù)策略 [J].科技創(chuàng)新與應(yīng)用,2022,12(1):153-155.
[5] 馬艷艷.信息化背景下高校計(jì)算機(jī)網(wǎng)絡(luò)安全防護(hù)技術(shù)應(yīng)用分析 [J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2024(1):94-96.
[6] 南亞會(huì),劉繼華,薛艷鋒.混沌參數(shù)調(diào)制下RSA數(shù)據(jù)加密算法研究 [J].計(jì)算機(jī)測(cè)量與控制,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] 馮波.校園圖書(shū)館的二維碼識(shí)別技術(shù)在自助還書(shū)系統(tǒng)中的應(yīng)用 [J].電子技術(shù),2023,52(11):420-421.
[9] RICHTER J. Windows核心編程 [M]:北京:機(jī)械工業(yè)出版,2000:204-209.
[10] 張新吉.基于無(wú)線身份認(rèn)證的大型圖書(shū)館網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì) [J].微型電腦應(yīng)用,2021,37(2):108-110.
作者簡(jiǎn)介:徐光輝(1976—),男,漢族,河南人,館員,碩士,研究方向:計(jì)算機(jī)科學(xué)與技術(shù);李慧(1991—),女,漢族,陜西人,館員,碩士,研究方向:新媒體技術(shù);杜文龍(1986—),男,漢族,陜西人,副研究館員,碩士,研究方向:信息技術(shù);柴源(1985—),男,漢族,陜西人,副研究館員,碩士,研究方向:數(shù)據(jù)挖掘與信息組織。