CN111988143A - 密钥更新方法、装置、设备以及存储介质 - Google Patents

密钥更新方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN111988143A
CN111988143A CN202010892024.8A CN202010892024A CN111988143A CN 111988143 A CN111988143 A CN 111988143A CN 202010892024 A CN202010892024 A CN 202010892024A CN 111988143 A CN111988143 A CN 111988143A
Authority
CN
China
Prior art keywords
key
predetermined length
preset
length period
time
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
CN202010892024.8A
Other languages
English (en)
Other versions
CN111988143B (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.)
Baidu com Times Technology Beijing Co Ltd
Original Assignee
Baidu com Times Technology Beijing 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 Baidu com Times Technology Beijing Co Ltd filed Critical Baidu com Times Technology Beijing Co Ltd
Priority to CN202010892024.8A priority Critical patent/CN111988143B/zh
Publication of CN111988143A publication Critical patent/CN111988143A/zh
Application granted granted Critical
Publication of CN111988143B publication Critical patent/CN111988143B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种密钥更新方法,涉及计算机技术领域,具体涉及通信安全技术、云计算技术和移动互联网技术领域。该密钥更新方法可以应用于服务端,在服务端的至少一个服务实例中,该密钥更新方法包括:生成第一密钥;将第一密钥作为服务端和客户端之间的会话票据的安全密钥;以及,在每个预定时刻,生成第二密钥,并利用第二密钥作来更新第一密钥。本申请实施例还公开了一种密钥更新装置、电子设备和存储介质。

Description

