CN112149192B - 一种基于运行时锚点的移动存储介质软件保护方法 - Google Patents

一种基于运行时锚点的移动存储介质软件保护方法 Download PDF

Info

Publication number
CN112149192B
CN112149192B CN202011056864.7A CN202011056864A CN112149192B CN 112149192 B CN112149192 B CN 112149192B CN 202011056864 A CN202011056864 A CN 202011056864A CN 112149192 B CN112149192 B CN 112149192B
Authority
CN
China
Prior art keywords
software
storage medium
mobile storage
encryption
hidden
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.)
Active
Application number
CN202011056864.7A
Other languages
English (en)
Other versions
CN112149192A (zh
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.)
Nanjing Institute of Technology
Original Assignee
Nanjing Institute of Technology
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 Nanjing Institute of Technology filed Critical Nanjing Institute of Technology
Priority to CN202011056864.7A priority Critical patent/CN112149192B/zh
Publication of CN112149192A publication Critical patent/CN112149192A/zh
Application granted granted Critical
Publication of CN112149192B publication Critical patent/CN112149192B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/72Protecting 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 in cryptographic circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于运行时锚点的移动存储介质软件保护方法,当软件研发完成后,通过烧录工具将软件运行所需文件和加密逻辑一同拷贝到移动存储介质中;在移动存储介质中生成认证凭据并保存认证凭据;将加密逻辑写入移动存储介质的隐藏分区,同时用隐藏算法实现加密逻辑与被保护软件深度耦合;通过随机采集软件运行环境的锚点信息,实现对调用软件功能的服务器的合法性进行动态验证,以及对软件所处的存储器进行实时验证,用于保护移动存储介质中的软件资料,防止软件被非法运行或非法拷贝。

Description

