一种基于动态二维码的图书馆安全身份认证方案

known 发布于 2025-08-25 阅读(364)

摘 要:图书馆正进入智能化发展阶段,传统的刷卡、密码等身份认证方式存在被恶意攻击和伪造的问题。基于此,文章构建了一种基于动态二维码的图书馆安全身份认证方案。在总体设计思路和系统架构设计的基础上,深入研究了动态二维码的生成与解析、用户信息解析以及消息管理与传递等关键应用。为了验证了该方案在实际应用中的有效性和可靠性,对方案进行了用户体验测试和系统安全性能测试。经测试,该方案具有高效性、安全性和易用性等显著优势。同时,针对测试中发现的问题,提出了相应的改进措施,为图书馆安全身份认证领域提供了一种有价值的解决方案。

关键词:动态二维码;图书馆安全;身份认证;系统安全性能

中图分类号: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 Xian Aeronautical Institute, Xian 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—),男,汉族,陕西人,副研究馆员,硕士,研究方向:数据挖掘与信息组织。

标签:  图书馆 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor