CN113032739A - 一种软件代码版权保护方法 - Google Patents

一种软件代码版权保护方法 Download PDF

Info

Publication number
CN113032739A
CN113032739A CN202110317911.7A CN202110317911A CN113032739A CN 113032739 A CN113032739 A CN 113032739A CN 202110317911 A CN202110317911 A CN 202110317911A CN 113032739 A CN113032739 A CN 113032739A
Authority
CN
China
Prior art keywords
chip
serial number
authentication
software
unique serial
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.)
Withdrawn
Application number
CN202110317911.7A
Other languages
English (en)
Inventor
顾永兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Lingtian Micro Semiconductor Technology Co ltd
Original Assignee
Suzhou Lingtian Micro Semiconductor Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Lingtian Micro Semiconductor Technology Co ltd filed Critical Suzhou Lingtian Micro Semiconductor Technology Co ltd
Priority to CN202110317911.7A priority Critical patent/CN113032739A/zh
Publication of CN113032739A publication Critical patent/CN113032739A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种软件代码版权保护方法,基于芯片具有唯一的序列号且不可被更改,在所述芯片的ROM boot中增加一个所述唯一序列号的认证代码和对所述唯一序列号进行认证的公钥;进行软件版权授权流程和软件版权认证流程。本发明一种软件代码版权保护方法然后在芯片ROM boot中增加一个软件版权认证的软件代码功能,ROM boot中的代码不可篡改,具有安全可信根;同时是一种基于密钥认证的认证方法,芯片BOOT里的认证程序用存储在ROM中的公钥对其自身唯一序列号的签名值进行验证,确保认证安全性;并且不会增加硬件成本。

Description

