CN110493272A - 使用多重密钥的通信方法和通信*** - Google Patents

使用多重密钥的通信方法和通信*** Download PDF

Info

Publication number
CN110493272A
CN110493272A CN201910915161.6A CN201910915161A CN110493272A CN 110493272 A CN110493272 A CN 110493272A CN 201910915161 A CN201910915161 A CN 201910915161A CN 110493272 A CN110493272 A CN 110493272A
Authority
CN
China
Prior art keywords
key
client
server end
data
authentication
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
CN201910915161.6A
Other languages
English (en)
Other versions
CN110493272B (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.)
Hainan Yunhui Enterprise Management Center LP
Original Assignee
Beijing Fengxin Technology 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 Beijing Fengxin Technology Co Ltd filed Critical Beijing Fengxin Technology Co Ltd
Priority to CN201910915161.6A priority Critical patent/CN110493272B/zh
Publication of CN110493272A publication Critical patent/CN110493272A/zh
Application granted granted Critical
Publication of CN110493272B publication Critical patent/CN110493272B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

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)
  • Storage Device Security (AREA)

Abstract

本公开提供了一种使用多重密钥的通信方法,多重密钥包括主密钥、认证密钥和传输密钥,其中主密钥用于更新认证密钥和传输密钥。该通信方法包括:客户端和服务器端协商确定主密钥;客户端和服务器端使用主密钥分别产生认证信息,用于彼此验证;以及在验证通过后,客户端和服务器端协商产生认证密钥和传输密钥。本公开提供了一种多重密钥技术,其具有更安全的认证、密钥分发、密钥轮换、密钥存储机制,能够更好地保证通信安全。

Description