一种基于运行时锚点的移动存储介质软件保护方法
技术领域
本发明属于软件产品使用授权保护领域,特别是一种基于运行时锚点的移动存储介质软件保护方法。
背景技术
一款软件产品的开发往往凝聚了软件公司和研发人员大量的人力和时间成本,但是软件产品具有易复制的特点,特别是移动存储介质中存放的软件产品,容易被非法拷贝和使用,传统的基于序列号的方式容易被绕过和破解。
为保护软件不被篡改和未授权使用,本发明采用将软件通过专门的烧录工具灌装到带有保密芯片的移动存储介质中,基于多种加密手段,将软件存储介质、运行参数、使用权限等进行加密保护,达到存储介质与系统软件以及操作对象深度绑定,防止未授权使用的目的。
发明内容
为了解决现有技术中存在的不足,提出了一种基于运行时锚点的移动存储介质软件保护方法,通过随机采集软件运行环境的锚点信息,实现对调用软件功能的服务器的合法性进行动态验证,以及对软件所处的存储器进行实时验证,用于保护移动存储介质中的软件资料,防止软件被非法运行或非法拷贝。
本发明所采用的技术方案如下:
一种基于运行时锚点的移动存储介质软件保护方法,包括如下步骤:
步骤1、通过烧录工具将软件运行所需文件和加密逻辑一同拷贝到移动存储介质中;在移动存储介质中生成认证凭据并保存认证凭据;
步骤2、将加密逻辑写入移动存储介质的隐藏分区,同时用隐藏算法实现加密逻辑与被保护软件深度耦合;
步骤3、运行时对调用软件功能的服务器合法性进行动态验证的方法为:
步骤3.1、软件首次加电运行时,改写出厂时的秘密标志位为1,并读取服务器CPU序列号、硬盘序列号等特征信息,通过加密算法存储到移动存储介质的隐藏分区;
步骤3.2、除首次运行外,每次运行时从隐藏分区中读取加密的认证信息,进行合法性验证;
步骤4、对软件所处的存储器的实时验证进行检验的方法为:
步骤4.1、移动存储介质出厂时在加密存储芯片中烧录唯一识别号,软件运行时通查询并进行解密;
步骤4.2、解密后的数据和隐藏分区中的软件序列号以及版本号进行逻辑运算验证,验证通过后则认为软件没有被拷贝;
步骤4.3、对移动存储介质中的存储的数据进行MD5散列要验证,确定程序的完整性。
进一步,在移动存储介质中生成认证凭据并保存认证凭据的方法为:
步骤1.1、基于介质标识、操作对象硬件标识、初始化运行环境、社会工程学相关信息综合运算得出唯一认证凭据;
步骤1.2、基于加密存储芯片保存所生产的唯一认证凭据;
步骤1.3、在移动存储介质的分区中存储分段加密文件;
步骤1.4、加密软件中隐藏的识别码库,所述识别码库是预置在烧录系统中的,烧录的过程中从里面调用一条合法的,并将其隐藏在被保护的软件中。
进一步,所述步骤1.1中采用Hash函数综合运算得出唯一认证凭据。
进一步,所述步骤2中实现加密逻辑与被保护软件深度耦合的方法为:将被保护软件导入U盘,根据烧录码将加密逻辑写入移动存储介质的隐藏分区,同时用隐藏算法实现加密逻辑与被保护软件深度耦合。
进一步,加密逻辑封装成KO文件,系统启动时的自动加载加密模块。
进一步,加密逻辑基于静态属性和动态属性相结合的认证策略,采用多层加密接口与被保护软件交互,具有主动运行、动态监测、关键驱动触发、功能阻断和日志存证等功能,防止恶意用户绕过认证系统。
本发明的有益效果:
本发明通过实时读取服务器运行时参数以及存储在保密芯片中的数据,对被保护软件所运行的服务器合法性以及软件未被非法拷贝进行验证。本发明同时公开了支持上述安全特性的软件烧录方法和烧录软件,可实现认软件运行文件、认证信息、加密逻辑的打包上传,保证了软件的安全性,提高了移动存储介质初始化部署效率。
附图说明
图1是本发明一种基于运行时锚点的移动存储介质软件保护方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
如图1所示的一种基于运行时锚点的移动存储介质软件保护方法,包括如下步骤:
步骤1、当软件研发完成后,通过烧录工具将软件运行所需文件和加密逻辑一同拷贝到移动存储介质中;在移动存储介质中生成认证凭据并保存认证凭据的方式如下:
步骤1.1、基于介质标识、操作对象硬件标识(CPU序列号等)、初始化运行环境(探测值,如时间、GPS数据等独一无二的信息)、社会工程学相关信息(如烧录软件的工程师的工号、软件研发公司的英文名称缩写、公司地址、邮编、电话号码、邮箱等与特定的研发者关联)等综合运算得出唯一认证凭据;在本市实施例中可以采用Hash函数进行运算得出唯一认证凭据,也可以由工程技术人员自行设计,例如用移位或者与或非逻辑处理等。
步骤1.2、基于加密存储芯片保存所生产的唯一认证凭据,防止底层拷贝。
步骤1.3、在移动存储介质的分区中存储分段加密文件,如在Linux系统中存放配置文件的目录\etc分区中。
步骤1.4、加密软件中隐藏的识别码库,所述识别码库是预置在烧录系统中的,烧录的过程中从里面调用一条合法的,并将其隐藏在被保护的软件中,目的是建立烧录软件和被保护软件的关联,如果不用合法的方法烧录软件,就会被识别出来。
步骤2、将加密逻辑写入移动存储介质的隐藏分区,同时用隐藏算法实现加密逻辑与被保护软件深度耦合;具体过程如下:
步骤2.1、使用专用工具将被保护软件导入U盘,根据烧录码将加密逻辑写入移动存储介质的隐藏分区,同时用隐藏算法实现加密逻辑与被保护软件深度耦合,所述隐藏算法可以由具体实施人员根据经验设计,例如可以用生成的凭证信息替换重要的函数名、调用指针或变量名。加密逻辑封装成KO文件(Linux 2.6内核使用的动态连接文件),系统启动时的自动加载加密模块。加密逻辑基于静态属性和动态属性相结合的认证策略,采用多层加密接口与被保护软件交互,具有主动运行、动态监测、关键驱动触发、功能阻断和日志存证等功能,防止恶意用户绕过认证系统。
步骤3运行时对调用的服务器合法性进行检验。
步骤3.1、软件首次加电运行时,改写出厂时的秘密标志位为1(出厂时为0),并读取服务器CPU序列号、硬盘序列号等特征信息,通过加密算法存储到移动存储介质的隐藏分区。
步骤3.2、除首次运行(秘密标志位的值为0)外,每次运行时从隐藏分区中读取加密的认证信息,进行合法性验证。
步骤4、运行时对存储介质的合法性(即软件未被非法拷贝)进行检验。
步骤4.1、移动存储介质出厂时在加密存储芯片中烧录唯一识别号,软件运行时通查询并进行解密。
步骤4.2、解密后的数据和隐藏分区中的软件序列号以及版本号进行逻辑运算验证,验证通过后则认为软件没有被拷贝。
步骤4.3、对移动存储介质中的存储的数据进行MD5散列要验证,确定程序的完整性。
本实施例中的移动存储介质为带有保密芯片的U盘。U盘内存放的应用是基于liunx的文件存储服务系统,需要通过U盘提供验证服务(服务A)和文件存储服务系统(系统B)一起打包。以下结合本发明所提出一种基于运行时锚点的移动存储介质软件保护方法的工作过程作进一步解释:
step1、第一次插入U盘时,A服务需要有弹窗告知是否需要绑定机器。如确认,读取CPU的编号写入B系统的etc文件夹下,CPU的编号切割分散存储,并结合U盘硬件标识和运行时状态等生成认证凭据。
step 2、第一次启动B系统时候,A服务会验证U盘里面的key是否正确,和CPU的编号是否一致,如果一致,通知B系统启动。
step 3、如将U盘插在未绑定服务器上,因CPU编号不一致,导致验证不通过。
step 4、如将U盘所有程序copy到其他U盘,因U盘key和认证凭证不一致,导致验证不通过,程序无法运行,并记录非法操作的日志。
step 5、A服务需要做成内核驱动服务,和B系统打包在一起,防止别人破译。
step 6、提供专用的加密U盘烧录程序,可以通过该程序进行U盘的key值烧录和程序加密烧录,初始化认证根并实现加密逻辑与程序的紧耦合隐藏。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。

