掌桥专利:专业的专利平台
掌桥专利
首页

一种基于智能合约的设备安全性检测方法和系统

文献发布时间:2023-06-19 11:19:16


一种基于智能合约的设备安全性检测方法和系统

技术领域

本发明涉及区块链技术领域,更具体的,涉及一种基于智能合约的设备安全性检测方法和系统。

背景技术

现有的设备(特别是手机)安全检测技术将检测数据存储在服务器,但这种存储技术存在着较大的不足。一方面,用户获取到的数据不能保证真实,因为数据有可能被篡改,而且任何人都有可能拿到用户数据,因为服务器存储的安全性并不高,容易造成数据泄露。另一方面,安全扫描软件无法检测自身是否被修改,假设应用软件被修改,却仍旧向用户请求了大量权限,整个手机就会暴露在不安全的环境当中。

发明内容

为了应对数据保存和应用维护等传统安全检测技术解决不了的问题,本发明提出了一种基于智能合约的设备安全性检测系统,包括:智能合约生成模块,其基于所述安全性检测系统的源代码进行计算,生成待核验智能合约地址;智能合约检测模块,其基于所述待核验智能合约地址向区块链请求预先存储的初始智能合约,如果成功获得,则开始进行设备安全性检测;其中,所述智能合约的部署地址通过如下方法生成:对出厂的设备安全性检测系统的源代码进行相同方法的计算,然后将计算值部署到区块链上。

可选地,智能合约检测模块在成功获得所述初始智能合约后,运行所述初始智能合约,开始进行设备安全性检测。

可选地,智能合约检测模块将检测结果与安全组的结果相比较,如果在安全组中,则认为设备为安全的,其中,所述检测结果为检测报告,所述检测报告是一组由对设备信息的描述所组成的数值,所述安全组为是一个集合,集合中是一组数值,所述数值为在不同环境下通过安全检测的所述设备的检测报告计算值,其中,计算方法与生成待核验智能合约地址和初始智能合约地址的方法相同。

可选地,本发明的系统还包括:密钥生成模块,其生成设备专属的公私密钥对,并用公钥将检测结果用公钥加密后上传到区块链。

可选地,本发明的系统还包括:智能合约上传模块,其将智能合约检测模块的检测结果经过所述密钥生成模块生成的公钥加密后上传到区块链;智能合约下载模块,其从区块链下载检测结果并使用所述密钥生成模块生成的私钥解密。

本发明提出一种基于智能合约的设备安全性检测方法,包括:

对用于检测设备安全性的安全检测软件的源代码进行计算,生成待核验智能合约地址;

基于所述待核验智能合约地址向区块链请求预先存储的初始智能合约,如果成功获得,则开始进行设备安全性检测;

其中,所述智能合约的部署地址通过如下方法生成:对出厂的设备安全性检测系统的源代码进行相同方法的计算,然后将计算值部署到区块链上。

可选地,在成功获得所述初始智能合约后,运行所述初始智能合约,开始进行设备安全性检测。

可选地,将检测结果与安全组的结果相比较,如果在安全组中,则认为设备为安全的,其中,所述检测结果为检测报告,所述检测报告是一组由对设备信息的描述所组成的数值,所述安全组为是一个集合,集合中是一组数值,所述数值为在不同环境下通过安全检测的所述设备的检测报告计算值,其中,计算方法与生成待核验智能合约地址和初始智能合约地址的方法相同。

可选地,用设备的公钥将检测结果加密后上传到区块链,以及用设备的私钥对从区块链下载的检测结果进行解密。

可选地,所述计算为哈希。

本发明的系统和方法保证了对设备的安全性检测是可靠的,其他的有益效果还包括:

1)保证了服务器上的检测数据是真实可信的。

2)杜绝了非授权的人拿到用户的数据,保证了用户的隐私安全。

3)防止软件代码被篡改。

附图说明

为了更容易理解本发明,将通过参照附图中示出的具体实施方式更详细地描述本发明。这些附图只描绘了本发明的典型实施方式,不应认为对本发明保护范围的限制。

图1显示了本发明的系统的架构图。

图2显示了本发明的系统的一个实施例的流程图。

图3显示了本发明的系统的一个实施例的流程图。

图4显示了本发明的系统的一个实施例的流程图。

图5显示了本发明的系统的一个实施例的流程图。

图6显示了本发明的方法的流程图。

具体实施方式

下面参照附图描述本发明的实施方式,以便于本领域的技术人员可以更好的理解本发明并能予以实施,但所列举的实施例不作为本发明的限定,在不冲突的情况下,下述的实施例及实施例中的技术特征可以相互组合,其中相同的部件用相同的附图标记表示。

如图1所示,根据本发明的一个方面,本发明提出一种安全性检测系统,该系统包括智能合约生成模块和智能合约检测模块。