使用多重密钥的通信方法和通信***
技术领域
本公开涉及信息安全技术领域,更具体地,涉及一种使用多重密钥的通信方法和通信***。
背景技术
随着科学技术的发展、网络的普及,人类社会不论生活还是工作都离不开各种基于网络的***及应用。而在使用这些***和应用过程,网络通信是否安全关乎个人、企业、政府等等的切身利益。当前各种基于网络通信的***及应用在开发过程中,往往忽略或者加密机制和密钥管理措施简单,造成通信过程数据被窃取。
现有技术的通常做法是直接使用HTTPS套件简单实现,或者基于SSL/TLS协议实现通信加密,包括如下步骤:步骤0:单向或者双向认证;步骤1:协商双方数据通信使用的对称加密密钥;步骤2:发起方使用加密密钥加密数据;步骤3:通过通信协议传输;步骤4:接收方使用加密密钥解密数据;步骤5:结束。
这种加密方法的缺点是,通信过程使用单一的密钥管理架构来保证通信安全,且认证过程简单,安全性不高。
发明内容
有鉴于此,根据本公开的第一方面,提供了一种使用多重密钥的通信方法,所述多重密钥包括主密钥、认证密钥和传输密钥,所述通信方法包括:
客户端和服务器端协商确定主密钥;
客户端和服务器端使用主密钥分别产生认证信息,用于彼此验证;以及
在验证通过后,客户端和服务器端协商产生认证密钥和传输密钥。
在一个可能的实施例中,所述客户端和服务器端使用主密钥分别产生认证信息,用于彼此验证,具体包括
客户端向服务器端发送密钥更新请求,所述密钥更新请求至少包括客户端随机数和客户端认证信息,其中所述客户端认证信息是使用主密钥对至少包括客户端随机数的数据进行加密运算而产生的;
服务器端使用主密钥对所述至少包括客户端随机数的数据进行加密运算,并将加密运算结果与接收到的客户端认证信息进行比对验证;
服务器端向客户端发送密钥更新响应消息,所述密钥更新响应消息至少包括服务器端随机数和服务器端认证信息,其中所述服务器端认证信息是使用所述主密钥对至少包括服务器端随机数的数据进行加密运算而产生的;以及
客户端使用所述主密钥对所述至少包括服务器端随机数的数据进行加密运算,并将加密运算结果与接收到的服务器端认证信息进行比对验证。
在一个可能的实施例中,所述客户端和服务器端协商产生认证密钥和传输密钥,具体可以包括
使得在所述密钥更新请求中包括传输密钥随机数、认证密钥随机数和客户端密钥协商算法参数;
服务器端使用接收到的所述客户端密钥协商算法参数计算出第一协商密钥,并且基于所述第一协商密钥和所述传输密钥随机数计算出传输密钥,基于所述第一协商密钥和所述认证密钥随机数计算出认证密钥;
使得在所述密钥更新响应消息中包括服务器端密钥协商算法参数;
客户端使用接收到的所述服务器端密钥协商算法参数计算出第二协商密钥,并且基于所述第二协商密钥和所述传输密钥随机数计算出传输密钥,基于所述第二协商密钥和所述认证密钥随机数计算出认证密钥。
在一个可能的实施例中,所述方法还可以包括:
客户端向服务器端发送使用所述认证密钥加密后的认证信息;以及
客户端向服务器端发送使用所述传输密钥加密后的传输数据。
在一个可能的实施例中,所述通信方法还可以包括经由注册中心来协商客户端和服务器端之间的初始主密钥、认证密钥和传输密钥,具体包括:
服务器端向注册中心注册允许的客户端信息,注册信息至少包括客户端标识和验证数据,所述验证数据是使用个人识别码PIN对至少包括所述客户端标识的数据进行加密运算而产生的;
注册中心向服务器端返回初始主密钥、认证密钥和传输密钥;
服务器端通过可信渠道向客户端分发PIN;
客户端向注册中心发起激活请求,激活请求至少包括客户端标识和加密数据,所述加密数据是使用PIN对至少包括所述客户端标识的数据进行加密运算而产生的;
注册中心验证激活请求中的客户端标识和加密数据是否已经由服务器端注册过,若验证通过,向客户端发送初始主密钥、认证密钥和传输密钥。
在一个可能的实施例中,,服务器端和客户端可以在连接到注册中心后,使用认证机构与注册中心相互验证,确保双方可信。
在一个可能的实施例中,所述注册信息还可以包括:身份信息、过期时间、重试次数、加密数据ID,并且注册中心验证客户端的激活请求还包括验证过期时间和重试次数,并且在验证通过后还向客户端发送加密数据ID。
在一个可能的实施例中,客户端的所述密钥更新请求还可以包括加密数据ID,并且所述客户端认证信息是使用主密钥对至少包括客户端随机数和所述加密数据ID的数据进行加密运算而产生的。
在一个可能的实施例中,所述方法还可以包括使用分段密钥对数据包进行加密,所述分段密钥=传输密钥+数据包编号+随机数。
在一个可能的实施例中,在以下任一情况下执行所述通信方法:客户端监测到任一密钥到期,主动触发密钥更新;服务器端监测到任一密钥到期,服务器端发送拒绝消息,触发客户端更新密钥;数据包编号超过设定值后,服务器端发送拒绝消息,触发客户端更新密钥;客户端认证失败,服务器端发送拒绝消息,触发客户端更新密钥;以及满足注册中心定义的密钥更新规则。
在一个可能的实施例中,主密钥、认证密钥、传输密钥存储在客户端和服务器本地,所述方法可以包括:
使用启动数据库存储用于解密密钥元数据数据库的数据,以及在密钥元数据库存储主密钥、认证密钥、传输密钥,其中
启动数据库为加密数据库,其密钥产生方式为:PBKDF2(password,salt,repeat_count,hash_length),其中password内置在代码中,salt存储在客户端的引导文件中,repeat_count是重复迭代次数,hash_length是哈希长度,启动数据库的存储内容包括用户Key对应的salt、用户Key的SHA,
密钥元数据库为加密数据库,其密钥产生方式为PBKDF2(password,salt,repeat_count,hash_length),其中,password为用户Key的SHA,salt为启动数据库存储的salt,repeat_count是重复迭代次数,hash_length是哈希长度。
根据本公开的第二方面,提供了一种使用多重密钥的通信***,所述多重密钥包括主密钥、认证密钥和传输密钥,所述通信***包括客户端和服务器端,所述客户端和所述服务器端被配置为执行如第一方面所述的通信方法。
根据本公开的第三方面,提供了一种计算机可读存储介质,包括指令,所述指令在被执行时实现如第一方面所述的通信方法。
本公开提供使用一种多重密钥的技术,其具有更安全的认证、密钥分发、密钥轮换、密钥存储机制,能够更好地保证通信安全。
附图说明
图1示出了根据本发明实施例的多重密钥通信***的示意框图;
图2示出了根据本发明实施例的多重密钥通信的初始化过程的示意流程图;
图3示出了根据本发明实施例的多重密钥通信的密钥更新过程的示意流程图;
图4示出了根据本发明实施例的多重密钥存储的示意图;
图5示出了根据本发明实施例的一种电子设备的结构示意图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
图1示出了根据本发明实施例的多重密钥通信***100的示意框图。该多重密钥通信***100在通信过程中使用多重密钥,提高了数据安全性。
具体地,多重密钥通信***100提供了如下密钥,以完成安全的通信过程:
·激活密钥(个人识别码PIN):用于客户端激活,激活后获得主密钥Km、认证密钥Ka、传输密钥Kt等。
·主密钥(Km):用于更换Kt、Ka的主密钥,只用于密钥轮换。
·认证密钥(Ka):用于认证的密钥,只用于身份认证。
·传输密钥(Kt):用于进行数据传输的密钥,只用于数据传输。
·数据分段密钥(Kd):可选,对每个数据包进行加密的独立密钥,Kd=Kt+packagenumber[+nonce],其中package number是数据包编号,nonce是作为偏移量的随机数,存储在通信方的引导文件中。
如图1所示,多重密钥通信***100包括注册中心110、通信服务器端120及其本地存储130、通信客户端140及本地信息存储150、认证CA或者代理160、认证CA或者代理170。
通信客户端140可以用来作为网络通信的发起方;通信服务器端120可以作为网络通信的接收方;本地存储150用来存储客户端140发起通信流程及通信过程中所用的相关需要持久化的数据;本地存储130用来存储服务器端120接受通信流程及通信过程中所用的相关需要持久化的数据。注册中心110用来服务器端120注册允许与其建立通信流程的客户端授权信息,并颁发信息给客户端140,包括下文提到的激活密码(PIN)等。CA或者代理160用来服务器端120对诸如SSL/TLS证书的数字证书进行验证。CA或者代理170用来客户端140对诸如SSL/TLS证书的数字证书进行验证。
具体地,注册中心110可以运行在互联网或云端,用于通信服务器端120和通信客户端140初始化连接,例如,分别向通信服务器端120和通信客户端分发多个密钥(包括主密钥Km、认证密钥Ka、传输密钥Kt,下文详细描述)。注册中心110在初始化连接后不再参与到通信客户端140和通信服务器端120的后续通信。
服务器端120可以运行在互联网或云端,用于向注册中心110提供允许与其通信的客户端140的标识,以及与通过验证的客户端140进行加密通信。根据本发明实施例,服务器端120与客户端140加密传输认证信息和有效载荷数据,并且分别使用认证密钥Ka和传输密钥Kt进行加密。有效载荷数据可以是例如应用数据、图像数据、语音数据、文本数据等。
客户端140可以实现为安装在移动端的应用(APP)或安装在PC端的通信程序,使得端用户能够经由客户端140与服务器端120传输各种数据。根据本发明实施例,客户端140与服务器端120加密传输认证信息和有效载荷数据,并且分别使用认证密钥Ka和传输密钥Kt进行加密。有效载荷数据可以是例如应用数据、图像数据、语音数据、文本数据等。
本地存储130位于服务器端120处,存储服务器端120发起通信流程及通信过程中所用的相关需要持久化的数据。例如,本地存储130可以将密钥(Km、Ka、Kt)加密存储。
类似地,本地存储150位于客户端140处,存储客户端130发起通信流程及通信过程中所用的相关需要持久化的数据。例如,本地存储150可以将密钥(Km、Ka、Kt)加密存储。
CA或者代理160和170可以为其用户(如服务器端120和客户端140)发放数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA或者代理160和170用于验证、识别服务器端120和客户端140的身份,并对数字证书进行签名,以确保证书持有者的身份和公钥的拥有权。
图2示出了根据本发明实施例的多重密钥通信的初始化过程200的示意流程图,包括如下步骤:
步骤210:服务器端120与注册中心110建立传输层安全(TLS)连接,并使用CA或者代理160对注册中心110进行证书验证,注册中心110也对服务器端120进行证书验证,确保双方可信。
步骤220:服务器端120使用步骤210建立的TLS连接,向注册中心110注册允许向其发起通信的客户端信息,该信息可以包括客户端唯一标识ID、Principal身份信息(比如:用户名、邮箱地址、电话号码)、过期时间、重试次数、加密数据、加密数据ID。其中,加密数据可以是使用哈希算法(如HMAC-SHA256)计算获得加密值;具体加密参数为:密钥是PIN,被加密的数据可以为客户端唯一标识ID+身份信息(比如:用户名、邮箱地址、电话号码)+Salt,其中Salt是随机数,可以存储在引导文件中。
步骤230:注册中心110向服务器端120返回步骤220注册的结果成功与否和初始Km、Kt、Ka。初始Km、Kt、Ka可以是由注册中心110使用常规密钥生成算法产生的。
步骤240:服务器端120通过其他可信分发渠道(例如,邮件等)将PIN分发给客户端140。
步骤250:客户端140与注册中心110建立TLS连接,并使用CA或者代理170对注册中心进行证书验证,注册中心110也对客户端140进行证书验证,确保双方可信。
步骤260:客户端140使用已建立的TLS连接,向注册中心110发起激活请求。请求消息包括客户端唯一标识ID、硬件设备IMEI、***型号、Principal身份信息(比如:用户名、邮箱地址、电话号码)、加密数据。与步骤220类似,加密数据可以为使用HMAC-SHA256计算获得加密值,加密参数为:密钥是PIN,被加密的数据为客户端唯一标识ID+身份信息(比如:用户名、邮箱地址、电话号码)+Salt。
步骤270:注册中心110验证步骤260请求中的客户端唯一标识ID、Principal身份信息、加密数据是否在注册中心通过步骤220已经注册过、或者是否过期、或者是否超过次数。若验证失败则通信请求结束;成功则返回步骤220注册的加密数据ID及初始Km、Kt、Ka。
可以看出,客户端140接收的加密数据ID和初始Km、Kt、Ka与服务器端120相同,也就是说,完成了客户端140和服务器端120的通信的初始化过程。然而,该Km、Kt、Ka是由注册中心110产生和通过网络传输的,安全性较低,因此,有必要更新Km、Kt、Ka来提高安全性。
图3示出了根据本发明实施例的多重密钥通信的密钥更新过程300的示意流程图,包括:
步骤310:客户端140可以使用密钥协商算法以及认证算法完成与服务器端120的Km协商过程,也就是说更新Km。在这种情况下,客户端140和服务器端120可以在不共享任何秘密(即不在网络上传输秘密)的情况下协商出密钥Km。例如,可以使用ECDH(椭圆曲线Diffie-Hellman)密钥协商算法和ECDSA(椭圆曲线数字签名算法)认证算法。这些算法是已知的,不再详细描述。
步骤320:客户端140向服务器端120发起Kt、Ka的更新请求。更新请求可以包括:加密数据ID、算法套件(cipher_suite)、产生加密交换协议使用的随机数nonce(client_nonce)、产生Kt交换协议使用的nonce(Kt_nonce)、产生Ka交换协议使用的nonce(Ka_nonce)、ECDH算法参数(client_ecdh_params)、客户端端认证信息(client_auth_data)。其中,client_ecdh_params包括ECDH协商算法名(algorithm_name)和ECDH Public Key(ecdh_pub_key);client_auth_data使用哈希算法,例如HMACSHA256算法加密,密钥是Km,被加密数据为加密数据ID+client_nonce_+ecdh_pub_key。
步骤330:服务器端120处理步骤320的更新请求。对应地,服务器端120使用HMACSHA256算法,使用Km作为密钥加密计算加密数据ID+client_nonce_+ecdh_pub_key,并与步骤320传递的client_auth_data数据比对验证。
步骤340:验证通过后,使用步骤320提供的ECDH协商算法参数(client_ecdh_params),计算出新的协商密钥(negociated_key),该新的协商密钥用于计算Kt、Ka。具体地,可以使用例如PBKDF2_HMAC_SHA256算法,将negociated_key、Kt_nonce作为参数计算出Kt;使用PBKDF2_HMAC_SHA256算法,negociated_key、Ka_nonce作为参数计算出Ka。
步骤350:服务器端120向客户端140返回针对更新请求的响应消息,可以包括:加密数据ID、结果(result)(其作为提示信息,表示步骤330和340执行结果,例如,提示Ka和Kt是否在服务器端120生成)、算法套件(cipher_suite)、步骤320提供的client_nonce、加密交换协议使用的nonce(server_nonce)、ECDH算法参数(server_ecdh_params)、服务端认证信息(server_auth_data)。其中,与步骤320类似,server_ecdh_params包括ECDH协商算法名(algorithm_name)、ECDH Public Key(ecdh_pub_key);server_auth_data使用HMACSHA256算法,密钥是Km,数据为加密数据ID+server_nonce+ecdh_pub_key。
步骤360:客户端140处理服务器端120返回的响应信息。具体地,使用HMACSHA256算法,使用Km作为密钥加密计算加密数据ID+server_nonce_+ecdh_pub_key,并与步骤350传递的server_auth_data数据比对验证。
步骤370:验证通过后,使用步骤350提供的ECDH协商算法参数(server_ecdh_params)),计算出新的密钥(negociated_key),用来计算Kt、Ka。使用PBKDF2_HMAC_SHA256算法,negociated_key、Kt_nonce作为参数计算出Kt;使用PBKDF2_HMAC_SHA256算法,negociated_key、Ka_nonce作为参数计算出Ka。这与步骤340类似。由此,实现了客户端140和服务器端120的密钥更新,更新后的密钥Km、Ka、Kt都在未经过网络传输的情况下由客户端140和服务器端120分别计算生成的,具有更好的安全性。
步骤380:客户端140使用Ka作为密钥结合加密算法(比如AES-GCM)加密和传输身份等认证信息。
步骤390:客户端140使用Kt作为密钥结合加密算法(例如AES-GCM)加密和传输数据包。可选地,可以使用数据分段密钥(Kd)来传输数据,即,对每个数据包进行加密的独立密钥,Kd=Kt+package number[+nonce]。这里,package number是数据包编号,nonce是可选的随机数。
除了在初始化过程完成后更新密钥Km、Ka、Kt,本发明提供了一种密钥更新机制,从而提供更高的安全性。具体地,上述密钥更新过程300可以在满足以下任一条件时执行:
·客户端140监测到密钥到期,主动触发密钥更新。
·服务器端120监测到密钥到期,服务器端120发送REJ消息,触发客户端140更新密钥。
·数据包编号超过设定值后,服务器端120发送REJ消息,触发客户端140更新密钥。
·客户端140认证失败,服务器端120发送REJ消息,触发客户端140更新密钥。
·根据业务规则进行定制化,更新规则可以由注册中心110定义并颁发。
在一个实施例中,密钥的到期时间和数据包编号的设定值可以在上述步骤220的服务器端120向注册中心110发送的消息中设置,但不限于此。
图4示出了根据本发明实施例的本地存储的示意图。结合参照图1,服务器端120和客户端140具有本地存储130和150,本地存储130和150可以存储Km、Ka、Kt等密钥,以及在生成和更新密钥过程中需要各种数据。如图4所示,本地存储包括启动数据库410和密钥元数据数据库420,启动数据库410存储用来解密密钥元数据数据库420的数据,密钥元数据库420存储Km、Ka、Kt等数据。
动态获得用户password或者硬件PKI私钥,加密后存储,成为用户Key。
启动数据库410可以是加密数据库,其密钥产生方式是:PBKDF2(password,salt,repeat_count,hash_length),其中,password内置在代码中,salt存储在客户端或服务器端的引导文件中,repeat_count是重复迭代次数、hash_length是HASH长度。启动数据库410的内容包括用户Key类型、用户Key对应的salt、用户Key的SHA。
密钥元数据库420同样是加密数据库,其Key产生方式是:PBKDF2(password,salt,repeat_count,hash_length),其中,password为用户Key的SHA,salt为启动数据库存储的salt。密钥元数据库的内容包括Km、Ka、Kt等持久化数据。可以看出,Km、Ka、Kt等密钥在本地经过了两级加密存储,具有更好的安全性。
图5示出了用于实现本发明的实施例的电子设备的结构示意图。该电子设备适于实现图1所示的客户端和服务器端。如图5所示,电子设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,包括承载指令的在计算机可读介质,在这样的实施例中,该指令可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该指令被中央处理单元(CPU)501执行时,执行本发明中描述的各个方法步骤。
另外,通信流程过程中的双方认证算法、密钥协商算法、加密算法不局限于本专利上述描述的内容,可以使用同样安全级别甚者更高效率、更安全的算法代替,这些算法可以是软件的也可以是硬件的。
尽管已经描述了示例实施例,但是对于本领域技术人员来说显而易见的是,在不脱离本发明构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述示例实施例不是限制性的,而是说明性的。

Claims (10)

1.一种使用多重密钥的通信方法,所述多重密钥包括主密钥、认证密钥和传输密钥,所述通信方法包括:
客户端和服务器端协商确定主密钥;
客户端和服务器端使用主密钥分别产生认证信息,用于彼此验证;以及
在验证通过后,客户端和服务器端协商产生认证密钥和传输密钥。
2.如权利要求1所述的通信方法,其中,所述客户端和服务器端使用主密钥分别产生认证信息,用于彼此验证,具体包括
客户端向服务器端发送密钥更新请求,所述密钥更新请求至少包括客户端随机数和客户端认证信息,其中所述客户端认证信息是使用主密钥对至少包括客户端随机数的数据进行加密运算而产生的;
服务器端使用主密钥对所述至少包括客户端随机数的数据进行加密运算,并将加密运算结果与接收到的客户端认证信息进行比对验证;
服务器端向客户端发送密钥更新响应消息,所述密钥更新响应消息至少包括服务器端随机数和服务器端认证信息,其中所述服务器端认证信息是使用所述主密钥对至少包括服务器端随机数的数据进行加密运算而产生的;以及
客户端使用所述主密钥对所述至少包括服务器端随机数的数据进行加密运算,并将加密运算结果与接收到的服务器端认证信息进行比对验证。
3.如权利要求2所述的通信方法,其中,所述客户端和服务器端协商产生认证密钥和传输密钥,具体包括
使得在所述密钥更新请求中包括传输密钥随机数、认证密钥随机数和客户端密钥协商算法参数;
服务器端使用接收到的所述客户端密钥协商算法参数计算出第一协商密钥,并且基于所述第一协商密钥和所述传输密钥随机数计算出传输密钥,基于所述第一协商密钥和所述认证密钥随机数计算出认证密钥;
使得在所述密钥更新响应消息中包括服务器端密钥协商算法参数;
客户端使用接收到的所述服务器端密钥协商算法参数计算出第二协商密钥,并且基于所述第二协商密钥和所述传输密钥随机数计算出传输密钥,基于所述第二协商密钥和所述认证密钥随机数计算出认证密钥。
4.如权利要求1所述的通信方法,所述通信方法还包括经由注册中心来协商客户端和服务器端之间的初始主密钥、认证密钥和传输密钥,具体包括:
服务器端向注册中心注册允许的客户端信息,注册信息至少包括客户端标识和验证数据,所述验证数据是使用个人识别码PIN对至少包括所述客户端标识的数据进行加密运算而产生的;
注册中心向服务器端返回初始主密钥、认证密钥和传输密钥;
服务器端通过可信渠道向客户端分发PIN;
客户端向注册中心发起激活请求,激活请求至少包括客户端标识和加密数据,所述加密数据是使用PIN对至少包括所述客户端标识的数据进行加密运算而产生的;
注册中心验证激活请求中的客户端标识和加密数据是否已经由服务器端注册过,若验证通过,向客户端发送初始主密钥、认证密钥和传输密钥。
5.如权利要求4所述的通信方法,其中,服务器端和客户端在连接到注册中心后,使用认证机构与注册中心相互验证,确保双方可信。
6.如权利要求4所述的通信方法,其中,所述注册信息还包括:身份信息、过期时间、重试次数、加密数据ID,并且注册中心验证客户端的激活请求还包括验证过期时间和重试次数,并且在验证通过后还向客户端发送加密数据ID。
7.如权利要求6所述的通信方法,其中,客户端的所述密钥更新请求还包括加密数据ID,并且所述客户端认证信息是使用主密钥对至少包括客户端随机数和所述加密数据ID的数据进行加密运算而产生的。
8.如权利要求1所述的通信方法,其中,在以下任一情况下执行所述通信方法:
客户端监测到任一密钥到期,主动触发密钥更新;
服务器端监测到任一密钥到期,服务器端发送拒绝消息,触发客户端更新密钥;
数据包编号超过设定值后,服务器端发送拒绝消息,触发客户端更新密钥;
客户端认证失败,服务器端发送拒绝消息,触发客户端更新密钥;以及
满足注册中心定义的密钥更新规则。
9.如权利要求1所述的通信方法,其中,主密钥、认证密钥、传输密钥存储在客户端和服务器本地,包括
使用启动数据库存储用于解密密钥元数据数据库的数据,以及在密钥元数据库存储主密钥、认证密钥、传输密钥,其中
启动数据库为加密数据库,其密钥产生方式为:PBKDF2(password,salt,repeat_count,hash_length),其中password内置在代码中,salt存储在客户端的引导文件中,repeat_count是重复迭代次数,hash_length是哈希长度,启动数据库的存储内容包括用户Key对应的salt、用户Key的SHA,
密钥元数据库为加密数据库,其密钥产生方式为PBKDF2(password,salt,repeat_count,hash_length),其中,password为用户Key的SHA,salt为启动数据库存储的salt,repeat_count是重复迭代次数,hash_length是哈希长度。
10.一种使用多重密钥的通信***,所述多重密钥包括主密钥、认证密钥和传输密钥,所述通信***包括客户端和服务器端,所述客户端和所述服务器端被配置为执行如权利要求1所述的通信方法。
CN201910915161.6A 2019-09-25 2019-09-25 使用多重密钥的通信方法和通信*** Active CN110493272B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910915161.6A CN110493272B (zh) 2019-09-25 2019-09-25 使用多重密钥的通信方法和通信***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910915161.6A CN110493272B (zh) 2019-09-25 2019-09-25 使用多重密钥的通信方法和通信***

