CN114626025A - 于离线环境下使用的软件授权验证方法 - Google Patents
于离线环境下使用的软件授权验证方法 Download PDFInfo
- Publication number
- CN114626025A CN114626025A CN202011450035.7A CN202011450035A CN114626025A CN 114626025 A CN114626025 A CN 114626025A CN 202011450035 A CN202011450035 A CN 202011450035A CN 114626025 A CN114626025 A CN 114626025A
- Authority
- CN
- China
- Prior art keywords
- application
- serial number
- software
- hard disk
- application software
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000013475 authorization Methods 0.000 claims abstract description 52
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000005516 engineering process Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008569 process Effects 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
- G06F21/121—Restricting unauthorised execution of programs
-
- 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/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- 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
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/107—License processing; Key processing
- G06F21/1078—Logging; Metering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
一种于离线环境下使用的软件授权验证方法,包括下列步骤:于电子装置上执行应用软件;取得序号并将序号输入应用软件;对序号进行解密,以至少取得应用软件的申请使用期限以及电子装置的硬盘于序号被提出申请时的硬盘识别时间;取得电子装置的硬盘当前的上电时间;基于硬盘识别时间以及上电时间计算应用软件在电子装置上的已使用时间;基于已使用时间以及申请使用期限判断应用软件的授权是否过期;及,于判断应用软件的授权过期时禁能应用软件。通过本发明的技术方案,软件被允许在离线环境下自行执行授权期限的验证动作。
Description
技术领域
本发明涉及一种授权期限的验证方法,尤其涉及一种软件的授权期限的验证方法。
背景技术
为了令电脑可以执行各种功能,一般都需要在电脑中安装对应的软件。而为了避免软件被滥用,例如被不当复制、无期限地持续使用等,软件开发商一般会对软件设定一个授权使用期限。当电脑执行软件时,会经由一个验证机制来验证软件的授权使用期限,并且于软件的授权使用期限过期后禁止软件被继续使用。
目前市面上常见的软件,多是采用线上验证的方式。具体地,线上验证的方式是在软件被执行时,由远端的服务器来取得软件的相关信息,借此验证软件的授权是否已经过期。然而,对于部分在不具备网络连线环境中(例如工厂)所使用的电脑来说,并无法使用上述线上验证的方式来进行软件的验证动作。
针对离线环境,目前常见的验证方式是通过硬件锁来进行验证。具体地,当软件被执行时,电脑会到硬件锁(通常为USB Dongle)中读取必要数据,并且于正确地取得了必要数据后,允许软件被开启。然而,通过硬件锁验证的方式需要使用额外的硬件,增加了验证成本。并且,只要使用者取得了所述硬件锁,通常就可以无限制地持续使用该软件,实不具经济效益。
另外,部分厂商亦提出软件锁的验证方式。具体地,软件锁的验证方式是在电脑的文件系统中写入特定的数据,以作为软件的验证基础。然而,只要有心人士于文件系统中找到所述数据,并且对所述数据进行篡改(例如修改数据中记录的使用期限),即会使得预设的验证方式失效。
有鉴于此,本技术领域确实急需一种可以在离线环境中使用,同时又难以被破解的验证方法。
发明内容
本发明的主要目的,在于提供一种于离线环境下使用的软件授权验证方法,可以在不需连网、不需使用额外硬件、并且也不需在电子装置中写入额外文件的情况下实现软件的授权期限的验证。
为了达成上述的目的,本发明的验证方法主要包括下列步骤:于一电子装置上执行一应用软件;取得一序号并将该序号输入该应用软件;对该序号进行解密,以至少取得该应用软件的一申请使用期限以及该电子装置的一硬盘于该序号被提出申请时的一硬盘识别时间;取得该硬盘当前的一上电时间;基于该硬盘识别时间以及该上电时间计算该应用软件在该电子装置上的一已使用时间;基于该已使用时间以及该申请使用期限判断该应用软件的授权是否过期;及,于判断该应用软件的授权过期时禁能(Disable)该应用软件。
与相关技术相比,本发明可以在离线环境下对软件的授权期限进行验证,并且不需要使用额外硬件也不需要写入额外文件,不但降低了离线验证所需的成本,同时也降低了验证方法被破解的可能性。
附图说明
图1为本发明的具体实施例的系统架构图。
图2为本发明的具体实施例的申请码产生流程图。
图3A为本发明的具体实施例的序号申请示意图。
图3B为本发明的具体实施例的申请码产生示意图。
图4为本发明的具体实施例的序号产生流程图。
图5为本发明的具体实施例的验证流程图。
图6A为本发明的第一部分验证流程图。
图6B为本发明的第二部分验证流程图。
其中,附图标记说明如下:
1…电子装置
11…处理器
12…硬盘
121…应用软件
13…传输单元
14…输入单元
15…显示单元
2…发行端服务器
31…申请人数据
32…申请使用期限
33…申请码
S10~S22…申请码产生步骤
S30~S42…序号产生步骤
S50~S64、S70~S94…验证步骤
具体实施方式
兹就本发明的一优选具体实施例,配合附图,详细说明如后。
本发明公开了一种于离线环境下使用的软件授权验证方法(下面将于说明书中简称为验证方法),主要应用于各式电子装置上,例如个人电脑(Personal Computer,PC)、笔记本电脑(Laptop)、平板电脑(Tablet)、服务器(Server)、工业电脑(Industrial PC,IPC)、智能型行动装置(Intellectual Mobile Device)等,以协助电子装置在离线环境下对内部安装的应用软件进行授权期限是否过期的验证程序。
请参阅图1,为本发明的具体实施例的系统架构图。本发明的验证方法主要是应用于如图1所示的电子装置1,并且电子装置1至少具有处理器11,以及电性连接处理器11的硬盘12与传输单元13。使用者可以将应用软件121安装在电子装置1的硬盘12中,并且通过处理器11来执行应用软件121。当应用软件121第一次被处理器11执行时,电子装置1可通过传输单元13发送序号的申请码至发行端服务器2,并且再接收发行端服务器2针对应用软件121所产生并回复的序号。本发明中,当电子装置1接收所述序号并且输入至应用软件121后,应用软件121即可基于序号的内容来执行离线的验证动作。
上述发行端服务器2指的是由提供应用软件121的软件开发商所运行的服务器,由于这个软件开发商具备有应用软件121的授权权限,因此可以通过发行端服务器2来生成并提供用来开通应用软件121的序号。本发明的其中一个技术特征在于,发行端服务器2所生成的序号中夹带了可以让应用软件121执行离线的验证动作的有效信息。
值得一提的是,所述传输单元13可为无线传输单元(例如电信传输单元、Wi-Fi传输单元、蓝牙传输单元、Zigbee传输单元、近场通讯(Near Field Communication,NFC)传输单元等)或有线传输单元(例如USB传输单元),但不加以限定。本发明中,使用者可以在将应用软件121安装至电子装置1并且取得了对应的序号后,将电子装置1移动到离线环境(例如工厂)中使用。于此情境下,应用软件121仍然可以借由序号的内容来进行离线的验证动作,借此避免应用软件121的使用时间超过原本的授权期限。
值得一提的是,本发明中,应用软件121会记录所取得的序号,并且,电子装置1每一次执行应用软件121时,应用软件121皆会基于序号执行一次离线的验证动作,借此有效地追踪应用软件121的授权期限。
于一实施例中,电子装置1还具备有电性连接处理器11的输入单元14。所述输入单元14可例如为键盘、鼠标、触控屏幕等,但不加以限定。于此实施例中,使用者可以通过输入单元14输入申请应用软件121的序号所需的必要数据(容后详述),并且向发行端服务器2提出序号的申请请求。
于一实施例中,电子装置1还具备有电性连接处理器11的显示单元15。所述显示单元15可例如为液晶显示器(Liquid Crystal Display,LCD)或触控屏幕等,但不加以限定。于此实施例中,电子装置1可以通过显示单元15来显示相关视窗,以导引使用者于视窗中填写所述必要数据。
如前文所述,本发明主要是借由有线或无线的方式向发行端服务器2提出应用软件121的序号的申请请求,以令发行端服务器2生成并发送对应的序号。于一实施例中,电子装置1是基于所述必要数据来产生一个申请码,并且将申请码传送至发行端服务器2(例如可通过电子邮件、简讯、传真等),以向发行端服务器2提出序号的申请请求。
参阅图2,为本发明的具体实施例的申请码产生流程图。首先,使用者于电子装置1中安装应用软件121,并且于安装完成后执行应用软件121(步骤S10)。本发明中,应用软件121在第一次被执行后,会经由电子装置1的显示单元15显示序号的申请视窗(步骤S12)。接着,使用者可以借由申请视窗的导引,操作电子装置1的输入单元14以进行数据的输入,以令应用软件121取得申请人信息(步骤S14),并且取得使用者所需的申请使用期限(步骤S16)。并且,为了能够于离线环境下判断应用软件121的授权期限是否过期,本发明的其中一个技术特征在于,应用软件121进一步向电子装置1发出请求,以取得电子装置1中的硬盘12的硬盘信息(步骤S18)。
于一实施例中,所述申请人信息可例如为申请人(即,当前的使用者)的姓名、电子信箱、电话等,但不加以限定。所述申请使用期限可以为一段时间长度(例如一年、两年)或一个授权到期日期(例如2021年12月31日),使用者可视应用软件121的授权规则或授权费用自行选择所需的申请使用期限。所述硬盘信息指的是电子装置1目前使用的硬盘12的相关信息,并且本实施例中的硬盘信息至少须包含在使用者提出序号的申请请求的当下,硬盘12的一个硬盘识别时间。
于一实施例中,应用软件121在上述步骤S18中是向电子装置1请求自我监测、分析及报告技术(Self-Monitoring Analysis and Reporting Technology,S.M.A.R.T)数据,并且将S.M.A.R.T数据中记录的硬盘12的电源打开小时数(Power-on hours)作为所述硬盘识别时间。本发明中,应用软件121主要是将所述硬盘识别时间记录于序号的申请码中(如后详述),如此一来,当应用软件121在执行离线的验证动作时,可以将硬盘识别时间作为一个绝对时间,用来指出应用软件121第一次在电子装置1上被执行的时间点。
所述S.M.A.R.T数据为电脑相关技术领域中的公知技术,于此不再赘述。
值得一提的是,为了将应用软件121与电子装置1进行绑定,避免应用软件121被不当地复制到其他电子装置上使用,应用软件121在前述步骤S18中取得的硬盘信息还可进一步包括电子装置1的设备识别码(Unique Device Identifier,UDID)。更具体地,所述设备识别码可为电子装置1的硬盘12的设备识别码。借由在申请码中夹带硬盘12的设备识别码,应用软件121在取得了序号时,可以借由序号中记录的设备识别码来判断电子装置1的硬盘12是否被更换过(容后详述)。
接着,应用软件121对所述申请人信息、申请使用期限及硬盘信息进行加密运算,以产生一笔申请码(步骤S20)。于一实施例中,应用软件121可采用高级加密标准(AdvancedEncryption Standard,AES)演算法来执行加密运算并产生申请码,其中,所述申请码可为由大小写英文字母、数字及符号所组成的乱数串,但不以此为限。
本发明中,申请码的主要用途在于令发行端服务器2可以产生对应的序号,因此只要申请码正确夹带了必要数据,则申请码可以不需要被加密。例如,应用软件121可以将上述申请人信息、申请使用期限以及硬盘信息直接组成一串字串,以节省电子装置1的运算资源。
于步骤S20后,应用软件121通过电子装置1上的传输单元13将申请码传送至发行端服务器2(步骤S22)。发行端服务器2接收了申请码后,即可依据申请码的内容来产生对应的序号。本发明中,所述序号只有用来产生申请码的应用软件121以及电子装置1可以使用,属于一个独立无二的序号。
于一实施例中,应用软件121在前述步骤S22中可以通过无线的传输单元13来将申请码传送至发行端服务器2,例如,通过电子邮件、简讯、蓝牙传输、Zigbee传输、Wi-Fi传输等。于另一实施例中,电子装置1可通过有线的传输单元13与发行端服务器2连接,例如,通过USB传输线,并且应用软件121在前述步骤S22中可以通过有线方式将申请码传送至发行端服务器2。惟,上述皆仅为本发明的具体实施范例,但不以上述者为限。
请同时参阅图3A及图3B,分别为本发明的具体实施例的序号申请示意图以及申请码产生示意图。
如图3A所示,当使用者于电子装置1上第一次执行应用软件121并且必须申请所述序号时,应用软件121会借由电子装置1的显示单元15显示一个申请视窗。于这个申请视窗上,使用者可以通过输入单元14输入申请人信息31,并且选择所需的申请使用期限32。
于图3A的实施例中,申请人信息31是以申请人姓名及电子信箱为例,而申请使用期限32是以一段时间长度(一年或两年)为例,但是并不以此为限。于其他实施例中,申请人信息31还可包括如申请人的出生年月日、电话号码、身份证字号等,申请使用期限32还可例如为一个确切的授权到期日期。
除了前述的申请人信息31以及申请使用期限32外,应用软件121还会进一步向电子装置1提出请求,以取得电子装置1的硬盘12的硬盘信息(例如设备识别码及电源打开小时数)以及系统时间等申请数据。而如图3B所示,应用软件121在对上述申请数据进行了加密处理后,即可产生一组由乱数组成的申请码33。本发明中,应用软件121所产生的申请码33中夹带了上述所有信息(例如申请人信息31、申请使用期限32、硬件信息、系统时间等)。
续请参阅图4,为本发明的具体实施例的序号产生流程图。本发明中的发行端服务器2指的是开发并提供所述应用软件121的软件开发商所运行的线上(Online)或线下(Offline)服务器,并且发行端服务器2可通过内建的传输单元(图未标示)接收由使用者端的电子装置1所传送的申请码33(步骤S30)。
于接收了申请码33后,发行端服务器2对申请码33进行解密,以还原并取得申请码33中所夹带的各项信息(步骤S32)。本发明中,发行端服务器2主要是采用与电子装置1在前述步骤S20中相同的演算法来对申请码33进行解密。应用软件121于步骤S20中基于哪些数据产生申请码,发行端服务器2在解密申请码后就会相对应地得到同样的数据。于一实施例中,发行端服务器2可以在解密申请码后,得到如申请人信息31、申请使用期限32、硬盘信息(包括硬盘识别时间、设备识别码)等,但不加以限定。
步骤S32后,发行端服务器2首先可判断申请人信息31是否正确(步骤S34)。具体地,发行端服务器2在步骤S34中可判断申请人姓名是否填写错误(例如有无应用软件121的购买记录),以及判断电子信箱是否正确(例如即时发送信件至电子信箱并请申请人进行电子信箱验证),但不以此为限。若申请人信息32不正确,则发行端服务器2不产生应用软件121的序号,而可直接发送错误信息至电子装置1,或是发送错误信息至申请人的电子信箱。于判断申请人信息31正确后,发行端服务器2接着可记录申请人信息31(步骤S36),例如写入数据库(图未标示)中。
惟,上述仅为本发明的具体实施范例,于其他实施例中,发行端服务器2可不判断申请人信息31是否正确,亦可不需记录申请人信息31。
于一实施例中,发行端服务器2进一步取得序号的申请日期(步骤S38)。具体地,发行端服务器2于步骤S38中主要可取得发行端服务器2当前的系统时间,例如作业系统(Operating System,OS)的标准时间或是基本输入输出系统(Basic Input/OutputSystem,BIOS)时间,并且将发行端服务器2的所述系统时间作为序号的申请日期。更具体地,所述申请日期等于发行端服务器2收到所述申请码的日期,并且等于应用软件121的序号的生成日期。
如前文所述,电子装置1主要是在第一次执行应用软件121时产生并发出所述申请码,因此,所述申请日期也可以作为一个绝对时间,用来指出应用软件121第一次在电子装置1上被执行的时间点。然而,相较于申请码中记录的其他信息(例如硬盘识别时间),所述申请日期可能较不精确(因为系统时间较容易遭到篡改),因此上述步骤S38不必然被执行。
接着,发行端服务器2对所取得的数据进行另一种形式的加密运算,以产生专属于应用软件121的序号(步骤S40)。值得一提的是,发行端服务器2在步骤S40中,主要是采用与前述步骤S20中不同的演算法来进行加密运算,以产生所述序号。
最后,发行端服务器2再借由有线或无线的传输方式,将所产生的序号传送至使用者端的电子装置1(步骤S42),以令使用者将序号输入应用软件121,进而开通应用软件121。
于一实施例中,应用软件121产生的申请码中包含了申请人信息31、申请使用期限32及硬盘信息,因此在步骤S40中,发行端服务器2系对申请使用期限32及该硬盘信息进行加密运算,以产生序号。其中,所述硬盘信息可以仅包含硬盘12的硬盘识别时间(即电源打开小时数),或是同时包含硬盘识别时间以及设备识别码。
于另一实施例中,发行端服务器2在接收并解密了申请码后,还进一步取得发行端服务器2的系统时间以作为序号的申请日期。在步骤S40中,发行端服务器2系对申请使用期限32、申请日期及该硬盘信息进行加密运算,以产生序号。
于又一实施例中,使用者选择的申请使用期限32为一段时间长度,而发行端服务器2在产生序号前,会先依据申请日期(例如2020年1月1日)及申请使用期限32(例如两年)来计算应用软件121的一个授权到期日期(即,2022年1月1日)。于此实施例中,发行端服务器2系对申请使用期限32、授权到期日期以及硬盘信息进行加密运算,以产生序号。意即,所产生的序号中直接夹带了应用软件121的授权到期日期。
本发明中,应用软件121是依据使用者提出序号的申请请求时的电子装置1的信息来生成申请码,而发行端服务器2则是依据申请码的内容来产生专属于应用软件121的序号。因此,应用软件121在接收了发行端服务器2所产生的序号后,即可依据序号的内容来自行进行授权期限是否过期的验证动作。
参阅图5,为本发明的具体实施例的验证流程图。首先,电子装置1借由处理器11来执行应用软件121(步骤S50)。若使用者还没有输入过序号,则应用软件121会通过显示单元15显示一个序号输入视窗(图未标示),令使用者将从发行端服务器2收到的序号输入到应用软件121中(步骤S52)。
于另一实施例中,应用软件121可以在产生了申请码并且将申请码传送至发行端服务器2后自动进行等待,而在电子装置1接收到发行端服务器2所传送的序号后,应用软件121可自行从电子装置1上取得所述序号。于此实施例中,应用软件121不需要显示所述序号输入视窗,使用者也不需要手动输入序号。
步骤S52后,应用软件121对所接收的序号进行解密,以取得序号中夹带的信息(步骤S54)。于一实施例中,所述序号中至少记录有应用软件121的申请使用期限32,以及电子装置1的硬盘12在使用者提出序号的申请请求时的硬盘识别时间。
步骤S54后,应用软件121进一步向电子装置1提出请求,以取得电子装置1的硬盘12当前的上电时间(步骤S56)。于取得了硬盘12当前的上电时间后,应用软件121即可基于序号中夹带的硬盘识别时间以及所述上电时间来计算应用软件121在电子装置1上的已使用时间(步骤S58)。
具体地,序号中所夹带的硬盘识别时间,指的是在使用者提出序号的申请请求时,电子装置1的S.M.A.R.T数据中所记录的硬盘12的电源打开小时数(下称第一电源打开小时数),而电子装置1在步骤S56中提供的上电时间,为在应用软件121提出请求时,电子装置1的S.M.A.R.T数据中所记录的硬盘12的电源打开小时数(下称第二电源打开小时数)。于上述步骤S58中,应用软件121主要是以第二电源打开小时数减去第一电源打开小时数,以得到应用软件121在电子装置1上的已使用时间。
于步骤S58后,应用软件121基于已使用时间以及申请使用期限32判断应用软件121的授权是否过期(步骤S60)。举例来说,若已使用时间等于或大于申请使用期限32,则应用软件121认定授权已经过期。于步骤S60中,应用软件121是于判断授权尚未过期时启动应用软件121(步骤S62),并且于判断授权已经过期时禁能应用软件121(步骤S64)。
值得一提的是,应用软件121向电子装置1请求硬盘12的上电时间的时间点,必然晚于使用者提出序号的申请请求的时间点,因此,所述第二电源打开小时数减去第一电源打开小时数后,必然会得到一个正数。由于电子装置1内部的数据容易遭到有心人士的篡改,也容易因为技术原因而产生错误,因此应用软件121在计算所述已使用时间时若发现第二电源打开小时数减去第一电源打开小时数的结果为负数(即,第二电源打开小时数小于第一电源打开小时数),则可直接认定授权已经过期,并且禁能应用软件121。
如前文所述,应用软件121所取得的序号的内容会与申请码的内容相对应,因此除了计算前述的已使用时间并且借由已使用时间来判断授权是否过期之外,应用软件121还可依据实际状况,借由别的数据来执行离线的验证动作。
请同时参阅图6A及图6B,分别为本发明的第一部分验证流程图以及第二部分验证流程图。于本实施例中,电子装置1首先通过处理器11执行应用软件121(步骤S70),接着,由应用软件121判断序号是否已经输入(步骤S72)。若应用软件121尚未接收过序号,则可通过序号输入视窗接收使用者输入序号,或是从电子装置1上自动取得发行端服务器2所回复的序号(步骤S74)。
值得一提的是,只有在第一次执行应用软件121时,才需要输入序号。只要输入过一次序号,应用软件121就会记录这个序号,于后续的所有执行程序中,使用者都不需要再次输入序号。
于接收到了序号后,应用软件121可先判断此序号是否合法(步骤S76),并且于判断序号不合法时,禁能应用软件121(步骤S94),即,立刻关闭应用软件121,或是封锁电子装置1对应用软件121进行操作的权限。于一实施例中,应用软件121记录有发行端服务器2于前述步骤S40中所使用的加密演算法,并且于步骤S76中,应用软件121是于不能正确解密所接收的序号时,判断此序号不合法。
惟,上述仅为本发明的其中一个具体实施范例,于其他实施例中,本发明的应用软件121也可以在收到序号后直接对序号进行解密,而不判断序号的合法性。
接着,应用软件121对序号进行解密,以取得序号中夹带的信息(步骤S78)。
于一实施例中,应用软件121于前述步骤S20中将电子装置1的硬盘12的设备识别码(下面称为第一设备识别码)作为申请码的生成参数的其中之一,并且发行端服务器2于前述步骤S40中也将第一设备识别码作为序号的生成参数的其中之一。因此,应用软件121在对序号进行解密后,可以得到所述第一设备识别码。其中,第一设备识别码用来指出电子装置1在使用者提出序号的申请请求时所使用的硬盘12。
本实施例中,应用软件121会向电子装置1提出请求,以取得电子装置1当前使用的硬盘12的设备识别码(下面称为第二设备识别码)(步骤S80),并且,应用软件121会判断第一设备识别码与第二设备识别码是否相符(步骤S82)。
若第一设备识别码与第二设备识别码不相符,代表电子装置1或硬盘12已经遭到更换,因此应用软件121将会执行前述步骤S94,以禁能应用软件121。反之,若第一设备识别码与第二设备识别码相符,代表硬件没有更换,因此应用软件121会继续执行剩余的验证动作。
于一实施例中,发行端服务器2于前述步骤S40中会将所述申请日期作为序号的生成参数之一。因此,应用软件121在对序号进行解密后,可以得到所述申请日期。其中,所述申请日期用来指出使用者提出序号的申请请求的时间点。
本实施例中,应用软件121会向电子装置1提出请求,以取得电子装置1的系统时间(步骤S84),其中系统时间可例如为OS时间或是BIOS时间,不加以限定。接着,应用软件121基于从序号中取得的申请日期以及申请使用期限32来计算应用软件121的授权到期日期,并且再判断电子装置1的系统时间是否超过授权到期日期(步骤S86)。
举例来说,所述申请日期可以是一个绝对日期,例如2020年1月1日,所述申请使用期限32可以是一段时间长度,例如两年。借此,应用软件121可以计算得出所述授权到期日期为2022年1月1日。于步骤S86中,只要电子装置1的系统时间尚未超过授权到期日期,代表授权尚未过期。
然而如前文所述,由于电子装置1的系统时间能够被轻易地更改,因此除了系统时间的比较之外,本发明的应用软件121还会继续执行其他的验证动作。
于另一实施例中,发行端服务器2在步骤S38中取得了所述申请日期后,会先依据申请日期以及申请使用期限32计算出一个授权到期日期。于前述步骤S40中,发行端服务器2会将所述授权到期日期作为序号的生成参数的其中之一。于此实施例中,应用软件121在对序号进行解密后可以直接得到所述授权到期日期。如此一来,应用软件121在取得电子装置1的系统时间后,可以直接执行前述步骤S86以判断授权是否过期,而不需要再执行额外的计算程序。
值得一提的是,于前述实施例中,使用者在申请序号时所选择的申请使用期限32主要为一段时间长度,例如一年、两年等(如图3A所示),然而于其他实施例中,使用者亦可直接选择一个确切的授权到期日期作为所述申请使用期限32。于此实施例中,发行端服务器2与应用软件121都不需要再另外执行额外的计算程序以计算授权到期日期,而可进一步提升验证动作的执行速度。
接着,应用软件121向电子装置1提出请求,以取得电子装置1的硬盘12当前的上电时间(步骤S88)。接着,应用软件121基于序号中夹带的硬盘识别时间以及所述上电时间来计算应用软件121目前在电子装置1上的已使用时间,并且判断已使用时间是否已超过序号中夹带的申请使用期限32(步骤S90)。
同样地,本实施例中的硬盘识别时间,指的是在使用者提出序号的申请请求时,电子装置1的S.M.A.R.T数据中所记录的硬盘12的第一电源打开小时数;而电子装置1在步骤S88中所提供的上电时间,为在应用软件121提出请求时,电子装置1的S.M.A.R.T数据中所记录的硬盘12的第二电源打开小时数。于步骤S90中,应用软件121以第二电源打开小时数减去第一电源打开小时数,以得到应用软件121在电子装置1上的已使用时间。
若于步骤S90中判断已使用时间已经超过申请使用期限32,应用软件121即判定授权已经过期,因此禁能应用软件121(步骤S94);若于步骤S90中判断已使用时间没有超过申请使用期限32,则应用软件121即判定授权尚未过期,并且允许开启应用软件121(步骤S92)。本实施例中,应用软件121主要是在已使用时间大于或等于申请使用期限32时,认定已使用时间超过申请使用期限32,并且于已使用时间小于申请使用期限32时,认定已使用时间没有超过申请使用期限32。
于另一实施例中,应用软件121在解密了序号后可以得到序号的申请日期以及申请使用期限32,其中申请使用期限32记录的是一个确切的授权到期日期(例如2022年12月31日)。本实施例中,应用软件121可以基于申请日期(例如2020年1月1日)以及所述已使用时间(例如9000小时)来计算一个假定日期(即,假定为当前日期)。而于前述步骤S90中,应用软件121可以将假定日期是否超过授权到期日期作为依据,判断应用软件121的授权是否已经过期。惟,上述说明皆仅为本发明的几个具体实施范例,但不以上述说明者为限。
通过本发明的上述验证方法,应用软件可以在离线环境下对自身的授权期限进行验证,借此以较低的成本得到最高的保护强度,对于软件开发者来说,实为一大福音。
然而,上述仅为本发明的部分具体实施范例,发行端服务器2可视应用软件121所产生的申请码的内容而定,基于不同的数据来产生用来进行验证的序号,而不仅以上述实施例的范围为限。
以上所述仅为本发明的优选具体实例,非因此即局限本发明的专利范围,故举凡运用本发明内容所为的等效变化,均同理皆包含于本发明的范围内,合予陈明。
Claims (15)
1.一种于离线环境下使用的软件授权验证方法,运用于至少具有一处理器及一硬盘的一电子装置,并且包括下列步骤:
a)由该处理器执行一应用软件;
b)取得一序号,并将该序号输入该应用软件;
c)取得该序号中夹带的信息,其中该序号至少记录该应用软件的一申请使用期限,以及该硬盘于该序号被申请时的一硬盘识别时间;
d)取得该硬盘当前的一上电时间;
e)基于该硬盘识别时间及该上电时间计算该应用软件于该电子装置上的一已使用时间;
f)基于该已使用时间及该申请使用期限判断该应用软件的授权是否过期;及
g)于该应用软件的授权已经过期时禁能该应用软件。
2.如权利要求1所述的于离线环境下使用的软件授权验证方法,其中,该硬盘识别时间为在该序号被申请时,该电子装置的一自我监测、分析及报告技术数据中记录的该硬盘的一第一电源打开小时数,该上电时间为该电子装置当前的该自我监测、分析及报告技术数据中所记录的该硬盘的一第二电源打开小时数,步骤e是以该第二电源打开小时数减去该第一电源打开小时数以计算该已使用时间。
3.如权利要求2所述的于离线环境下使用的软件授权验证方法,其中,该序号中还记录该序号的一申请日期,该申请使用期限记录一授权到期日期,步骤f是基于该申请日期、该已使用时间及该授权到期日期判断该应用软件的授权是否过期。
4.如权利要求2所述的于离线环境下使用的软件授权验证方法,其中,该序号中还记录一第一设备识别码,并且步骤c的后还包括下列步骤:
c11)取得该硬盘的一第二设备识别码;
c12)判断该第一设备识别码与该第二设备识别码是否相符;及
c13)于该第一设备识别码与该第二设备识别码不相符时禁能该应用软件。
5.如权利要求2所述的于离线环境下使用的软件授权验证方法,其中,该序号中还记录该应用软件的一授权到期日期,并且步骤c的后还包括下列步骤:
c21)取得该电子装置的一系统时间;
c22)判断该系统时间是否超过该授权到期日期;及
c23)于判断该系统时间超过该授权到期日期时禁能该应用软件。
6.如权利要求2所述的于离线环境下使用的软件授权验证方法,其中,步骤c的后还包括下列步骤:
c31)判断该序号是否合法;及
c32)于判断该序号不合法时禁能该应用软件,其中该应用软件于不能正确解密该序号时判断该序号不合法。
7.如权利要求2所述的于离线环境下使用的软件授权验证方法,其中,该电子装置还包括一传输单元,步骤b是通过该传输单元接收从一发行端服务器所生成并发送的该序号。
8.如权利要求7所述的于离线环境下使用的软件授权验证方法,其中,步骤a的后还包括下列步骤:
a01)于需要申请该应用软件的该序号时,取得申请人信息、该申请使用期限及该电子装置的该硬盘的硬盘信息,其中该硬盘信息至少包括该硬盘识别时间;
a02)对该申请人信息、该申请使用期限及该硬盘信息进行一第一加密运算以产生一申请码;及
a03)通过该传输单元传送该申请码至该发行端服务器,其中该发行端服务器基于该申请码产生该序号。
9.如权利要求8所述的于离线环境下使用的软件授权验证方法,其中,步骤a的后还包括下列步骤:
a04)由该发行端服务器接收该申请码;
a05)对该申请码进行解密以取得该申请人信息、该申请使用期限及该硬盘信息;
a06)记录该申请人信息;
a07)对该申请使用期限及该硬盘信息进行一第二加密运算以产生该序号;及
a08)将该序号传送至该电子装置。
10.如权利要求9所述的于离线环境下使用的软件授权验证方法,其中,该硬盘信息还包括该硬盘的一第一设备识别码。
11.如权利要求9所述的于离线环境下使用的软件授权验证方法,其中,步骤a07前还包括一步骤a007):取得该发行端服务器的系统时间以作为该序号的一申请日期,步骤a07是对该申请使用期限、该申请日期及该硬盘信息进行该第二加密运算以产生该序号。
12.如权利要求11所述的于离线环境下使用的软件授权验证方法,其中,步骤a07包括下列步骤:
a071)依据该申请日期及该申请使用期限计算一授权到期日期;及
a072)对该申请使用期限、该授权到期日期及该硬盘信息进行该第二加密运算以产生该序号。
13.一种于离线环境下使用的软件授权验证方法,运用于至少具有一处理器及一硬盘的一电子装置,并且包括下列步骤:
a)由该处理器执行一应用软件;
b)由该应用软件取得一序号;
c)该应用软件对该序号进行解密,以至少取得该应用软件的一申请日期、一授权到期日期、以及该硬盘于该序号被申请时的一第一设备识别码及一第一电源打开小时数;
d)取得该电子装置的该硬盘当前的一第二设备识别码;
e)于判断该第一设备识别码与该第二设备识别码不相符时禁能该应用软件;
f)取得该电子装置当前的一系统时间;
g)于判断该系统时间超过该授权到期日期时禁能该应用软件;
h)取得该硬盘当前的一第二电源打开小时数;
i)基于该第一电源打开小时数及该第二电源打开小时数计算该应用软件于该电子装置上的一已使用时间;
j)基于该申请日期及该已使用时间计算一假定日期;及
k)于判断该假定日期超过该授权到期日期时禁能该应用软件。
14.如权利要求13所述的于离线环境下使用的软件授权验证方法,其中,步骤a的后还包括下列步骤:
a01)于产生该序号的一申请请求时,通过该电子装置取得申请人信息、一申请使用期限、该第一电源打开小时数及该第一设备识别码;
a02)对该申请人信息、该申请使用期限、该第一电源打开小时数及该第一设备识别码进行一第一加密运算以产生一申请码;及
a03)传送该申请码至一发行端服务器,其中该发行端服务器基于该申请码产生该序号。
15.如权利要求14所述的于离线环境下使用的软件授权验证方法,其中,步骤a的后还包括下列步骤:
a04)由该发行端服务器接收该申请码;
a05)对该申请码进行解密以取得该申请人信息、该申请使用期限、该第一电源打开小时数及该第一设备识别码;
a06)记录该申请人信息;
a07)取得该发行端服务器的系统时间以作为该序号的一申请日期;
a08)依据该申请日期及该申请使用期限计算一授权到期日期;
a09)对该申请日期、该授权到期日期、该第一设备识别码及该第一电源打开小时数进行一第二加密运算以产生该序号,其中该第二加密运算不同于该第一加密运算;及
a10)将该序号传送至该电子装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011450035.7A CN114626025A (zh) | 2020-12-09 | 2020-12-09 | 于离线环境下使用的软件授权验证方法 |
US17/346,201 US20220179927A1 (en) | 2020-12-09 | 2021-06-12 | Verifying method for software authorization under offline environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011450035.7A CN114626025A (zh) | 2020-12-09 | 2020-12-09 | 于离线环境下使用的软件授权验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114626025A true CN114626025A (zh) | 2022-06-14 |
Family
ID=81848166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011450035.7A Pending CN114626025A (zh) | 2020-12-09 | 2020-12-09 | 于离线环境下使用的软件授权验证方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220179927A1 (zh) |
CN (1) | CN114626025A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7090140B2 (ja) * | 2020-11-26 | 2022-06-23 | レノボ・シンガポール・プライベート・リミテッド | 情報処理装置、及びbios管理方法 |
CN115859389B (zh) * | 2023-02-17 | 2023-04-28 | 浪潮通用软件有限公司 | 一种基于私有化部署的软件序列号授权方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9389952B2 (en) * | 2008-06-18 | 2016-07-12 | Super Talent Technology, Corp. | Green NAND SSD application and driver |
US8725649B2 (en) * | 2011-12-08 | 2014-05-13 | Raytheon Company | System and method to protect computer software from unauthorized use |
CN104504308B (zh) * | 2014-12-11 | 2017-09-01 | 国云科技股份有限公司 | 一种禁止虚拟机使用软件的许可证验证方法 |
JP2017021538A (ja) * | 2015-07-09 | 2017-01-26 | キヤノン株式会社 | 情報処理装置、方法、プログラムおよび記憶媒体 |
JP6661395B2 (ja) * | 2016-01-29 | 2020-03-11 | キヤノン株式会社 | ライセンス管理サーバ、ライセンス管理システム、プログラム |
KR20180114942A (ko) * | 2016-02-23 | 2018-10-19 | 엔체인 홀딩스 리미티드 | 분산형 해시 테이블 및 블록체인을 사용하여 컴퓨터 소프트웨어를 보호하기 위한 방법 및 시스템 |
JP2018072889A (ja) * | 2016-10-24 | 2018-05-10 | キヤノン株式会社 | 画像形成装置及びその制御方法 |
CN112865982A (zh) * | 2017-07-26 | 2021-05-28 | 创新先进技术有限公司 | 数字证书管理方法、装置及电子设备 |
CN108228377B (zh) * | 2017-12-29 | 2020-07-07 | 华中科技大学 | 一种面向磁盘故障检测的smart阈值优化方法 |
JP2020107233A (ja) * | 2018-12-28 | 2020-07-09 | キヤノン株式会社 | ストレージ制御装置及びその制御方法、並びにプログラム |
US11321000B2 (en) * | 2020-04-13 | 2022-05-03 | Dell Products, L.P. | System and method for variable sparing in RAID groups based on drive failure probability |
-
2020
- 2020-12-09 CN CN202011450035.7A patent/CN114626025A/zh active Pending
-
2021
- 2021-06-12 US US17/346,201 patent/US20220179927A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20220179927A1 (en) | 2022-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162936B (zh) | 一种软件内容的使用授权方法 | |
CN107395614B (zh) | 单点登录方法及系统 | |
US11842348B2 (en) | Data management system and data management method | |
CN101441692B (zh) | 实现计算机硬件和软件绑定的方法 | |
US20060095566A1 (en) | Network communication device, method of maintenance of network communication device, program, recording medium, and maintenance system | |
CN102316449B (zh) | 一种安全终端系统及其认证和中断方法 | |
CN114626025A (zh) | 于离线环境下使用的软件授权验证方法 | |
CN103793661B (zh) | 移动终端设备、信号处理方法、文档存储服务器和文档管理系统 | |
CN108463970A (zh) | 保护和检索秘密信息的方法和系统 | |
CN105005721A (zh) | 基于计算机开机钥匙的计算机授权开机控制系统及方法 | |
CN115129332A (zh) | 固件烧录方法、计算机设备及可读存储介质 | |
JP3936980B1 (ja) | 電子ファイル管理システムおよび電子ファイル管理プログラム | |
JP2006215843A (ja) | 個人情報管理システム及びその方法、並びに個人情報管理プログラム及びそのプログラムを記憶した記憶媒体 | |
JP2008234048A (ja) | 電子ファイル管理システムおよび電子ファイル管理プログラム | |
CN117375986A (zh) | 一种应用访问方法、装置、服务器 | |
CN112632481A (zh) | 用于对软件进行授权的方法、终端设备及存储介质 | |
JP4698502B2 (ja) | 携帯電話を利用した端末装置認証システム、認証方法およびそのプログラム | |
EP1104554B1 (en) | Improvements in and relating to electronic security devices | |
CN112579998B (zh) | 信息交互平台中的网页访问方法、管理系统和电子设备 | |
KR100952484B1 (ko) | 이동 저장매체를 인증하는 보안 모듈 및 상기 보안 모듈의동작 방법 | |
TW202223626A (zh) | 於離線環境下使用的軟體授權驗證方法 | |
KR101561771B1 (ko) | 휴대용 단말기를 이용한 소프트웨어 복제방지 및 권한인증 장치 및 그 방법 | |
CA3043405A1 (en) | Method for processing transaction data, corresponding communications terminal, card reader and program | |
TWI466527B (zh) | 根據裝置識別碼產生通行碼的系統、方法及該系統中的伺服端裝置 | |
JP5997604B2 (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 |