密钥更新方法、装置、设备以及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及通信安全技术、云计算技术和移动互联网技术。更具体地,本申请提供了一种密钥更新方法、装置、设备以及存储介质。
背景技术
客户端与服务端之间可以基于TLS(Transport Layer Security,传输层安全性协议)建立通信连接。为提高TLS握手效率并降低计算资源的损耗,可以利用会话票据(Session Ticket)机制进行会话复用。由于会话票据在客户端侧缓存,造成会话票据存在被盗用的风险。因此,会话票据机制的整体安全性依赖于会话票据的更新机制。又由于会话票据依赖于安全密钥生成,使得会话票据的更新机制本质上依赖于安全密钥的更新机制。
发明内容
提供了一种密钥更新方法、装置、设备以及存储介质。
根据第一方面,提供了一种密钥更新方法,应用于服务端中的至少一个服务实例。该密钥更新方法包括:生成第一密钥;将第一密钥作为服务端和客户端之间的会话票据的安全密钥;以及,在至少一个预定时刻,生成第二密钥,并利用第二密钥作来更新第一密钥。
根据第二方面,提供了一种密钥更新装置,应用于服务端中的至少一个服务实例。该装置包括:密钥生成模块、密钥设置模块和密钥更新模块。密钥生成模块用于生成第一密钥。密钥设置模块用于将第一密钥作为服务端和客户端之间的会话票据的安全密钥。密钥更新模块用于在至少一个预定时刻,生成第二密钥,并利用第二密钥来更新第一密钥。
根据第三方面,提供了一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器。其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行根据本申请提供的密钥更新方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本申请提供的密钥更新方法。
根据本申请的技术方案,服务端中的多个服务实例各自在本地进行安全密钥的生成和更新。多个服务实例之间无需交互,通过预定时刻的设置,使得多个服务实例可以同步地进行安全密钥的更新动作,实现了服务实例集群整体的安全密钥的同步更新。该过程不依赖于复杂的中心管理平台,可以避免中心管理平台与各服务实例之间进行网络交互时的偶发失败问题,可靠性高且成本较低。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一个实施例的应用密钥更新方法和装置的示例性系统架构;
图2是根据本申请一个实施例的密钥更新方法的流程图;
图3是根据本申请另一个实施例的密钥更新方法的流程图;
图4是根据本申请一个实施例的计算第二密钥的过程的流程图;
图5是根据本申请一个实施例的多个服务实例的密钥更新过程的示意图;
图6是根据本申请另一个实施例的密钥更新方法的流程图;
图7是根据本申请一个实施例的会话过程的示意图;
图8是根据本申请一个实施例的密钥更新装置的框图;以及
图9是根据本申请一个实施例的密钥更新方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
随着互联网技术的不断发展,电子商务的交易数量非常庞大,发起交易的客户遍布全球,大型的电子商务服务商普遍采用部署有多个服务实例(Service Instance)的服务端来实现电子商务后台。
服务端可以通过多个服务实例共同提供同一种服务。对于客户端来说,无需区分服务端中的多个服务实例,客户端与服务端的交互过程可以为客户端与服务端中的任一服务实例的交互过程。服务端可以利用多个服务实例进行并行处理从而获得很高的处理效率,也可以利用多个服务实例进行多副本备份,从而在任一服务实例出现异常时整个集群系统还可以正常运行。
图1是根据本申请一个实施例的可以应用密钥更新方法和装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本申请实施例的系统架构的示例,以帮助本领域技术人员理解本申请的技术内容,但并不意味着本申请实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括多个终端设备110、网络120和服务器集群130,服务器集群130可以包括多个服务器131,每个服务器131中可以部署有服务实例,例如长连接实例。其中,终端设备110可以是各种可以进行网络通信的电子设备,例如智能手机、平板电脑、笔记本电脑、台式计算机等,在此不做限制。服务端130中的各个服务器131可以是各种具有一定计算能力的电子设备,在此不做限制。
终端设备110可以安装各种类型的客户端,例如浏览器客户端、移动互联网应用(Application)客户端等,以与服务器集群130进行交互。示例性地,客户端与服务器131中部署的任一服务实例之间可以基于TLS建立通信连接。为提高TLS握手效率并降低计算资源的损耗,可以利用会话票据机制进行会话复用。例如,客户端A与服务实例进行第一次握手之后,服务实例可以利用安全密钥(key)对握手过程中计算得到的会话信息进行加密,以得到会话票据,并将该会话票据发送至客户端A进行存储,同时服务端的多个服务实例可以在一定时间范围内共同保留上述安全密钥,上述安全密钥可称为服务端与客户端A之间的会话票据的安全密钥。后续客户端A可以直接基于该会话票据请求与服务器集群建立通信连接,服务器集群中的任一服务实例可以利用安全密钥对该会话票据进行解密,从而基于其中的会话信息与客户端A进行数据通信,免去重新进行握手的过程。当前要建立安全长连接层,依赖于上述TLS和会话票据机制。
由于会话票据在客户端侧缓存,造成会话票据存在被盗用的风险。因此,会话票据机制的整体安全性依赖于会话票据的更新机制。又由于会话票据依赖于安全密钥生成,使得会话票据的更新机制本质上依赖于安全密钥的更新机制。
一种处理方式下,由一个中心管理平台统一生成安全密钥,服务端的各个服务实例从该中心管理模块主动或被动地获取安全密钥来进行更新。中心管理平台需要依赖高可用架构的基础设施,实现成本较高。在高可用架构下,中心管理平台还需解决安全密钥存储的强一致性问题,此外,网络连通的突发异常、服务实例的动态性等因素,可能影响各个服务实例的安全密钥的一致性更新。
根据本申请实施例,提供了一种密钥更新方法。下面通过图例对该方法进行示例性说明。应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
图2是根据本申请一个实施例的密钥更新方法的流程图。该密钥更新方法可以在服务端执行,例如可以由服务端的每个服务实例执行。
如图2所示,该实施例的密钥更新方法200可以包括操作S210~操作S230。
在操作S210,生成第一密钥。
示例性地,服务端的每个服务实例可以在各自本地首次生成第一密钥。
在操作S220,将第一密钥作为服务端和客户端之间的会话票据的安全密钥。
示例性地,在如上文所述的服务端和客户端之间建立TLS通信连接的场景下,每个服务实例在生成第一密钥后,可以将该第一密钥设置进TLS配置中,以将该第一密钥作为当前服务端和客户端之间的会话票据的安全密钥,从而用于验证客户端发来的会话票据是否失效,并且用于生成当前最新的会话票据。同理地,每个服务实例在对第一密钥进行更新后,也可以将该更新的第一密钥设置仅TLS配置中,以将该更新的第一密钥作为当前服务端和客户端之间的会话票据的安全密钥,从而用于验证客户端发来的会话票据是否失效,并且用于生成当前最新的会话票据。安全密钥和会话票据的工作原理在上文中已说明,在此不再赘述。
在操作S230,在至少一个预定时刻中的每个预定时刻,生成第二密钥,并利用第二密钥作来更新第一密钥。
示例性地,服务端中的每个服务实例在每个预定时刻在各自所部署的系统本地生成第二密钥,并利用该第二密钥来更新各自本地的第一密钥。在执行操作S230之后,可以重复执行操作S220,以实现安全密钥的定期更新。其中,在每个预定时刻生成第二密钥的操作可以通过定时器来触发。
本领域技术人员可以理解,根据本申请实施例的密钥更新方法,服务端中的多个服务实例各自在本地进行安全密钥的生成和更新。多个服务实例之间无需交互,通过预定时刻的设置,使得多个服务实例可以同步地进行安全密钥的更新动作,实现了服务端整体的安全密钥的同步更新。该过程不依赖于复杂的中心管理平台,可以避免中心管理平台与各服务实例之间进行网络交互时的偶发失败问题,可靠性高且成本较低。
根据本公开的实施例,在服务端仅部署有一个服务实例的情况下,也可以执行上述密钥更新方法。在服务端部署有多个服务实例的情况下,还可以参照图3示例性地实施本申请实施例的密钥更新方法。
图3是根据本申请另一个实施例的密钥更新方法的流程图。
如图3所示,该实施例的密钥更新方法300可以包括如下操作。
在操作S340,服务端的多个服务实例进行时间统一设置。
根据本公开的实施例,在执行安全密钥的生成或更新之前,在每个服务实例所在系统中可以安装网络时间协议(Network Time Protocol,NTP)服务,以利用NTP服务对每个服务实例进行所在系统的时钟校准。并且,每个服务实例均可以将世界协调时间(Coordinated Universal Time,UTC)作为该服务实例所在系统的本地时间。通过以上设置,使得服务端中多个服务实例的本地时间始终保持统一。在此基础上,所有服务实例可以统一地在每个预定时刻同步地启动安全密钥的更新动作。
在操作S310,针对每个服务实例,在该服务实例的启动时刻,基于该启动时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到第一密钥。
示例性地,启动时刻所属的预定长度时段可以为:启动时刻所落入的预定长度的时间范围。其中预定长度可以根据实际需要进行预先设置。例如预定长度为一天,启动时刻为2020年8月17日2:00a.m.,则启动时刻所属的预定长度时段为2020年8月17日这一天。又例如预定长度为半天(12个小时),启动时刻为2020年8月17日2:00a.m.,则启动时刻所属的预定长度时段为2020年8月17日0:00~12:00这一时段。
根据本公开的实施例,可以预先在各个服务实例中集成密钥生成算法库,并在各个服务实例中部署随机数文件。密钥生成算法库可以用于为各个服务实例提供预置的统一的密钥生成算法。随机数文件包括多个随机数,可以用于为上述key生成算法提供足够多的随机数数据,从而保证较长时间内所生成的安全密钥的随机性和不重复,提高安全密钥的安全性。
在操作S320,将第一密钥作为服务端和客户端之间的会话票据的安全密钥。
本操作S320与上文中操作S220类似,重复的部分不再赘述。
操作S330可以包括操作S331和操作S332。在操作S331,在每个预定时刻,基于该预定时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到第二密钥。在操作S332,将第二密钥作为更新的第一密钥。在执行操作S330之后,可以重复执行操作S320。
其中,随机数文件以及密钥生成算法的预先设置已在上文说明,在此不再赘述。
示例性地,预定时刻可以根据需要进行预先设置。任一预定时刻所属的预定长度时段可以为:该预定时刻所落入的预定长度的时间范围。预定长度可以根据实际需要进行预先设置。例如预定长度为一天,一个预定时刻为2020年8月17日5:00a.m.,则该预定时刻所属的预定长度时段为2020年8月17日这一天。又例如预定长度为半天(12个小时),预定时刻为2020年8月17日5:00a.m,则预定时刻所属的预定长度时段为2020年8月17日0:00~12:00这一时段。基于本实施例,各个处于运行状态中的服务实例分别在每个预定时刻生成第二密钥,由于计算第二密钥依据的是预定时刻所在的预定长度时段,即便不同服务实例之间具有微小的时间偏差,也可以生成内容一致的第二密钥,来进行安全密钥的一致性更新。
依据图3所示实施例的上述实施过程可知,针对每个服务实例,在该服务实例启动时,基于启动时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法可以生成初始的第一密钥。在该服务实例继续运行过程中,在每个预定时刻,基于该预定时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法可以生成第二密钥。其中第二密钥用于对第一密钥进行更新,第一密钥用于作为服务端与客户端之间的会话票据的安全密钥。由于计算第一密钥和第二密钥所依据的时段长度、随机数文件和密钥生成算法均相同,使得在同一预定长度时段内,各个服务实例无论处于何种工作状态(启动阶段或运行阶段)均可以生成内容一致的安全密钥。从而可以实现服务端的安全密钥的统一性,客户端与任何服务实例之间的通信请求均可以等效地实施。
图4是根据本申请一个实施例的计算第二密钥的过程的流程图。
如图4所示,根据本申请的实施例,针对每个服务实例,上述基于预定时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到第二密钥的过程例如可以按照如下方式实施。
在操作S4311,从预置的随机数文件中获取多个随机数,并由该多个随机数组成第一字符串。
在操作S4312,将第一字符串的字符数量与第一数值之间的商作为第二数值。
在操作S4313,将预定时刻所属的预定长度时段转换为第三数值。
示例性地,可以获取用于表示第一预定长度时段的第五数值、用于表示第二预定长度时段的第六数值、以及用于表示第三预定长度时段的第七数值。其中,预定时刻属于第一预定长度时段,第一预定长度时段属于第二预定长度时段,第二预定长度时段属于第三预定长度时段。将上述第五数值、第六数值和第七数值相乘,以得到第三数值。例如第一预定长度时段为1日,第二预定长度时段为1月,第三预定长度时段为1年。又例如第一预定长度时段为1个小时,第二预定长度时段为1周,第三预定长度时段为1月,等等。可以根据实际需要进行设置。
在操作S4314,利用第三数值对第二数值取余,以得到定位符。
在操作S4315,在第一字符串中,从定位符指示的位置开始,连续获取第一数值个字节,以得到初步密钥。
在操作S4316,基于所得到的初步密钥进行哈希(hash)运算,以得到第二密钥。
在另一实施例中,还可以通过加盐操作来进一步提高第二密钥的安全性。示例性地,将预定时刻所属的预定长度时段转换为第四数值;对第四数值进行哈希运算,以得到加盐值(salt)。在此基础上,上述基于初步密钥进行哈希运算,以得到第二密钥的过程具体可以为:对初步密钥和加盐值之和进行哈希运算,以得到第二密钥。例如,类似地,可以获取上文所述的第五数值、第六数值和第七数值,将第五数值、第六数值和第七数值相加,可以得到第四数值。
上述操作过程示例性地体现了本申请实施例中密钥生成算法的计算逻辑。主要通过哈希算法和随机数文件来保证所生成的密钥的安全性。在其他实施例中,可以设置其他逻辑的密钥生成算法,在此不做限制。
根据本申请的实施例,在服务实例的启动时刻也可以基于类似于图4所示的计算逻辑来计算生成第一密钥。例如,可以将操作S4313中的预定时刻所属的预定长度时段替换为启动时刻所属的预定长度时段。其他操作过程类似,在此不再赘述。
下面结合具体例子,对根据本公开实施例的密钥更新方法的实施过程进行示例性说明。
例如,服务端的多个服务实例为长连接实例。设置预定长度为一天。为不影响业务正常运行,可以设置每天的业务低谷时刻为预定时刻,例如每天3:00a.m.。利用NTP服务对服务端的多个服务实例进行时钟同步并将多个服务实例的本地时间均统一为UTC时间。通过上述设置,不同服务实例的时钟偏差通常在100ms之内。对安全长连接业务来说,时效性足以满足需求。
在各个服务实例中集成密钥生成算法库并同时部署随机数文件。本实施例中,随机数文件包括足够多的真随机数,以满足足够长时间和足够复杂度的密钥生成和更新。例如可以利用Linux系统中的/dev/random设备文件来生成随机数文件中的真随机数。示例性地,通过持续读取/dev/random设备文件来获取足够多数量的真随机数以构成随机数文件。
密钥生成算法库用于为各个服务实例提供统一的密钥生成算法。例如,如表1所示的密钥生成算法,是一种支持天(预定长度)级密钥生成的哈希算法。安全密钥的数据长度例如为32字节。
表1
Figure BDA0002655651910000091
由表1可知,本例中预定时刻/启动时刻所属的第一预定长度时段可表示为第五数值day,第二预定长度时段可表示为第六数值month,第三预定长度时段可表示为第七数值year。例如预定时刻在2020年8月17日3:00a.m.,可取day=17,month=8,year=2020,则第三数值可表示为2020*8*17,第四数值可表示为2020+8+17。
在以上各项部署完成后,服务端的任一服务实例启动时,触发第一密钥的生成,根据启动时刻、上述随机数文件和密钥生成算法在该服务实例本地计算生成第一密钥,以作为当前使用的安全密钥。在TLS配置时,将该安全密钥设置进TLS配置中,使新的会话票据生效。启动定时器,定时在下一个预定时刻触发密钥更新。在下一个预定时刻,触发密钥更新机制,根据预定时刻、上述随机数文件和密钥生成算法在该服务实例本地计算生成第二密钥,以用来更新安全密钥。将更新的安全密钥设置进TLS配置中,使新的会话票据生效。重新启动定时器,等待下一预定时刻。以此类推,不再赘述。
图5是根据本申请一个实施例的多个服务实例的密钥更新过程的示意图。
如图5所示,本实施例中服务端包括服务实例1、服务实例2和服务实例3。服务实例1的启动时间是2020年8月10日2:00a.m.,服务实例2一直处于运行状态,服务实例3的启动时间是2020年8月11日5:00a.m.。沿用上文中预定时刻为每天3:00a.m.,需要说明的是,以上“2020年8月10日2:00a.m.”、“2020年8月11日5:00a.m”以及“3:00a.m.”均为相对于经UTC时间统一后的统一时区而说的。根据本公开的实施例,可以根据预定时刻将统一时区转换为基准时区,以保证各个服务实例本地的安全密钥的强一致性。具体地,在图5中,经过转换,统一时区中的每天3:00a.m.在基准时区中为每天0点,统一时区中的2020年8月10日2:00a.m.在基准时区中为2020年8月9日23:00,统一时区中的2020年8月11日5:00a.m在基准时区中为2020年8月11日2:00a.m.。各服务实例在进行密钥生成和更新时,根据基准时区中的时间参数来计算第一密钥和第二密钥。
示例性地,在统一时区的2020年8月9日3:00a.m.,服务实例2根据表1所示的计算逻辑生成第二密钥key21以更新服务端与客户端之间的会话票据的安全密钥。在统一时区的2020年8月10日2:00a.m.,服务实例1启动并根据表1所示的计算逻辑生成第一密钥key11。由于在基准时区中均处于2020年8月9日,key11与key21相同,表示服务实例1在启动后便可与服务实例2保持安全密钥的一致性,并在后续保持二者密钥的同步更新。在统一时区的2020年8月10日3:00a.m.,服务实例1和服务实例2均根据表1所示的计算逻辑生成第二密钥key22。在统一时区的2020年8月11日3:00a.m.,服务实例1和服务实例2均根据表1所示的计算逻辑生成第二密钥key23。在统一时区的2020年8月11日5:00a.m.,服务实例3根据表1所示的计算逻辑生成第一密钥key12,由于在基准时区中均处于2020年8月11日,key23与key12相同,表示服务实例3自启动后便可以保持与服务实例1、服务实例2的安全密钥的一致性,并在后续保持三个服务实例的密钥的同步更新。可以理解,根据本公开实施例的密钥更新方法,可以实现服务端多个服务实例的密钥更新的内容一致和更新动作的同步。
图6是根据本申请另一个实施例的密钥更新方法的流程图。
如图6所示,本实施例的密钥更新方法600可以包括操作S640、操作S610~S630以及操作S650。其中,操作S640、操作S610~S630分别与上文中S340、操作S310~S330类似,上文中已详细说明,在此不再赘述。
在操作S650,响应于针对服务端的预定风险事件,替换随机数文件。
其中,上述替换随机数文件是指针对服务端的多个服务实例全局地替换随机数文件。根据本公开的实施例,第一密钥和第二密钥的生成过程依赖于密钥生成算法和随机数文件,密钥的安全性与随机数文件密切相关。一些情况下,服务实例中所部署的随机数文件可能被盗,导致密钥存在被破解的风险。在此情况下,响应于服务端发生的预定风险事件,例如报警事件、日志异常事件等,示例性地,可以做全局服务实例的随机数文件的替换,在全局替换随机数文件之后,可以主动或被动地触发所有服务实例进行密钥更新,刷新掉不安全的密钥,以提高当前密钥安全性。。
图7是根据本申请一个实施例的会话过程的示意图,以示例性地展示客户端710与服务端730之间的会话交互过程。
如图7所示,服务端730可以包括多个服务实例731。在首次生成安全密钥之后,多个服务实例731在每个预定时刻同步且一致性地对安全密钥进行更新。例如图7中展示了在预定时刻t1,安全密钥由key1更新为key2,在预定时刻t2,安全密钥由key2更新为key3。
在预定时刻t1之前,客户端710向服务端730发送会话票据701,该会话票据701基于安全密钥key1生成。以服务端的任一服务实例731为例,服务实例731接收到该会话票据701,并利用本地当前最新的安全密钥(即安全密钥key1)对该会话票据701进行解密。解密成功,确定该会话票据701当前有效,可基于会话票据701中的会话信息快速恢复服务端与客户端之间的会话连接。
在预定时刻t1和预定时刻t2之间,客户端710向服务端730发送会话票据701。以服务端的任一服务实例731为例,服务实例731接收到该会话票据701,并利用本地当前最新的安全密钥(即安全密钥key2)对该会话票据701进行解密。由于当前最新的安全密钥与会话票据701所使用的安全密钥不同,解密失败,确定该会话票据701当前失效,需要重新进行会话握手过程,以生成会话信息。并利用当前最新的安全密钥key2对所生成的会话信息进行加密,以得到更新的会话票据702。将更新的会话票据702发送至客户端710进行存储。其他服务实例的处理过程与此类似,在此不再赘述。
根据本公开的实施例,通过服务端各服务实例的安全密钥的定期更新,实现了会话票据的定期更新,降低存储于客户端的会话票据被盗用的风险,提高通信安全性。其中,安全密钥的生成和更新过程具有以下优势:1)第一密钥和第二密钥生成在所有实例本地完成,不依赖复杂中心管理平台,没有网络交互时的偶发失败问题,可靠性高且成本较低。2)方案整体安全性可以依赖于keyfile文件内容的随机性和分发的保密性;如果有泄露风险,可以随时全局替换keyfile来刷新掉不安全的key。3)在实例数极多的场景,也可以做到全局所有实例的秒级内的同步更新。
图8是根据本申请一个实施例的密钥更新装置的框图。
如图8所示,密钥更新装置800可以应用于服务端中的至少一个服务实例,密钥更新装置800可以包括:密钥生成模块810、密钥设置模块820和密钥更新模块830。
密钥生成模块810用于生成第一密钥。
密钥设置模块820用于将第一密钥作为服务端和客户端之间的会话票据的安全密钥。
密钥更新模块830用于在每个预定时刻,生成第二密钥,并利用第二密钥来更新第一密钥。
根据本申请的实施例,密钥更新模块830可以包括生成子模块和更新子模块。其中,生成子模块用于基于预定时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到第二密钥。更新子模块用于利用第二密钥来更新第一密钥。
根据本申请的实施例,生成子模块可以具体用于从随机数文件中获取多个随机数,并由上述多个随机数组成第一字符串;将第一字符串的字符数量与第一数值之间的商作为第二数值;将预定时刻所属的预定长度时段转换为第三数值;利用第三数值对第二数值取余,以得到定位符;在第一字符串中,从定位符指示的位置开始,连续获取第一数值个字节,以得到初步密钥;以及,基于初步密钥进行哈希运算,以得到第二密钥。
根据本申请的实施例,生成子模块还可以用于将预定时刻所属的预定长度时段转换为第四数值,并且,对第四数值进行哈希运算,以得到加盐值。上述生成子模块基于所述初步密钥进行哈希运算,以得到第二密钥的过程可以是生成子模块对初步密钥和加盐值之和进行哈希运算,以得到所述第二密钥。
示例性地,生成子模块将预定时刻所属的预定长度时段转换为第三数值的过程可以为:生成子模块获取用于表示第一预定长度时段的第五数值、用于表示第二预定长度时段的第六数值、以及用于表示第三预定长度时段的第七数值,其中,预定时刻属于第一预定长度时段,第一预定长度时段属于第二预定长度时段,第二预定长度时段属于第三预定长度时段;以及,将第五数值、第六数值和第七数值相乘,以得到第三数值。
示例性地,生成子模块将预定时刻所属的预定长度时段转换为第四数值的过程可以为:获取用于表示第一预定长度时段的第五数值、用于表示第二预定长度时段的第六数值、以及用于表示第三预定长度时段的第七数值,其中,预定时刻属于述第一预定长度时段,第一预定长度时段属于第二预定长度时段,第二预定长度时段属于第三预定长度时段;以及,将所述第五数值、第六数值和第七数值相加,以得到第四数值。
例如,第一预定长度时段为预定时刻所在的1日,第二预定长度时段为所述第一预定长度时段所在的1月,第三预定长度时段为所述第二预定长度所在的1年。
根据本申请的实施例,上述装置800还可以包括:时间同步模块,用于利用网络时间协议NTP服务对服务实例进行时钟校准;以及,将世界协调时间UTC作为服务实例的本地时间。
根据本申请的实施例,密钥生成模块810可以用于在服务实例的启动时刻,基于启动时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到第一密钥。
根据本申请的实施例,上述装置800还可以包括文件替换模块,用于响应于针对所述服务端的预定风险事件,替换所述随机数文件。
示例性地,随机数文件中的随机数为真随机数。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本申请的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本申请实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本申请实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本申请实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是根据本申请实施例的密钥更新方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备900包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的密钥更新方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的密钥更新方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的密钥更新方法对应的程序指令/模块(例如,附图8所示的密钥生成模块810、密钥设置模块820和密钥更新模块830)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的密钥更新方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
密钥更新方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线905或者其他方式连接,图9中以通过总线905连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与密钥更新方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,服务端中的多个服务实例各自在本地进行安全密钥的生成和更新。多个服务实例之间无需交互,通过预定时刻的设置,使得多个服务实例可以同步地进行安全密钥的更新动作,实现了服务端整体的安全密钥的同步更新。该过程不依赖于复杂的中心管理平台,可以避免中心管理平台与各服务实例之间进行网络交互时的偶发失败问题,可靠性高且成本较低。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种密钥更新方法,应用于服务端,所述方法包括:在所述服务端的至少一个服务实例中,
生成第一密钥;
将第一密钥作为所述服务端和客户端之间的会话票据的安全密钥;以及
在至少一个预定时刻,生成第二密钥,并利用所述第二密钥作来更新所述第一密钥。
2.根据权利要求1所述的方法,其特征在于,所述在至少一个预定时刻,生成第二密钥包括:
针对所述至少一个预定时刻中的每个预定时刻,基于所述预定时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到所述第二密钥。
3.根据权利要求2所述的方法,其特征在于,所述基于所述预定时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到所述第二密钥包括:
从所述随机数文件中获取多个随机数,并由所述多个随机数组成第一字符串;
将所述第一字符串的字符数量与第一数值之间的商作为第二数值;
将所述预定时刻所属的预定长度时段转换为第三数值;
利用所述第三数值对所述第二数值取余,以得到定位符;
在所述第一字符串中,从所述定位符指示的位置开始,连续获取所述第一数值个字节,以得到初步密钥;以及
基于所述初步密钥进行哈希运算,以得到所述第二密钥。
4.根据权利要求3所述的方法,其特征在于,所述基于所述预定时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到所述第二密钥还包括:
将所述预定时刻所属的预定长度时段转换为第四数值;以及
对所述第四数值进行哈希运算,以得到加盐值;
所述基于所述初步密钥进行哈希运算,以得到所述第二密钥包括:对所述初步密钥和所述加盐值之和进行哈希运算,以得到所述第二密钥。
5.根据权利要求3所述的方法,其特征在于,所述将所述预定时刻所属的预定长度时段转换为第三数值包括:
获取用于表示第一预定长度时段的第五数值、用于表示第二预定长度时段的第六数值、以及用于表示第三预定长度时段的第七数值,其中,所述预定时刻属于所述第一预定长度时段,所述第一预定长度时段属于所述第二预定长度时段,所述第二预定长度时段属于所述第三预定长度时段;以及
将所述第五数值、第六数值和第七数值相乘,以得到所述第三数值。
6.根据权利要求4所述的方法,其特征在于,所述将所述预定时刻所属的预定长度时段转换为第四数值包括:
获取用于表示第一预定长度时段的第五数值、用于表示第二预定长度时段的第六数值、以及用于表示第三预定长度时段的第七数值,其中,所述预定时刻属于所述第一预定长度时段,所述第一预定长度时段属于所述第二预定长度时段,所述第二预定长度时段属于所述第三预定长度时段;以及
将所述第五数值、第六数值和第七数值相加,以得到所述第四数值。
7.根据权利要求5或6所述的方法,其特征在于,所述第一预定长度时段为所述预定时刻所在的1日,所述第二预定长度时段为所述第一预定长度时段所在的1月,所述第三预定长度时段为所述第二预定长度所在的1年。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用网络时间协议NTP服务对所述服务实例进行时钟校准;以及
将世界协调时间UTC作为所述服务实例的本地时间。
9.根据权利要求1所述的方法,其特征在于,所述生成第一密钥包括:
在所述服务实例的启动时刻,基于所述启动时刻所属的预定长度时段、预置的随机数文件以及预置的密钥生成算法,计算得到所述第一密钥。
10.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于针对所述服务端的预定风险事件,替换所述随机数文件。
11.根据权利要求2所述的方法,其特征在于,所述随机数文件中的随机数为真随机数。
12.一种密钥更新装置,应用于服务端中的至少一个服务实例,所述装置包括:
密钥生成模块,用于生成第一密钥;
密钥设置模块,用于将第一密钥作为所述服务端和客户端之间的会话票据的安全密钥;以及
密钥更新模块,用于在每个预定时刻,生成第二密钥,并利用所述第二密钥来更新所述第一密钥。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-11中任一项所述的方法。
CN202010892024.8A 2020-08-28 2020-08-28 密钥更新方法、装置、设备以及存储介质 Active CN111988143B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010892024.8A CN111988143B (zh) 2020-08-28 2020-08-28 密钥更新方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010892024.8A CN111988143B (zh) 2020-08-28 2020-08-28 密钥更新方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111988143A true CN111988143A (zh) 2020-11-24
CN111988143B CN111988143B (zh) 2024-03-01