智能合约生成模块基于所述安全性检测系统的源代码进行计算,生成待核验智能合约地址。

本发明的安全性检测系统还包括智能合约检测模块,智能合约检测模块基于所述待核验智能合约地址向区块链请求预先部署的初始智能合约。其中,所述预先存储的初始智能合约通过如下方式生成:安全检测系统在出厂之前,其发行方生成该初始智能合约,该初始智能合约是正确的。初始智能合约实现如下功能:对安全检测系统的源代码进行计算(例如哈希),将该计算值作为智能合约地址,将该智能合约部署到区块链上。其中,智能合约生成模块的计算方法与发行方计算初始智能合约的方法相同。

因此,如果安全性检测系统自身的代码如果被修改,则智能合约检测模块计算出的智能合约地址是错误的,无法从区块链网络获取到正确的初始智能合约,那么该安全性检测系统将停止对设备的检测工作。如果智能合约检测模块能成功请求到所述初始智能合约,则智能合约开始工作,安全性检测系统开始对设备进安全检测。

进一步,下载所述初始智能合约后,安全性检测系统运行所述初始智能合约,对设备进行检测,检测结果可以与安全组进行匹配。如果检测结果在安全组中,则认为设备是安全的,否则是不安全的。

其中,所述检测报告是一组由对设备信息的描述所组成的键值对。以手机为例,不同的手机对应不同的检测报告。检测报告的字段包括:手机信息和通过手机信息分析出的结果。其中手机信息包括:手机系统、处理器型号、网络类型等,由手机信息分析出的结果包括:是否越狱、是否使用了网络代理、是否数据流量异常等。

其中,本发明所述安全组是一个集合,集合中是一组哈希,所述哈希为市面上所有已通过安全检测的机型所生成的检测报告最终计算而成。安全组用于提供对照,当用户手机的检测报告所计算的哈希不在集合里时,可以认定手机不安全。检测报告与安全组的对应关系如图2所示。安全组由设备制造商或安全性检测系统的发行商生成,可以上传到区块链供智能合约检测模块下载。

可选地,本发明的安全性检测系统还包括密钥生成模块,用于给本设备生成公私密钥对。并将公钥和私钥文件存储在设备的安全内存中。

可选地,本发明的安全性检测系统还包括智能合约上传模块,为了保证每一次检测都有记录,检测结果或检测报告由智能合约上传模块通过设备的公钥加密后上传到区块链。智能合约上传模块上传到区块链的检测结果、检测报告或安全组(下面详述)都由秘钥生成模块生成的秘钥加密后上传到区块链,实现检测留痕。而且,由于是加密数据,上传到区块链链他人也解密不了,保证了上链的数据是安全的。

优选地,与智能合约上传模块相对应,本发明的系统还包括智能合约下载模块,其从区块链下载加密数据并解密,从而密钥的调用也掌控在智能合约里。在一个实施例中,检测完成后,经过用户授权,智能合约下载模块从区块链获取加密数据并在本地解密,本发明的系统在处理后可以将解密数据上传到其他的服务器。

优选地,第一次检测完成后,每隔指定时间,安全性检测系统的智能合约重复执行安全检测流程。

下面以手机上使用的手机安全性检测应用软件为例来描述本发明,但是本发明的保护范围不限于此。

安全检测应用软件在出厂之前,其发行方生成安全检测的智能合约,智能合约实现如下功能:基于安全检测应用软件的源代码进行哈希,将该哈希作为智能合约地址,将该智能合约部署到区块链上。

安全检测应用软件出厂后,由发行方(例如手机制造商)对该安全检测应用软件提供检测结果的评定标准,即检测报告。所有的检测报告组合起来,成为安全组。当哈希不包括在安全组内时,视为设备不安全。发行方将安全组上传到区块链上,以保证安全组不被篡改,具有公信力。

当用户在设备端下载并运行该安全检测应用软件后,登录后设备获得审批,加入区块链成为节点。该安全检测应用软件根据应用源码计算智能合约地址,向区块链获取智能合约。因此,如果安全检测应用软件自身的代码如果被修改,则计算出的智能合约地址是错误的,无法从区块链网络获取到正确的智能合约,该安全检测应用软件将不会继续运行。

如果成功获取智能合约,智能合约进行安全检测。为了保证每一次检测都有记录,检测结果与检测报告由设备的公钥进行加密后上传到区块链。这里,设备中已经生成公私密钥对,如果设备未生成过密钥对,则先生成密钥对,并将公钥和私钥文件存储在设备的安全内存中。

需要说明的是,从安全检测到检测报告加密的过程由智能合约完成,服务器无法获取该设备的检测报告(即检测数据),如果服务器需要检测报告,可以向设备(即用户)请求授权,在用户授权后,服务器才可以经由该设备用私钥解密拿到区块链上的检测报告。

