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

一种应用系统的防篡改安装方法、系统、介质及设备

文献发布时间:2023-06-19 19:30:30


一种应用系统的防篡改安装方法、系统、介质及设备

技术领域

本发明属于防篡改领域,尤其涉及一种应用系统的防篡改安装方法、系统、介质及设备。

背景技术

传统为服务器安装系统时,需要先下载几GB大小的系统镜像文件,然后再通过刻录软件将系统镜像文件刻录到U盘等存储介质中。然后将U盘等存储介质接入服务器并配置由U盘等存储介质起动以后,重启机器后才能进入安装过程。根据提示进行安装,安装完成后再重启进入安装后的系统。由于安装、配置的过程比较繁琐,当配置出现错误后,还需要重启机器重新进入安装过程,直到安装完成。

发明内容

本发明所要解决的技术问题是提供一种应用系统的防篡改安装方法、系统、介质及设备。

本发明解决上述技术问题的技术方案如下:一种应用系统的防篡改安装方法,包括:

步骤1,对请求端进行网络配置,基于网络配置结果建立所述请求端与服务端之间端通信链接;

步骤2,基于通信链接,在HTTPS协议下,基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证,生成第一验证结果;

步骤3,当所述第一验证结果为通过时,下载第一压缩文件initramfs至所述请求端,基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs,基于所述第二压缩文件以及所述请求端获取的身份信息在所述服务端下载第三压缩文件rootfs,根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装。

本发明的有益效果是:通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装的过程为:

将所述服务端生成的随机密钥写入所述第三压缩文件中,同时将初始化程序bootloader存储至所述第三压缩文件中,根据所述第二压缩文件中的安装程序以及所述随机密钥对待安装磁盘进行加密,通过所述安装程序将所述初始化程序写入加密后的待安装磁盘中。

进一步,所述基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs之后还包括:

对所述第一压缩文件的第一哈希值以及所述第二压缩文件的第二哈希值进行验证,当验证不通过时,发出示警信息并停止安装。

进一步,所述基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证具体为:

按照预设要求选取网络配置结果中的任一网卡,验证在该网卡下构建的测试通讯链路是否无异常。

本发明解决上述技术问题的另一种技术方案如下:一种应用系统的防篡改安装系统,包括:

通讯模块用于:对请求端进行网络配置,基于网络配置结果建立所述请求端与服务端之间端通信链接;

验证模块用于:基于通信链接,在HTTPS协议下,基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证,生成第一验证结果;

安装模块用于:当所述第一验证结果为通过时,下载第一压缩文件initramfs至所述请求端,基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs,基于所述第二压缩文件以及所述请求端获取的身份信息在所述服务端下载第三压缩文件rootfs,根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装。

本发明的有益效果是:通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

进一步,所述根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装的过程为:

将所述服务端生成的随机密钥写入所述第三压缩文件中,同时将初始化程序bootloader存储至所述第三压缩文件中,根据所述第二压缩文件中的安装程序以及所述随机密钥对待安装磁盘进行加密,通过所述安装程序将所述初始化程序写入加密后的待安装磁盘中。

进一步,所述基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs之后还包括:

对所述第一压缩文件的第一哈希值以及所述第二压缩文件的第二哈希值进行验证,当验证不通过时,发出示警信息并停止安装。

进一步,所述基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证具体为:

按照预设要求选取网络配置结果中的任一网卡,验证在该网卡下构建的测试通讯链路是否无异常。

本发明解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述任一项所述的方法。

本发明的有益效果是:通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

本发明解决上述技术问题的另一种技术方案如下:一种电子设备,包括上述存储介质、执行上述存储介质内的指令的处理器。

本发明的有益效果是:通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

附图说明

图1为本发明一种应用系统的防篡改安装方法实施例提供的流程示意图;

图2为本发明一种应用系统的防篡改安装系统实施例提供的结构框架图;

图3为本发明一种应用系统的防篡改安装方法实施例提供的镜像文件组成示意图;

图4为本发明一种应用系统的防篡改安装方法实施例提供的网络安装数据流示意图;

图5为本发明一种应用系统的防篡改安装方法实施例提供的防止篡改示意图;

图6为本发明一种应用系统的防篡改安装方法实施例提供的磁盘加密数据流示意图。

具体实施方式

以下对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,一种应用系统的防篡改安装方法,包括:

步骤1,对请求端进行网络配置,基于网络配置结果建立所述请求端与服务端之间端通信链接;