Claims (5)

1.一种基于运行时锚点的移动存储介质软件保护方法,其特征在于,包括如下步骤:
步骤1、通过烧录工具将软件运行所需文件和加密逻辑一同拷贝到移动存储介质中;在移动存储介质中生成认证凭据并保存认证凭据;在移动存储介质中生成认证凭据并保存认证凭据的方法为:
步骤1.1、基于介质标识、操作对象硬件标识、初始化运行环境、社会工程学相关信息综合运算得出唯一认证凭据;
步骤1.2、基于加密存储芯片保存所生产的唯一认证凭据;
步骤1.3、在移动存储介质的分区中存储分段加密文件;
步骤1.4、加密软件中隐藏的识别码库,所述识别码库是预置在烧录系统中的,烧录的过程中从里面调用一条合法的,并将其隐藏在被保护的软件中;
步骤2、将加密逻辑写入移动存储介质的隐藏分区,同时用隐藏算法实现加密逻辑与被保护软件深度耦合;
步骤3、运行时对调用软件功能的服务器合法性进行动态验证的方法为:
步骤3.1、软件首次加电运行时,改写出厂时的秘密标志位为1,并读取服务器CPU序列号、硬盘序列号的特征信息,通过加密算法存储到移动存储介质的隐藏分区;
步骤3.2、除首次运行外,每次运行时从隐藏分区中读取加密的认证信息,进行合法性验证;
步骤4、对软件所处的存储器的实时验证进行检验的方法为:
步骤4.1、移动存储介质出厂时在加密存储芯片中烧录唯一识别号,软件运行时查询并进行解密;
步骤4.2、解密后的数据和隐藏分区中的软件序列号以及版本号进行逻辑运算验证,验证通过后则认为软件没有被拷贝;
步骤4.3、对移动存储介质中所存储的数据进行MD5散列要验证,确定程序的完整性。
2.根据权利要求1所述的一种基于运行时锚点的移动存储介质软件保护方法,其特征在于,所述步骤1.1中采用Hash函数综合运算得出唯一认证凭据。
3.根据权利要求1或2所述的一种基于运行时锚点的移动存储介质软件保护方法,其特征在于,所述步骤2中实现加密逻辑与被保护软件深度耦合的方法为:将被保护软件导入U盘,根据烧录码将加密逻辑写入移动存储介质的隐藏分区,同时用隐藏算法实现加密逻辑与被保护软件深度耦合。
4.根据权利要求3所述的一种基于运行时锚点的移动存储介质软件保护方法,其特征在于,加密逻辑封装成KO文件,系统启动时的自动加载加密模块。
5.根据权利要求4所述的一种基于运行时锚点的移动存储介质软件保护方法,其特征在于,加密逻辑基于静态属性和动态属性相结合的认证策略,采用多层加密接口与被保护软件交互,具有主动运行、动态监测、关键驱动触发、功能阻断和日志存证的功能,防止恶意用户绕过认证系统。
CN202011056864.7A 2020-09-30 2020-09-30 一种基于运行时锚点的移动存储介质软件保护方法 Active CN112149192B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011056864.7A CN112149192B (zh) 2020-09-30 2020-09-30 一种基于运行时锚点的移动存储介质软件保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011056864.7A CN112149192B (zh) 2020-09-30 2020-09-30 一种基于运行时锚点的移动存储介质软件保护方法

Publications (2)

Publication Number Publication Date
CN112149192A CN112149192A (zh) 2020-12-29
CN112149192B true CN112149192B (zh) 2024-02-27

Family

ID=73896023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011056864.7A Active CN112149192B (zh) 2020-09-30 2020-09-30 一种基于运行时锚点的移动存储介质软件保护方法

Country Status (1)