在一个实施方式中,如图3-4所示,安全检测应用软件在出厂之前,其发行方生成安全检测的智能合约,智能合约实现如下功能:

1)对设备进行安全检测得到设备信息,对设备的检测包括检测设备的硬件信息(如系统类型、系统版本、处理器型号等)、软件信息(如本机安装的软件是否异常,内存中是否隐藏着木马软件,后台是否运行摄像或录音程序等)、网络状态(如网络类型,IP地址,子网掩码,广播地址等)。

2)智能合约对检测到的设备信息进行分析得出检测报告,通过检测报告计算出哈希。

3)将该哈希与安全组进行对照,得到检测结果。如果哈希在安全组内,确定设备为安全,如哈希不在安全组内,确定设备不安全。

4)将此次安全检测的检测报告和检测结果通过手机内保存的公钥文件进行加密上传到区块链上。如此保证每一次检测都有记录。其中,当设备内没有密钥时,可以先生成密钥文件,存储到设备中再加密上传。

编写完智能合约后,发行方根据应用源码计算出一个哈希,将这个哈希作为智能合约地址部署到区块链上,所有区块链节点都可以拿到智能合约并运行。智能合约部署到区块链上可确保代码不被篡改,一旦代码被修改了(即使改了一个字符)。设备上的应用软件计算出的哈希都是错误的,该应用软件也无法拿到智能合约,获取不到智能合约,则应用软件无法正常运行,确保了应用软件无法被篡改。并且基于区块链的安全性,也确保了智能合约代码真实可信。

进一步,除了部署智能合约以外,发行方可以针对市面上所有手机型号,并在所有使用场景下测试,获取这些手机通过安全检测后的哈希,作为安全组上传到链上,确保安全组作为比对证据的可靠性。

下面参照图5详细描述应用软件完成的功能。

用户在自己的设备(例如手机)上安装该设备案安全检测应用软件,进行账号登录,登录后获得审批,则该设备成为区块链节点。成为节点后,应用软件手续通过源代码计算出待校验智能合约地址,根据该待校验智能合约地址去区块链上获取智能合约。在这个过程中会出现两种情况:

a、源码被篡改。那么该应用软件计算出的智能合约地址错误,在区块链上拿不到智能合约。无法运行智能合约,安全检测软件认为自身代码被修改,处于不安全的环境,则不会继续运行。

b、源码未被篡改。该应用软件计算出的智能合约地址正确,可以从区块链获得智能合约,开始进行设备的安全检测。

优选地,应用软件对于每一次的检测结果都进行记录,保证数据可追查。应用软件中的智能合约将检测结果与检测报告通过设备的公钥加密,上传到区块链上。当用户设备内没有密钥文件时,智能合约先生成密钥对保存在设备中,再读取密钥文件进行加密。当用户想要获取检测记录时,应用软件使用设备的私钥文件对从区块链获得的检测记录解密。

基于这种非对称加密机制的保密性,除了该设备,其余设备无法获取本设备的检测数据。

另外,智能合约工作过程中,数据不向服务器(例如存储应用软件的服务器)暴露,如果服务器需要获取用户的检测数据进行收集统计,需要向用户请求授权。授权分为三个层级:

a、不授权上传。

b、仅授权上传检测结果到服务器。

c、授权上传检测结果和检测报告到服务器。

如果用户选择授权,根据授权级别,应用软件从区块链上获取本设备的检测数据,通过私钥解密后上传到服务器,服务器才可以使用该份检测结果进行分析研究,以便更新病毒库,优化检测技术和杀毒技术。

根据本发明的另一个方面,本发明的基于智能合约的安全性检测方法包括:

S1,对用于检测设备安全性的安全检测软件的源代码进行计算,生成待核验智能合约地址。优选地,所述计算为哈希。

S2,根据该待核验智能合约地址从区块链获得初始智能合约,如果所述源代码被更改,则无法获得初始智能合约,则所述安全检测软件的源代码安全性受损,发出安全警报。

其中初始智能合约通过如下方法计算得到:安全检测软件的发行方用于检测设备安全性的安全检测软件的源代码进行计算,生成初始智能合约地址,并部署到区块链上。可选地,所述计算为哈希。其中所述计算与S1中的相同,优选地,所述计算为哈希。

S3,运行所述初始智能合约,对设备进行安全检测,将检测结果与安全组进行匹配。

所述安全组的含义与之前所描述的相同。

S4,将检测结果和检测报告上传到区块链上。

以上所述的实施例,只是本发明较优选的具体实施方式,本说明书使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

相关技术
  • 一种基于智能合约的设备安全性检测方法和系统
  • 一种基于智能合约知识图谱的合约缺陷检测方法
技术分类

06120112880613