CN104134021A - 软件的防篡改验证方法及装置 - Google Patents

软件的防篡改验证方法及装置 Download PDF

Info

Publication number
CN104134021A
CN104134021A CN201310247480.7A CN201310247480A CN104134021A CN 104134021 A CN104134021 A CN 104134021A CN 201310247480 A CN201310247480 A CN 201310247480A CN 104134021 A CN104134021 A CN 104134021A
Authority
CN
China
Prior art keywords
test value
proof test
software
certificate parameter
sampled data
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.)
Granted
Application number
CN201310247480.7A
Other languages
English (en)
Other versions
CN104134021B (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310247480.7A priority Critical patent/CN104134021B/zh
Priority to PCT/CN2013/090045 priority patent/WO2014201830A1/en
Priority to US14/226,752 priority patent/US9607147B2/en
Publication of CN104134021A publication Critical patent/CN104134021A/zh
Application granted granted Critical
Publication of CN104134021B publication Critical patent/CN104134021B/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

本发明适用于计算机技术领域,提供了软件的防篡改验证方法,包括:接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;执行所述验证参数对应的验证逻辑,获取第一校验值;将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。在本发明中,一旦软件遭到了篡改,能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。

Description

软件的防篡改验证方法及装置
技术领域
本发明属于计算机技术领域,尤其涉及一种软件的防篡改验证方法及装置。
背景技术
目前,数字化的生活方式得到了广泛的推广与普及,人们的日常工作、学习及休闲生活越来越离不开各式各样的应用软件,而软件的安全问题也由此得到了重视。
出于窃取用户隐私、盗取用户银行账户信息等目的,一些攻击者能够通过篡改软件的方法,在软件中嵌入恶意代码、修改或者删除部分代码,从而获取到用户的关键信息,从中获利。软件篡改在游戏类、支付类或者社交类软件中出现的尤为频繁,为了防止此类现象的出现,需要对安装在终端设备中的软件进行验证。
现有的软件防篡改软件验证方法只能通过对软件的全部或者部分数据进行校验,判断校验结果是否正确,以此来判定软件是否遭到了篡改。然而,由于用于校验的软件数据是固定不变的,其正确的校验结果也很容易被攻击者得知,并以此伪造校验结果通过软件验证,导致软件验证的结果不准确,由此带来了数据安全隐患。
发明内容
本发明实施例提供一种软件的防篡改验证方法,旨在提高对软件是否遭到了篡改的验证结果的准确性。
本发明实施例是这样实现的,一种软件的防篡改验证方法,包括:
接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;
执行所述验证参数对应的验证逻辑,获取第一校验值;
将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
本发明实施例的另一目的在于提供一种软件的防篡改验证方法,包括:
动态确定所述软件的验证参数;
向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值;
接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值;
当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
本发明实施例的另一目的在于提供一种软件的防篡改验证装置,包括:
指令接收单元,用于接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;
获取单元,用于执行所述验证参数对应的验证逻辑,获取第一校验值;
返回单元,用于将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
本发明实施例的另一目的在于提供一种软件的防篡改验证装置,包括:
动态确定单元,用于动态确定所述软件的验证参数;
指令发送单元,用于向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值;
判断单元,用于接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值;
验证结果确定单元,用于当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
附图说明
图1是本发明实施例提供的软件的防篡改验证方法客户端的实现流程图;
图2是本发明实施例提供的软件的防篡改验证方法内存映射区间数据分布情况的示意图;
图3是本发明实施例提供的软件的防篡改验证方法服务器端的实现流程图;
图4是本发明实施例提供的软件的防篡改验证装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
具体地,本发明实施例中提及的进行防篡改验证的软件均为具备与其客户端对应的服务器端的软件。该软件的客户端可以安装在手机、个人计算机、平板电脑、笔记本电脑等具备网络接入功能的终端设备上,能够通过互联网与其服务器进行通信,而该服务器能够实现的功能包括但不限于:管理其客户端的用户数据、转发其不同客户端之间的数据、向其客户端发布该软件的新版本等。
图1示出了本发明实施例提供的软件的防篡改验证方法的实现流程,在本实施例中,流程的执行主体为进行防篡改验证的软件的客户端,实现流程详述如下:
在S101中,接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定。
在本实施例中,客户端触发对软件的防篡改验证可以通过以下方式实现:
由服务器向客户端发送验证控制指令,从而触发客户端开始执行对软件的防篡改验证;或者,
由客户端向服务器发送验证请求,从而触发客户端开始执行对软件的防自发验证,包括:
客户端每隔预设的时间间隔向服务器发送验证请求;或者,
客户端在预约的时间点向服务器发送验证请求;或者,
客户端通过用户端输入的触发指令向服务器发送验证请求。
无论上述任何一种情况,服务器均会向客户端发送验证控制指令,该验证控制指令中携带了用于指示客户端如何进行软件的防篡改验证的验证参数,每一种验证参数均对应了一种验证逻辑,通过在软件开发过程中,在服务器和客户端约定好每一种验证参数与其对应的验证逻辑的关系,客户端即可以根据验证控制指令中的验证参数来执行对应的验证逻辑。
在本实施例中,生成何种验证参数,且生成的验证参数取值如何,均由服务器动态随机地来确定。
其中,验证参数可以包括采样数据获取位置,该验证参数即为由客户端从该采样数据获取位置获取到采样数据,并通过指定的校验算法对获取到的采样数据进行计算,以得到第一校验值。
当验证参数包括采样数据获取位置时,作为本发明的一个实施例,该采样数据获取位置包括该软件的客户端在其所在终端设备中的安装目录下的文件路径,当该文件路径指向该安装目录下的一个文件时,表明当前需要采样的数据为该文件中的数据,而当该文件路径指向该安装目录下的一个文件夹时,则表明当前需要采样的数据为该文件夹中的全部数据。由于对于软件开发人员来说,软件客户端在终端设备中的安装目录文件结构及相应的文件内容是可知的,因此,在服务器中能够预存储其客户端的安装目录下的所有文件结构及相应的文件内容,服务器能够在其客户端的安装目录下随机地指定一个或者多个文件路径,从而动态地确定出采样数据获取位置。
当验证参数包括采样数据获取位置时,作为本发明的另一实施例,该采样数据获取位置包括内存映射区间,该内存映射区间具体为客户端所在终端设备中的内存映射区间。由于对于软件开发人员来说,软件客户端在终端设备上运行时,对该终端设备的内存空间占用情况是可知的,如图2所示,其即为运行在Android设备上的软件在运行时,该Android设备中内存映射区间的情况示意图,其中的第一列即为每一个内存映射区间的地址,而最后一列即为相应的内存映射区间中的数据。因此,在服务器中能够预存储当客户端在运行时终端设备的每个内存映射区间内的数据内容,服务器能够随机地指定一个或者多个内存映射区间,从而动态地确定出采样数据获取位置。
需要说明的是,针对不同操作系统的终端设备,包括运行Android、iOS或者WP8(Windows Phone8)等操作系统的终端设备,相同的软件在运行时,单位内存映射区间内的数据是相同的,只可能是相同的数据所分布的内存映射区间的位置不同,因此,服务器需要针对每一种操作系统,预存储当客户端在运行时使用该操作系统的终端设备的每个内存映射区间内的数据内容。
同时,在本实施例中,服务器动态确定的采样数据位置也可以同时包括内存映射区间和软件的安装目录下的文件路径,从而进一步保证采样数据的随机性。
此外,验证参数还可以包括可执行代码,则该验证参数所对应的验证逻辑即为由客户端执行该段可执行代码,并将通过执行该段可执行代码所输出的值作为第一校验值。例如,该段可执行代码在执行时被用于调用软件的其中一个功能,并输出在调用该功能时所生成的数据结果,在软件未被篡改的情况下,调用该功能所生成的数据结果均是相同的,因此,该数据结果能够被作为第一校验值,用于判断软件是否遭到了篡改。又例如,当软件为游戏类软件或者试用版软件时,该段可执行代码可以在执行时被用于输出软件所在终端设备的当前系统时间,由于游戏类或者试用版软件会以当前系统时间作为软件是否继续被使用的判决标准,因此,将当前系统时间作为第一校验值,若软件通过篡改从而在非法或者未授权情况下继续使用时,即可以通过该第一校验值判断出来。
在本发明实施例中,服务器动态确定的验证参数及其对应的验证逻辑包括但不限于上述几种情形,只要能够保证客户端通过执行验证参数对应的验证逻辑所得到的正确的校验值对该验证参数来说是唯一的即可,在此不一一限定。
在S102中,执行所述验证参数对应的验证逻辑,获取第一校验值。
在本实施例中,当验证参数包括采样数据获取位置时,客户端根据服务器的控制验证指令中所携带的采样数据获取位置,从该位置上获取到本次验证所需要的采样数据,并根据指定的校验算法对获取到的采样数据计算第一校验值。
作为本发明的一个实施例,当采样数据获取位置包括所述软件的安装目录下的文件路径时,从所述采样数据获取位置获取采样数据具体为:
提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
作为本发明的另一实施例,当采样数据获取位置包括内存映射区间时,从所述采样数据获取位置获取采样数据具体为:
在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
在本实施例中,从服务器动态确定的采样数据获取位置上获取到的采样数据根据采样数据获取位置的不同,可以为图片、字符串、代码等任意形式的数据。
作为本发明的一个实施例,验证所采用的校验算法可以在软件开发过程中同时在服务器与客户端预置,从而保证服务器和客户端约定好相同的校验算法。
作为本发明的另一实施例,验证所采用的校验算法也可以在每次验证之前由服务器动态地确定并通知给客户端,具体地,服务器可以在N种预设的校验算法中随机确定一种,并作为验证参数之一携带在验证控制指令中,与采样数据获取位置一并发送给客户端,其中,N为大于1的整数。
作为本发明的一个实现示例,校验算法可以为哈希(Hash)算法。若校验算法用f()表示,而采样数据用S表示,当服务器动态指示了多个采样数据获取位置时,客户端从这些采样数据获取位置上分别获取到采样数据S1、S2、S3、……,则相应地,最终得到的第一校验值为f(S1、S2、S3、……)。
在S103中,将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
在本实施例中,当客户端计算出第一校验值后,将该第一校验值返回给服务器,而在服务器端预存储了其动态确定的验证参数所对应的正确校验值,即第二校验值,因此,服务器通过判断客户端返回的第一校验值与服务器预存储的第二校验值是否一致,即可以判断出该软件客户端是否遭到了篡改。
图3示出了本发明实施例提供的软件的防篡改验证方法的实现流程,在本实施例中,流程的执行主体为进行防篡改验证的软件的服务器端,实现流程详述如下:
在S301中,动态确定所述软件的验证参数。
在本实施例中,当需要验证软件客户端是否遭到了篡改时,服务器首先需要动态确定本次验证的验证参数。
在本实施例中,S301可以在以下条件下触发:
服务器每隔预设的时间间隔触发;或者,
服务器在预约的时间点触发;或者,
服务器接收到来自客户端的验证请求后触发。
在本实施例中,每一种验证参数均对应了一种验证逻辑,通过在软件开发过程中,在服务器和客户端约定好每一种验证参数与其对应的验证逻辑的关系,客户端即可以根据验证控制指令中的验证参数来执行对应的验证逻辑。
在本实施例中,生成何种验证参数,且生成的验证参数取值如何,均由服务器动态随机地来确定。
当验证参数包括采样数据获取位置时,作为本发明的一个实施例,该采样数据获取位置包括该软件的客户端在其所在终端设备中的安装目录下的文件路径,当该文件路径指向该安装目录下的一个文件时,表明当前需要采样的数据为该文件中的数据,而当该文件路径指向该安装目录下的一个文件夹时,则表明当前需要采样的数据为该文件夹中的全部数据。由于对于软件开发人员来说,软件客户端在终端设备中的安装目录文件结构及相应的文件内容是可知的,因此,在服务器中能够预存储其客户端的安装目录下的所有文件结构及相应的文件内容,服务器能够在其客户端的安装目录下随机地指定一个或者多个文件路径,从而动态地确定出采样数据获取位置。
当验证参数包括采样数据获取位置时,作为本发明的另一实施例,该采样数据获取位置包括内存映射区间,该内存映射区间具体为客户端所在终端设备中的内存映射区间。由于对于软件开发人员来说,软件客户端在终端设备上运行时,对该终端设备的内存空间占用情况是可知的,因此,在服务器中能够预存储当客户端在运行时终端设备的每个内存映射区间内的数据内容,服务器能够随机地指定一个或者多个内存映射区间,从而动态地确定出采样数据获取位置。
同时,在本实施例中,服务器动态确定的采样数据位置也可以同时包括内存映射区间和软件的安装目录下的文件路径,从而进一步保证采样数据的随机性。
此外,验证参数还可以包括可执行代码,则该验证参数所对应的验证逻辑即为由客户端执行该段可执行代码,并将通过执行该段可执行代码所输出的值作为第一校验值。例如,该段可执行代码在执行时被用于调用软件的其中一个功能,并输出在调用该功能时所生成的数据结果,在软件未被篡改的情况下,调用该功能所生成的数据结果均是相同的,因此,该数据结果能够被作为第一校验值,用于判断软件是否遭到了篡改。又例如,当软件为游戏类软件或者试用版软件时,该段可执行代码可以在执行时被用于输出软件所在终端设备的当前系统时间,由于游戏类或者试用版软件会以当前系统时间作为软件是否继续被使用的判决标准,因此,将当前系统时间作为第一校验值,若软件通过篡改从而在非法或者未授权情况下继续使用时,即可以通过该第一校验值判断出来。
在本发明实施例中,服务器动态确定的验证参数及其对应的验证逻辑包括但不限于上述几种情形,只要能够保证客户端通过执行验证参数对应的验证逻辑所得到的正确的校验值对该验证参数来说是唯一的即可,在此不一一限定。
在S302中,向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值。
在本实施例中,当服务器动态确定了验证参数之后,便向客户端发送携带了验证参数的验证控制指令,以使得客户端根据前述实施例S102所述,执行该验证参数对应的验证逻辑,获取到第一校验值,具体的计算方法再此不再赘述。
在S303中,接收所述客户端返回的第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
在本实施例中,当客户端计算出第一校验值后,将该第一校验值返回给服务器,而在服务器端,由于其预存储了其动态确定的验证参数对应的正确校验值,因此,服务器通过判断客户端返回的第一校验值与第二校验值是否一致,即可以判断出该软件客户端是否遭到了篡改。
在本实施例中,当验证参数包括采样数据获取位置时,客户端计算获取到的采样数据时所采用的校验算法可以在软件开发过程中同时在服务器与客户端预置,从而保证服务器和客户端约定好相同的校验算法,也可以在每次验证之前由服务器动态地确定并通知给客户端,即,在S302之前,服务器端还需要执行:
随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于1的整数
由此,服务器可以在N种预设的校验算法中随机确定一种,并作为验证参数之一携带在验证控制指令中,与采样数据获取位置一并发送给客户端。
在S304中,当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
在本实施例中,由于不同的数据内容的校验结果是唯一的,因此,当软件客户端遭到了篡改之后,S303会得到第一校验值与第二校验值不相同的判断结果,由此来完成对软件是否遭到了篡改的验证。
本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
图4示出了本发明实施例提供的软件的防篡改验证装置的结构框图,该装置可以分别位于软件的客户端和服务器端中,用于分别运行本发明图1实施例和图3实施例所述的软件的防篡改验证方法。为了便于说明,仅示出了与本实施例相关的部分。
参照图4,在软件的客户端,该装置包括:
指令接收单元41,接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定。
获取单元42,执行所述验证参数对应的验证逻辑,获取第一校验值。
返回单元43,将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
可选地,所述验证参数包括采样数据获取位置,
所述获取单元42包括:
采样子单元,从所述采样数据获取位置获取采样数据。
计算子单元,根据指定的校验算法对获取到的采样数据计算所述第一校验值。
可选地,所述采样数据获取位置包括所述软件的安装目录下的文件路径;
所述采样子单元具体用于:
提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
可选地,所述采样数据获取位置包括内存映射区间;
所述采样子单元具体用于:
在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
可选地,所述验证参数还包括所述指定的校验算法,所述指定的校验算法为所述服务器在N种预设的校验算法中随机确定的一种,所述N为大于1的整数。
可选地,所述验证参数包括可执行代码,
所述获取单元42具体用于:
执行所述可执行代码,输出所述第一校验值。
可选地,所述装置还包括:
请求发送单元,向所述服务器发送验证请求,以使所述服务器发送所述验证控制指令。
在软件的服务器端,该装置包括:
动态确定单元44,动态确定所述软件的验证参数。
指令发送单元45,向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值。
判断单元46,接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
验证结果确定单元47,当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
可选地,所述验证参数包括采样数据获取位置,所述采样数据获取位置包括所述软件的安装目录下的文件路径或者内存映射区间。
可选地,所述验证参数还包括所述指定的校验算法,所述指定的校验算法被所述客户端用于对在所述采样数据获取位置获取到的采样数据计算所述第一校验值,
所述装置还包括:
算法确定单元,随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于1的整数。
可选地,所述验证参数包括可执行代码,所述可执行代码被所述客户端用于在执行后输出所述第一校验值。
可选地,所述装置还包括:
请求接收单元,用于接收所述客户端发送的验证请求。
本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
同时,采用本发明实施例提供的方法及装置,能够有效地进行软件的自身安全和软件的安装环境安全检测,尤其是对于交易类软件、通信类软件等前后台交互类型的软件,能够有效地防止软件被篡改,达到很好的数据保护效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (24)

1.一种软件的防篡改验证方法,其特征在于,包括:
接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;
执行所述验证参数对应的验证逻辑,获取第一校验值;
将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
2.如权利要求1所述的方法,其特征在于,所述验证参数包括采样数据获取位置,
所述执行所述验证参数对应的验证逻辑,获取第一校验值包括:
从所述采样数据获取位置获取采样数据;
根据指定的校验算法对获取到的采样数据计算所述第一校验值。
3.如权利要求2所述的方法,其特征在于,所述采样数据获取位置包括所述软件的安装目录下的文件路径,
所述从所述采样数据获取位置获取采样数据包括:
提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
4.如权利要求2所述的方法,其特征在于,所述采样数据获取位置包括内存映射区间,
所述从所述采样数据获取位置获取采样数据包括:
在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
5.如权利要求2~4任一项所述的方法,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法为所述服务器在N种预设的校验算法中随机确定的一种,所述N为大于1的整数。
6.如权利要求1所述的方法,其特征在于,所述验证参数包括可执行代码,
所述执行所述验证参数对应的验证逻辑,获取第一校验值包括:
执行所述可执行代码,输出所述第一校验值。
7.如权利要求1所述的方法,其特征在于,在所述接收服务器发送的验证控制指令之前,所述方法还包括:
向所述服务器发送验证请求,以使所述服务器发送所述验证控制指令。
8.一种软件的防篡改验证方法,其特征在于,包括:
动态确定所述软件的验证参数;
向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值;
接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值;
当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
9.如权利要求8所述的方法,其特征在于,所述验证参数包括采样数据获取位置,所述采样数据获取位置包括所述软件的安装目录下的文件路径或者内存映射区间。
10.如权利要求9所述的方法,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法被所述客户端用于对在所述采样数据获取位置获取到的采样数据计算所述第一校验值,
则在所述向客户端发送验证控制指令之前,所述方法还包括:
随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于1的整数。
11.如权利要求8所述的方法,其特征在于,所述验证参数包括可执行代码,所述可执行代码被所述客户端用于在执行后输出所述第一校验值。
12.如权利要求8~11任一项所述的方法,其特征在于,在所述向客户端发送验证控制指令之前,所述方法还包括:
接收所述客户端发送的验证请求。
13.一种软件的防篡改验证装置,其特征在于,包括:
指令接收单元,用于接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;
获取单元,用于执行所述验证参数对应的验证逻辑,获取第一校验值;
返回单元,用于将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
14.如权利要求13所述的装置,其特征在于,所述验证参数包括采样数据获取位置,
所述获取单元包括:
采样子单元,用于从所述采样数据获取位置获取采样数据;
计算子单元,用于根据指定的校验算法对获取到的采样数据计算所述第一校验值。
15.如权利要求14所述的装置,其特征在于,所述采样数据获取位置包括所述软件的安装目录下的文件路径,
所述采样子单元具体用于:
提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
16.如权利要求14所述的装置,其特征在于,所述采样数据获取位置包括内存映射区间,
所述采样子单元具体用于:
在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
17.如权利要求14~16任一项所述的装置,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法为所述服务器在N种预设的校验算法中随机确定的一种,所述N为大于1的整数。
18.如权利要求13所述的装置,其特征在于,所述验证参数包括可执行代码,
所述获取单元具体用于:
执行所述可执行代码,输出所述第一校验值。
19.如权利要求13所述的装置,其特征在于,所述装置还包括:
请求发送单元,用于向所述服务器发送验证请求,以使所述服务器发送所述验证控制指令。
20.一种软件的防篡改验证装置,其特征在于,包括:
动态确定单元,用于动态确定所述软件的验证参数;
指令发送单元,用于向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值;
判断单元,用于接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值;
验证结果确定单元,用于当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
21.如权利要求20所述的装置,其特征在于,所述验证参数包括采样数据获取位置,所述采样数据获取位置包括所述软件的安装目录下的文件路径或者内存映射区间。
22.如权利要求21所述的装置,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法被所述客户端用于对在所述采样数据获取位置获取到的采样数据计算所述第一校验值,
所述装置还包括:
算法确定单元,用于随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于1的整数。
23.如权利要求21所述的装置,其特征在于,所述验证参数包括可执行代码,所述可执行代码被所述客户端用于在执行后输出所述第一校验值。
24.如权利要求20~23任一项所述的装置,其特征在于,所述装置还包括:
请求接收单元,用于接收所述客户端发送的验证请求。
CN201310247480.7A 2013-06-20 2013-06-20 软件的防篡改验证方法及装置 Active CN104134021B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310247480.7A CN104134021B (zh) 2013-06-20 2013-06-20 软件的防篡改验证方法及装置
PCT/CN2013/090045 WO2014201830A1 (en) 2013-06-20 2013-12-20 Method and device for detecting software-tampering
US14/226,752 US9607147B2 (en) 2013-06-20 2014-03-26 Method and device for detecting software-tampering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310247480.7A CN104134021B (zh) 2013-06-20 2013-06-20 软件的防篡改验证方法及装置

Publications (2)

Publication Number Publication Date
CN104134021A true CN104134021A (zh) 2014-11-05
CN104134021B CN104134021B (zh) 2016-03-02

Family

ID=51806696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310247480.7A Active CN104134021B (zh) 2013-06-20 2013-06-20 软件的防篡改验证方法及装置

Country Status (3)

Country Link
US (1) US9607147B2 (zh)
CN (1) CN104134021B (zh)
WO (1) WO2014201830A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105306434A (zh) * 2015-09-11 2016-02-03 北京金山安全软件有限公司 程序文件校验方法及装置、服务器和终端
CN106096388A (zh) * 2016-05-31 2016-11-09 北京小米移动软件有限公司 一种代码安全处理方法、装置、终端设备及系统
CN106130959A (zh) * 2016-06-12 2016-11-16 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
CN106161465A (zh) * 2016-08-29 2016-11-23 浪潮(北京)电子信息产业有限公司 一种云存储方法、云存储系统及安全云存储系统
CN106960138A (zh) * 2016-01-08 2017-07-18 阿里巴巴集团控股有限公司 虚拟机指令的校验方法及装置、系统
CN107040524A (zh) * 2017-03-21 2017-08-11 北京信安世纪科技有限公司 一种程序文件验证方法及程序文件验证装置
CN107292172A (zh) * 2016-04-11 2017-10-24 施耐德电器工业公司 用于相对于参考计算机文件自动验证目标计算机文件的方法
CN107360165A (zh) * 2017-07-13 2017-11-17 北京元心科技有限公司 终端设备、云服务器以及管控操作系统的方法及装置
CN109714298A (zh) * 2017-10-25 2019-05-03 腾讯科技(深圳)有限公司 验证方法、装置及存储介质
CN111104669A (zh) * 2018-10-29 2020-05-05 中兴通讯股份有限公司 破解检测方法、装置、系统、服务器、终端及存储介质
CN112134881A (zh) * 2020-09-22 2020-12-25 宏图智能物流股份有限公司 一种基于序列号的网络请求防篡改方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170255775A1 (en) * 2016-03-02 2017-09-07 Apple Inc Software verification systems with multiple verification paths
GB2555569B (en) * 2016-10-03 2019-06-12 Haddad Elias Enhanced computer objects security
CN106657137A (zh) * 2017-01-17 2017-05-10 腾讯科技(上海)有限公司 一种软件产品合法性的验证方法、装置以及系统
CN110033013B (zh) * 2018-01-08 2023-06-30 国际商业机器公司 创建用于识别特定机器学习模型的签名
US10826706B1 (en) 2018-01-30 2020-11-03 State Farm Mutual Automobile Insurance Company Systems and methods for vehicle configuration verification with failsafe code
CN115118625B (zh) * 2018-05-11 2023-06-27 创新先进技术有限公司 一种数据校验方法和装置
US11880457B2 (en) * 2019-09-27 2024-01-23 Micron Technology, Inc. Device intrusion detection via variable code comparison
CN114981808A (zh) * 2020-03-19 2022-08-30 华为技术有限公司 计算资源有限的设备中的代码完整性保护
CN111586688B (zh) * 2020-04-24 2023-12-05 深圳市塔洛思技术有限公司 基于环境感知的身份标识生成及验证的方法
US11687440B2 (en) * 2021-02-02 2023-06-27 Thales Dis Cpl Usa, Inc. Method and device of protecting a first software application to generate a protected software application

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783801A (zh) * 2010-01-29 2010-07-21 福建星网锐捷网络有限公司 一种基于网络的软件保护方法、客户端及服务器
CN101834867A (zh) * 2010-05-07 2010-09-15 杭州华三通信技术有限公司 一种客户端安全保护方法及其装置
CN102299930A (zh) * 2011-09-19 2011-12-28 北京无限新锐网络科技有限公司 一种保障客户端软件安全的方法
CN102546179A (zh) * 2011-12-31 2012-07-04 珠海市君天电子科技有限公司 一种服务器端和客户端之间的身份验证方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347398B1 (en) * 1996-12-12 2002-02-12 Microsoft Corporation Automatic software downloading from a computer network
US7233940B2 (en) * 2000-11-06 2007-06-19 Answers Corporation System for processing at least partially structured data
US7509687B2 (en) * 2002-03-16 2009-03-24 Trustedflow Systems, Inc. Remotely authenticated operation method
FR2849230B1 (fr) * 2002-12-24 2005-04-22 Francois Bangui Procede et dispositif de verification de l'integrite d'une application logicielle sans cle de chiffrement/dechiffrement
US7624394B1 (en) * 2003-11-18 2009-11-24 Adobe Systems Incorporation Software installation verification
WO2005050437A2 (de) * 2003-11-21 2005-06-02 Peter Neswal Verfahren zur installation und konfiguration von softwarekomponenten
US8887287B2 (en) * 2004-10-27 2014-11-11 Alcatel Lucent Method and apparatus for software integrity protection using timed executable agents
GB0514492D0 (en) * 2005-07-14 2005-08-17 Ntnu Technology Transfer As Secure media streaming
US9177153B1 (en) * 2005-10-07 2015-11-03 Carnegie Mellon University Verifying integrity and guaranteeing execution of code on untrusted computer platform
CN1937498A (zh) * 2006-10-09 2007-03-28 网之易信息技术(北京)有限公司 一种动态密码认证方法、系统及装置
CN101163014A (zh) * 2007-11-30 2008-04-16 中国电信股份有限公司 一种动态口令身份认证系统和方法
CN101662465B (zh) * 2009-08-26 2013-03-27 深圳市腾讯计算机系统有限公司 一种动态口令验证的方法及装置
US8819827B1 (en) * 2010-11-10 2014-08-26 Open Invention Network, Llc Method and apparatus of performing data executable integrity verification
US8799662B2 (en) * 2012-07-27 2014-08-05 Adobe Systems Incorporated Method and apparatus for validating the integrity of installer files prior to installation
US8918780B2 (en) * 2013-03-14 2014-12-23 International Business Machines Corporation Automatic quality assurance for software installers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783801A (zh) * 2010-01-29 2010-07-21 福建星网锐捷网络有限公司 一种基于网络的软件保护方法、客户端及服务器
CN101834867A (zh) * 2010-05-07 2010-09-15 杭州华三通信技术有限公司 一种客户端安全保护方法及其装置
CN102299930A (zh) * 2011-09-19 2011-12-28 北京无限新锐网络科技有限公司 一种保障客户端软件安全的方法
CN102546179A (zh) * 2011-12-31 2012-07-04 珠海市君天电子科技有限公司 一种服务器端和客户端之间的身份验证方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017041606A1 (zh) * 2015-09-11 2017-03-16 北京金山安全软件有限公司 程序文件校验方法及装置、服务器和终端
CN105306434A (zh) * 2015-09-11 2016-02-03 北京金山安全软件有限公司 程序文件校验方法及装置、服务器和终端
CN106960138A (zh) * 2016-01-08 2017-07-18 阿里巴巴集团控股有限公司 虚拟机指令的校验方法及装置、系统
CN106960138B (zh) * 2016-01-08 2020-08-25 阿里巴巴集团控股有限公司 虚拟机指令的校验方法及装置、系统
CN107292172A (zh) * 2016-04-11 2017-10-24 施耐德电器工业公司 用于相对于参考计算机文件自动验证目标计算机文件的方法
CN106096388A (zh) * 2016-05-31 2016-11-09 北京小米移动软件有限公司 一种代码安全处理方法、装置、终端设备及系统
CN106096388B (zh) * 2016-05-31 2019-04-16 北京小米移动软件有限公司 一种代码安全处理方法、装置、终端设备及系统
CN106130959B (zh) * 2016-06-12 2019-07-23 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
CN106130959A (zh) * 2016-06-12 2016-11-16 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
CN106161465A (zh) * 2016-08-29 2016-11-23 浪潮(北京)电子信息产业有限公司 一种云存储方法、云存储系统及安全云存储系统
CN107040524A (zh) * 2017-03-21 2017-08-11 北京信安世纪科技有限公司 一种程序文件验证方法及程序文件验证装置
CN107360165A (zh) * 2017-07-13 2017-11-17 北京元心科技有限公司 终端设备、云服务器以及管控操作系统的方法及装置
CN107360165B (zh) * 2017-07-13 2021-02-12 北京元心科技有限公司 终端设备、云服务器以及管控操作系统的方法及装置
CN109714298B (zh) * 2017-10-25 2020-08-11 腾讯科技(深圳)有限公司 验证方法、装置及存储介质
CN109714298A (zh) * 2017-10-25 2019-05-03 腾讯科技(深圳)有限公司 验证方法、装置及存储介质
CN111104669A (zh) * 2018-10-29 2020-05-05 中兴通讯股份有限公司 破解检测方法、装置、系统、服务器、终端及存储介质
CN112134881A (zh) * 2020-09-22 2020-12-25 宏图智能物流股份有限公司 一种基于序列号的网络请求防篡改方法
CN112134881B (zh) * 2020-09-22 2023-03-21 宏图智能物流股份有限公司 一种基于序列号的网络请求防篡改方法

Also Published As

Publication number Publication date
WO2014201830A1 (en) 2014-12-24
CN104134021B (zh) 2016-03-02
US20140380469A1 (en) 2014-12-25
US9607147B2 (en) 2017-03-28

Similar Documents

Publication Publication Date Title
CN104134021B (zh) 软件的防篡改验证方法及装置
CN108199852B (zh) 一种鉴权方法、鉴权系统和计算机可读存储介质
CN107395614B (zh) 单点登录方法及系统
AU2020260457B2 (en) Verifying user interactions on a content platform
CN108521405B (zh) 一种风险管控方法、装置及存储介质
JP2018534869A (ja) アクセスデータ改ざん防止方法、携帯端末、装置及び読み取り可能な記憶媒体
CN112187931A (zh) 会话管理方法、装置、计算机设备和存储介质
CN109547426B (zh) 业务响应方法及服务器
CN112000951A (zh) 一种访问方法、装置、系统、电子设备及存储介质
CN111475782A (zh) 基于sgx软件扩展指令的api密钥保护方法及系统
CN114422139A (zh) Api网关请求安全验证方法、装置、电子设备及计算机可读介质
CN110489957B (zh) 访问请求的管理方法和计算机存储介质
CN106487752A (zh) 一种用于验证访问安全的方法和装置
CN111294337A (zh) 一种基于令牌的鉴权方法及装置
CN113190838A (zh) 一种基于表达式的web攻击行为检测方法及系统
CN108965335B (zh) 防止恶意访问登录接口的方法、电子设备及计算机介质
ES2907279T3 (es) Servidor de seguridad para la verificación dinámica de contenidos web, dispositivo remoto del usuario final, sistema que comprende dicho dispositivo remoto del usuario final y servidor, y método implementado por dicho sistema
CN115037482A (zh) 欺诈行为检测方法、装置、电子设备及可读存储介质
CN104009963A (zh) 远程密码的安全认证机制
CN109344569B (zh) 软件使用的授权方法及系统
CN109167785B (zh) 一种虚拟可信根的调用方法和业务服务器
CN113849802A (zh) 一种设备认证方法、装置、电子设备及存储介质
CN108259490B (zh) 一种客户端校验方法及装置
CN111654864B (zh) 二次鉴权方法及相关设备
CN110086761B (zh) 一种提供资源的方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230625

Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518044, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.