CN114637968A - 一种基于rsa算法的软件安全升级和启动方法 - Google Patents
一种基于rsa算法的软件安全升级和启动方法 Download PDFInfo
- Publication number
- CN114637968A CN114637968A CN202210266655.8A CN202210266655A CN114637968A CN 114637968 A CN114637968 A CN 114637968A CN 202210266655 A CN202210266655 A CN 202210266655A CN 114637968 A CN114637968 A CN 114637968A
- Authority
- CN
- China
- Prior art keywords
- file
- mcu
- data
- server
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012795 verification Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 5
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 claims description 3
- 230000006837 decompression Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于RSA算法的软件安全升级和启动方法,包括如下安全升级和启动步骤:S1、嵌入式linux系统与单片机(MCU)通过串口通讯,单片机外接加密芯片,在单片机中灌装RSA和3DES相关加解密算法,S2、对原始数据压缩,通过业务服务器加密、签名,本发明通过单片机外接加密芯片,在单片机中灌装RSA和3DES相关加解密算法,存储在嵌入式系统上的可执行文件仅能在当前嵌入式系统上才能解密,使得无需更改嵌入式linux的运维方式,即保护了关键文件的安全性,又不给嵌入式系统的运维增加难度,即使可执行文件被复制到其他同环境的嵌入式系统,可执行文件依然无法运行,同时可执行文件无法被反编译。
Description
技术领域
本发明涉及计算机嵌入式系统技术领域,具体为一种基于RSA算法的软件安全升级和启动方法。
背景技术
在嵌入式系统领域,软硬件容易被复制利用,以至于多年研究的成果被盗用,在软件信息安全上存在较大的风险,传统做法上,会利用嵌入Linux系统的防火墙方案、设置更为复杂的登录密码、也可以进行ssh、ftp封锁,传统的方案可以一定程度防止非法用户的登录,但仍无法避免软件被复制的风险,一旦软件可执行文件被复制,可以利用同样的嵌入式硬件环境直接运行,另一种方式是对可执行文件进行反向编译,此类逆向分析过程可以推导可执行程序的原理、算法、结构等关键信息,包括源代码也可以生成,文件内存启动是一个种文件无需存在于磁盘空间,仍能调用的方法,其基本原理为先实现一个注入器,将目标程序注入到对应的进程中,即通过映射到内存,然后通过函数调用进行自我重定位,然后通过解析PEELF文件找到并指向函数地址;
但是传统防火墙方案给系统运维增加了很大的难度,不利于系统维护和部署,无论是可执行文件被复制还是对可执行文件进行反向编译,都会造成无可估量的损失,因此有必要提供一种更加安全的方案对嵌入式系统进行保护。
发明内容
本发明提供一种基于RSA算法的软件安全升级和启动方法,可以有效解决上述背景技术中提出传统防火墙方案给系统运维增加了很大的难度,不利于系统维护和部署,无论是可执行文件被复制还是对可执行文件进行反向编译,都会造成无可估量的损失的问题。
为实现上述目的,本发明提供如下技术方案:一种基于RSA算法的软件安全升级和启动方法,包括如下安全升级和启动步骤:
S1、嵌入式linux系统与单片机(MCU)通过串口通讯,单片机外接加密芯片,在单片机中灌装RSA和3DES相关加解密算法;
S2、对原始数据压缩,通过业务服务器加密、签名,将加密后的数据重新组成新的文件发送给对应的嵌入式系统;
S3、对加密文件进行解析,提交单片机验签、进行解密、再解压缩;
S4、启动文件存储引导程序,原始文件解密后存储在内存中;
S5、可执行文件的启动方式为通过固定的boot引导在内存中启动可执行文件。
根据上述技术方案,所述S1中,在生产环境通过随机数发生器生产多组随机数,结合随机数和MCU的全球唯一的cpuid通过openssl生成多组公私钥密钥对,将密钥对灌装至MCU,密钥对包含MCU的私钥和与服务器通讯的公钥,服务器端的加密服务器报错MCU的公钥和服务器端的私钥。
根据上述技术方案,所述S2中,加密前的原始数据进行zlib压缩;
业务服务器随机选择一个MCU公钥,通过公钥关联找到密码服务器对应的密钥组,对原始文件进行RSA加密,并记录密钥序号;
业务服务器随机选择一个服务器私钥序号,用加密机对RSA加密数据进行签名;
将数据重新组成新的文件发送给对应的嵌入式系统,重组加密后的数据,顺序为MCU公钥序号、服务器私钥序号、RSA加密数据、签名数据。
根据上述技术方案,所述S2中,MCN端密钥,加密后通过MCN下载器烧录至MCN;
非MCN端密钥,加密后,与业务服务器https方式通讯,通过业务服务器加密钥储存至密码机。
根据上述技术方案,所述S3中,嵌入式系统解析MCU公钥序号和服务器私钥序号,首先找到对应的服务器公钥,对加密数据进行验签,验签成功,说明此文件来自可靠的服务器提供,选择对应的MCU私钥,对加密数据进行解密,解密成功说明文件有效。
根据上述技术方案,所述S3中,整个解密过程如下:
A1、对加密文件进行结构化数据解析;
A2、根据签名密钥序号和签名数据提交单片机;
A3、进行验签;
A4、根据加密密钥序号和加密数据提交单片机;
A5、进行解密;
A6、解密后的数据进行zlib解压缩。
根据上述技术方案,所述S3中,嵌入式linux系统与MCU通过串口方式通讯,验签时,通过串口将验签数据传递至MCU,MCU返回验签成功失败结果;
解密时,嵌入式linux将解密数据传递至单片机,单片机返回解密结果。
根据上述技术方案,所述S4中,在嵌入式系统上仅存储服务器下发的加密文件,不存储解密后的文件,解密后的数据内容仅存在于内存中。
根据上述技术方案,所述S5中,在内存中启动可执行文件时,将内存注入至目标进程,修重复定位,eip(rip)指向对应地址。
与现有技术相比,本发明的有益效果:
1、通过单片机外接加密芯片,在单片机中灌装RSA和3DES相关加解密算法,存储在嵌入式系统上的可执行文件仅能在当前嵌入式系统上才能解密,使得无需更改嵌入式linux的运维方式,即保护了关键文件的安全性,又不给嵌入式系统的运维增加难度,即使可执行文件被复制到其他同环境的嵌入式系统,可执行文件依然无法运行,同时可执行文件无法被反编译。
2、文件的加密方式为RSA非对称加密,很难通过暴力破解方式破解此加密文件,解密后的文件在内存中运行,不会在文件系统中留下痕迹,不用担心在解密过程中文件被截取,从而有效保证文件的安全性。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
在附图中:
图1是本发明的软件安全升级和启动的步骤图;
图2是本发明密钥对生成存储灌装架构图;
图3是本发明密钥对生成存储灌装流程图;
图4是本发明服务器文件加密架构图;
图5是本发明服务器文件加密流程图;
图6是本发明嵌入式文件解密架构图;
图7是本发明嵌入式文件解密流程图;
图8是本发明内存启动加密可执行文件流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例:如图1所示,本发明提供一种技术方案,一种基于RSA算法的软件安全升级和启动方法,包括如下安全升级和启动步骤:
S1、嵌入式linux系统与单片机(MCU)通过串口通讯,单片机外接加密芯片,在单片机中灌装RSA和3DES相关加解密算法;
S2、对原始数据压缩,通过业务服务器加密、签名,将加密后的数据重新组成新的文件发送给对应的嵌入式系统;
S3、对加密文件进行解析,提交单片机验签、进行解密、再解压缩;
S4、启动文件存储引导程序,原始文件解密后存储在内存中;
S5、可执行文件的启动方式为通过固定的boot引导在内存中启动可执行文件。
如图2、3所示,S1中,在生产环境通过随机数发生器生产多组随机数,结合随机数和MCU的全球唯一的cpuid通过openssl生成多组公私钥密钥对,将密钥对灌装至MCU,密钥对包含MCU的私钥和与服务器通讯的公钥,服务器端的加密服务器报错MCU的公钥和服务器端的私钥;
使得无需更改嵌入式linux的运维方式,保护了关键文件的安全性,即使可执行文件被复制到其他同环境的嵌入式系统,可执行文件依然无法运行,同时可执行文件无法被反编译,不给运维增加难度;
文件的加密方式为RSA非对称加密,很难通过暴力破解方式破解此加密文件。
如图4、5所示,S2中,加密前的原始数据进行zlib压缩;
业务服务器随机选择一个MCU公钥,通过公钥关联找到密码服务器对应的密钥组,对原始文件进行RSA加密,并记录密钥序号;
业务服务器随机选择一个服务器私钥序号,用加密机对RSA加密数据进行签名;
将数据重新组成新的文件发送给对应的嵌入式系统,重组加密后的数据,顺序为MCU公钥序号、服务器私钥序号、RSA加密数据、签名数据。
S2中,MCN端密钥,加密后通过MCN下载器烧录至MCN;
非MCN端密钥,加密后,与业务服务器https方式通讯,通过业务服务器加密钥储存至密码机。
如图6、7所示,S3中,嵌入式系统解析MCU公钥序号和服务器私钥序号,首先找到对应的服务器公钥,对加密数据进行验签,验签成功,说明此文件来自可靠的服务器提供,选择对应的MCU私钥,对加密数据进行解密,解密成功说明文件有效。
S3中,整个解密过程如下:
A1、对加密文件进行结构化数据解析;
A2、根据签名密钥序号和签名数据提交单片机;
A3、进行验签;
A4、根据加密密钥序号和加密数据提交单片机;
A5、进行解密;
A6、解密后的数据进行zlib解压缩。
S3中,嵌入式linux系统与MCU通过串口方式通讯,验签时,通过串口将验签数据传递至MCU,MCU返回验签成功失败结果;
解密时,嵌入式linux将解密数据传递至单片机,单片机返回解密结果。
如图8所示,S4中,在嵌入式系统上仅存储服务器下发的加密文件,不存储解密后的文件,解密后的数据内容仅存在于内存中;
解密后的文件在内存中运行,不会在文件系统中留下痕迹,不用担心在解密过程中文件被截取,从而有效保证文件的安全性。
S5中,在内存中启动可执行文件时,将内存注入至目标进程,修重复定位,eip(rip)指向对应地址。
最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于RSA算法的软件安全升级和启动方法,其特征在于:包括如下安全升级和启动步骤:
S1、嵌入式linux系统与单片机(MCU)通过串口通讯,单片机外接加密芯片,在单片机中灌装RSA和3DES相关加解密算法;
S2、对原始数据压缩,通过业务服务器加密、签名,将加密后的数据重新组成新的文件发送给对应的嵌入式系统;
S3、对加密文件进行解析,提交单片机验签、进行解密、再解压缩;
S4、启动文件存储引导程序,原始文件解密后存储在内存中;
S5、可执行文件的启动方式为通过固定的boot引导在内存中启动可执行文件。
2.根据权利要求1所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S1中,在生产环境通过随机数发生器生产多组随机数,结合随机数和MCU的全球唯一的cpuid通过openssl生成多组公私钥密钥对,将密钥对灌装至MCU,密钥对包含MCU的私钥和与服务器通讯的公钥,服务器端的加密服务器报错MCU的公钥和服务器端的私钥。
3.根据权利要求1所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S2中,加密前的原始数据进行zlib压缩;
业务服务器随机选择一个MCU公钥,通过公钥关联找到密码服务器对应的密钥组,对原始文件进行RSA加密,并记录密钥序号;
业务服务器随机选择一个服务器私钥序号,用加密机对RSA加密数据进行签名;
将数据重新组成新的文件发送给对应的嵌入式系统,重组加密后的数据,顺序为MCU公钥序号、服务器私钥序号、RSA加密数据、签名数据。
4.根据权利要求3所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S2中,MCN端密钥,加密后通过MCN下载器烧录至MCN;
非MCN端密钥,加密后,与业务服务器https方式通讯,通过业务服务器加密钥储存至密码机。
5.根据权利要求1所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S3中,嵌入式系统解析MCU公钥序号和服务器私钥序号,首先找到对应的服务器公钥,对加密数据进行验签,验签成功,说明此文件来自可靠的服务器提供,选择对应的MCU私钥,对加密数据进行解密,解密成功说明文件有效。
6.根据权利要求5所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S3中,整个解密过程如下:
A1、对加密文件进行结构化数据解析;
A2、根据签名密钥序号和签名数据提交单片机;
A3、进行验签;
A4、根据加密密钥序号和加密数据提交单片机;
A5、进行解密;
A6、解密后的数据进行zlib解压缩。
7.根据权利要求6所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S3中,嵌入式linux系统与MCU通过串口方式通讯,验签时,通过串口将验签数据传递至MCU,MCU返回验签成功失败结果;
解密时,嵌入式linux将解密数据传递至单片机,单片机返回解密结果。
8.根据权利要求1所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S4中,在嵌入式系统上仅存储服务器下发的加密文件,不存储解密后的文件,解密后的数据内容仅存在于内存中。
9.根据权利要求1所述的一种基于RSA算法的软件安全升级和启动方法,其特征在于,所述S5中,在内存中启动可执行文件时,将内存注入至目标进程,修重复定位,eip(rip)指向对应地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266655.8A CN114637968A (zh) | 2022-03-17 | 2022-03-17 | 一种基于rsa算法的软件安全升级和启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266655.8A CN114637968A (zh) | 2022-03-17 | 2022-03-17 | 一种基于rsa算法的软件安全升级和启动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114637968A true CN114637968A (zh) | 2022-06-17 |
Family
ID=81949958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210266655.8A Pending CN114637968A (zh) | 2022-03-17 | 2022-03-17 | 一种基于rsa算法的软件安全升级和启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114637968A (zh) |
-
2022
- 2022-03-17 CN CN202210266655.8A patent/CN114637968A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000975B (zh) | 一种密钥管理系统 | |
EP2887576B1 (en) | Software key updating method and device | |
US20060005046A1 (en) | Secure firmware update procedure for programmable security devices | |
CN111460455B (zh) | 自加密固态硬盘的密钥协商方法、安全引导方法及系统 | |
CN110688660B (zh) | 一种终端安全启动的方法及装置、存储介质 | |
US7693286B2 (en) | Method of delivering direct proof private keys in signed groups to devices using a distribution CD | |
CN110621014B (zh) | 一种车载设备及其程序升级方法、服务器 | |
CN114662087B (zh) | 一种多端验证的安全芯片固件更新方法及装置 | |
CN103269271A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
CN111859415A (zh) | 神经网络模型加密系统和方法 | |
CN114915504B (zh) | 安全芯片初始认证方法及系统 | |
CN109274646B (zh) | 基于kmip协议的密钥管理客户端服务端方法和系统及介质 | |
CN110879875A (zh) | 硬件加密装置、嵌入式系统版权保护系统及方法 | |
CN112565265A (zh) | 物联网终端设备间的认证方法、认证系统及通讯方法 | |
CN111901117A (zh) | 基于jtag接口的安全认证方法及系统 | |
CN111611552A (zh) | 一种软硬结合的license授权方法及装置 | |
CN108270574B (zh) | 一种白名单库文件的安全加载方法及装置 | |
CN112865965B (zh) | 一种基于量子密钥的列车业务数据处理方法及系统 | |
US11930117B2 (en) | Method and apparatus for reversible tokenization with support for embeddable role-based access control | |
CN109784072B (zh) | 一种安全文件管理方法和系统 | |
CN114189862A (zh) | 无线终端及无线终端在Uboot模式下的接口访问鉴权方法 | |
CN116527261A (zh) | 密钥恢复方法、电子设备、存储介质 | |
CN111291398A (zh) | 基于区块链的认证方法、装置、计算机设备及存储介质 | |
CN103281188A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
CN114637968A (zh) | 一种基于rsa算法的软件安全升级和启动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |