CN109614768B - 基于区块链数据文件实施产品授权的方法及系统 - Google Patents
基于区块链数据文件实施产品授权的方法及系统 Download PDFInfo
- Publication number
- CN109614768B CN109614768B CN201811463903.8A CN201811463903A CN109614768B CN 109614768 B CN109614768 B CN 109614768B CN 201811463903 A CN201811463903 A CN 201811463903A CN 109614768 B CN109614768 B CN 109614768B
- Authority
- CN
- China
- Prior art keywords
- authorization
- product
- data file
- information
- blockchain 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.)
- Active
Links
- 238000013475 authorization Methods 0.000 title claims abstract description 234
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000002790 cross-validation Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 238000005242 forging Methods 0.000 abstract description 4
- 238000012795 verification Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method 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/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/107—License processing; Key processing
- G06F21/1075—Editing
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (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
本发明提供一种基于区块链数据文件对产品进行授权的方法,包括:1)在新增或删除一项针对产品的授权时,由实施授权的设备产生区块链数据文件,所述区块链数据文件中包含与当前授权对应的产品的加密信息以及全部或部分较早授权的产品的授权信息,并且所述与当前授权对应的产品的加密信息中包含针对另一件授权产品的信息;2)将所述区块链数据文件提供给与所述新增或删除的授权对应的产品。本发明可以防止他人伪造授权文件,能够提供更加安全可靠的授权方案的能力,并且可以尽可能减少产品向服务器反馈信息、减少服务器压力。
Description
技术领域
本发明涉及基于数字信息技术的身份验证,尤其涉及在以区块链数据文件作为加密许可文件来实现对软件或硬件产品的授权许可。
背景技术
随着科技的发展,市场中出现了许多需要基于数字信息技术进行授权验证的产品,这些产品可以是软件产品、也可以是硬件产品。例如,许多应用程序、游戏的官网提供在线下载的功能,用户付费后可获得授权,在运行这些软件时通过验证来判断用户是否获得了授权。又例如,在物联网、智能家居领域中,装置之间通过通信实现彼此之间的协作或完成相应的任务,在获得授权的硬件集合中可以实现资源共享,这同样需要授权验证来实现。
传统的对软硬件产品的授权方式包括:基于激活码、加密的许可文件或者绑定用户账号的方式来实现针对功能的授权。在这些授权方式中,激活码容易在离线的情况下通过反复测试而破解从而失去针对特定使用者的授权效果。而绑定账号的方式则依赖于中央服务器实时提供授权校验,在无法连接到互连网,例如网络状况不佳的情况下,难以实现授权目的。对于采用加密许可文件而言,其可以通过选择加密手段的方式来防止破译,由于该技术的解密可以在待授权产品端完成,因而实现该技术并不需要中央服务器进行集中控制,此外该技术还可以防止许可文件被篡改。然而,现有的加密许可文件无法防止他人伪造许可文件。
因而需要一种能够防止他人伪造许可文件的方案。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种基于区块链数据文件对产品进行授权的方法,包括:
1)在新增或删除一项针对产品的授权时,由实施授权的设备产生区块链数据文件,所述区块链数据文件中包含与当前授权对应的产品的加密信息以及全部或部分较早授权的产品的授权信息,并且所述与当前授权对应的产品的加密信息中包含针对另一件授权产品的信息;
2)将所述区块链数据文件提供给与所述新增或删除的授权对应的产品。
优选地,根据所述方法,其中所述与当前授权对应的产品的加密信息中包含针对另一件授权产品的经过加密的信息。
优选地,根据所述方法,其中步骤2)包括:以离线的方式将所述区块链数据文件提供给与所述新增或删除的授权对应的产品。
优选地,根据所述方法,其中步骤2)包括:通过互联网向各个网络中的产品广播所述区块链数据文件。
优选地,根据所述方法,其中步骤2)包括:
2-1)通过互联网将所述区块链数据文件提供给与所述新增或删除的授权对应的产品处于同一网络中的至少一个产品;
2-2)由接收到所述区块链数据文件的产品通过内部网络向与其处于同一网络的所有产品广播所述新的区块链数据文件。
优选地,根据所述方法,其中步骤2)中接收到的区块链数据文件的产品通过以下方式确定所述区块链数据文件:
若接收到的区块链数据文件中所包含的许可信息所对应的产品的总数大于原区块链数据文件中所包含的许可信息所对应的产品的总数,则采用接收到的区块链数据文件作为所述区块链数据文件;或者
若根据区块链数据文件中产品编号的规则,接收到的区块链数据文件中至少有一个产品编号产生的时间晚于原区块链数据文件中所有产品编号产生的时间,则采用接收到的区块链数据文件作为所述区块链数据文件。
优选地,根据所述方法,所述区块链数据文件的针对每一件授权产品的非加密信息中包含该授权产品的授权编号,并且所述区块链数据文件的针对至少一件授权产品的加密信息中包含针对该授权产品的经过加密的授权信息以及针对所述另一件授权产品的经过加密的授权信息。
优选地,根据所述方法,所述区块链数据文件包含所有N个授权产品中每一个的加密许可信息{Mn},1≤n≤N,n为授权产品的编号;
其中,所述加密许可信息Mn包括:针对授权编号为n的授权产品的授权信息mn、对授权信息加密而获得的An以及Bn;
其中,B1为固定值,在n>1时,Bn为基于Ai的值,i≠n,i≥1。
优选地,根据所述方法,其中实施授权的设备通过以下方式产生所述新的区块链数据文件:
确定与所述新增的授权对应的授权编号为p的授权产品的加密许可信息Mp;
将Mp增加到原区块链数据文件中,以生成新的区块链数据文件。
优选地,根据所述方法,其中i等于n-1。
优选地,根据所述方法,其中所述区块链数据文件的最低区块高度被设置为固定值。
一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序在被执行时用于实现上述任意一项所述的方法。
一种基于区块链数据文件对产品进行授权的系统,包括:
存储装置、以及处理器;
其中,所述存储装置用于存储计算机程序,所述计算机程序在被所述处理器执行时用于实现上述任意一项所述的方法。
与现有技术相比,本发明的实施例具有以下优点:
可以防止他人伪造授权文件。所生成的针对授权编号为n的产品的授权文件中不仅包含针对其自身授权信息的加密许可信息,还包含用于对其进行验证的其它产品的加密许可信息,由此可以利用不同产品的加密许可信息实现交叉验证,以确定授权文件是否为伪造。本发明还可以以区块链数据文件的形式生成授权文件,区块链中的每个待授权产品都持有针对全部授权产品的许可信息。此种情况下,用于交叉验证的选择变得更多样化,因而具备能够提供更加安全可靠的授权方案的能力。并且,可以尽可能减少产品向服务器反馈信息、减少服务器压力。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是根据本发明的实施例1生成授权文件的方法流程图;
图2是根据本发明的实施例2基于通过实施例1所生成授权文件而对产品授权的方法流程图;
图3a是根据本发明的实施例3采用区块链数据文件形式的授权文件的一个示例;
图3b是根据本发明的实施例3针对图3a的区块链数据文件中的授权数据块的一个示例;
图4a是根据本发明的实施例5基于区块链数据文件对产品进行授权的方法流程图;
图4b是根据本发明的实施例5由授权中心向其他产品广播最新的区块链数据文件的示例;
图5是根据本发明的实施例6由产品向与其处于同一局域网内的其他产品广播其所持有的区块链数据文件的示例;
图6是根据本发明的实施例7由离线且未获得用于向其授权的区块链数据文件的产品向授权中心或其他产品要求以离线的方式获得该区块链数据文件的示例。
具体实施方式
在授权文件中通常会包含加密许可信息,以确定授权有效期、以及所授予权限。发明人提出,在生成授权文件时可以利用不同授权产品的加密许可信息进行交叉验证。例如,可以基于产品一的加密许可信息生成产品二的加密许可信息的一部分,在进行授权时,若是可以从产品二的加密许可信息中获得产品一的加密许可信息,那么产品二的授权文件系伪造的概率则相对较低。因而,可以利用这一点来生成授权文件、并实施授权验证。
下面结合附图和具体实施方式对本发明作详细说明。
<实施例1>
参考图1,提供一种生成授权文件的方法,包括:
步骤1.针对当前授权产品,确定其授权编号n、授权起始时间、授权截至时间、用于标识所授予功能的识别码,以作为授权信息mn。根据具体应用场景的需要,还可以在授权信息中增加其他内容,例如被授予权限的软件版本、被授予权限的硬件设备、执行生成授权文件的方法的软件版本和硬件设备、执行生成授权文件的方法的人员信息、被授权账户信息等。
步骤2.对当前授权产品的授权信息mn执行哈希计算,获得An。
这里的哈希计算可以是直接将mn的哈希值作为An,也可以是将对mn执行一系列哈希算法(例如MD5,SHA1等)后得到的字符串作为An。并且,考虑隐去加密方式可以提高授权验证的可靠性,优选地在实施此方法时,不对外公开此步骤中所执行的具体哈希计算。
步骤3.确定用于当前授权产品进行交叉验证的信息Bn。
在此步骤中,将对授权编号为i的产品的授权信息mi进行加密的结果Ai作为信息Bn,i≠n。考虑到授权文件的创建可能随着需要而增加,因此在选择针对当前授权产品进行交叉验证的产品时,优先考虑选择授权编号早于n的产品,即i<n。为了使得全部产品的授权信息都能得到利用,从而增加授权文件中加密的不确定性,优先考虑选择授权编号临近于n的产品,例如授权编号i为n+1或n-1的产品。
对于n=1,此时没有其他产品获得授权,属于特殊情况。对此可以直接设置一个固定值作为B1,例如0或其他随机字符串。
步骤4.将mn、An、Bn合并,以作为针对当前授权产品的加密许可信息Mn。根据本发明的一个实施例,并不限制上述三个字段的排列组合方式,只要能够区分出这三者即可。
步骤5.基于上述字段生成针对当前授权产品的授权文件。
该授权文件至少包括Mn以及Mi,其中Mi是指第i个产品的加密许可信。对于n=1,可以直接基于M1生成针对第1个产品的授权文件,该第一个授权产品采用B1来验证其真伪。
在本实施例中,授权文件中包含加密部分和非加密部分。通过将授权编号写入到非加密部分,可以方便产品获得用于验证文件真伪的另一件产品的信息,然而应当理解,在本发明的另一些实施例中,也可以不将授权编号写入非加密部分。
并且,在本实施例中,Bn=Ai,Ai为对mi加密获得,由此可以确保不泄露授权编号为i的产品的隐私。可以理解,在本发明的一些其他实施例中,也可以将Bn设置为第i个产品的授权信息mi,或者设置为与第i个产品相关的信息。此外,在本发明的另一些实施例中,还可以将Bn设置为对上述Ai、mi、或与第i个产品相关的信息执行加盐加密或哈希运算后所产生的新的字符串。
在本实施例中,授权文件中包括Mn以及Mi,然而可以理解,在本发明的另一些实施例中,也可以仅将第i个产品与Bn相关的信息内容(例如Ai、mi等)与Mn一并写入授权文件。
<实施例2>
参考图2,提供一种基于通过实施例1所生成授权文件而对产品授权的方法,包括:
步骤1.确定当前待授权产品的授权编号n。根据本发明的一个实施例,授权文件的加密许可信息中包含被授权文件的未被加密的授权编号,因此可以直接提取和识别。相应地,根据本发明的其他实施例,对于被加密的授权编号,可以按照约定的解密方法进行解密而获得。
步骤2.判断当前待授权产品的授权编号n是否等于1:
若是,则提取授权文件中的M1,如果M1中的B1与生成授权文件时所设置的固定值相等,则认为授权信息合法;
若否,则提取授权文件中的加密许可信息Mn以及加密许可信息Mi,比较Mn中Bn与Mi中的Ai是否一致,若交叉验证的结果为是,则认为授权信息合法。
步骤3.在授权信息合法的情况下,基于从授权文件中提取的授权起始时间、授权截至时间、用于标识所授予功能的识别码,对当前待授权产品进行授权。例如,在时间上确定为永久授权、限时授权、或授权过期,在权限等级上确定为拥有添加授权数据的最高权限、拥有除添加授权数据以外的全部完整功能的权限、普通功能权限、或未授权等。
步骤4.在授权时,可以通过比较互联网时间、当前待授权产品的系统时间、以及当前待授权产品中定时更新在注册表和/或特殊文件中的最新时间是否处于授权有效期内,来确定是否授权。
根据本发明的一个实施例,由于互联网能够提供最准确的时间,因此在能够连接到互连网的情况下,优先考虑基于互联网时间判断是否授权。在无法获取互联网时间的情况下,还可以结合当前待授权产品的系统时间、和/或当前待授权产品中定时更新在注册表、特殊文件中的最新时间进行判断。
根据本发明的又一个实施例,也可以判断能否同时满足互联网时间、当前待授权产品的系统时间、以及当前待授权产品中定时更新在注册表和/或特殊文件中的最新时间均处于授权有效期内,以确定是否授权。
<实施例3>
发明人发现,基于上述交叉验证思路的方法非常适合于应用到区块链中。这是由于,基于区块链技术,信息以分布的方式进行存储,每个节点上都存储有针对全部节点的信息。若是以区块链数据文件的形式生成授权文件,则不必像实施例1和2一样选择需要分别提供给每个授权产品的加密许可信息(例如,选择将Mn和Mi一并传输给授权编号为n的待授权产品)。这是由于,区块链中的每个待授权产品都持有针对全部授权产品的许可信息。此种情况下,用于交叉验证的选择变得更多样化,因而具备能够提供更加安全可靠的授权方案的能力。
另一方面,基于区块链技术还可以防止由于生成授权文件的服务器宕机、产品离线而导致的数据丢失问题,例如在一个待授权产品没有收到授权文件时,其还可以从其他产品处获得用于其本身的授权文件。
基于区块链技术生成授权文件的方法,与实施例1相类似,区别在于在为第N个产品生成授权文件时,以区块链数据文件的方式生成所述授权文件,在授权文件中包含所有N个授权产品中每一个的许可信息。
例如,图3a示出了采用区块链数据文件作为授权文件的一个示例。参考图3a,通过具有最高权限的产品实施生成授权文件的操作,以获得作为授权文件的区块链数据文件。在区块链数据文件中,包括:原始块、授权数据块A、授权数据块B、其他授权数据块。
其中,原始块为第一个被授权产品的信息。一般情况下会为与该原始块对应的第一个产品授予最高权限,即具备生成新的授权数据块能力的权限。这里的原始块相当于前述实施例中授权编号等于1的产品的加密许可信息M1。原始块的信息是固定的,而其它授权数据块则可以通过具备最高权限的产品执行添加操作而被加入到区块链数据文件中。
这里的授权数据块A对应于授权编号为n的产品,其相当于前述实施例中的加密许可信息Mn。授权数据块B可用于与授权编号为n的产品进行交叉验证,其对应于授权编号为i的产品,相当于前述实施例中的加密许可信息Mi。其他授权数据块指的是除上述原始块、授权数据块A、授权数据块B以外的全部其他产品所对应的加密许可信息。
尽管图3a中将原始块与授权数据块B做了区分,然而应当理解,原始块所针对的产品也可以用作实施对授权数据块A的交叉验证产品。
此外,在本实施例中,原始块、授权数据块A、授权数据块B、其他授权数据块所采用的加密方式、以及所包含的授权信息可以参考实施例1。
图3b示出了根据本发明的一个实施例的一个授权数据块的示例。该授权数据块包含了许多字段,其中:
“ID”表示序号,即区块高度,其可以被设置为根据授权产品的总数而按照顺序增长,基于该序号可以确定授权编号n,ID为0表示此授权数据块为针对第一个授权产品的原始块;
“AT”表示授权目标,在该示例中“ZCY”为一种综测仪;
“TS”是授权起始时间,“2008/5/15”表示该产品自2008年5月15日获得授权;
“ET”是授权截止时间,这里“9999/12/31”表示不限制该产品的授权截止期限;
“MC”是Machine Code的缩写,表示机器码;
“AN”是授予的权限标识,这里“FFFFFFFFF”表示授予最高权限;
“AO”是为与该ID对应的产品提供授权的设备的机器码,可以看到此示例针对的是ID为0的原始块,其为其自身设置授权权限;
“H”表示当前授权信息的哈希值,即前述实施例中对授权信息m1执行哈希计算而得到的A1;
“PH”为前述实施例中所述的B1,可以将B1设置为0或其他任何固定值,对于除原始块以外的其他授权数据块而言,该字段应当为Bn=Ai。
基于上述方式,可以生成区块链数据文件形式的授权文件。在本发明中,可以采用任意数据格式的区块链数据文件,例如JSON、XML、PPROF等。在实施上述方法时可以根据需要进行选择。
<实施例4>
在本发明中可以基于上述实施例3生成的区块链数据文件形式的授权文件中的交叉验证策略,来实施具体的授权方法。该方法与实施例2相类似,区别在于需要从区块链数据文件中提取针对当前待授权产品的授权数据块(例如图3a中的授权数据块A)、以及用于该待授权产品进行交叉验证的另一件产品的授权数据块(例如图3a中的授权数据块B)。
针对采用区块链技术的方案,在对每一个授权产品(例如授权编号为n)均选择授权编号与其相邻的产品(授权编号为n+1或n-1)作为用于交叉验证、即授权编号为i的产品时,可以针对当前授权产品进行一系列的验证,例如按照授权编号从大到小的顺序进行交叉验证,直到确定可以解析出原始块中预先设置的固定值,才认为授权文件合法。通过这样的方式,可以尽可能地避免伪造产生的授权文件能够获得授权的情况,增加授权的安全可靠性。
根据本发明的一个实施例,在基于采用区块链数据文件形式、且i等于n-1的授权文件对产品实施授权方法时,可以首先从区块链数据文件中解析出授权编号小于等于n的全部授权数据块的集合{Mk},k≤n,k表示符合上述标准的任意一个授权数据块的授权编号。在n大于1时,按照授权编号k从大到小的顺序依次判断能否从Mk中的Bk推测出Mk-1中的Ak-1,直到推测到M1,判断M1中的B1是否与生成该加密许可信息时设置的固定值保持一致。若是均满足,则认为授权信息合法,否则认为授权信息是伪造的。对授权编号n等于1的产品,可以解析出区块链数据文件中的原始块{M1},判断M1中的B1是否与生成该加密许可信息时设置的固定值保持一致,若是则认为授权信息合法,若否则认为授权信息是伪造的。
根据本发明的其他实施例,也可以按照授权编号k从大到小得到顺序进行多次推测,在每次推测均符合交叉验证标准的情况下认为授权信息合法,而不必推测到针对第一个产品的加密许可信息M1。
本实施例进行多次交叉验证的方式,非常有利于避免在他人伪造许可文件时由于偶然因素而生成了形式上合法的文件的情况。
<特殊情况>
在采用根据本发明所提供的授权方案时,在实际实施时可能发生如下两种特殊情况:
情况一,存在多个具有最高权限的产品同时执行生成授权文件的操作的情况。若是所述多个产品处于彼此独立的网络内,或者对于基于区块链技术的方案中执行授权操作的产品彼此间所使用的区块链数据文件版本不同(例如,某一个执行授权操作的产品所使用的区块链数据文件不是最新的,即授权数据块数量与最新版本中的数量不一致),则有可能由它们分别产生多个具有相同序号、然而内容不同的授权文件。此时会产生冲突,例如导致该区块链数据文件中的授权数据块的链式结构出现分叉。
因而,在确定了已被授予最高权限的各个产品后,需要控制在同一时刻,有且仅有一个拥有最高权限的软件执行生成授权文件的操作。
情况二,在针对同一个产品执行了不止一次授权操作的情况下,一般情况是以最后一次授权操作所提供的权限和授权期限为准。然而,对于基于区块链技术的方案而言,由于每个产品都持有区块链数据文件,若是其对区块链数据文件中的授权记录进行修改则可能出现违背上述原则的情况。例如,假设在一个区块链数据文件中的各个授权数据块可以反应出以下信息:
1,授权信息,截止时间为2018年11月20日,授权给A;
2,授权信息,截止时间为2019年3月6日,授权给B;
3,......
4,......
5,授权信息,截止时间为2018年11月15日,授权给A;
6,......
这里针对A做了两次授权,其中第一次授权截止到11月20日,第二次截止到11月15日。授权方的主观意图是由原来给到20日变成给到15日,但是用户可以通过删除区块链数据文件中的第5条及后续记录使得被授权的产品认为授权截止日期为20日,这样显然违背了授权方意图。
解决上述问题的方案之一是将区块链数据文件的最低区块高度设置为统一值,例如5。区块链高度可以理解为上述表单的序号1,2,3,4,5,6;当前有多少条授权记录就表示区块链高度是多少,统一最低区块高度为5就是要求数据文件中至少有5条授权记录。在此情况下,若是删除了第5条记录,则那该区块链数据文件作废,由此达到保护授权的合理目的。
通过上述实施例提供的方案可以防止他人伪造授权文件。所生成的针对授权编号为n的产品的授权文件中不仅包含针对其自身授权信息的加密许可信息,还包含用于对其进行验证的其它产品的加密许可信息,由此可以利用不同产品的加密许可信息实现交叉验证,以确定授权文件是否为伪造。以以区块链数据文件的形式生成授权文件,区块链中的每个待授权产品都持有针对全部授权产品的许可信息。此种情况下,用于交叉验证的选择变得更多样化,因而具备能够提供更加安全可靠的授权方案的能力。
<实施例5>
基于实施例3和实施例4的方案,待授权产品可以自主地根据区块链数据文件在离线状态下确定该文件是否为伪造以及其是否被授予相应的权限。针对上述区块链数据文件的形式的授权文件而言,每当新增加或删除一项授权时,需要生成新的区块链数据文件,并将该新的区块链数据文件提供给与所述新增加或删除的授权对应的产品。
为了避免新增的授权产品无法获得授权,需要确保该产品可以收到最新的区块链数据文件。若是通过服务器集中地接收待授权产品的反馈而判断新增加的授权产品是否接收到了区块链数据文件,则背离了本发明使得待授权产品可以自主地根据授权文件在离线状态下确定其是否被授权的这一初衷。因而,需要尽可能减少产品向服务器或实施授权操作的主体反馈信息,从而减少它们的压力。
基于上述原因,参考图4a和图4b,提供了一种基于区块链数据文件对产品进行授权的方法,包括:
步骤1.在新增一项授权时,由实施授权的设备产生新的区块链数据文件。每当需要新增授权时,可以生成与该新增授权对应的授权数据块,并将其增加到原区块链数据文件中。
步骤2.通过互联网向各个网络中的产品广播所述新的区块链数据文件。使用此种广播方式的好处在于,可以使得所有连接到互连网的产品接收到该新的区块链数据文件。
<实施例6>
在一些情况下,与新增授权对应的产品有可能无法连接到互联网,例如在一些办公场景的局域网中,仅有一到两台电脑具有访问互联网的权限,针对类似的情况,可以对实施例5中的方案进行改进。
例如,由服务器或实施授权的设备通过互联网以广播或单播的方式将所述新的区块链数据文件提供给与所述新增的授权对应的产品处于同一局域网内的至少一个产品,由该产品通过内部网络广播该新的区块链数据文件。
在一些实施例中,局域网内的各个产品可以定时重复上述样在内部网络进行广播的操作,以减少控制系统的复杂度。参考图5,在类似这样的情况下,产品可能难以确定其所接收到的区块链数据文件是来自服务器或者实施授权的设备、还是来自局域网内的其他产品。此时,产品可以对其所持有的原区块链数据文件与接收到的区块链数据文件进行比对,若接收到的区块链数据文件中所包含的许可信息所对应的产品的总数大于原区块链数据文件中所包含的许可信息所对应的产品的总数,或者根据区块链数据文件中产品编号的规则,发现接收到的区块链数据文件中至少有一个产品编号产生的时间晚于原区块链数据文件中所有产品编号产生的时间,则可以认为接收到的区块链数据文件为新的区块链数据文件,否则保持原区块链数据文件不变。
<实施例7>
对于与新增授权对应的产品无法连接到互连网或该产品所在的局域网内没有任何一个产品具有具备对应授权信息的区块链数据文件的情况,也可以以离线的方式向所述产品提供区块链数据文件,例如如图6所示。这是由于基于本发明的区块链数据文件,使得待授权产品可以自主地根据授权文件在离线状态下确定授权文件是否合法以及其是否被授予相应的权限,因而只要产品能够获得上述文件即可,例如采用离线的方式。所述离线的方式指的是不通过互联网,其可以是将存储有所述新的区块链数据文件的诸如U盘等存储介质通过邮寄、人工录入等方式。
通过上述实施例提供的方案可以尽可能减少产品向服务器反馈信息、减少服务器压力。
需要说明的是,上述实施例中介绍的各个步骤并非都是必须的,本领域技术人员可以根据实际需要进行适当的取舍、替换、修改等。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (11)
1.一种基于区块链数据文件对产品进行授权的方法,包括:
1)在新增或删除一项针对产品的授权时,由实施授权的设备产生区块链数据文件,所述区块链数据文件中包含与当前授权对应的产品的加密信息以及全部或部分较早授权的产品的授权信息,并且所述与当前授权对应的产品的加密信息中包含针对另一件授权产品的信息;所述针对另一件授权产品的信息用于对所述当前授权对应的产品进行交叉验证;所述区块链数据文件的针对每一件授权产品的非加密信息中包含该授权产品的授权编号,并且所述区块链数据文件的针对至少一件授权产品的加密信息中包含针对该授权产品的经过加密的授权信息以及针对所述另一件授权产品的经过加密的授权信息;所述区块链数据文件包含所有N个授权产品中每一个的加密许可信息{Mn},1≤n≤N,n为授权产品的编号;其中,所述加密许可信息Mn包括:针对授权编号为n的授权产品的授权信息mn、对授权信息加密而获得的An以及Bn;其中,B1为固定值,在n>1时,Bn为对第i个产品的授权信息mi执行加密计算所得的Ai,i≠n,i≥1;
2)将所述区块链数据文件提供给与所述新增或删除的授权对应的产品;
其中,所述交叉验证包括:当n等于1时,提取授权文件中的M1,如果M1中的B1与生成授权文件时所设置的固定值相等,则认为授权信息合法;当n不等于1时,提取授权文件中的加密许可信息Mn以及加密许可信息Mi,比较Mn中Bn与Mi中的Ai是否一致,若验证的结果为是,则认为授权信息合法。
2.根据权利要求1所述的方法,其中所述与当前授权对应的产品的加密信息中包含针对另一件授权产品的经过加密的信息。
3.根据权利要求1所述的方法,其中步骤2)包括:以离线的方式将所述区块链数据文件提供给与所述新增或删除的授权对应的产品。
4.根据权利要求1所述的方法,其中步骤2)包括:通过互联网向各个网络中的产品广播所述区块链数据文件。
5.根据权利要求1所述的方法,其中步骤2)包括:
2-1)通过互联网将所述区块链数据文件提供给与所述新增或删除的授权对应的产品处于同一网络中的至少一个产品;
2-2)由接收到所述区块链数据文件的产品通过内部网络向与其处于同一网络的所有产品广播所述区块链数据文件。
6.根据权利要求5所述的方法,其中步骤2)中接收到的区块链数据文件的产品通过以下方式确定所述区块链数据文件:
若接收到的区块链数据文件中所包含的许可信息所对应的产品的总数大于原区块链数据文件中所包含的许可信息所对应的产品的总数,则采用接收到的区块链数据文件作为所述区块链数据文件;或者
若根据区块链数据文件中产品编号的规则,接收到的区块链数据文件中至少有一个产品编号产生的时间晚于原区块链数据文件中所有产品编号产生的时间,则采用接收到的区块链数据文件作为所述区块链数据文件。
7.根据权利要求1所述的方法,其中实施授权的设备通过以下方式产生新的区块链数据文件:
确定与所述新增的授权对应的授权编号为p的授权产品的加密许可信息Mp;
将Mp增加到原区块链数据文件中,以生成新的区块链数据文件。
8.根据权利要求1所述的方法,其中i等于n-1。
9.根据权利要求1所述的方法,其中所述区块链数据文件的最低区块高度被设置为固定值。
10.一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序在被执行时用于实现如权利要求1-9中任意一项所述的方法。
11.一种基于区块链数据文件对产品进行授权的系统,包括:
存储装置、以及处理器;
其中,所述存储装置用于存储计算机程序,所述计算机程序在被所述处理器执行时用于实现如权利要求1-9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811463903.8A CN109614768B (zh) | 2018-12-03 | 2018-12-03 | 基于区块链数据文件实施产品授权的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811463903.8A CN109614768B (zh) | 2018-12-03 | 2018-12-03 | 基于区块链数据文件实施产品授权的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614768A CN109614768A (zh) | 2019-04-12 |
CN109614768B true CN109614768B (zh) | 2021-10-15 |
Family
ID=66005308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811463903.8A Active CN109614768B (zh) | 2018-12-03 | 2018-12-03 | 基于区块链数据文件实施产品授权的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614768B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241518A (zh) * | 2020-10-22 | 2021-01-19 | 广州市金其利信息科技有限公司 | 一种基于区块链的软件权限管理方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100343775C (zh) * | 2004-05-25 | 2007-10-17 | 华为技术有限公司 | 一种许可证文件生成方法及软件产品保护方法和系统 |
CN107145768B (zh) * | 2016-03-01 | 2021-02-12 | 华为技术有限公司 | 版权管理方法和系统 |
CN108768618B (zh) * | 2018-06-07 | 2021-05-11 | 广东工业大学 | 一种基于区块链的ip软核授权方法、装置及介质 |
CN108923908B (zh) * | 2018-06-25 | 2022-05-31 | 百度在线网络技术(北京)有限公司 | 授权处理方法、装置、设备及存储介质 |
-
2018
- 2018-12-03 CN CN201811463903.8A patent/CN109614768B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109614768A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359478B (zh) | 基于加密许可文件的授权方法及系统 | |
US11170092B1 (en) | Document authentication certification with blockchain and distributed ledger techniques | |
CN112231647A (zh) | 一种软件授权验证方法 | |
US8935528B2 (en) | Techniques for ensuring authentication and integrity of communications | |
US20170142087A1 (en) | Device authentication agent | |
EP1168141A2 (en) | A secure and open computer platform | |
US7634816B2 (en) | Revocation information management | |
CN108696356B (zh) | 一种基于区块链的数字证书删除方法、装置及系统 | |
CN110119390B (zh) | 基于区块链的金融信息外包管理系统 | |
EP2309411A2 (en) | Method and system for controlled distribution of software programs | |
CN114008968A (zh) | 用于计算环境中的许可授权的系统、方法和存储介质 | |
US20240039731A1 (en) | Authenticated Modification of Blockchain-Based Data | |
JP2005293357A (ja) | ログインシステム及び方法 | |
US11625385B2 (en) | Method and apparatus for managing data based on blockchain | |
US20130173923A1 (en) | Method and system for digital content security cooperation | |
CN111460400A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN108540447B (zh) | 一种基于区块链的证书验证方法及系统 | |
CN113395282A (zh) | 一种阻止第三方访问服务端资源的方法及系统 | |
CN109614768B (zh) | 基于区块链数据文件实施产品授权的方法及系统 | |
US9118660B2 (en) | Method and system for providing access to encrypted data files for multiple federated authentication providers and verified identities | |
CN112585608A (zh) | 嵌入式设备、合法性识别方法、控制器及加密芯片 | |
CN115174602B (zh) | 一种应用于渔业管理的数据处理方法和系统 | |
EP3851994B1 (en) | Verification method, verification apparatus, and verification program | |
CN113051532A (zh) | 软件授权方法与装置和计算机设备及存储介质 | |
CN112699411A (zh) | 操作审计信息的存储方法、装置和计算机可读存储介质 |
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 |