Country Link
CN (1) CN112149192B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030010240A (ko) * 2001-07-26 2003-02-05 주식회사 텔사인 아이씨칩내장카드를 이용한 소프트웨어불법복제방지방법과그 소프트웨어 복제방지용 아이씨칩내장카드
WO2004070707A2 (en) * 2003-02-06 2004-08-19 Hexalock Ltd. Method and system for protecting against illegal copy and/or use of digital contents stored on optical or other media
CN101236590A (zh) * 2008-03-07 2008-08-06 北京邮电大学 一种基于门限密码体制的软件分割保护的实现方法
CN104537320A (zh) * 2014-12-05 2015-04-22 深圳市雷赛软件技术有限公司 芯片自动加密方法和系统
CN105184119A (zh) * 2015-10-09 2015-12-23 南京工程学院 一种软件的安全保护方法
CN111190614A (zh) * 2019-12-26 2020-05-22 北京威努特技术有限公司 一种软件安装的方法及计算机设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030010240A (ko) * 2001-07-26 2003-02-05 주식회사 텔사인 아이씨칩내장카드를 이용한 소프트웨어불법복제방지방법과그 소프트웨어 복제방지용 아이씨칩내장카드
WO2004070707A2 (en) * 2003-02-06 2004-08-19 Hexalock Ltd. Method and system for protecting against illegal copy and/or use of digital contents stored on optical or other media
CN101236590A (zh) * 2008-03-07 2008-08-06 北京邮电大学 一种基于门限密码体制的软件分割保护的实现方法
CN104537320A (zh) * 2014-12-05 2015-04-22 深圳市雷赛软件技术有限公司 芯片自动加密方法和系统
CN105184119A (zh) * 2015-10-09 2015-12-23 南京工程学院 一种软件的安全保护方法
CN111190614A (zh) * 2019-12-26 2020-05-22 北京威努特技术有限公司 一种软件安装的方法及计算机设备

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Framework for client-server distributed database system for video rental operators association of Nigeria;Kingsley Chiwuike Ukaoha 等;International Journal of Academic Research · November 2012;第1-12页 *
Implementing CD Copyright Protection by Using TCPA Framework;Nurashikin Mohd. Hussin;Dissertation submitted in partial fulfilment of the requirements for the Bachelorof Technology;全文 *
关于防拷贝软件保护技术的研究;杨胜;廖常青;;咸宁学院学报(第06期);全文 *
基于DES和MD5算法的安全注册系统;张兴红;甄彤;包晖;;计算机与数字工程(第05期);第102-104+156页 *
基于硬件信息的软件加密系统在数字电视中的应用;范涛;毛继曙;王国中;;电视技术(第22期);第29-32页 *
支持可信计算的软件保护模型;郑宇;何大可;梅其祥;;西南交通大学学报(第01期);第63-67+98页 *
计算机软件版权保护方法研究;王云晓;张学诚;孙海龙;;信息安全与技术(第04期);第9-11页 *

Also Published As

Publication number Publication date
CN112149192A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN101853363B (zh) 一种文件保护方法及系统
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
US7934049B2 (en) Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
CN103065102B (zh) 基于虚拟磁盘的数据加密移动存储管理方法
KR100946042B1 (ko) 탬퍼-레지스턴트 애플리케이션 구동 방법 및 시스템과 컴퓨터 판독 가능 저장 매체
JP5021838B2 (ja) 暗号化されたストレージデバイスについてのチップセット鍵管理サービスの利用の強制
KR101014179B1 (ko) 플래시 대용량 저장 메모리를 가진 보안 장치를 위한 보안 및 적응형 시스템 구조
US10592641B2 (en) Encryption method for digital data memory card and assembly for performing the same
WO2010134192A1 (ja) 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法
CN107508801B (zh) 一种文件防篡改的方法及装置
EA012921B1 (ru) Способ и устройство защиты программного обеспечения от несанкционированного использования
CN101739361A (zh) 访问控制方法、访问控制装置及终端设备
JP2007011511A (ja) 情報漏洩防止方法
WO2022116747A1 (zh) 一种加密锁的实现方法及加密锁
JP2007148466A (ja) 可搬型記憶装置及びos
CN102073597A (zh) 一种基于用户身份认证的操作系统盘全盘加密方法
CN114692134A (zh) 一种基于linux内核进程监控来保护代码及数据的系统和方法
JP4266412B2 (ja) データ保存システム
CN105303093A (zh) 智能密码钥匙密码验证方法
CN112149192B (zh) 一种基于运行时锚点的移动存储介质软件保护方法
CN109871327B (zh) 可信执行环境安全存储安全性测试方法及装置
CN103440465A (zh) 一种移动存储介质安全控制方法
US20110167276A1 (en) Method and device for detecting if a computer file has been copied and method and device for enabling such detection
KR101405915B1 (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
JP2008527518A (ja) 電子透かし機能を備えた携帯型データ担体

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
GR01 Patent grant
GR01 Patent grant