步骤2,基于通信链接,在HTTPS协议下,基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证,生成第一验证结果;

步骤3,当所述第一验证结果为通过时,下载第一压缩文件initramfs至所述请求端,基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs,基于所述第二压缩文件以及所述请求端获取的身份信息在所述服务端下载第三压缩文件rootfs,根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装。

在一些可能的实施方式中,通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

需要说明的是,身份信息即为登陆的名称以及密码。也可以根据实际情况调整对于身份信息的定义,身份信息即为可以验证身份的信息,随机验证码也可以,在此不做过多限定。

如图3所示,一个系统镜像文件中主要包括以下几部分:

bootloader加载系统内核和initramfs的引导器。

initramfs驱动硬件工作的临时文件系统。

squashfs运行安装配置目标系统的只读文件系统。

repo包含安装目标文件系统的软件包。

在以上安装过程中主要存在以下问题:

镜像文件比较大,分发到多个机房以及刻录需要耗费太多的时间。

系统镜像文件本身对自己没有验证机制,镜像文件可能会被修改并在其中放入恶意程序后再重新打包,安装后便于其利用。

安装后可以挂载系统盘通过chroot技术对目标文件系统进行修改。

目前防止系统被篡改较常用的方法有以下几种:

1.在系统中部署监控程序,当存在非法进程时发送告警通知。

优点:实现简单,配置比较灵活。

缺点:修改监控程序的配置或替换监控程序容易绕过,导致表面看起来正常,使非法进程很难被发现。

2.通过LUKS加密磁盘

优点:能够保护数据安全,很难被解密。

缺点:系统盘解密需要人工输入密钥且密钥不能太复杂。容易被暴力破解。

如图4所示,为了避免存在对系统安装过程中依赖的initramfs,squashfs,rootfs模块修改的可能。所以将系统安装过程中需要的所有模块全部存放到服务端。对外分发只有几MB大小并支持网络引导的镜像。由于中心服务端部署在公网上,所以在通过网络引导安装过程中,所有的文件全部通过HTTPS协议和Basic Auth认证技术实现文件的下载,能避免下载过程数据被篡改以及恶意下载。其过程如下:

1.下载支持网络引导的镜像并刻录到U盘,然后从U盘启动。

2.从U盘启动后可以针对某个网卡进行网络配置,使其能与公网上的中心服务端建立连接,然后通过HTTPS协议向中心服务端发出请求下载initramfs,再输入用户名和密码验证通过后则可以下载initramfs。

2.1在U盘启动后会显示出识别出的网卡列表,其中包括网卡名称、mac地址、网卡型号。格式如下:

2.2选中某一网卡后根据提示配置其IP、掩码、网关。格式如下:

IP:192.168.2.5

Netmask:255.255.255.0

Gateway:192.168.2.1

2.3在配置完网络后,会测试网络与是否能连接到公网,如果网络不通给出提示重新配置,否则提示要求输入用户名和密码,格式如下:

用户名:xxxx

密码:xxxx

2.4通过HTTPS协议并携带输入的用户名和密码请求中心服务端下载initramfs。中心服务端验证用户名和密码的正确性,如认证失败安装过程停止。

3.在initramfs中通过HTTPS协议以及上一步输入的用户名和密码到中心服务端下载对应的squashfs。同理,再由squashfs到中心服务端下载rootfs。

4.由squashfs中的安装程序将rootfs安装到目标磁盘中。

另外,如图5所示,Linux系统中共定义了64种信号,其中SIGINT,SIGQUIT,SIGTERM对于任意进程的默认行为为结束当前进程。SIGINT信号通过键盘CTRL+C发出,用于终止当前进程。

SIGQUIT信号通过键盘CTRL+发出,终止当前进程的同时,产生core文件。SIGTERM信号能过Linux系统中的kill命令产生并杀死进程。

由于安装程序在执行过程中能够响应系统信号并且集成了shell窗口,所以采取了以下措施阻止进入安装环境的shell。

1.安装程序主动忽略系统信号SIGINT,SIGQUIT,SIGTERM,防止其杀死当前进程后然后进入shell,从而对安装环境进行篡改。

2.取消安装程序的shell窗口,防止切入到shell窗口进行篡改。

在系统镜像文件中的squashfs文件系统嵌入验证模块和解密模块,将验证模块和解密模块编入到一个二进制文件中,验证模块验证各个部分的正确性,解密模块解密rootfs并安装到磁盘。如果替换验证和解密模块的调用者,也因rootfs无法解密而安装失败。其过程如下:

