一种保护at指令的方法

文档序号:7664179阅读:120来源:国知局
专利名称:一种保护at指令的方法
技术领域
本发明涉及到 一种在终端设备通过串行接口向终端适配器发送AT指 令时保护AT指令的方法,尤其涉及计算机通过串行接口向移动终端发送 AT指令时保护AT指令的方法。
背景技术
AT指令作为一种信息沟通方式,由计算机通过串行接口向移动终端 发送,并通过AT指令控制移动终端的操作,实现与GSM/UMTS网络的 业务交互。用户可以通过AT指令进行功能设置、呼叫、短信、电话本、 数据业务、传真等方面的操作或控制。
目前移动终端的安全问题越来越受到人们关注,在很多方面已经加入 了一定的安全保护,而AT指令的安全问题往往被人们所忽视。实际上 AT指令不仅可以控制和管理与GSM相关的各种业务,比如呼叫业务、 短消息业务、附加业务以及GPRS数据业务等,还可以控制移动终端的 多种功能,如操作电话本、读取IMEI号等,没有对AT指令的安全保护 将使移动终端很容易的被非法用户控制和操作,存在一定的隐患。

发明内容
本发明所要解决的问题是提供一种保护AT指令的方法,通过为AT 指令增加身份验证功能,防止非法的用户通过AT指令控制移动终端。
本发明所采用的方案是提供一种保护AT指令的方法,用以在移动终 端的AT指令模块与外部设备的串行通信单元交互时保护AT指令,该方 法包括以下步骤在一初始状态,该AT指令模块接收来自该串口通信单 元的AT指令;使该AT指令模块进入一身份验证模式,在该身份验证模 式中依次接收来自该串行通信单元的用户名和密码,并验证所接收的用户名与密码;以及当身份验证成功时,使该AT指令模块进入正常AT指令 处理状态。
上述的保护AT指令的方法中,当身份验证失败时,使该AT指令模 块进入该初始状态或 一 用户名输入状态。
上述的保护AT指令的方法中,在该身份验证模式中依次接收该用户 名和密码的步骤包括a.向该串口通信单元发送提示输入用户名的信息, 并进入一用户名输入状态;b.接收来自该串口通信单元的字符串,根据 一标志变量对该字符串进行远程显示处理,以于该外部设备明文显示该字 符串,并将该字符串作为用户名记录;c.向该串口通信单元发送提示输 入密码的信息,并进入一密码输入状态;d.接收来自该串口通信单元的 字符串,根据该标志变量对该字符串进行远程显示处理,以于该外部设备 隐藏显示该字符串,以及将该字符串作为密码记录。
在一个实施例中,步骤b和d中的根据该标志变量进行远程显示处理 的步骤包括:依次从一接收緩冲区读出接收的字符;根据该标志变量判断 每一读出的字符是否为密码,若该字符为密码,则将一隐藏字符发送至该 串口通信单元,否则将读出的字符发送至该串口通信单元。该隐藏字符例
如为"*"号。
在另一个实施例中,步骤b和d中的根据该标志变量进行远程显示处 理的步骤包括:依次从一接收緩冲区读出接收的字符;根据该标志变量判 断每一读出的字符是否为密码,若该字符为密码,判断该字符是否为特殊 字符,若不是特殊字符,则将一隐藏字符发送至该串口通信单元,若是特 殊字符,则不发送该隐藏字符至该串口通信单元;若该字符不是密码,则 将读出的字符发送至该串口通信单元。
在又一个实施例中,步骤b和d中的根据该标志变量进行远程显示处 理的步骤包括依次从一接收緩冲区读出接收的字符;根据该标志变量判 断每一读出的字符是否为密码,若该字符为密码,判断该字符是否为特殊 字符,若不是特殊字符,则将一隐藏字符发送至该串口通信单元,若是特 殊字符,则修改该标志变量为非密码状态;若该字符不是密码,则将读出 的字符发送至该串口通信单元。其中,所述特殊字符包括回车符和/或换行符。
在再一个实施例中,步骤b和d中的根据该标志变量进行远程显示处 理的步骤包括依次从一接收緩冲区读出接收的字符;根据该标志变量判 断每一读出的字符是否为密码,若该字符为密码,则将一退格字符和一隐 藏字符发送至该串口通信单元。
在步骤c中根据该标志变量对该字符串远程显示处理之后,还包括设 定该标志变量为密码状态。而在步骤d中根据该标志变量对该字符串远程 显示处理之后,还包括设定该标志变量为非密码状态。
上述的保护AT指令的方法中,在步骤b和d中,该AT指令模块是 通过调用一中断处理模块来接收该字符串,而根据该标志变量对该字符串 远程显示处理的步骤结合于该中断处理模块中。
上述的保护AT指令的方法中,验证所接收的用户名和密码的步骤包 括比较接收的用户名与一用户名数据库,检查输入的用户名是否存在; 当该输入的用户名存在时,验证与其对应的密码是否与接收的密码一致; 以及当该密码一致时,则表示身份验证成功;当输入的用户名不存在或者 当该密码不一致时,则表示身份验证失败。
因此,本发明所提出的采用身份验证的方式保护AT指令的操作权限 的方法,可以使移动终端不受未经授权的用户或软件控制,其中为完善身 份验证中的回显问题,本发明所采用的不修改串口通信软件,而部分修改 移动终端侧的部分配置的方式,使身份验证过程中密码得以隐藏,而用户 名和AT指令仍然得以正常显示。