一种软件代码版权保护方法
技术领域
本发明涉及软件代码保护领域,具体涉及一种软件代码版权保护方法。
背景技术
嵌入式系统作为飞速发展的新兴领域,其产品的知识产权的安全性正在被越来越多的用户和厂商所看重。
产品开发商在产品在生产和销售过程中,因为一些主控芯片的软件代码都需要存储在外部非易失性存储上,比如norflash,SPI flash。不法商很容易通过外部手段截取到这部分软件代码并进行复制,进而复制整个产品非法进行销售,赚取利润。
核心模块软件供应商(比如AI算法,人脸算法,指纹算法等等)会提供给产品终端开发商进行二次开发,但会对其卖出的每一个产品按卖出数量收取版权费用,但如何防止产品终端开发商或其它不法渠道商非法复制,赚取非法利润,需要提供版权保护的方案。
众所周知,产品开发商选用的芯片出厂有一个唯一的序列号,产品开发商对每一个序列号进行身份认证,如果是合法的,软件代码就正常执行;如果非法,则异常退出,产品功能不可用。
针对软件代码源码全部由产品开发商掌控,但用于生产的软件二进制代码却很容易被复制的情况,不法商将非法获取的软件二进制代码通过反汇编,只需要破解读唯一序列号的函数,又因为这些代码都是存储在外部存储器里,代码通过通用编程器很容易篡改代码,不法商只需要篡改读唯一序列号的函数,替换成一个合法序列号就可以复制产品了。另外一种破解方法是修改唯一序列号判断合法的分支语句,不管唯一序列号是否合法,都从合法的分支语句进入。
另外一种情况,核心模块软件供应商(比如AI算法,人脸算法,指纹算法等等)会提供给产品终端开发商进行二次开发,本身模块软件会以lib库或bin的方式提供。这个模块算法会基于芯片唯一序列号进行身份认证和绑定,也容易被上面的方法破解而被不法商进行复制销售,非法套利。
如何在不增加芯片模块的成本的前提下,解决上述问题,申请号为:202010270867.4,公开号为:CN111475815A,名为《一种用于芯片的代码保护方法》的中国发明专利提出了以下方案:“一种用于芯片的代码保护方法,所述用于芯片的代码保护方法包括以下步骤:采用非对称的加密方法对唯一标识芯片的识别码进行加密生成密文并将密文和识别码写入芯片中;启动芯片时,对密文进行解密后与识别码进行匹配验证;若验证通过则芯片启动成功,否则芯片启动失败。所述采用非对称的加密方法对唯一标识芯片的识别码进行加密生成密文并将密文和识别码写入芯片中包括以下步骤:定义芯片具有一个唯一标识芯片的识别码;采用RSA加解密算法生成对应的公钥和私钥;使用私钥对唯一标识芯片的识别码进行加密生成密文;将密文保存到芯片Flash中。所述公钥保存在芯片Flash中。在进行芯片固件开发时,把解密算法放在固件开发的程序的Lib库中,确保这部分代码在固件启动时会被运行到。”
但是,上述专利方案存在以下缺陷:1、其公钥是保存在芯片flash中,在实际产品版权保护中,其存在的安全漏洞在于,不法商将自己的公钥写到芯片flash中,用自己的私钥对唯一序列号进行签名从而达到复制产品软件代码进行非法获利的破解方法;2、解密算法是放在固件开发的程序的Lib库中,不法商可以跟踪代码执行,找到解密算法的位置,然后进行替换和修改这个解密算法的返回结果始终为解密正确进行破解,这个从技术角度是可以实现破解的,只是难度大小不同而已,;另外更进一步,该专利没有提供安全可信的运行环境,如何保证这部分代码在固件启动时会被运行到并且代码执行逻辑不被修改,所以是存在被非法篡改的隐患的。
发明内容
本发明的目的是:提供一种软件代码版权保护方法,克服上述缺陷。
为了实现上述目的,本发明提供如下的技术方案:
一种软件代码版权保护方法,基于芯片具有唯一的序列号且不可被更改,在所述芯片的ROM boot中增加一个所述唯一序列号的认证代码和对所述唯一序列号进行认证的公钥;进行软件版权授权流程和软件版权认证流程;
软件版权授权流程步骤如下:
步骤一:生产工具通过所述芯片提供的通信接口读取芯片唯一的序列号;
步骤二:生产工具对读取到的所述芯片唯一的序列号进行杂凑运算,运算结果记做Hash1,生产工具用私钥进行签名,得到签名值;
步骤三:生产工具通过通信接口将签名值写回所述芯片;
步骤四:所述芯片将所述签名值写到ROM Boot代码正常启动能验签的指定外部存储器位置;
软件版权认证流程步骤如下:
步骤五:所述芯片从ROM开始启动,执行片外存储器license认证;
步骤六:ROM中的软件版权认证代码从所述片外存储器获取包含所述芯片的唯一序列号的签名值;
步骤七:用固化在ROM code中的公钥对包含所述芯片的唯一序列号的签名值验签,获取包含所述芯片的唯一序列号的Hash值,即为Hash1;
步骤八:ROM中的软件版权认证代码直接从芯片1读取唯一序列号,用杂凑算法计算读取到的这个唯一序列号的Hash值,记做Hash2;
步骤九:执行Hash1与Hash2比较;
步骤十:如Hash1与Hash2相同,则认证成功,跳转至片外存储器继续执行;如Hash1与Hash2不同,则认证失败,打印失败信息,芯片复位。
进一步的,在步骤一中,所述生产工具具体为PC电脑或者定制烧录器;所述通信接口具体包括USB、UART以及SPI;使用芯片出厂时的8个字节长度的wafer ID作为芯片唯一的序列号。
进一步的,在步骤二中,杂凑运算选用国际通用SHA 256杂凑算法;生产工具在用私钥进行签名时,同时进行数据加密。
进一步的,在步骤五中,ROM采用的是掩膜生产工艺,是只读存储器。
本发明的有益效果为:
1、以唯一序列号进行身份认证和绑定方案,不够安全的实质问题因为代码存放在外部存储器上,进行身份认证的代码可能会被篡改,缺乏安全可信根。本方案在每一颗芯片出货需要保证有唯一的ID号且不可再被修改,然后在芯片ROM boot中增加一个软件版权认证的软件代码功能,ROM boot中的代码不可篡改,也就是这个代码运行逻辑不可更改,也就有了身份认证的安全可信根;
2、对芯片的唯一序列号进行的合法身份认证本质上是一种基于方法的认证方法,一旦方法被破解,则所有的产品生产都破解。本方案是基于现代密码公私钥非对称算法进行的身份认证,是一种基于密钥认证的认证方法。私钥由产品供应商保管,且不用对外公开,授权的时候只需要对每一个产品里的芯片唯一序列号进行签名,签名值是公开的,另外公钥是公开的,已固化到芯片ROM中,不能篡改;每颗芯片BOOT里的认证程序用存储在ROM中的公钥对其自身唯一序列号的签名值进行验证,确保认证安全性;
3、本方案是软件代码解决方案,不会增加芯片的面积,也就不会增加硬件成本。
附图说明
图1为本发明一种软件代码版权保护方法的软件版权授权流程示意图。
图2为本发明一种软件代码版权保护方法的软件版权认证流程的流程图。
图中:1、芯片;2、生产工具。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明作进一步的详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参考图1和图2,一种软件代码版权保护方法,基于芯片1具有唯一的序列号且不可被更改,在所述芯片1的ROM boot中增加一个所述唯一序列号的认证代码和对所述唯一序列号进行认证的公钥;生产工具2中含有私钥,私钥一定要安全保存且不可非法导出,在具体应用时,考虑到数据安全,选择一个定制的加密UKey来实现;此实例中非对称算法我们选用国际通用RSA非对称算法,加密UKey存储RSA算法的私钥,且保证不可导出;另外,只有合法用户才可以把需要签名的数据(加密数据)写入到UKey中进行签名(加密),RSA算法的私钥在UKey里对需要签名的数据(加密数据)进行签名(加密),签名结果(加密结果)返回给生产工具2。
软件版权授权流程步骤如下:
步骤一:生产工具2通过所述芯片1提供的通信接口读取芯片1唯一的序列号;
步骤二:生产工具2对读取到的所述芯片1唯一的序列号进行杂凑运算,运算结果记做Hash1,生产工具2用私钥进行签名,得到签名值;
步骤三:生产工具2通过通信接口将签名值写回所述芯片1;
步骤四:所述芯片1将所述签名值写到指定的外部存储器位置,这个存储器位置必须是ROM Boot代码正常启动时能对这个签名值进行合法性验证的指定位置;
软件版权认证流程步骤如下:
步骤五:所述芯片1从ROM开始启动,执行片外存储器license认证;
步骤六:ROM中的软件版权认证代码从所述片外存储器获取包含所述芯片1的唯一序列号的签名值;
步骤七:与RSA私钥配对的RSA公钥在芯片生产的时间已经固化在ROM中,ROM中的软件版权认证代码读取这个公钥,然后对包含所述芯片1的唯一序列号的签名值验签,获取包含所述芯片1的唯一序列号的Hash值,即为Hash1;
步骤八:ROM中的软件版权认证代码直接从芯片1读取唯一序列号,用杂凑算法计算读取到的这个唯一序列号的Hash值,记做Hash2;
步骤九:ROM中的软件版权认证代码执行Hash1与Hash2比较;
步骤十:如Hash1与Hash2相同,表示写到指定的外部存储器位置的芯片1的唯一序列号的签名值是合法的,则认证成功,跳转至片外存储器继续执行用户应用代码;如Hash1与Hash2不同,表示写到指定的外部存储器位置的芯片1的唯一序列号的签名值是非法的,则认证失败,打印失败信息,芯片1复位。
在步骤一中,所述生产工具2具体为PC电脑或者定制烧录器;所述通信接口具体包括USB、UART以及SPI;使用芯片出厂时的8个字节长度的wafer ID作为芯片1唯一的序列号。
在步骤二中,杂凑运算选用国际通用SHA 256杂凑算法;生产工具2在用私钥进行签名时,同时进行数据加密。
在步骤五中,ROM采用的是掩膜生产工艺,是只读存储器。
在步骤七中,签名值验签同时解密数据,所获得的Hash值即为步骤二中签名之前的Hash1。
在步骤八中,杂凑运算与步骤二中同为国际通用SHA 256杂凑算法。
本实施例中,软件版权认证代码固化在ROM中,软件版权认证代码一定被执行到且代码执行逻辑不可被篡改;公钥固化在ROM中,不能被非法替换;与公钥对应的私钥保存在UKey中,不可导出,由软件代码授权方保管。这一套完整的方案有效的防止了不法商复制软件代码进行非法套利的问题。
在本发明中,除非另有明确的规定和限定,术语“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
上述实施例用于对本发明作进一步的说明,但并不将本发明局限于这些具体实施方式。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应理解为在本发明的保护范围之内。