1.由验证模块验证initramfs和squahfs模块的HASH值是否与自己记录的一致。如不一致则退出安装过程。

2.验证通过后由解密模块将rootfs解密并由安装程序将其安装到磁盘上。

如图6所示,当挂载采用全盘加密技术的系统盘到其它系统上时,需要人工办理入密钥才能挂载成功,这样即可防止通过chroot技术对目标系统进行篡改。另外为了加强密钥的强度,使用了键盘不能输入的字符作为密钥,同时也为了省去系统每次重启都需要入工输入密钥的步骤,所以将密钥内嵌至bootloader,由bootloader自动解密并挂载系统盘。

为了增强系统的安全性,由服务端随机生成不可读的LUKS密钥。从而使其从dump的数据当中很难被搜索和分析,更无法通过键盘输入。其过程如下:

1.在方案一步骤4当中,由请求端向服务端请求下载rootfs。

2.服务端生成随机、不可读的密钥文件写入到rootfs当中,同时生成对应的bootloader。

3.安装程序使用rootfs当中的密钥文件通过LUKS加密系统盘。

4.安装程序将bootloader写入磁盘的前62个扇区当中。

5.当机器重启后bootloader使用内置的密钥解密系统盘并继续进行引导。

优选地,在上述任意实施例中,所述根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装的过程为:

将所述服务端生成的随机密钥写入所述第三压缩文件中,同时将初始化程序bootloader存储至所述第三压缩文件中,根据所述第二压缩文件中的安装程序以及所述随机密钥对待安装磁盘进行加密,通过所述安装程序将所述初始化程序写入加密后的待安装磁盘中。

优选地,在上述任意实施例中,所述基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs之后还包括:

对所述第一压缩文件的第一哈希值以及所述第二压缩文件的第二哈希值进行验证,当验证不通过时,发出示警信息并停止安装。

优选地,在上述任意实施例中,所述基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证具体为:

按照预设要求选取网络配置结果中的任一网卡,验证在该网卡下构建的测试通讯链路是否无异常。

如图2所示,一种应用系统的防篡改安装系统,包括:

通讯模块100用于:对请求端进行网络配置,基于网络配置结果建立所述请求端与服务端之间端通信链接;

验证模块200用于:基于通信链接,在HTTPS协议下,基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证,生成第一验证结果;

安装模块300用于:当所述第一验证结果为通过时,下载第一压缩文件initramfs至所述请求端,基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs,基于所述第二压缩文件在所述服务端下载第三压缩文件rootfs,根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装。

在一些可能的实施方式中,通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

优选地,在上述任意实施例中,所述根据所述第二压缩文件中的安装程序对所述第三压缩文件进行安装的过程为:

将所述服务端生成的随机密钥写入所述第三压缩文件中,同时将初始化程序bootloader存储至所述第三压缩文件中,根据所述第二压缩文件中的安装程序以及所述随机密钥对待安装磁盘进行加密,通过所述安装程序将所述初始化程序写入加密后的待安装磁盘中。

优选地,在上述任意实施例中,所述基于所述第一压缩文件以及所述请求端获取的身份信息在所述服务端下载第二压缩文件squashfs之后还包括:

对所述第一压缩文件的第一哈希值以及所述第二压缩文件的第二哈希值进行验证,当验证不通过时,发出示警信息并停止安装。

优选地,在上述任意实施例中,所述基于所述请求端发送至所述服务端的请求信息对通讯链接进行验证具体为:

按照预设要求选取网络配置结果中的任一网卡,验证在该网卡下构建的测试通讯链路是否无异常。

本发明解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述任一项所述的方法。

在一些可能的实施方式中,通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

本发明解决上述技术问题的另一种技术方案如下:一种电子设备,包括上述存储介质、执行上述存储介质内的指令的处理器。

在一些可能的实施方式中,通过对于通讯链接的验证可以保证在下载资源的过程中不会出现因通讯中断而导致的下载失败重复下载等状况。另外,每一个压缩包的下载都需要基于前序压缩包下载完成的基础上进行,也就是说,若当前下载的压缩包出现问题,前序压缩包还可以进行后续的使用,只需要重复对于当前压缩包的下载即可。通过本方案可以实现对于应用系统的安全下载,同时通过逐步下载的方式也可以防止下载过程中被恶意篡改的情况。

读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。

上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术分类

06120115938492