Publications (2)

Publication Number Publication Date
CN110493272A true CN110493272A (zh) 2019-11-22
CN110493272B CN110493272B (zh) 2020-10-02

Family

ID=68544362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910915161.6A Active CN110493272B (zh) 2019-09-25 2019-09-25 使用多重密钥的通信方法和通信***

Country Status (1)

Country Link
CN (1) CN110493272B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112134849A (zh) * 2020-08-28 2020-12-25 国电南瑞科技股份有限公司 一种智能变电站的动态可信加密通信方法及***
CN112597501A (zh) * 2020-12-16 2021-04-02 山东可信云信息技术研究院 一种可信云环境下的数据保护方法及***
CN112910627A (zh) * 2019-12-03 2021-06-04 华为技术有限公司 密钥的更新方法、数据解密方法、数字签名的验证方法
CN112995109A (zh) * 2019-12-17 2021-06-18 阿里巴巴集团控股有限公司 数据加密***、方法、数据处理方法、装置及电子设备

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047493A (zh) * 2006-06-02 2007-10-03 华为技术有限公司 获取简单网络管理协议管理密钥的方法及***
CN101945114A (zh) * 2010-09-20 2011-01-12 西安电子科技大学 基于fuzzy vault和数字证书的身份认证方法
CN102036242A (zh) * 2009-09-29 2011-04-27 中兴通讯股份有限公司 一种移动通讯网络中的接入认证方法和***
CN102571702A (zh) * 2010-12-22 2012-07-11 中兴通讯股份有限公司 物联网中的密钥生成方法、***和设备
US20140143537A1 (en) * 2012-11-21 2014-05-22 Kabushiki Kaisha Toshiba Communication apparatus and communication method
CN105792193A (zh) * 2016-02-26 2016-07-20 东南大学常州研究院 基于iOS操作***的移动终端语音端到端加密方法
CN106714156A (zh) * 2015-07-13 2017-05-24 中兴通讯股份有限公司 一种无线接入点和管理平台鉴权的方法和装置
US20170244692A1 (en) * 2016-02-24 2017-08-24 Gemalto Inc. Authentication of a user using a security device
CN107453880A (zh) * 2017-08-28 2017-12-08 国家康复辅具研究中心 一种云数据安全存储方法和***
CN108965338A (zh) * 2018-09-21 2018-12-07 杭州师范大学 多服务器环境下的三因素身份认证及密钥协商的方法
CN109639412A (zh) * 2018-12-05 2019-04-16 成都卫士通信息产业股份有限公司 一种通信方法、***及电子设备和存储介质
CN109818749A (zh) * 2019-01-11 2019-05-28 如般量子科技有限公司 基于对称密钥池的抗量子计算点对点消息传输方法和***

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047493A (zh) * 2006-06-02 2007-10-03 华为技术有限公司 获取简单网络管理协议管理密钥的方法及***
CN102036242A (zh) * 2009-09-29 2011-04-27 中兴通讯股份有限公司 一种移动通讯网络中的接入认证方法和***
CN101945114A (zh) * 2010-09-20 2011-01-12 西安电子科技大学 基于fuzzy vault和数字证书的身份认证方法
CN102571702A (zh) * 2010-12-22 2012-07-11 中兴通讯股份有限公司 物联网中的密钥生成方法、***和设备
US20140143537A1 (en) * 2012-11-21 2014-05-22 Kabushiki Kaisha Toshiba Communication apparatus and communication method
CN106714156A (zh) * 2015-07-13 2017-05-24 中兴通讯股份有限公司 一种无线接入点和管理平台鉴权的方法和装置
US20170244692A1 (en) * 2016-02-24 2017-08-24 Gemalto Inc. Authentication of a user using a security device
CN105792193A (zh) * 2016-02-26 2016-07-20 东南大学常州研究院 基于iOS操作***的移动终端语音端到端加密方法
CN107453880A (zh) * 2017-08-28 2017-12-08 国家康复辅具研究中心 一种云数据安全存储方法和***
CN108965338A (zh) * 2018-09-21 2018-12-07 杭州师范大学 多服务器环境下的三因素身份认证及密钥协商的方法
CN109639412A (zh) * 2018-12-05 2019-04-16 成都卫士通信息产业股份有限公司 一种通信方法、***及电子设备和存储介质
CN109818749A (zh) * 2019-01-11 2019-05-28 如般量子科技有限公司 基于对称密钥池的抗量子计算点对点消息传输方法和***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112910627A (zh) * 2019-12-03 2021-06-04 华为技术有限公司 密钥的更新方法、数据解密方法、数字签名的验证方法
WO2021109817A1 (zh) * 2019-12-03 2021-06-10 华为技术有限公司 密钥的更新方法、数据解密方法、数字签名的验证方法
CN112910627B (zh) * 2019-12-03 2023-02-10 华为技术有限公司 密钥的更新方法、数据解密方法、数字签名的验证方法
CN112995109A (zh) * 2019-12-17 2021-06-18 阿里巴巴集团控股有限公司 数据加密***、方法、数据处理方法、装置及电子设备
CN112134849A (zh) * 2020-08-28 2020-12-25 国电南瑞科技股份有限公司 一种智能变电站的动态可信加密通信方法及***
CN112134849B (zh) * 2020-08-28 2024-02-20 国电南瑞科技股份有限公司 一种智能变电站的动态可信加密通信方法及***
CN112597501A (zh) * 2020-12-16 2021-04-02 山东可信云信息技术研究院 一种可信云环境下的数据保护方法及***