Claims (4)

1.一种软件代码版权保护方法,基于芯片具有唯一的序列号且不可被更改,其特征在于:在所述芯片的ROM boot中增加一个所述唯一序列号的认证代码和对所述唯一序列号进行认证的公钥;进行软件版权授权流程和软件版权认证流程;
软件版权授权流程步骤如下:
步骤一:生产工具通过所述芯片提供的通信接口读取芯片唯一的序列号;
步骤二:生产工具对读取到的所述芯片唯一的序列号进行杂凑运算,运算结果记做Hash1,生产工具用私钥进行签名,得到签名值;
步骤三:生产工具通过通信接口将签名值写回所述芯片;
步骤四:所述芯片将所述签名值写到ROM Boot代码正常启动能验签的指定外部存储器位置;
软件版权认证流程步骤如下:
步骤五:所述芯片从ROM开始启动,执行片外存储器license认证;
步骤六:ROM中的软件版权认证代码从所述片外存储器获取包含所述芯片的唯一序列号的签名值;
步骤七:用固化在ROM code中的公钥对包含所述芯片的唯一序列号的签名值验签,获取包含所述芯片的唯一序列号的Hash值,即为Hash1;
步骤八:ROM中的软件版权认证代码直接从芯片1读取唯一序列号,用杂凑算法计算读取到的这个唯一序列号的Hash值,记做Hash2;
步骤九:执行Hash1与Hash2比较;
步骤十:如Hash1与Hash2相同,则认证成功,跳转至片外存储器继续执行;如Hash1与Hash2不同,则认证失败,打印失败信息,芯片复位。
2.根据权利要求1所述的一种软件代码版权保护方法,其特征在于:在步骤一中,所述生产工具具体为PC电脑或者定制烧录器;所述通信接口具体包括USB、UART以及SPI;使用芯片出厂时的8个字节长度的wafer ID作为芯片唯一的序列号。
3.根据权利要求2所述的一种软件代码版权保护方法,其特征在于:在步骤二中,杂凑运算选用国际通用SHA 256杂凑算法;生产工具在用私钥进行签名时,同时进行数据加密。
4.根据权利要求3所述的一种软件代码版权保护方法,其特征在于:在步骤五中,ROM采用的是掩膜生产工艺,是只读存储器。
CN202110317911.7A 2021-03-25 2021-03-25 一种软件代码版权保护方法 Withdrawn CN113032739A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110317911.7A CN113032739A (zh) 2021-03-25 2021-03-25 一种软件代码版权保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110317911.7A CN113032739A (zh) 2021-03-25 2021-03-25 一种软件代码版权保护方法

