CN112035887B - 证书授权方法、装置、电子设备及存储介质 - Google Patents
证书授权方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112035887B CN112035887B CN202010904564.3A CN202010904564A CN112035887B CN 112035887 B CN112035887 B CN 112035887B CN 202010904564 A CN202010904564 A CN 202010904564A CN 112035887 B CN112035887 B CN 112035887B
- Authority
- CN
- China
- Prior art keywords
- character string
- terminal
- authorization
- certificate
- check code
- 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 184
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012795 verification Methods 0.000 claims abstract description 65
- 238000004364 calculation method Methods 0.000 claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本发明实施例提供一种证书授权方法、装置、电子设备及存储介质,该方法包括:获取终端存储的证书文件中的加密字符串;加密字符串包括:终端唯一标识,终端授权相关时间及校验码;校验码基于终端唯一标识和终端授权相关时间计算获得;基于校验码确定所述证书文件未被篡改,基于终端唯一标识确定证书文件与终端匹配,且基于终端授权相关时间确定证书文件处于授权有效期内,则基于加密字符串进行证书授权。本发明实施例实现了移动终端的离线授权;基于加密字符串进行证书授权,能实现移动终端的身份校验和使用期限控制,并有效防止证书被恶意篡改,复制或伪造。
Description
技术领域
本发明涉及系统安全技术领域,尤其涉及一种证书授权方法、装置、电子设备及存储介质。
背景技术
数字安全证书是保障安卓系统安全的有效手段,被广泛应用,在安卓系统激活阶段,需要获取证书并授权。
现有的安卓系统在获取用于授权的证书时,都是从服务器获取并激活,因此需要终端联网才可以获取并授权;且由于终端的IMEI(International Mobile EquipmentIdentity,国际移动设备识别码)会被山寨机复制或伪造,因此仅基于IMEI生成的安全证书也就不再安全,获取到的证书存在被恶意篡改,复制或伪造的风险。
因此,如何提出一种安全便捷的证书授权方法,成为亟需解决的问题。
发明内容
本发明实施例提供一种证书授权方法、装置、电子设备及存储介质,用以解决现有技术中证书存在被恶意篡改,复制或伪造的风险的缺陷,实现安全便捷的证书授权。
第一方面,本发明实施例提供一种证书授权方法,包括:
获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权。
根据本发明一个实施例的证书授权方法,所述基于所述校验码确定所述证书文件未被篡改,具体包括:
基于所述加密字符串中的预设字节范围对应的字符串,通过所述校验码的计算获取方式,计算获得校验码验证字符串;
其中,所述预设字节范围是第一加密字符串所在字节范围;所述第一加密字符串是所述加密字符串中由终端唯一标识和所述终端授权相关时间计算获得的部分;
确定所述校验码验证字符串与所述校验码一致后,确定所述证书文件未被篡改。
根据本发明一个实施例的证书授权方法,所述终端唯一标识基于终端的国际移动设备识别码IMEI和MAC(Media Access Control Address,媒体存取控制位址)地址计算获得;
所述基于所述终端唯一标识确定所述证书文件与所述终端匹配,具体包括:
基于所述终端的IMEI和MAC地址,通过所述终端唯一标识的计算获取方式,计算获得终端唯一标识验证字符串;
确定所述终端唯一标识和所述终端唯一标识验证字符串一致后,确定所述证书文件与所述终端匹配。
根据本发明一个实施例的证书授权方法,所述基于终端授权相关时间确定所述证书文件处于授权有效期内,具体包括:
基于终端授权相关时间中的终端运行时间,确定终端系统时间正确;
基于终端授权相关时间中的证书文件授权结束时间,确定终端所述证书文件处于授权有效期内。
根据本发明一个实施例的证书授权方法,在所述获取终端本地存储的证书文件中的加密字符串之前,所述方法包括:
通过终端唯一标识的计算获取方式获取所述终端唯一标识;
基于所述终端唯一标识和所述终端授权相关时间计算获得第一加密字符串;
基于第一加密字符串,根据校验码的计算获取方式,获取所述校验码;
基于第一加密字符串和校验码,获得所述加密字符串。
根据本发明一个实施例的证书授权方法,所述基于第一加密字符串,根据校验码的计算获取方式,获取所述校验码,具体包括:
将第一加密字符串的前16字节依次与第17字节异或,获得第二加密字符串;
将第二加密字符串按字节顺序均分为四个加密部分;
对于每一个加密部分,基于其对应的预设数,获得对应的校验码字节;
按各加密部分在第二加密字符串中的顺序,依次排列各加密部分对应的校验码字节,获得所述校验码。
根据本发明一个实施例的证书授权方法,所述通过终端唯一标识的计算获取方式获取所述终端唯一标识,具体包括:
获取终端的IMEI及MAC地址;
将所述终端的IMEI转换成8字节的第一标识字符串,将所述MAC地址转换成6字节的第二标识字符串;
将所述第一标识字符串的最后一个字节拼接至所述第二标识字符串后进行异或,获得所述终端唯一标识。
第二方面,本发明实施例提供一种证书授权装置,包括:
获取模块,用于获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
授权模块,用于基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的证书授权方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如第一方面所提供的证书授权方法的步骤。
本发明实施例提供的证书授权方法、装置、电子设备及存储介质,通过获取终端存储的证书文件中用于进行证书授权的加密字符串,实现了移动终端的离线授权;其中,该加密字符串包括终端唯一标识,终端授权相关时间及校验码,且加密字符串校验码基于终端唯一标识和终端授权相关时间计算获得;随后基于终端唯一标识,终端授权相关时间及校验码确定证书文件正确有效,则基于加密字符串进行证书授权,能实现移动终端的身份校验和使用期限控制,并有效防止证书被恶意篡改,复制或伪造。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的证书授权方法的流程示意图;
图2是本发明一实施例提供的证书生成方法的流程示意图;
图3是本发明一实施例提供的证书认证及授权方法的流程示意图;
图4是本发明一实施例提供的证书授权装置的结构示意图;
图5是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一实施例提供的证书授权方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤100,获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
具体地,为了实现移动终端的离线授权,本实施例中,可以将证书文件保存在终端本地,因此在需要基于证书进行授权时,可以直接从终端本地存储的地址路径中获取证书文件。
具体地,为了区分证书文件与终端普通文件的区别,本实施例中,在将证书文件保存在终端本地时,将其命名为移动终端的IMEI。因此,本实施例中,可以读取终端本地存储的地址路径下的证书文件并对文件名进行初步校验。若文件名为移动终端的IMEI,则保存证书文件中的加密字符串M。否则提示证书文件不匹配。
具体地,为了实现移动终端的身份校验和使用期限控制,移动终端在生成加密字符串M时,主要将其分为三部分生成,分别是终端唯一标识,终端授权相关时间及校验码;其中,为了实现有效防止证书被恶意篡改,复制或伪造,可以在生成校验码时基于终端唯一标识和终端授权相关时间计算获得。
可以理解的是,本实施例的授权证书文件自带校验位,能有效防止证书被恶意篡改和伪造。
步骤110,基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权。
具体地,本实施例中,可以对加密字符串取固定的解密密钥进行解密和解码,检查四字节校验位,终端IMEI,授权开始时间,授权结束时间和终端运行时间是否正确,检查结果均正常则可以基于所述加密字符串进行证书授权。可以理解的是,本实施例中的加密密钥并不一定局限于某一字符串,或者某一种计算方式,可以将加密字符串的生成过程中的计算方式以及参与计算的字符串或者预设数的集合看作加密密钥,将加密字符串的认证授权中的计算方式及参与计算的字符串或者预设数的集合看作解密密钥。
具体地,即使加密字符串中部分内容被篡改,只要基于当前终端的终端唯一标识及终端授权相关时间生成的新的校验码和加密字符串中的校验码不一致,则可以认为证书被恶意篡改;因此可以基于校验码确定证书文件未被篡改。
具体地,即使证书文件被伪造或复制,只要基于加密字符串中的终端唯一标识确定证书文件是否与当前终端的唯一标识匹配,若不匹配,则认为证书文件被伪造或复制。
具体地,本实施例中,在加密字符串中增加了用于限定证书文件有效时限的终端授权相关时间,因此可以基于终端授权相关时间确定证书文件有效。
具体地,本实施例中,只有基于校验码确定所述证书文件未被篡改,基于终端唯一标识确定证书文件与终端匹配,且基于终端授权相关时间确定证书文件处于授权有效期内,才可以认为证书文件正确且有效,才可以基于加密字符串进行证书授权。
本发明实施例提供的证书授权方法,通过获取终端存储的证书文件中用于进行证书授权的加密字符串,实现了移动终端的离线授权;其中,该加密字符串包括终端唯一标识,终端授权相关时间及校验码,且加密字符串校验码基于终端唯一标识和终端授权相关时间计算获得;随后基于终端唯一标识,终端授权相关时间及校验码确定证书文件正确有效,则基于加密字符串进行证书授权,能实现移动终端的身份校验和使用期限控制,并有效防止证书被恶意篡改,复制或伪造。
在上述实施例的基础上,可选地,所述基于所述校验码确定所述证书文件未被篡改,具体包括:
基于所述加密字符串中的预设字节范围对应的字符串,通过所述校验码的计算获取方式,计算获得校验码验证字符串;
其中,所述预设字节范围是第一加密字符串所在字节范围;所述第一加密字符串是所述加密字符串中由终端唯一标识和所述终端授权相关时间计算获得的部分;
确定所述校验码验证字符串与所述校验码一致后,确定所述证书文件未被篡改。
具体地,在基于校验码确定证书文件未被篡改时,可以基于当前终端的终端唯一标识及终端授权相关时间即第一加密字符串所在字节范围对应的字节,通过校验码的计算获取方式,生成的新的校验码即校验码验证字符串,和加密字符串中的校验码进行对比,若不一致,则可以认为证书被恶意篡改。
可以理解的是,本实施例中,第一加密字符串及校验码在加密字符串中所在的字节范围是固定的,因此在验证加密字符串的正确性的时候可以基于预设字节范围进行计算,在将校验码验证字符串与校验码对比时,也只需与校验码所在字节范围的部分字符串对比即可。
可以理解的是,若证书被篡改,可能是被篡改加密字符串中的终端唯一标识或终端授权相关时间或校验码;若终端唯一标识或终端授权相关时间中部分字节被篡改,即第一加密字符串被篡改,基于被篡改的第一加密字符串,以校验码的计算获取方式,生成的校验码验证字符串一定不会与加密字符串中的校验码相同,或若是校验码被篡改,即使基于正确的第一加密字符串,以校验码的计算获取方式,生成的校验码验证字符串,一定不会与被篡改的校验码一致。
可以理解的是,在不知道校验码计算获取方式的基础上,几乎不存在由于巧合使得被篡改后的第一加密字符串,通过校验码计算获取方式,获得的校验码验证字符串还能与加密字符串中正确的校验码一致;同样也不存在由于巧合使得第一加密字符串,通过校验码计算获取方式,获得的校验码验证字符串还能与加密字符串中被篡改的校验码一致;因此本实施例可以有效防止证书被恶意篡改。
在上述实施例的基础上,可选地,所述终端唯一标识基于终端的国际移动设备识别码IMEI和MAC地址计算获得;
所述基于所述终端唯一标识确定所述证书文件与所述终端匹配,具体包括:
基于所述终端的IMEI和MAC地址,通过所述终端唯一标识的计算获取方式,计算获得终端唯一标识验证字符串;
确定所述终端唯一标识和所述终端唯一标识验证字符串一致后,确定所述证书文件与所述终端匹配。
具体地,国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的手机序列号、手机“串号”,用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于移动电话的身份证。由于终端的IMEI容易被山寨机复制或伪造,因此仅基于IMEI生成的安全证书也就不再安全,本实施例中,为了生成更安全的授权证书,可以基于终端的国际移动设备识别码IMEI和MAC地址计算获得终端唯一标识。
具体地,本实施例中,可以提取证书文件中的移动终端唯一标识与当前终端的唯一标识比较,若一致则匹配通过,否则匹配失败,其中,证书文件中的移动终端唯一标识即为通过终端唯一标识的计算获取方式获取的终端唯一标识验证字符串。
具体地,在基于终端唯一标识确定证书文件与终端是否匹配时,可以获取当前终端的IMEI和MAC地址,通过终端唯一标识的计算获取方式,计算获得终端唯一标识验证字符串,并与加密字符串中的终端唯一标识进行对比,若一致,则确定证书文件与终端匹配,若不一致,则可以认为当前终端的证书被山寨机复制,即使山寨机同时复制了终端的IMEI,在山寨机不清楚正确的MAC地址也不清楚终端唯一标识的计算获取方式时,是无法获得正确的终端唯一标识的,因此本实施例可以有效防止证书被复制或者伪造。
在上述实施例的基础上,可选地,所述基于终端授权相关时间确定所述证书文件处于授权有效期内,具体包括:
基于终端授权相关时间中的终端运行时间,确定终端系统时间正确;
基于终端授权相关时间中的证书文件授权结束时间,确定终端所述证书文件处于授权有效期内。
具体地,在基于终端授权相关时间确定证书文件处于授权有效期内时,可以获取加密字符串中的终端授权相关时间,可以理解的是,终端授权相关时间由三个时间戳构成,分别是t1:授权开始的时间戳;t2:为授权结束的时间戳;t3:终端运行的时间戳即证书生成的时间戳。
本实施例中,可以比较终端运行的时间戳t3与终端当前的系统时间n,若t3>n,则提示终端的系统时间错误,可以理解的是,由于证书授权时需要在证书中显示授权时间即系统当前时间,若发现系统当前时间在证书生成时间之前,则认为终端当前时间有误,无法继续授权。比较授权结束的时间戳t2与当前的系统时间n,若t2>n,则提示授权已到期。在确定系统当前时间无误且授权证书未到期,则可以确定证书文件处于授权有效期内。
在上述实施例的基础上,可选地,在所述获取终端本地存储的证书文件中的加密字符串之前,所述方法包括:
通过终端唯一标识的计算获取方式获取所述终端唯一标识;
基于所述终端唯一标识和所述终端授权相关时间计算获得第一加密字符串;
基于第一加密字符串,根据校验码的计算获取方式,获取所述校验码;
基于第一加密字符串和校验码,获得所述加密字符串。
具体地,本实施例中,在获取终端存储的证书文件进行授权之前,终端需要首先生成证书文件并本地保存。
具体地,终端在生成证书文件时,可以首先获取终端的IMEI和MAC地址,通过终端唯一标识的计算获取方式,计算获取终端唯一标识。
在获取终端唯一标识后,可以基于终端唯一标识和终端授权相关时间计算,获得第一加密字符串;其中,终端授权相关时间由三个时间戳构成,分别是t1:授权开始的时间戳;t2:为授权结束的时间戳;t3:终端运行的时间戳即证书生成的时间戳。
在获取第一加密字符串后,可以基于第一加密字符串,根据校验码的计算获取方式,获取校验码。
最后,将第一加密字符串和校验码根据固定的顺序进行排列,是第一加密字符串所在字节范围以及校验码所在字节范围与验证时已知的字节范围一致。进一步将排列后的字符串进行最后一轮的加密,获得加密字符串,具体地,可以将最后获得的拼接排列的字符串与预设的一组数进行循环异或,获得最终的加密字符串。例如,若拼接的字符串为26字节,可以将拼接的字符串与0x21,0x57,0x43,0x68循环异或得到26字节的字符串M。
可以理解的是,本实施例对预设的一组数不作限定,在加密与解密阶段保持一致即可。
在获得加密字符串后,导出证书。指定一个目录,在指定目录下创建一个以移动终端IMEI命名的文件,将生成的加密字符串M写入此文件,即完成证书的生成。本实施例中,证书生成简便快捷,与移动终端一一绑定,复制无效,通过终端授权相关时间能有效约定移动终端的有效期限。
在上述实施例的基础上,可选地,所述基于第一加密字符串,根据校验码的计算获取方式,获取所述校验码,具体包括:
将第一加密字符串的前16字节依次与第17字节异或,获得第二加密字符串;
将第二加密字符串按字节顺序均分为四个加密部分;
对于每一个加密部分,基于其对应的预设数,获得对应的校验码字节;
按各加密部分在第二加密字符串中的顺序,依次排列各加密部分对应的校验码字节,获得所述校验码。
具体地,为了使加密字符串能有效防篡改,在生成校验码时可以将第一加密字符串中尽量多的字节用于计算获得校验码。
具体地,由于校验码为4字节,因此可以取4的倍数的字节范围用于计算校验码,例如可以取第一加密字符串的前16字节依次与第17字节异或,获得16字节的第二加密字符串,然后可以将16字节的第二加密字符串均分为四个加密部分,每一部分用于获取校验码中的一个字节。例如,可以将16字节的第二加密字符串均分为四个加密部分a1、a2、a3、a4,每部分均为4字节。
在将第二加密字符串均分为四个加密部分后,对于每一加密部分,可以基于其对应的预设数,获得对应的校验码字节;具体地,可以将每一部分除以其对应的预设数,获得余数,即作为当前加密部分对应的校验码字节。
例如,a1除以233取余数b1,a2除以251取余数b2,a3除以227取余数b3,a4除以223取余数b4,b1b2b3b4组成新的4字节字符串,即为校验码。
可以理解的是,每一部分对应的预设数为不超过255的较大的质数即可。
在上述实施例的基础上,可选地,所述通过终端唯一标识的计算获取方式获取所述终端唯一标识,具体包括:
获取终端的IMEI及MAC地址;
将所述终端的IMEI转换成8字节的第一标识字符串,将所述MAC地址转换成6字节的第二标识字符串;
将所述第一标识字符串的最后一个字节拼接至所述第二标识字符串后进行异或,获得所述终端唯一标识。
具体地,在获取终端唯一标识时,本实施例可以基于终端的国际移动设备识别码IMEI和MAC地址计算获得终端唯一标识,对于双卡双待的移动终端,可能存在多个IMEI的情况,本实施例中默认取第一个IMEI信息。
在获取终端的IMEI及MAC地址后,由于终端的IMEI一般为15位十进制数字,为了方便将其转换为二进制数,可以在其后加上数0xF,即每2位数字转换成一个字节的二进制数,即可转换成8个字节的二进制数,即第一标识字符串;又因为MAC地址在去掉“:”后,只能转换成6字节的第二标识字符串,因此可以将第一标识字符串的最后一个字节拼接至第二标识字符串,变为2个7字节的字符串后,进行异或计算,获得终端唯一标识。
本发明实施例提供的证书授权方法,通过获取终端存储的证书文件中用于进行证书授权的加密字符串,实现了移动终端的离线授权;其中,该加密字符串包括终端唯一标识,终端授权相关时间及校验码,且加密字符串校验码基于终端唯一标识和终端授权相关时间计算获得;随后基于终端唯一标识,终端授权相关时间及校验码确定证书文件正确有效,则基于加密字符串进行证书授权,能实现移动终端的身份校验和使用期限控制,并有效防止证书被恶意篡改,复制或伪造。
图2是本发明一实施例提供的证书生成方法的流程示意图,如图2所示,该方法包括如下步骤:
步骤200,获取终端唯一标识;
具体地,生成证书的第一步应该首先获取移动终端的唯一标识。
具体地,移动终端的唯一标识有很多,本实施例可以基于移动终端的IMEI和MAC来生成唯一标识。当移动终端仅有一个IMEI时,取IMEI作为唯一标识1;当移动终端存在两个IMEI时,默认取第一个IMEI作为唯一标识1。MAC地址的获取方法是,遍历移动终端的所有硬件MAC地址,取其中wlan0的MAC地址作为唯一标识2。唯一标识由唯一标识1和唯一标识2生成。
具体地,在确定移动终端的IMEI和MAC后,可以通过终端唯一标识的计算获取方式获取所述终端唯一标识;终端唯一标识的计算获取方式,在唯一标识1后添加一个F,转换为一个8字节的第一标识字符串。去掉唯一标识2中的“:”,转换为一个6字节的第二标识字符串。将第一标识字符串的最后一个字节移动到第二标识字符串尾部,可以得到两个7字节的字符串。最后将两个7字节的字符串按位置异或,得到的字符串作为终端唯一标识。
步骤210,获取第一加密字符串;
具体地,在获得终端唯一标识后,可以将移动终端的唯一标识与授权开始时间,授权结束时间及终端运行时间进行组合后进行重新编码,获得第一加密字符串。
具体地,将终端唯一标识作为7字节的字符串1;将授权开始时间、授权结束时间、终端运行时间分别转换为三个时间戳,然后将此三个时间戳转换为三个5字节的字符串:字符串2、字符串3、字符串4。最后,直接拼接字符串1、字符串2、字符串3、字符串4得到一个22字节的字符串5,对字符串5按字节顺序依次分别异或数字1-22,得到22字节的第一加密字符串S。
步骤220,获取校验码;
具体地,可以对步骤210中编码生成的第一加密字符串S进行进一步加密。首先,将字符串的前16个字节与第17个字节异或,得到一个新的16字节字符串a;第二步,将字符串a均分为四部分:a1、a2、a3、a4,每部分均为4字节;第三步,a1除以对应的预设数233取余数b1,a2除以对应的预设数251取余数b2,a3除以对应的预设数227取余数b3,a4除以对应的预设数223取余数b4,b1b2b3b4组成新的4字节字符串b,字符串b即为校验码。
步骤230,生成加密字符串。
具体地,可以步骤210中获得法人第一加密字符串S和步骤220中获得的字符串b得到字符串c,将字符串c与预设的一组数0x21,0x57,0x43,0x68循环异或,得到26字节的加密字符串M。
本实施例中,在获得证书的加密字符串M后,导出证书,指定终端内的一个目录,在指定目录下创建一个以移动终端IMEI命名的文件作为证书文件,将生成的加密字符串M写入此文件,即完成证书文件的生成。
可以理解的是,本实施例中,对以移动终端IMEI命名的文件的文件类型不做限定。
图3是本发明一实施例提供的证书认证及授权方法的流程示意图,如图3所示,该方法包括如下步骤:
步骤300,证书校验;
具体地,可以基于所述校验码检验证书文件未被篡改。本实施例中,基于加密字符串中的第一加密字符串所在字节范围对应的字符串,通过所述校验码的计算获取方式,计算获得校验码验证字符串,与校验码进行对比校验;
首先,读取指定目录下的证书文件并对文件名进行初步校验。若文件名为当前移动终端的IMEI,则保存证书文件中的加密字符串M。否则提示证书文件不匹配。
其次,将获取的加密字符串M与证书生成时的预设的一组数循环异或获得字符串c’,例如若证书生成时的预设的一组数为0x21,0x57,0x43,0x68,则将M与0x21,0x57,0x43,0x68循环异或得到26字节的字符串c’;
然后,取字符串c’的前16字节与第17个字节异或,得到16字节字符串a’;将16字节字符串a’均分为四部分:a1’、a2’、a3’和a4’,每部分均为4字节;并用a1’除以对应的预设数比如233取余数b1’,a2’除以对应的预设数比如251取余数b2’,a3除以对应的预设数比如227取余数b3’,a4除以对应的预设数比如223取余数b4’,b1’b2’b3’b4’组成新的4字节字符串即校验码验证字符串;第五步,比较校验码验证字符串和字符串c’的最后4字节即校验码,若一致则校验成功,否则校验失败。
步骤310,证书匹配;
具体地,本实施例中,可以基于终端的IMEI和MAC地址,通过所述终端唯一标识的计算获取方式,计算获得终端唯一标识验证字符串;并确定终端唯一标识和所述终端唯一标识验证字符串一致后,确定所述证书文件与所述终端匹配。
具体地,将步骤300中获取的字符串c’的前22字节分别异或数字1-22得到字符串5’;然后,可以获取当前移动终端的IMEI和MAC地址作为唯一标识1’和唯一标识2’;然后可以在唯一标识1’后添加一个F,转换为一个8字节的第三标识字符串。去掉唯一标识2’中的“:”,转换为一个6字节的第四标识字符串。将第三标识字符串的最后一个字节移动到第四标识字符串尾部,可以得到两个7字节的字符串。最后将两个7字节的字符串按位置异或,得到的字符串作为终端唯一标识验证字符串。
最后,比较终端唯一标识验证字符串与字符串5’的前7个字节,若比较结果一致则证书匹配成功,否则证书匹配失败。
步骤320,证书有效认证;
具体地,将步骤310中获取的字符串5’的后15个字节均分为三部分:t1’,t2’,t3’,t1’即为授权开始的时间戳,t2’即为授权结束的时间戳,t3’即为终端运行的时间戳;然后可以比较终端运行的时间戳t3’与当前的系统时间n,若t3’>n,则提示系统时间错误,进一步地,继续比较授权结束的时间戳t2’与当前的系统时间n,若t2’>n,则提示授权已到期。
步骤330,证书授权。
具体地,在步骤300中基于所述校验码确定所述证书文件未被篡改,在步骤310中基于所述终端唯一标识确定所述证书文件与所述终端匹配,且在步骤320中基于终端授权相关时间确定所述证书文件处于授权有效期内,则可以基于加密字符串进行证书授权。
具体地,在进行证书授权时,将证书校验和证书匹配及证书有效认证均通过的加密字符串M,写入移动终端的特定目录下的隐藏文件中,完成授权。
本发明实施例提供的证书授权方法,通过获取终端存储的证书文件中用于进行证书授权的加密字符串,实现了移动终端的离线授权;其中,该加密字符串包括终端唯一标识,终端授权相关时间及校验码,且加密字符串校验码基于终端唯一标识和终端授权相关时间计算获得;随后基于终端唯一标识,终端授权相关时间及校验码确定证书文件正确有效,则基于加密字符串进行证书授权,能实现移动终端的身份校验和使用期限控制,并有效防止证书被恶意篡改,复制或伪造。
下面对本发明实施例提供的证书授权装置进行描述,下文描述的证书授权装置与上文描述的证书授权方法可相互对应参照。图4是本发明一实施例提供的证书授权装置的结构示意图,如图4所示,该装置包括:获取模块410及授权模块420;其中:
获取模块410用于获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
授权模块420用于基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权。
具体地,证书授权装置通过获取模块410获取终端存储的证书文件中的加密字符串;其中,加密字符串包括:终端唯一标识,终端授权相关时间及校验码,且校验码基于终端唯一标识和终端授权相关时间计算获得;授权模块420用于基于校验码确定证书文件未被篡改,基于终端唯一标识确定证书文件与所述终端匹配,且基于终端授权相关时间确定证书文件处于授权有效期内,则基于加密字符串进行证书授权。
本发明实施例提供的证书授权装置,通过获取终端存储的证书文件中用于进行证书授权的加密字符串,实现了移动终端的离线授权;其中,该加密字符串包括终端唯一标识,终端授权相关时间及校验码,且加密字符串校验码基于终端唯一标识和终端授权相关时间计算获得;随后基于终端唯一标识,终端授权相关时间及校验码确定证书文件正确有效,则基于加密字符串进行证书授权,能实现移动终端的身份校验和使用期限控制,并有效防止证书被恶意篡改,复制或伪造。
图5是本发明实施例提供的一种电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行证书授权方法,该方法包括:
获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的证书授权方法,该方法包括:
获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的证书授权方法,该方法包括:
获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种证书授权方法,其特征在于,包括:
获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权;
在所述获取终端本地存储的证书文件中的加密字符串之前,所述方法包括:
通过终端唯一标识的计算获取方式获取所述终端唯一标识;
基于所述终端唯一标识和所述终端授权相关时间计算获得第一加密字符串;
基于第一加密字符串,根据校验码的计算获取方式,获取所述校验码;
基于第一加密字符串和校验码,获得所述加密字符串;
所述基于第一加密字符串,根据校验码的计算获取方式,获取所述校验码,具体包括:
将第一加密字符串的前16字节依次与第17字节异或,获得第二加密字符串;
将第二加密字符串按字节顺序均分为四个加密部分;
对于每一个加密部分,基于其对应的预设数,获得对应的校验码字节;
按各加密部分在第二加密字符串中的顺序,依次排列各加密部分对应的校验码字节,获得所述校验码;
所述通过终端唯一标识的计算获取方式获取所述终端唯一标识,具体包括:
获取终端的IMEI及MAC地址;
将所述终端的IMEI转换成8字节的第一标识字符串,将所述MAC地址转换成6字节的第二标识字符串;
将所述第一标识字符串的最后一个字节拼接至所述第二标识字符串后进行异或,获得所述终端唯一标识;
所述基于所述终端唯一标识和所述终端授权相关时间计算获得第一加密字符串,包括:
将终端唯一标识作为7字节的字符串1;将授权开始时间、授权结束时间、终端运行时间分别转换为三个时间戳,然后将所述三个时间戳转换为三个5字节的字符串,作为字符串2、字符串3、和字符串4;拼接字符串1、字符串2、字符串3、和字符串4得到一个22字节的字符串5,对字符串5按字节顺序依次分别异或数字1-22,得到22字节的所述第一加密字符串。
2.根据权利要求1所述的证书授权方法,其特征在于,所述基于所述校验码确定所述证书文件未被篡改,具体包括:
基于所述加密字符串中的预设字节范围对应的字符串,通过所述校验码的计算获取方式,计算获得校验码验证字符串;
其中,所述预设字节范围是第一加密字符串所在字节范围;所述第一加密字符串是所述加密字符串中由终端唯一标识和所述终端授权相关时间计算获得的部分;
确定所述校验码验证字符串与所述校验码一致后,确定所述证书文件未被篡改。
3.根据权利要求1所述的证书授权方法,其特征在于,所述终端唯一标识基于终端的国际移动设备识别码IMEI和MAC地址计算获得;
所述基于所述终端唯一标识确定所述证书文件与所述终端匹配,具体包括:
基于所述终端的IMEI和MAC地址,通过所述终端唯一标识的计算获取方式,计算获得终端唯一标识验证字符串;
确定所述终端唯一标识和所述终端唯一标识验证字符串一致后,确定所述证书文件与所述终端匹配。
4.根据权利要求1所述的证书授权方法,其特征在于,所述基于终端授权相关时间确定所述证书文件处于授权有效期内,具体包括:
基于终端授权相关时间中的终端运行时间,确定终端系统时间正确;
基于终端授权相关时间中的证书文件授权结束时间,确定终端所述证书文件处于授权有效期内。
5.一种证书授权装置,其特征在于,包括:
获取模块,用于获取终端存储的证书文件中的加密字符串;所述加密字符串包括:终端唯一标识,终端授权相关时间及校验码;所述校验码基于所述终端唯一标识和所述终端授权相关时间计算获得;
授权模块,用于基于所述校验码确定所述证书文件未被篡改,基于所述终端唯一标识确定所述证书文件与所述终端匹配,且基于终端授权相关时间确定所述证书文件处于授权有效期内,则基于所述加密字符串进行证书授权;
所述装置还包括加密字符串获取模块,所述加密字符串获取模块用于:
在所述获取终端本地存储的证书文件中的加密字符串之前,通过终端唯一标识的计算获取方式获取所述终端唯一标识;
基于所述终端唯一标识和所述终端授权相关时间计算获得第一加密字符串;
基于第一加密字符串,根据校验码的计算获取方式,获取所述校验码;
基于第一加密字符串和校验码,获得所述加密字符串;
所述加密字符串获取模块具体用于:
将第一加密字符串的前16字节依次与第17字节异或,获得第二加密字符串;
将第二加密字符串按字节顺序均分为四个加密部分;
对于每一个加密部分,基于其对应的预设数,获得对应的校验码字节;
按各加密部分在第二加密字符串中的顺序,依次排列各加密部分对应的校验码字节,获得所述校验码;
所述加密字符串获取模块具体用于:
获取终端的IMEI及MAC地址;
将所述终端的IMEI转换成8字节的第一标识字符串,将所述MAC地址转换成6字节的第二标识字符串;
将所述第一标识字符串的最后一个字节拼接至所述第二标识字符串后进行异或,获得所述终端唯一标识;
所述加密字符串获取模块具体用于:
将终端唯一标识作为7字节的字符串1;将授权开始时间、授权结束时间、终端运行时间分别转换为三个时间戳,然后将所述三个时间戳转换为三个5字节的字符串,作为字符串2、字符串3、和字符串4;拼接字符串1、字符串2、字符串3、和字符串4得到一个22字节的字符串5,对字符串5按字节顺序依次分别异或数字1-22,得到22字节的所述第一加密字符串。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述证书授权方法的步骤。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述证书授权方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010904564.3A CN112035887B (zh) | 2020-09-01 | 2020-09-01 | 证书授权方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010904564.3A CN112035887B (zh) | 2020-09-01 | 2020-09-01 | 证书授权方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035887A CN112035887A (zh) | 2020-12-04 |
CN112035887B true CN112035887B (zh) | 2023-10-27 |
Family
ID=73590842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010904564.3A Active CN112035887B (zh) | 2020-09-01 | 2020-09-01 | 证书授权方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035887B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391750B (zh) * | 2022-10-26 | 2023-02-14 | 浙江华东工程数字技术有限公司 | 一种算法授权方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800819A (zh) * | 2017-11-17 | 2018-03-13 | 深圳市泉眼网络科技有限公司 | 一种文件标识的生成方法、装置和服务器 |
CN108268767A (zh) * | 2016-12-30 | 2018-07-10 | 北京国双科技有限公司 | Web应用程序授权方法及装置 |
CN109598104A (zh) * | 2018-11-28 | 2019-04-09 | 武汉虹旭信息技术有限责任公司 | 基于时间戳和秘密鉴权文件的软件授权保护系统及其方法 |
CN110089068A (zh) * | 2016-10-13 | 2019-08-02 | 西门子股份公司 | 用于认证和完整性保护消息内容的方法、发送器和接收器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090249492A1 (en) * | 2006-09-21 | 2009-10-01 | Hans Martin Boesgaard Sorensen | Fabrication of computer executable program files from source code |
US8468351B2 (en) * | 2006-12-15 | 2013-06-18 | Codesealer Aps | Digital data authentication |
JP6317099B2 (ja) * | 2013-01-08 | 2018-04-25 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | プログラムの正当性を確認するための確認方法及び、確認システム |
-
2020
- 2020-09-01 CN CN202010904564.3A patent/CN112035887B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110089068A (zh) * | 2016-10-13 | 2019-08-02 | 西门子股份公司 | 用于认证和完整性保护消息内容的方法、发送器和接收器 |
CN108268767A (zh) * | 2016-12-30 | 2018-07-10 | 北京国双科技有限公司 | Web应用程序授权方法及装置 |
CN107800819A (zh) * | 2017-11-17 | 2018-03-13 | 深圳市泉眼网络科技有限公司 | 一种文件标识的生成方法、装置和服务器 |
CN109598104A (zh) * | 2018-11-28 | 2019-04-09 | 武汉虹旭信息技术有限责任公司 | 基于时间戳和秘密鉴权文件的软件授权保护系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112035887A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6199335B2 (ja) | 通信ネットワークシステム及びメッセージ検査方法 | |
CN109756343B (zh) | 数字签名的认证方法、装置、计算机设备和存储介质 | |
CN110493197B (zh) | 一种登录处理方法及相关设备 | |
CN107395581B (zh) | 二维码生成及读取方法、装置、系统、设备和存储介质 | |
JP6190404B2 (ja) | 受信ノード、メッセージ受信方法およびコンピュータプログラム | |
US20160080153A1 (en) | Device authenticity determination system and device authenticity determination method | |
CN106230813B (zh) | 鉴权方法、鉴权装置和终端 | |
CN107992753B (zh) | 用于更新车辆的控制设备的软件的方法 | |
US9621533B2 (en) | Bit string collation system, bit string collation method, and program | |
US20100241865A1 (en) | One-Time Password System Capable of Defending Against Phishing Attacks | |
CN112241527B (zh) | 物联网终端设备的密钥生成方法、系统及电子设备 | |
CN104506321A (zh) | 一种更新动态令牌中种子数据的方法 | |
CN112035887B (zh) | 证书授权方法、装置、电子设备及存储介质 | |
CN115333803A (zh) | 用户密码加密处理方法、装置、设备及存储介质 | |
CN108337234B (zh) | 车载程序文件加密方法和装置 | |
KR20160109891A (ko) | Puf 기반 암호키 생성 방법 및 장치 | |
CN115935299A (zh) | 授权控制方法、装置、计算机设备和存储介质 | |
JP6454917B2 (ja) | 通信ネットワークシステム及びメッセージ検査方法 | |
CN107292172B (zh) | 用于相对于参考计算机文件自动验证目标计算机文件的方法 | |
CN112887099A (zh) | 数据签名方法、电子设备及计算机可读存储介质 | |
CN107294726B (zh) | 虚拟加密机数据的导出导入以及处理方法、装置和系统 | |
CN114650175B (zh) | 一种验证方法及装置 | |
CN116545628B (zh) | 应用于保险柜的身份认证方法、装置、保险柜及存储介质 | |
CN112994890B (zh) | 身份认证方法、物联网设备和计算机可读存储介质 | |
CN113872769B (zh) | 基于puf的设备认证方法、装置、计算机设备及存储介质 |
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 |