一种嵌入式系统串口终端防攻击方法

xiaoxiao2021-2-27  276

一种嵌入式系统串口终端防攻击方法
【技术领域】
[0001]本发明属于嵌入式系统领域,特别涉及一种嵌入式系统串口终端防攻击的方法。
【背景技术】
[0002]在嵌入式系统中,设计时一般都会使用串口终端进行系统维护,用户通过串口终端输入命令,可以查看和修改系统的设置,还可以进行系统的诊断等操作。嵌入式系统在运行过程中,由于电磁干扰等原因导致信号耦合输入串口,进而引起串口在短时间内输入大量数据。一旦这些数据经过串口解释程序解释为系统的有效命令,将触发系统执行这些命令,由于这些命令并非是用户有意输入的,因此这些命令的执行将对系统造成不可预知的后果。如何有效防止上述过程的发生,是嵌入式系统设计中必须要考虑的。

【发明内容】

[0003]本发明的目的,在于提供一种嵌入式系统串口终端防攻击方法,其可有效防止嵌入式系统串口终端输入大量异常数据对系统造成不可预知的影响,同时不影响串口终端的正常使用。
[0004]为了达成上述目的,本发明的解决方案是:
[0005]—种嵌入式系统串口终端防攻击方法,包括如下内容:在串口中断处理程序中加入检测串口终端密码的代码,当检测到外界通过串口输入正确的密码后,允许后续数据继续输入,否则拒绝后续数据继续输入。
[0006]还包括如下内容:在串口中断处理程序中加入串口接收流量控制的代码,当检测到单位时间内产生的串口中断超过设定值后,主动关闭串口的输入,延时后再打开串口的输入。
[0007]还包括如下内容:当串口中断处理程序检测到串口在设定时间内没有数据输入时,关闭串口的输入,此后如果用户希望继续通过串口输入命令,需要再次输入串口密码。
[0008]设置第二定时器,当串口在第二定时器的定时时间内没有数据输入,则关闭串口的输入。
[0009]设置第一定时器,在检测到单位时间内产生的串口中断超过设定值后,主动关闭串口的输入,启动第一定时器,待第一定时器的时间到达后再打开串口的输入。
[0010]采用上述方案后,首先,用户需要输入串口终端密码后才能继续向串口输入命令,拒绝了未授权的访问,提高串口终端的安全性;其次,串口单位时间内的输入数据量将被限定在一个固定值之下,避免了串口输入大量数据后被串口命令解释程序解释成系统命令进而误执行的问题,避免对操作系统造成影响。
【附图说明】
[0011 ]图1是嵌入式系统的基本架构图;
[0012]图2是嵌入式系统的串口驱动程序中断服务例程流程图;
[0013]图3是串口命令解释程序的流程图;
[0014]图4是本发明的流程图;
[0015]图5(a)、图5(b)分别是定时器1、2的流程图;
[0016]图6是串口在各状态之间转换的示意图。
【具体实施方式】
[0017]以下将结合附图,对本发明的技术方案进行详细说明。
[0018]图1展示了一个基本的嵌入式系统,该系统含一个串口,作为控制终端,用户可以通过该串口终端输入命令,查看和修改系统的设置。对于一个嵌入式系统来说,应用程序需要通过操作系统内核和驱动程序来访问串口,驱动程序的作用是直接控制底层硬件,对上层提供统一的接口来访问底层硬件,屏蔽掉底层硬件的细节。串口驱动程序的作用是从串口接收数据,然后传递给上层应用,系统的串口驱动程序中断服务例程流程图如图2所示。注意图2所示流程,这里并没有给串口添加密码和流量限制,因而无论从外部输入多少数据,最终都能进入串口命令解释程序,所以当有大量数据进入串口进而通过串口驱动程序传递给串口命令解释程序时,会对系统的安全性和稳定性造成影响。串口命令解释程序的工作流程如图3所示。
[0019]正是基于这一分析,本发明提供的一种嵌入式系统串口终端防攻击方法,通过对操作系统内核的串口驱动程序中断服务例程进行修改,提高串口终端的安全性,配合图4所示,具体的步骤是:
[0020](1)在图2的基础上增加串口终端密码的校验,当检测到外界通过串口输入正确的密码后,允许后续数据继续输入;当检测到外界输入的密码不正确时,拒绝后续数据继续输入。在图2的基础上增加单位时间串口输入数据是否超过设定值的判定,如果超过设定值,关闭串口,启动定时器1。
[0021 ] (2)当(1)启动的定时器1到期后,再次打开串口,串口可以继续接收数据。
[0022](3)增加一个定时器2,当检测到一段时间内串口没有数据输入时,关闭串口,提示用户输入密码。
[0023]图6是串口在各种状态之间转换的不意图。
[0024]综合上述,本发明一种嵌入式系统串口终端防攻击方法,通过在串口中断处理程序中写入检测串口终端密码的代码和串口接收流量控制的代码,既防止外界对串口终端的非法访问,同时也防止串口终端在短时间内输入大量数据而对操作系统造成影响。
[0025]以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
【主权项】
1.一种嵌入式系统串口终端防攻击方法,其特征在于包括如下内容:在串口中断处理程序中加入检测串口终端密码的代码,当检测到外界通过串口输入正确的密码后,允许后续数据继续输入,否则拒绝后续数据继续输入。2.如权利要求1所述的一种嵌入式系统串口终端防攻击方法,其特征在于还包括如下内容:在串口中断处理程序中加入串口接收流量控制的代码,当检测到单位时间内产生的串口中断超过设定值后,主动关闭串口的输入,延时后再打开串口的输入。3.如权利要求1所述的一种嵌入式系统串口终端防攻击方法,其特征在于还包括如下内容:当串口中断处理程序检测到串口在设定时间内没有数据输入时,关闭串口的输入,此后如果用户希望继续通过串口输入命令,需要再次输入串口密码。4.如权利要求3所述的一种嵌入式系统串口终端防攻击方法,其特征在于:设置第二定时器,当串口在第二定时器的定时时间内没有数据输入,则关闭串口的输入。5.如权利要求1所述的一种嵌入式系统串口终端防攻击方法,其特征在于:设置第一定时器,在检测到单位时间内产生的串口中断超过设定值后,主动关闭串口的输入,启动第一定时器,待第一定时器的时间到达后再打开串口的输入。
【专利摘要】本发明公开一种嵌入式系统串口终端防攻击方法,包括如下内容:在串口中断处理程序中加入检测串口终端密码的代码,当检测到外界通过串口输入正确的密码后,允许后续数据继续输入,否则拒绝后续数据继续输入;在串口中断处理程序中加入串口接收流量控制的代码,当检测到单位时间内产生的串口中断超过设定值后,主动关闭串口的输入,延时后再打开串口的输入。此种方法可有效防止嵌入式系统串口终端输入大量异常数据对系统造成不可预知的影响,同时不影响串口终端的正常使用。
【IPC分类】G06F21/71
【公开号】CN105488435
【申请号】CN201510852933
【发明人】姜晓光, 周强, 文继锋, 李秋华, 吴相楠, 花俊
【申请人】南京南瑞继保电气有限公司, 南京南瑞继保工程技术有限公司
【公开日】2016年4月13日
【申请日】2015年11月30日

最新回复(0)