Publications (1)

Publication Number Publication Date
CN113032739A true CN113032739A (zh) 2021-06-25

Family

ID=76473537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110317911.7A Withdrawn CN113032739A (zh) 2021-03-25 2021-03-25 一种软件代码版权保护方法

Country Status (1)

Country Link
CN (1) CN113032739A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896569A (zh) * 2022-05-18 2022-08-12 陈小娜 基于区块链的代码版权登记系统、方法及平台

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896569A (zh) * 2022-05-18 2022-08-12 陈小娜 基于区块链的代码版权登记系统、方法及平台

Similar Documents

Publication Publication Date Title
CN112035152B (zh) 一种SoC芯片固件升级的安全处理系统及方法
EP1594030B1 (en) Program update method and server
US11803366B2 (en) Firmware updating system and method
US8751814B2 (en) Device
US11829479B2 (en) Firmware security verification method and device
US8855297B2 (en) Device and authentication method therefor
US8966646B2 (en) Software license management
US8516565B2 (en) IC chip, information processing apparatus, system, method, and program
US20120272052A1 (en) Method for generating a cryptographic key for a protected digital data object on the basis of current components of a computer
JP5639709B2 (ja) 記憶装置における物理的識別子を生成する方法及び機械可読記憶媒体
CN101281468A (zh) 生成固件更新文件和更新固件的方法和设备
CN107832589B (zh) 软件版权保护方法及其系统
CN105893837A (zh) 应用程序安装方法、安全加密芯片及终端
CN118051919B (zh) 数据处理方法、芯片、电子设备以及存储介质
KR101698211B1 (ko) 저장 장치의 인증 방법, 기계로 읽을 수 있는 저장 매체 및 호스트 장치
US8761389B2 (en) Memory
CN113032739A (zh) 一种软件代码版权保护方法
US8762717B2 (en) Authentication device
US20130336481A1 (en) Device
CN117472465A (zh) 一种片上系统安全启动方法、装置、电子设备及存储介质
US9183159B2 (en) Authentication method
JP2005293109A (ja) ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
US8898463B2 (en) Device
CN111695164B (zh) 电子设备及其控制方法
US20060136746A1 (en) Security system for preventing unauthorized copying of digital data

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210625