Family

ID=73441088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010892024.8A Active CN111988143B (zh) 2020-08-28 2020-08-28 密钥更新方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111988143B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543100A (zh) * 2020-11-27 2021-03-23 中国银联股份有限公司 一种动态密钥生成方法和系统
CN112566116A (zh) * 2020-12-15 2021-03-26 浙江三维万易联科技有限公司 确定密钥的方法、装置、存储介质及电子装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625803B1 (en) * 2011-05-31 2014-01-07 Google Inc. Updating shared keys
CN107104932A (zh) * 2016-02-23 2017-08-29 中兴通讯股份有限公司 密钥更新方法、装置及系统
CN107370751A (zh) * 2017-08-18 2017-11-21 深圳市鑫宇鹏电子科技有限公司 一种在智能设备通信中会话密钥更新方法
CN108462686A (zh) * 2018-01-08 2018-08-28 平安科技(深圳)有限公司 动态密钥的获取方法、装置、终端设备及存储介质
CN110336666A (zh) * 2019-07-17 2019-10-15 武汉信安珞珈科技有限公司 一种增强ssl/tls协议中随机数随机性的方法
CN110912852A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 获取密钥的方法、装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625803B1 (en) * 2011-05-31 2014-01-07 Google Inc. Updating shared keys
CN107104932A (zh) * 2016-02-23 2017-08-29 中兴通讯股份有限公司 密钥更新方法、装置及系统
CN107370751A (zh) * 2017-08-18 2017-11-21 深圳市鑫宇鹏电子科技有限公司 一种在智能设备通信中会话密钥更新方法
CN108462686A (zh) * 2018-01-08 2018-08-28 平安科技(深圳)有限公司 动态密钥的获取方法、装置、终端设备及存储介质
CN110912852A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 获取密钥的方法、装置和系统
CN110336666A (zh) * 2019-07-17 2019-10-15 武汉信安珞珈科技有限公司 一种增强ssl/tls协议中随机数随机性的方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543100A (zh) * 2020-11-27 2021-03-23 中国银联股份有限公司 一种动态密钥生成方法和系统
WO2022110968A1 (zh) * 2020-11-27 2022-06-02 中国银联股份有限公司 一种动态密钥生成方法和系统
CN112566116A (zh) * 2020-12-15 2021-03-26 浙江三维万易联科技有限公司 确定密钥的方法、装置、存储介质及电子装置
CN112566116B (zh) * 2020-12-15 2022-08-16 三维通信股份有限公司 确定密钥的方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN111988143B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
EP3836512B1 (en) Facilitating practical byzantine fault tolerance blockchain consensus and node synchronization
CN110569309B (zh) 用于实现区块链的设备、方法、系统以及介质
US10255342B2 (en) Method and system for tuning blockchain scalability, decentralization, and security for fast and low-cost payment and transaction processing
US11750396B2 (en) Private data processing method, device and medium
US11394584B2 (en) Asynchronous processing of blockchain blocks
CN109522363B (zh) 基于区块链的云平台同步方法、系统、设备及存储介质
US10069942B2 (en) Method and apparatus for changing configurations
CN109245908B (zh) 一种主从集群切换的方法和装置
US9589153B2 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
CN108616574B (zh) 管理数据的存储方法、设备及存储介质
CN111988143B (zh) 密钥更新方法、装置、设备以及存储介质
CN111639080A (zh) 一种数据处理方法、装置、节点设备及存储介质
WO2022142436A1 (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN111400743B (zh) 基于区块链网络的事务处理方法、装置、电子设备和介质
CN113162763A (zh) 数据加密及存储方法、装置、电子设备及存储介质
US11799640B2 (en) Systems and methods for bifurcated blockchain-based digital encryption
CN111339571B (zh) 一种区块链密钥管理方法、装置、设备和存储介质
CN118133262A (zh) 一种单点登录方法、装置、电子设备和存储介质
CN114095254A (zh) 报文加密方法、服务端设备、客户端设备及存储介质
CN117938372A (zh) 密钥同步更新方法、系统及相关设备
CN117389574A (zh) 基于预热的应用部署方法、装置、设备及介质
CN111310043A (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