图1是计算机与移动终端的通过串口通信的示意图。 图2是本发明一个实施例的保护AT指令的方法流程图。 图3是AT指令模块设定的状态图。
图4是包含远程显示处理流程的中断处理模块一个实施例的流程图。 图5是包含远程显示处理流程的中断处理模块另一个实施例的流程图。
具体实施例方式
使用外部设备上的串口通信单元可以通过串行通道与移动终端的串
行接口进行通信。请参照图1所示,本实施例中以外部设备是计算机120 (如PC)为例说明,而其中的串口通信单元可由串口通信软件122来实 现。但本领域技术人员可知本发明并不限于所举的例子,凡是能够提供串 口通信功能,并且具有能够与用户进行交互的电子装置均可用来作为外部 设备。
移动终端100内部具有AT指令模块104,此模块例如是集成在移动 终端的基带芯片102内,并连接于移动终端100的串口 106上。这样, AT(Attention)指令就能通过串行通道130发送到移动终端100的串口 106,对其进行各种操作,例如比如呼叫业务、短消息业务、附加业务以 及GPRS数据业务等,以及控制移动终端的多种功能,如操作电话本、 读取IMEI号等。
本发明的一个实施例通过在移动终端上加入用户身份验证功能,使没 有授权的用户或软件不能通过AT指令对移动终端进行控制。在例如刚开 机的初始状态时,AT指令模块104接收来自该串口通信软件122的AT 指令(可由用户输入)。此时该AT指令模块并不解析和执行该AT指令, 而是首先进入身份验证模式,在该模式中,AT指令模块104要求用户输 入用户名和密码,在接收用户名和密码之后,AT指令模块104验证该用 户名和密码,如果验证成功,则进入正常AT指令执行状态,此后接收到 AT指令,则解析和执行该指令。如果验证失败,则返回初始状态,即以 后接收到AT指令,仍然不执行该指令。通过此验证模式,可以保护终端 不受未经授权的用户或软件控制。此外,验证失败时也可以进入一用户名 输入状态,提示用户重新输入用户名。
图2示出此保护AT指令的方法一个实施例的流程图,请参照图2所 示,在步骤201,移动终端100和串口通信软件122都被打开并连接, 此时移动终端100处于一初始状态SO。当用户名夂对移动终端进行控制时, 会通过串口通信软件122输入一条指令,该指令包括但不限于AT指令,包括回车键(Enter)在内的一些来自串口通信软件122的字符可以视为 指令而激发AT指令模块104的操作;在步骤202,如果移动终端100的 AT指令模块104在初始状态SO(如刚开机或者身份验证失败)时收到指 令,并不解析和执行指令,而是进入身份验证程序模式,执行步骤203-209,下面详细描述这些步骤。
在步骤203, AT指令模块104要求用户输入用户名,即AT指令模 块104向串口通信软件122发送提示输入用户名的信息,此后AT指令模 块104进入用户名输入状态S1,等待用户名输入。串口通信软件122在 计算机100的用户界面上提示用户输入用户名。在用户输入用户名之后, 串口通信软件122将用户名发送至移动终端100。在步骤204,处于用户 名输入状态S1的AT指令模块104接收字符串,并将收到的字符串作为 用户名字符串记录下来。
在步骤205, AT指令模块104要求用户输入密码,即AT指令模块 104向串口通信软件122发送提示输入密码的信息,此后AT指令模块104 进入密码输入状态S2,等待密码输入。串口通信软件122在计算机100 的用户界面上提示用户输入密码。在用户输入密码之后,串口通信软件 122将密码发送至移动终端100。在步骤206,处于密码输入状态S2的 AT指令模块104接收字符串,并将收到的字符串作为密码字符串记录下 来。
然后,进入步骤207,通过与一用户名数据库比较,先检查输入的用 户名是否存在,如果存在,检查其密码是否与接收的密码一致,如果密码 也一致,则执行步骤208,提示身份验证成功。此后,如果再接收到的 AT指令,就直接进入正常的AT指令处理状态S3,而不会再进入身份验 证模式(步骤210)。如果用户名不存在或密码不一致,则进入步骤209, 提示身份验证失败,重新返回初始状态SO。
其中步骤207中验证用户名是否存在的操作也可以在记录用户名后 (步骤204)就执行,当用户名不正确时,则显示用户名错误,回到步骤 203提示用户重新输入。
为了判断目前身份验证进入哪个状态,需要在AT指令模块104中设置一个状态变量来记录上述状态S0~S3,如图3所示,在刚开机时设为 初始状态SO,在此状态AT指令模块收到消息,执行步骤203,并且把状 态变量设为用户名输入状态S1。在用户名输入状态S1,执行步骤204, 205,并把状态变量设为密码输入状态S2。在密码输入状态S2,执行步 骤207。如果身份验证成功则把状态变量设为正常处理状态S3,否则设 为初始状态SO。
用户在计算机100上要使用串口通信软件122来完成控制串口发送 和接收AT指令的功能。对于通用的串口通信软件,比如windows自带的 超级终端, 一般可以选4奪是否本地回显4建入的字符。如果选择本地回显, 则在输入密码时密码也会以明文显示出来,容易被他人看见。而如果选择 本地不回显,则在输入用户名和AT指令时会不方便。
本发明的一个较佳实施例通过一种不必修改通用串口通信软件122, 而是通过改变移动终端的配置的方式来隐藏身份验证中的密码。本发明的 一个构思是选择将串口通信软件设置为本地不回显,所有的显示都是通过 移动终端发送到计算机来完成。即正常情况下每收到一个字符都原样把字 符发回计算机,以让用户看到自己键入的字符,只有在密码输入状态时, 调整为移动终端每收到一个字符,发送一个给计算机端。在密码输 入结束以后,再恢复到正常情况的每收到一个字符都原样把字符发回计算 机的模式。
为此,在AT指令模块104执行步骤204和步骤206的过程中,包 括一根据标志变量Flag对接收的字符串(用户名字符串和密码字符串) 进行远程显示处理的步骤,具体包括从接收緩冲区中依次读出所接收的 字符;对每一字符,根据标志变量Flag判断其是否为密码,若是(如 Flag=1 ),则将一隐藏字符(如*号)写入一发送緩沖区发送给串行通信 软件122,否则(如Flag=0)将该字符写入发送緩冲区并发送给串行通 信软件122。其中,在步骤204的远程显示处理之后,将标志变量Flag 置为密码状态(如置1),而在步骤206中的远程显示处理之后,设定标 志变量Flag为非密码状态(如置O)。如此在步骤204中因Flag为非密 码输入状态,即正常状态,则原样回传输入的字符,而在步骤206中因Flag已被设置为密码输入状态,则回传的是"*,,号,以隐藏密码。
上述远程显示处理步骤的一个实现方式是插入于串口的中断处理模 块。在目前的移动终端中,当串口 106接收指令时,会向AT指令模块 104发送中断。当串口 106接收到的字符串大于一个门限或者接收定时器 超时(接收到字符串以后开始计时),则触发中断,在中断处理模块中判 断接收緩沖区里是否有回车'\r,或者结束符'\0,,如果有则认为收到 一串指令,并通知AT模块来处理。可以修改串口接收的中断处理模块, 来向AT指令模块104提供一个接口函数,该接口函数可以设置一个标志 变量Flag来指示此时应以哪种方式显示接收的字符,例如为1时表明此 时收到的是输入的密码,工作在密码状态,即每收到一个字符应发送一个
"*"给计算机120;为0时可表示收到的不是密码,工作在非密码状态, 此时每收到一个字符都原样把字符发回计算机。所作的修改并不涉及原有 的程序,需要的是在此中断处理模块内添加执行远程显示处理的流程。此 外,接收定时器设定的时间决定着从用户键入的字符到在串口通信软件上 显示出来的最大延迟时间。
执行远程显示处理的一个实施例的流程如图4所示,其中只需在目前 的中断处理模块原有的流程400 ~ 402, 406 ~ 408中插入步骤403 ~ 405 即可实现远程显示处理。首先,如步骤401,从一接收缓沖区中读出一个 字符;接着,读指针自加1,接收緩冲区总字符数自减1 (步骤402); 随后进入步骤403,通过检查标志变量Flag判断收到的字符是否为密码, 如果是则发送一个字符(步骤404);如果否,则发送该字符本身
(步骤405)。步骤406,执行原有的判断是否遇到回车和'\0,,如果 遇到则通知AT指令模块104的流程;步骤407,通过检查接收緩冲区总 字符数是否为零,判断接收緩冲区是否已被读空。如果是,则退出循环, 继续执行原有的中断处理模块流程(步骤408);如果否,则返回步骤 401,进行循环。
需要指出的是,图4中的步骤顺序仅为举例,在不改变该远程显示处 理的目的的条件下,本领域技术人员完全可以作出多种更改,例如将步骤 402 、包括步骤403~405的流程、以及步骤406的执行顺序任意调换。在上述流程中,在密码状态(Flag=1)时输入回车也将显示"*,,, 为此,还可在串口中断处理模块中,步骤403判断为密码输入模式后, 步骤404之前,插入对输入字符的判断,如果判断收到的是特殊字符如V (回车符),'\n'(换行符),不再回显"*,,,使输入密码时键入的回车时
不会再显示。另一种方法是在串口中断处理模块中,如果是密码输 入模式,增加对输入字符的判断,如果收到的是特殊字符(如回车符或换 行符),则直接改变标志变量Flag为非密码状态(Flag=0),这样也可 以使输入密码时按的回车等按键不会显示"*,,。
在上述实施例中,将用来指示串口接收中断处理模块是否工作在密码 状态的一个标志变量并不限定为一位,也可为1位以上,其中一位用来标 志是否每收到一个字符就发送一个"*"给计算机120,另一位用来标志 是否每收到一个字符就原样把字符发回计算机。
图5是本发明的远程显示流程另一个实施例的流程图,其详细流程参 照上文中结合图4的描述,与图4所示流程不同的是,串口通信软件122 可选择本地回显的方式,而使移动终端在根据标志变量Flag判断用户键 入为密码时(如步骤403),执行步骤404a,即每收到一个密码字符, 都发送一个"\b*,,回串口通信软件122,其中"\b"表示退格符(回车 Backspace)字符,即用退格符(Backspace)和隐藏字符"*"来改写显示 的明文密码为"*,,。在密码输入模式下移动终端的回显速度足够快时, 由串口通信软件122本地回显的明文密码将很快被覆盖,从而在人眼看 来明文密码似乎未出现过,或者虽出现过但短暂到难以看清。串口通信软 件122而移动终端在根据标志变量Flag判断用户键入不为密码时(如步 骤403),不发送任何字符回串口通信软件122,使串口通信软件122正 常显示输入的字符于计算机100的用户界面上。
因此,本发明提出 一种采用身份验证的方式保护AT指令的操作权限 的方法,可以使移动终端不受未经授权的用户或软件控制,其中为完善身 份验证中的回显问题,本发明提出不修改串口通信软件,而部分修改移动 终端侧的部分配置的方式,使身份验证过程中密码得以隐藏,而用户名和 AT指令仍然得以正常显示。
权利要求
1. 一种保护AT指令的方法,用以在移动终端的AT指令模块与外部设备的串行通信单元交互时保护AT指令,该方法包括以下步骤在一初始状态,该AT指令模块接收来自该串口通信单元的指令;使该AT指令模块进入一身份验证模式,在该身份验证模式中依次接收来自该串行通信单元的用户名和密码,并验证所接收的用户名与密码;以及当身份验证成功时,使该AT指令模块进入正常AT指令处理状态。
2. 如权利要求1所述的保护AT指令的方法,其特征在于,还包括当 身份验证失败时,使该AT指令模块进入该初始状态或一用户名输入状态。
3. 如权利要求1所述的保护AT指令的方法,其特征在于,在该身份 验证模式中依次接收该用户名和密码的步骤包括a. 向该串口通信单元发送提示输入用户名的信息,并进入一用户名车lr入状态;b. 接收来自该串口通信单元的字符串,根据一标志变量对该字符串 进行远程显示处理,以于该外部设备明文显示该字符串,并将该字符串作 为用户名记录;c. 向该串口通信单元发送提示输入密码的信息,并进入一密码输入 状态;d. 接收来自该串口通信单元的字符串,根据该标志变量对该字符串 进行远程显示处理,以于该外部设备隐藏显示该字符串,以及将该字符串 作为密码记录。
4. 如权利要求3所述的保护AT指令的方法,其特征在于,步骤b 和d中的根据该标志变量进行远程显示处理的步骤包括依次从一接收緩冲区读出接收的字符;根据该标志变量判断每一读出的字符是否为密码,若该字符为密码, 则将一隐藏字符发送至该串口通信单元,否则将读出的字符发送至该串口 通信单元。
5. 如权利要求4所述的保护AT指令的方法,其特征在于,该隐藏字 符为"*"号。
6. 如权利要求3所述的保护AT指令的方法,其特征在于,步骤b 和d中的根据该标志变量进行远程显示处理的步骤包括依次从 一 接收緩冲区读出接收的字符;根据该标志变量判断每一读出的字符是否为密码,若该字符为密码, 判断该字符是否为特殊字符,若不是特殊字符,则将一隐藏字符发送至该 串口通信单元,若是特殊字符,则不发送该隐藏字符至该串口通信单元; 若该字符不是密码,则将读出的字符发送至该串口通信单元。
7. 如权利要求3所述的保护AT指令的方法,其特征在于,步骤b 和d中的根据该标志变量进行远程显示处理的步骤包括依次从一接收缓沖区读出接收的字符;根据该标志变量判断每一读出的字符是否为密码,若该字符为密码, 判断该字符是否为特殊字符,若不是特殊字符,则将一隐藏字符发送至该 串口通信单元,若是特殊字符,则修改该标志变量为非密码状态;若该字符不是密码,则将读出的字符发送至该串口通信单元。
8. 如权利要求6或7所述的保护AT指令的方法,其特征在于,所 述特殊字符包括回车符和/或换行符。
9. 如权利要求3所述的保护AT指令的方法,其特征在于,步骤b 和d中的根据该标志变量进行远程显示处理的步骤包括依次从一接收緩冲区读出接收的字符;根据该标志变量判断每一读出的字符是否为密码,若该字符为密码, 则将一退格字符和一隐藏字符发送至该串口通信单元。
10. 如权利要求3 9任一项所述的保护AT指令的方法,其特征在 于,在步骤b中根据该标志变量对该字符串远程显示处理之后,还包括设 定该标志变量为密码状态。
11. 如权利要求3 9任一项所述的保护AT指令的方法,其特征在 于,在步骤d中根据该标志变量对该字符串远程显示处理之后,还包括设 定该标志变量为非密码状态。
12. 如权利要求3~9任一项所述的保护AT指令的方法,其特征在 于,在步骤b和d中,该AT指令模块是通过调用一中断处理模块来接收 该字符串,而根据该标志变量对该字符串远程显示处理的步骤结合于该中 断处理模块中。
13. 如权利要求1所述的保护AT指令的方法,其特征在于,该指 令包括AT指令。
14. 如权利要求1所述的保护AT指令的方法,其特征在于,验证 所接收的用户名和密码的步骤包括比较接收的用户名与 一用户名数据库,检查输入的用户名是否存在; 当该输入的用户名存在时,验证与其对应的密码是否与接收的密码一 致;以及当该密码一致时,则表示身份验证成功;当输入的用户名不存在或者 当该密码不一致时,则表示身份验证失败。
全文摘要
本发明揭示一种保护AT指令的方法,用以在移动终端的AT指令模块与外部设备的串行通信单元交互时保护AT指令,该方法包括在一初始状态,该AT指令模块接收来自该串口通信单元的AT指令;使该AT指令模块进入一身份验证模式,在该身份验证模式中依次接收来自该串行通信单元的用户名和密码,并验证所接收的用户名与密码;以及当身份验证成功时,使该AT指令模块进入正常AT指令处理状态。因此,可防止非法的用户通过AT指令控制移动终端。
文档编号H04W12/06GK101442739SQ20071017064
公开日2009年5月27日 申请日期2007年11月20日 优先权日2007年11月20日
发明者玲 吕, 晖 缪, 锐 钟, 顾祥新 申请人:展讯通信(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1