Also Published As

Publication number Publication date
CN110493272B (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
US20210036841A1 (en) Systems and methods for generating signatures
US9137017B2 (en) Key recovery mechanism
US8788811B2 (en) Server-side key generation for non-token clients
US9813249B2 (en) URL-based certificate in a PKI
US8943310B2 (en) System and method for obtaining a digital certificate for an endpoint
US8489877B2 (en) System, method and computer product for sending encrypted messages to recipients where the sender does not possess the credentials of the recipient
US20110296171A1 (en) Key recovery mechanism
CN110493272A (zh) 使用多重密钥的通信方法和通信***
US20030070068A1 (en) Method and system for providing client privacy when requesting content from a public server
CN110535628A (zh) 通过证书签发进行多方安全计算的方法及装置
US11044082B2 (en) Authenticating secure channel establishment messages based on shared-secret
US11190504B1 (en) Certificate-based service authorization
CN104506534A (zh) 安全通信密钥协商交互方案
EP3417594A1 (en) System and method for securely exchanging data between devices
CN111698264A (zh) 用于保持用户认证会话的方法和装置
US20240113885A1 (en) Hub-based token generation and endpoint selection for secure channel establishment
CN110417722B (zh) 一种业务数据通信方法、通信设备及存储介质
CN108932425B (zh) 一种离线身份认证方法、认证***及认证设备
JP3914193B2 (ja) 認証を得て暗号通信を行う方法、認証システムおよび方法
Shahidinejad et al. Decentralized lattice-based device-to-device authentication for the edge-enabled IoT
KR101256114B1 (ko) 다수의 mac검증서버에 의한 메시지인증코드 검증 방법 및 시스템
CN113918971A (zh) 基于区块链的消息传输方法、装置、设备及可读存储介质
CN112035820B (zh) 一种用于Kerberos加密环境下的数据解析方法
CN109302287A (zh) 消息转发方法和***
WO2023003582A1 (en) Authentication using group signatures of user devices

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201118

Address after: Room 02-a078, 2 / F, block B, No.22, information road, Haidian District, Beijing 100085

Patentee after: Information technology (Beijing) Co.,Ltd.

Address before: No. a-2012-061, 17th floor, building 1, No. 18, Zhongguancun East Road, Haidian District, Beijing 100000

Patentee before: Beijing Fengxin Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240311

Address after: 570100, No. 2 Shimao East Road, Longhua District, Haikou City, Hainan Province, China. Building 804, Shimao Yayuan F, Zhongchuang Space-473

Patentee after: Hainan Yunhui Enterprise Management Center (Limited Partnership)

Country or region after: China

Address before: Room 02-A078, 2nd Floor, Building B, No. 22 Information Road, Haidian District, Beijing, 100085

Patentee before: Information technology (Beijing) Co.,Ltd.

Country or region before: China