阻挡非授权应用程序的方法以及使用该方法的装置与流程

文档序号:11251262阅读:402来源:国知局
本发明有关一种计算机安全技术,特别是一种阻挡非授权应用程序的方法以及使用该方法的装置。
背景技术
::于计算机安全情境,黑客寻找并攻击计算机系统中的弱点。企业通常会因为这些攻击而遭受伤害,例如危害计算机服务、客户私人数据遭窃、降低利润或声誉等。为防止计算机系统遭受攻击,需要一种阻挡非授权应用程序的方法以及使用该方法的装置。技术实现要素:本发明的实施例提出一种阻挡非授权应用程序的方法,由处理单元载入并执行母板支持服务的程序码时实施,且包含以下步骤:从应用程序接收输入参数,以及通过检查输入参数的内容以判断应用程序是否通过验证;当应用程序通过验证时,乱数产生会话密钥,储存会话密钥至文件并且储存此文件至储存装置中只能被母板支持服务及应用程序存取的路径;以及回复路径及文件的文件名给应用程序,使得应用程序可从文件取得会话密钥并使用会话密钥加密及解密于母板支持服务及应用程序间传递的数据。本发明的实施例另提出一种阻挡非授权应用程序的方法,包含以下步骤:第一计算机装置中的处理单元从第二计算机装置接收请求,其中包含电子申请表,以及电子申请表包含版本编号以及客户识别码;处理单元使用一把私钥加密电子申请表以产生数字证书,其中,私钥相应于一把公钥,此公钥储存于母板中的非易失性存储器,此母板设置于第一计算机装置及第二计算机装置之外的电子设备;以及处理单元回复数字证书给上述计算机装置。本发明的实施例提出一种阻挡非授权应用程序的装置,包含处理单元。处理单元传送请求给服务器,包含应用程序的数字证书,当从服务器接收到请求允许时,于指定目录下读取文件中的会话密钥,使用会话密钥加密通信数据,传送加密后的通信数据给服务器。本发明的实施例另提出一种阻挡非授权应用程序的装置,包含处理单元。处理单元从客户端接收请求,包含应用程序的数字证书,以及通过检查数字证书判断请求是否合法,当请求合法时,处理单元产生会话密钥,于指定目录下建立文件,从数字证书中取得用户识别码,设定文件的存取权限为只能被指定用户识别码的处理读取,将会话密钥储存至文件,以及回复请求允许给客户端。本发明能够避免硬件遭受恶意攻击。附图说明图1是依据本发明实施例的网路架构示意图。图2是依据本发明实施例的电子设备的系统架构图。图3是依据本发明实施例的计算机装置的系统架构图。图4是依据本发明实施例的数字证书产生方法。图5a至5b是依据本发明实施例的阻挡非授权应用程序的方法,于处理单元载入并执行相应于母板支持服务的初始化事件的程序码时实施。图6a至6f是依据本发明实施例的应用程序验证示意图。图7是依据本发明实施例的阻挡非授权应用程序的装置的方块图。图8是依据本发明实施例的阻挡非授权应用程序的装置的方法流程图。其中,附图中符号的简单说明如下:100:局域网/因特网;110:母板生产者的计算机;130:设备制造者的计算机;150_1、…、150_n:母板;210:处理单元;220:非易失性存储器;230:输出/入接口;240_1、…、240_m:硬件装置;250:易失性存储器;260:通信接口;270:储存装置;310:处理单元;320:显示单元;330:输入装置;340:储存单元;350:存储器;360:通信接口;s411~s437:方法步骤;s511~s591:方法步骤;610:母板支持服务;630:应用程序;650_1、…、650_3:状态数据库;670_1、…、670_5:数字证书;710:服务器;711:公钥;713:会话密钥;715:文件;730:客户端;731:应用程序;733:数字证书;733a:私钥;733b:电子申请表;735:通信数据。具体实施方式以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的
发明内容必须参考权利要求书的范围。必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、操作处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、操作处理、元件、组件,或以上的任意组合。于权利要求中使用如“第一”、“第二”、“第三”等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。本发明实施例提出一种网路架构,用以实施电子设备(electronicequipment)的制造。图1是依据本发明实施例的网路架构示意图。母板生产者可写入母板支持服务(boardsupportservice)及公钥(publickey)至母板(motherboard)150_1至150_n中的非易失性存储器,例如,只读存储器(rom,read-onlymemory)、可抹除可编程只读存储器(erasableprogrammablereadonlymemory)、快闪存储器(flashmemory)等。母板支持服务为底层的驱动程序库(driverlibrary),当母板上的处理单元执行母板支持服务时,控制连接于母板的硬件装置。母板150_1至150_n可被设备制造者组装至不同的电子设备中,例如,工业用个人计算机(industrialpc)、数字看板(digitalbillboard)、销售时点情报系统(point-of-salesystem)、监控系统(surveillancesystems)、物联网(iot,internetofthings)设备等。工业用个人计算机可用来进行制程控制以及/或取得量测数据。数字看板可设计来于一天的多个时段显示跑马文字或不同画面。销售时点情报系统可包含结账机台,包括电子收银抽屉、条码扫描器、信用卡读取设备、收据或发票印刷设备或以上的任意组合。销售时点情报系统用以记录每一笔刚发生的销售,使得可即时反应在库存记录上。监控系统可包含监控主机及监控摄相头。监控摄相头可为视频摄像头,用以监视特定区域,而监控主机可包含记录装置,用以记录及压缩从监控摄相头取得的影像,以及储存压缩视频至可供搜寻的数据库。物联网设备可为实体装置,嵌入电子电路、软件、感测器及连接器,使得此装置可与其他连接装置交换数据。物联网设备允许装置进行感测,以及跨网路基础建设进行控制。物联网设备包括如照明控制系统、智能电视、门禁控制系统等。设备制造者的计算机130可通过局域网(lan,localareanetwork)或因特网(internet)100连接上母板生产者的计算机110。计算机130可传送请求至计算机110,请求中包含申请表。接着,计算机130从计算机110取得数字证书(digitalcertificate),并将数字证书整合入设备制造者开发的应用程序,用以操作母板支持服务。应用程序可为安卓应用程序(androidapp)。安桌操作系统的文件系统权限管理沿用于linux操作系统。于安卓操作系统中,为保证安全性,每个应用程序都有唯一的软件包名称(packagename)。执行时,应用程序的处理(process)都有唯一的用户识别码(uid,useridentifier)。特定处理建立的文件只有相应软件包名称的应用程序可被允许存取。计算机130将包含数字证书的应用程序写入母板150_1至150_n中的非易失性存储器。于另一些实施例中,计算机130可不从计算机110取得数字证书,而只写入应用程序至母板150_1至150_n中的非易失性存储器。图2是依据本发明实施例的电子设备的系统架构图。此系统架构可实施于工业用个人计算机、数字看板、销售时点情报系统、监控系统、物联网设备中的任一者。系统架构可包含一个母板,母板上至少设置非易失性存储器220及处理单元210。母板生产者于出厂前写入公钥及母板支持服务的程序码至非易失性存储器220。非易失性存储器220可为只读存储器、可抹除可编程只读存储器、快闪存储器等。处理单元210可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具有平行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行程序码或软件时,提供之后所描述的功能。系统架构另包含储存装置270,用以让母板生产者于出厂前储存状态数据库,状态数据库于初始时储存客户识别码为0及版本编号为0的记录。于另一些实施例中,客户识别码及版本编号亦可初始为null或其他可代表初始状态的数值。于此须注意的是,状态数据库储存于只能被母板支持服务存取的目录下。储存装置270可为硬盘、光盘、固态硬盘等。储存装置270还可让设备制造者储存应用程序的程序码,以及由母板生产者提供的及数字证书。系统架构另包含易失性存储器250用以储存执行过程中需要的数据,例如,变数、数据表(datatables)、数据结构等。处理单元210于载入并执行母板支持服务时,可通过输出/入接口230控制硬件装置240_1至240_m中的一个,或者是从硬件装置240_1至240_m中的一个读取数据。输出/入接口230可为一般性输出入接口(gpio,general-purposeinput/outputinterface)。硬件装置240_1至240_m中的任一个可为显示控制器(displaycontroller)、印刷控制器(printcontroller)、实时时钟(real-timeclock)、重新启动看门狗计数器(rebootwatchdogtimer)等。系统架构另包含通信接口260,让处理单元210可借以跟其他电子装置进行沟通。通信接口260可以是局域网(localareanetwork,lan)通信模块、无线局域网通信模块(wirelesslan)、通用串行总线(usb,universalserialbus)通信模块或其他通信模块。图3是依据本发明实施例的计算机装置的系统架构图。此系统架构可实施于如计算机110及130中的任一个,或其他具有运算能力的装置,至少包含处理单元310。处理单元310可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具有平行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行程序码或软件时,提供之后所描述的功能。系统架构另包含存储器350用以储存执行过程中需要的数据,例如,变数、数据表、数据结构等,以及储存单元340,用以储存各式各样的电子文件。系统架构另包含通信接口360,让处理单元310可借以跟其他电子装置进行沟通。通信接口360可以是局域网通信模块、无线局域网通信模块或其他通信模块。输入装置330可包含键盘、鼠标、触控面板等。用户可按压键盘上的硬键来输入字元,通过操作鼠标来控制光标,或者是在触控面板制造手势来控制执行中的应用程序。手势可包含单击、双击、单指拖曳、多指拖曳等,但不限定于此。显示单元320可包含显示面板(例如,薄膜液晶显示面板、有机发光二极管面板或其他具有显示能力的面板),用以显示输入的字元、数字、符号、拖曳鼠标的移动轨迹、绘制的图案或应用程序所提供的画面,提供给用户观看。为阻挡非授权应用程序使用母板支持服务,母板生产者可提供数字证书给合法的设备制造者,用以整合到设备制造者开发的应用程序。图4是依据本发明实施例的数字证书产生方法。此方法由母板生产者的计算机110及设备制造者的计算机330协同执行,虚线的左边描述计算机110的处理单元310于载入并执行相关程序码时实施的步骤,而虚线的右边描述计算机130的处理单元310于载入并执行相关程序码时实施的步骤。此方法开始于由计算机130的处理单元310通过其通信接口360发出请求给计算机110(步骤s431)。请求中包含电子申请表(electronicapplication),使用可被计算机110解析的结构化格式储存,包含版本编号(versionnumber)、软件包名称、客户识别码(customerid)、有效日期(expirationdate)等信息。结构化格式可为固定或可变储存格长度的一维阵列(one-dimensionalarray)。软件包名称可符合安卓应用程序的命名规则。范例电子申请表如下所示:表1版本编号1软件包名称com.example.demoapp客户识别码1有效日期2020/12/31计算机110的处理单元310通过其通信接口360接收到请求后(步骤s411),使用私钥加密请求中的申请表以产生数字证书,此私钥相应于母板的非易失性存储器220中储存的公钥(步骤s413),以及通过其通信接口360传送数字证书给个人计算机110(步骤s415)。于此须注意的是,在正常情况下,以私钥加密的内容可以被公钥解密。然而,当公钥与私钥不相配时,解密后的内容只是乱码而无法辨认。于步骤s413,计算机110的处理单元310可使用已知的算法搭配私钥产生数字证书。计算机130的处理单元310通过其通信接口360接收到数字证书后(步骤s433),写入应用程序的程序码及数字证书至母板的储存装置270(步骤s435),以及将数字证书绑定至应用程序,作为应用程序的资源(步骤s437)。于步骤s435,处理单元310可使用安卓操作系统开发平台提供的应用程序接口来绑定数字证书至应用程序。当应用程序欲使用母板支持服务提供的方法前,需要先实例化(instantiate)母板支持服务,并选择性地提供数字证书。当实例化母板支持服务时,会触发初始化事件(initializationevent)。于初始化事件中,母板支持服务可执行一连串的判断,用以阻挡非授权应用程序。图5a至5b是依据本发明实施例的阻挡非授权应用程序的方法,于处理单元210载入并执行相应于母板支持服务的初始化事件的程序码时实施。此方法开始于从应用程序取得输入参数(步骤s511),并判断输入参数中是否包含数字证书(步骤s513)。当输入参数中不包含数字证书时(步骤s513中“否”的路径),接着判断状态数据库是否处于初始状态(步骤s571)。于步骤s571,若状态数据库中的版本编号为初始状态时,则判断状态数据库为初始状态。当状态数据库处于初始状态时(步骤s571中“是”的路径),乱数产生预定长度的会话密钥(sessionkey),储存会话密钥至一个文件,并且储存文件至储存装置270中只能被母板支持服务及应用程序存取的路径(步骤s573),接着,回复文件的路径及文件名给应用程序(步骤s575)。于步骤s273,母板支持服务可于目录“/data”下相应于此软件包名称的私有文件夹下建立一份新的文件,并且设定此文件的权限为只能被相应于软件包名称的指定uid的处理读取,其中uid用来唯一识别此应用程序于执行时的处理,并且将会话密钥储存至此文件。须了解的是,在文件系统的权限控制下,只有具有此软件包名称的应用程序才能存取目录“/data”下相应于此软件包名称的私有文件夹中的任何文件。此外,在文件系统的权限控制下,只有具有相应于软件包名称的指定uid的处理才能存取此文件。因此,只有通过文件系统的权限检查的应用程序才可读取文件中的会话密钥并使用会话密钥加密传送给母板支持服务的数据,以及解密从母板支持服务接收的数据。当状态数据库不处于初始状态时(步骤s571中“否”的路径),终止母板支持服务的实例化,用以让母板支持服务的实例化失败,并且回复错误消息给应用程序(步骤s591)。当输入参数中包含数字证书时(步骤s513中“是”的路径),使用非易失性存储器220中储存的公钥解密数字证书(步骤s531),接着,判断是否解密成功(步骤s533)。于步骤s533,当解密后的内容可解析出电子申请表,范例参考表1所示,则代表解密成功;反之,解密失败。当解密失败时(步骤s533中“否”的路径),执行之前所述的步骤s591。当解密成功时(步骤s533中“是”的路径),还判断状态数据库是否处于初始状态(步骤s551)。当状态数据库处于初始状态时(步骤s551中“是”的路径),将状态数据库中的客户识别码及版本编号更新为数字证书中的客户识别码及版本编号(步骤s559),接着执行之前所述的步骤s573及s575。当状态数据库不处于初始状态时(步骤s551中“否”的路径),执行后续三个判断:解密数据中的客户识别码是否相符于状态数据库中储存的客户识别码(步骤s553);解密数据中的版本编号是否较新于状态数据库中的版本编号(步骤s555);以及解密数据中的版本编号是否较旧于状态数据库中的版本编号(步骤s557)。当解密数据中的客户识别码不相符于状态数据库中储存的客户识别码时(步骤s553中“否”的路径),代表此应用程序可能为黑客植入的非授权应用程序,接着执行之前所述的步骤s591。当解密数据中的客户识别码相符于状态数据库中储存的客户识别码但解密数据中的版本编号较旧于状态数据库中的版本编号时(步骤s553中“是”的路径接着步骤s555中“否”的路径并接着步骤s557中“是”的路径),代表此应用程序可能为黑客窃取旧的授权应用程序试图进行攻击,接着执行之前所述的步骤s591。当解密数据中的客户识别码相符于状态数据库中储存的客户识别码及解密数据中的版本编号相同于状态数据库中的版本编号时(步骤s553中“是”的路径接着步骤s555中“否”的路径并接着步骤s557中“否”的路径),代表此为授权应用程序,接着执行之前所述的步骤s573及步骤s575。当解密数据中的客户识别码相符于状态数据库中储存的客户识别码及解密数据中的版本编号较新于状态数据库中的版本编号时(步骤s553中“是”的路径接着步骤s555中“是”的路径),代表此为新版本的授权应用程序,接着执行之前所述的步骤s559、步骤s573及步骤s575。以下举出数个情境来说明图5a及5b所述的方法:图6a至6f是依据本发明实施例的应用程序验证示意图。应用程序验证于处理单元210载入及执行母板支持服务610及应用程序630的程序码时实施。图6a至6f中所示的数据传递又可称为处理程序间通信(ipc,inter-processcommunication)。参考图6a,假设应用程序开发者尚未申请数字证书,此时,状态数据库650_1处于初始状态,举例来说,版本编号v=0及客户编号为cid=0:母板支持服务610接收到应用程序630发送的不包含数字证书的实例化请求“newbsservice(c_key=null)”及发现状态数据库650_1处于初始状态(沿着步骤s513中“否”及步骤s571中“是”的路径)。接着,母板支持服务610回复储存装置270中储存会话密钥的路径及文件名“path/file_name(sessionkey)”给应用程序630(步骤s575)。于是,应用程序630可读取文件中的会话密钥并使用会话密钥加密传送给母板支持服务610的数据,以及解密从母板支持服务610接收的数据。参考图6b,假设应用程序开发者已申请数字证书且第一次使用母板支持服务610,此时,状态数据库650_1处于初始状态,举例来说,版本编号为v=0及客户编号为cid=0:母板支持服务610接收到应用程序630发送的包含数字证书的实例化请求“newbsservice(c_key)”后,成功解密数字证书670_1及发现状态数据库650_1处于初始状态(沿着步骤s513中“是”、步骤s533中“是”及步骤s551中“是”的路径)。接着,母板支持服务610更新状态数据库650_1成为版本编号为v=1及客户编号为cid=a(如状态数据库650_2所示)(步骤s559),以及,回复储存装置270中储存会话密钥的路径及文件名“path/file_name(sessionkey)”给应用程序630(步骤s575)。于是,应用程序630可读取文件中的会话密钥并使用会话密钥加密传送给母板支持服务610的数据,以及解密从母板支持服务610接收的数据。参考图6c,假设黑客想冒用应用程序开发者而试图通过母板支持服务610危害电子装置,此时的状态数据库650_2中的版本编号为v=1及客户编号为cid=a:母板支持服务610接收到应用程序630发送的包含数字证书的实例化请求“newbsservice(c_key)”,成功解密数字证书670_2,发现状态数据库650_2不处于初始状态及解密数据中的客户识别码cid=b不相符于状态数据库650_2中储存的客户识别码cid=a(沿着步骤s513中“是”、步骤s533中“是”、步骤s551中“否”及步骤s553中“否”的路径)。接着,母板支持服务610终止母板支持服务610的实例化,并且回复错误消息err给应用程序(步骤s591)。参考图6d,假设应用程序开发者更新数字证书为新版本,此时,状态数据库650_2中的版本编号为v=1及客户编号为cid=a:母板支持服务610接收到应用程序630发送的包含数字证书的实例化请求“newbsservice(c_key)”,成功解密数字证书670_3,发现状态数据库650_2不处于初始状态,解密数据中的客户识别码cid=a相符于状态数据库650_2中储存的客户识别码cid=a且解密数据中的版本编号v=2较新于状态数据库650_2中储存的版本编号v=1(沿着步骤s513中“是”、步骤s533中“是”、步骤s551中“否”、步骤s553中“是”及步骤s555中“是”的路径)。接着,母板支持服务610更新状态数据库650_2成为版本编号为v=2(如状态数据库650_2所示)(步骤s559),以及,回复储存装置270中储存会话密钥的路径及文件名“path/file_name(sessionkey)”给应用程序630(步骤s575)。于是,应用程序630可读取文件中的会话密钥并使用会话密钥加密传送给母板支持服务610的数据,以及解密从母板支持服务610接收的数据。参考图6e,假设黑客窃取应用程序开发者申请过的旧版本数字证书并试图通过母板支持服务610危害电子装置,此时,状态数据库650_3中的版本编号为v=2及客户编号为cid=a:母板支持服务610接收到应用程序630发送的包含数字证书的实例化请求“newbsservice(c_key)”,成功解密数字证书670_4,发现状态数据库650_3不处于初始状态,解密数据中的客户识别码cid=a相符于状态数据库650_2中储存的客户识别码cid=a但解密数据中的版本编号v=1较旧于状态数据库650_3中储存的版本编号v=2(沿着步骤s513中“是”、步骤s533中“是”、步骤s551中“否”、步骤s553中“是”、步骤s555中“否”及步骤s557中“否”的路径)。接着,母板支持服务610终止母板支持服务610的实例化,并且回复错误消息err给应用程序(步骤s591)。参考图6f,假设黑客假造数字证书并试图通过母板支持服务610危害电子装置:母板支持服务610于接收到应用程序630发送的包含数字证书的实例化请求“newbsservice(c_key)”,且解密数字证书670_5时发现为乱码(沿着步骤s513中“是”及步骤s533中“否”的路径)。母板支持服务610终止母板支持服务610的实例化,并且回复错误消息err给应用程序(步骤s591)。图7是依据本发明实施例的阻挡非授权应用程序的装置的方块图。图8是依据本发明实施例的阻挡非授权应用程序的装置的方法流程图。于一些实施例中,阻挡非授权应用程序的装置可包含服务器(server)710。于另一些实施例中,阻挡非授权应用程序的装置可包含客户端(client)730。于另一些实施例中,阻挡非授权应用程序的装置可包含服务器710及客户端730。服务器710及客户端730中的任一个包含一或多个处理单元,当载入并执行相关软件或韧体时实施以下所述功能。服务器710储存公钥711,而客户端730储存应用程序731,应用程序731包含数字证书733。服务器710从客户端730接收到包含数字证书733的请求,数字证书733包含私钥733a及电子申请表733b(步骤s810)。接着,服务器710使用公钥711解密数字证书以得到第一计算结果(步骤s820),使用安全散列算法(securehashalgorithm),例如sha-256算法,对数字证书733中的电子申请表733b进行计算以得到第二计算结果(步骤s830),并且比较第一及第二计算结果以产生验证结果(步骤s840)。如果第一及第二计算结果不相符,则代表此请求非法,服务器710回复请求拒绝给客户端730,使得客户端730结束应用程序731的执行(步骤s850)。如果第一及第二计算结果相符,则代表此请求合法,产生会话密钥713(步骤s860),于指定目录下建立一份文件715(步骤s870),从数字证书733中的申请表733b取得uid,设定文件715的存取权限为只能被此uid的处理读取(步骤s880),将会话密钥713储存至文件715(步骤s890),以及回复请求允许给客户端730(步骤s850’)。客户端730于指定目录下读取文件715中的会话密钥713(步骤s8100),以及使用会话密钥713加密通信数据735(步骤s8110)。客户端730及服务器710间传送及接收加密后的通信数据735(步骤s8120)。本发明实施例提出的阻挡非授权应用程序的方法以及使用该方法的装置,将数字证书整合入设备制造者开发的应用程序。每次应用程序请求操作母板支持服务时,操作母板支持服务检查数字证书是否合法,并且在侦测到请求为非法时,阻挡应用程序操作母板支持服务,用以避免硬件遭受恶意攻击。虽然图2及3中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,图4及5的方法流程图采用特定的顺序来执行,但是在不违法发明精神的情况下,熟悉本项技术的人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1