CN115604034A - 一种通信连接的加解密方法、系统及电子设备 - Google Patents

一种通信连接的加解密方法、系统及电子设备 Download PDF

Info

Publication number
CN115604034A
CN115604034A CN202211588116.2A CN202211588116A CN115604034A CN 115604034 A CN115604034 A CN 115604034A CN 202211588116 A CN202211588116 A CN 202211588116A CN 115604034 A CN115604034 A CN 115604034A
Authority
CN
China
Prior art keywords
terminal
server
request
module
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211588116.2A
Other languages
English (en)
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.)
Suzhou Archimedes Network Technology Co ltd
Original Assignee
Suzhou Archimedes Network 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 Suzhou Archimedes Network Technology Co ltd filed Critical Suzhou Archimedes Network Technology Co ltd
Priority to CN202211588116.2A priority Critical patent/CN115604034A/zh
Publication of CN115604034A publication Critical patent/CN115604034A/zh
Pending legal-status Critical Current

Links

Images

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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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
    • 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/3247Cryptographic 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 digital signatures

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

Abstract

一种通信连接的加解密方法、系统及电子设备,所述方法包括:服务器端接收终端的连接请求后,验证终端的账号与密码通过后,向终端返回JSON Web令牌;终端选取JSON Web令牌的部分内容作为秘钥对请求内容进行加密获得终端HMAC签名;终端向服务器端发起访问请求,访问请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名;服务器端接收到访问请求后,通过JSON Web令牌验证账号合法时,再通过秘钥解密加密后的请求内容,并计算服务器端HMAC签名;服务器端HMAC签名与终端HMAC签名一致时,服务器端向终端返回经过秘钥加密的响应内容;终端通过秘钥对响应内容进行解密,并呈现。

Description

一种通信连接的加解密方法、系统及电子设备
技术领域
本发明涉及互联网技术领域,尤其涉及一种通信连接的加解密方法、系统及电子设备。
背景技术
现有的终端访问,通常没有对访问信息进行加密处理,当有人使用该终端时,会轻易的获取访问信息,从而造成访问信息的泄露;为了防止通过互联网接口直接爬取访问信息内容,通常是设置一层加密,返回到客户端之后再进行解密。而这种技术方案通常是将密码放置在客户端上,如果查找到该密码,就可以利用该密码查看所有加密的内容,鉴于此,该技术方案形同虚设,极其不安全。
如何对终端的访问信息进行加密处理的同时,又不会造成访问信息的泄露,已经成为了业内亟待解决的技术难题。
发明内容
为了至少解决上述技术问题,本发明实施例的目的在于提供了一种通信连接的加解密方法,实现了对终端访问信息的加密处理。
为了达到上述目的,本发明实施例提供的通信连接的加解密方法,包括:
终端通过账号和密码向服务器端发起连接请求,其中账号与密码均在服务器端有备份;
服务器端接收到终端的连接请求后,对账号与密码进行验证,验证通过后,服务器端向终端返回JSON Web令牌;其中,服务器端存储JSON Web令牌;
终端选取JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将秘钥通过哈希算法计算终端HMAC签名;其中,秘钥在服务器端有备份;
终端向服务器端发起访问请求,访问请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名;
服务器端接收到终端的访问请求后,通过存储的JSON Web令牌验证账号是否合法,当验证结果为是时,服务器端再通过秘钥解密加密后的请求内容,并计算服务器端HMAC签名;
判断服务器端HMAC签名与终端HMAC签名是否一致,若一致,则服务器端向终端返回响应内容;其中,响应内容为经过秘钥加密的响应内容;
终端接收到响应内容后,通过秘钥对响应内容进行解密,并呈现解密后的响应内容。
进一步地,HMAC签名包括消息内容,消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳和随机数;其中,随机数为只能使用一次的随机数。
进一步地,访问请求中还包括有:时间戳和只能使用一次的随机数。
进一步地,服务器端接收到只能使用一次的随机数之后还包括,验证只能使用一次的随机数是否被使用过。
为了达到上述目的,本发明实施例提供的通信连接的加解密系统,包括:
终端和服务器端,终端包括有:终端连接请求模块、终端计算模块、终端访问请求模块以及终端解密模块;服务器端包括有:服务器端验证模块、服务器端存储模块、服务器端判断模块、服务器端计算模块以及服务器端响应模块;
终端连接请求模块,通过账号和密码向服务器端发起连接请求;
服务器端验证模块,接收到终端的连接请求后,对账号与密码进行验证,验证通过后向终端返回JSON Web令牌;
终端计算模块,选取JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将秘钥通过哈希算法计算终端HMAC签名;
服务器端存储模块,用于存储账号、密码、JSON Web令牌以及秘钥;
终端访问请求模块,向服务器端发起访问请求,访问请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名;
服务器端判断模块,接收到终端的访问请求后,通过存储的JSON Web令牌验证账号是否合法;
服务器端计算模块,当验证结果为是时,服务器端再通过秘钥解密加密后的请求内容,并计算服务器端HMAC签名;
服务器端判断模块还包括:判断服务器端HMAC签名与终端HMAC签名是否一致;
服务器端响应模块,在服务器端HMAC签名与终端HMAC签名一致时,向终端返回响应内容;其中,响应内容为经过秘钥加密的响应内容;
终端解密模块,收到响应内容后,通过秘钥对响应内容进行解密,并呈现解密后的响应内容。
进一步地,HMAC签名包括消息内容,消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳和随机数;其中,随机数为只能使用一次的随机数。
进一步地,访问请求中还包括有:时间戳和只能使用一次的随机数。
进一步地,服务器端验证模块,还包括,在服务器端接收到只能使用一次的随机数之后,验证只能使用一次的随机数是否被使用过。
为达到上述目的,本发明实施例还提供一种电子设备,包括,处理器;以及
被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行上述通信连接的加解密方法的步骤。
为达到上述目的,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行上述通信连接的加解密方法的步骤。
本发明实施例的通信连接的加解密方法,包括:终端通过账号和密码向服务器端发起连接请求,其中账号与密码均在服务器端有备份;服务器端接收到终端的连接请求后,对账号与密码进行验证,验证通过后,服务器端向终端返回JSON Web令牌;其中,服务器端存储JSON Web令牌;终端选取JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将秘钥通过哈希算法计算终端HMAC签名;其中,秘钥在服务器端有备份;终端向服务器端发起访问请求,访问请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名;服务器端接收到终端的访问请求后,通过存储的JSON Web令牌验证账号是否合法,当验证结果为是时,服务器端再通过秘钥解密加密后的请求内容,并计算服务器端HMAC签名;判断服务器端HMAC签名与终端HMAC签名是否一致,若一致,则服务器端向终端返回响应内容;其中,响应内容为经过秘钥加密的响应内容;终端接收到响应内容后,通过秘钥对响应内容进行解密,并呈现解密后的响应内容。在请求与回复中均有加密处理,避免了爬虫窃取请求内容;HMAC签名保证了消息的完整性和真实性;通过授权的JSON Web令牌,JSON Web令牌具有特定及时效性,不会造成请求内容的泄密;使得消息在传递过程中,即使被攻击,也不会造成泄密,极大的保障了访问的安全性。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的通信连接的加解密方法流程示意图;
图2是本发明实施例的通信连接的加解密系统结构示意图;
图3是本发明一个实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
下面,将参考附图详细地说明本申请的实施例。
本发明实施例提供一种通信连接的加解密方法,包括:
终端通过账号和密码向服务器端发起连接请求,其中账号与密码均在服务器端有备份;
服务器端接收到终端的连接请求后,对账号与密码进行验证,验证通过后,服务器端向终端返回JSON Web令牌;其中,服务器端存储JSON Web令牌;
终端选取JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将秘钥通过哈希算法计算终端HMAC签名;其中,秘钥在服务器端有备份;
终端向服务器端发起访问请求,访问请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名;
服务器端接收到终端的访问请求后,通过存储的JSON Web令牌验证账号是否合法,当验证结果为是时,服务器端再通过秘钥解密加密后的请求内容,并计算服务器端HMAC签名;
判断服务器端HMAC签名与终端HMAC签名是否一致,若一致,则服务器端向终端返回响应内容;其中,响应内容为经过秘钥加密的响应内容;
终端接收到响应内容后,通过秘钥对响应内容进行解密,并呈现解密后的响应内容。
实施例1
图1是本发明实施例的通信连接的加解密方法流程示意图,下面将参考图1,对本发明实施例的通信连接的加解密方法进行详细描述。
首先,在步骤101,终端通过账号和密码向服务器端发起连接请求,其中账号与密码均在服务器端有备份。
在一示例性的实施方式中,终端向服务器端发起连接请求,该连接请求中包括通过账号和密码(可以理解为进行账号、密码的登录)向服务器端发起网络连接请求。
在一示例性的实施方式中,账号和密码均在服务器端有备份。
在一示例性的实施方式中,账号可以为终端的ID,(一个终端对应着一个ID)。
在步骤102,服务器端接收到终端的连接请求后,对账号与密码进行验证,验证通过后,服务器端向终端返回JSON Web令牌;其中,服务器端存储JSON Web令牌。
在一示例性的实施方式中,服务器端接收到终端的连接请求后,服务器端对该账号和密码进行验证(例如,判断终端的ID和密码是否正确),在终端的账号和密码都正确时(即验证通过后),服务器端向终端提供JSON Web令牌。
在一示例性的实施方式中,服务器端向终端提供JSON Web令牌的同时,服务器端也会自己保存JSON Web令牌。
在一示例性的实施方式中,JSON Web令牌(即,JSON Web Token,简称JWT),JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该JSON Web令牌也可直接被用于认证,也可被加密。
在一示例性的实施方式中,JWT 可以使用秘钥(例如使用 HMAC 算法)进行签名,已经签名的JSON Web令牌可以验证信息的完整性,而加密的JSON Web令牌会想其他方隐藏信息,当使用秘钥对JSON Web令牌进行签名时,签名还能证明只要持有秘钥的一方才是签署它的一方。
在一示例性的实施方式中,JSON Web令牌由三部分组成,它们是头部Header)、有效负载(Payload)以及签名(Signature)。
在步骤103,终端选取JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将秘钥通过哈希算法计算终端HMAC签名;其中,秘钥在服务器端有备份。
在一示例性的实施方式中,请求内容包括请求体和请求参数。
在一示例性的实施方式中,终端接收到服务器端返回的JSON Web令牌之后,选取JSON Web令牌中的部分内容作为秘钥,通过该秘钥对请求内容进行加密处理。
在一示例性的实施方式中,加密方式包括将秘钥通过哈希算法计算终端HMAC签名。
在一示例性的实施方式中,HMAC是秘钥相关的哈希运算消息认证码(Hash-basedMessage Authentication Code)的缩写。
在一示例性的实施方式中,HMAC算法的数学公式为:
Figure 448780DEST_PATH_IMAGE001
其中,H 为密码Hash函数(如MD5或SHA-2),能够对明文进行分组循环压缩;
k 为秘钥(secret key);
m 为要认证的消息(即,消息内容);
k’是从原始秘钥 k 导出的另一个秘钥(如果 k 短于散列函数的输入块大小,则向右填充零;如果比该块大小更长,则对 k 进行散列);
ipad 内部填充(0x5C5C5C…5C5C,一段十六进制常量);
opad 外部填充(0x363636…3636,一段十六进制常量)。
在一示例性的实施方式中,HMAC签名包括消息内容,消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳以及随机数(该随机数为只能使用一次的随机数)。
在一示例性的实施方式中,哈希算法(Hash)也称为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值。
在一示例性的实施方式中,HMAC(Hash-based Message Authentication Code,基于密钥散列消息认证码)。
在一示例性的实施方式中,该秘钥在服务器端有备份(可以理解为,终端选取JSONWeb令牌的部分内容,该部分内容在服务器端有备案;或者说终端与服务器端统一设定秘钥为JSON Web令牌的某个部分;或者终端选定秘钥后将该秘钥提供给服务器端)。
在步骤104,终端向服务器端发起访问请求,访问请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名。
在一示例性的实施方式中,终端向服务器端发起请求,该请求可以为访问请求,请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名。
在一示例性的实施方式中,请求中还包括有:时间戳和只能使用一次的随机数。
在步骤105,服务器端接收到终端的访问请求后,通过存储的JSON Web令牌验证账号是否合法,当验证结果为是时,服务器端再通过秘钥解密加密后的请求内容,并计算服务器端HMAC签名。
在一示例性的实施方式中,HMAC是秘钥相关的哈希运算消息认证码(Hash-basedMessage Authentication Code)的缩写。
在一示例性的实施方式中,HMAC算法的数学公式为:
Figure 451371DEST_PATH_IMAGE001
其中,H 为密码Hash函数(如MD5或SHA-2),能够对明文进行分组循环压缩;
k 为秘钥(secret key);
m 为要认证的消息(即,消息内容);
k’是从原始秘钥 k 导出的另一个秘钥(如果 k 短于散列函数的输入块大小,则向右填充零;如果比该块大小更长,则对 k 进行散列);
ipad 内部填充(0x5C5C5C…5C5C,一段十六进制常量);
opad 外部填充(0x363636…3636,一段十六进制常量)。
在一示例性的实施方式中,服务器端接收到终端的访问请求后,通过之前存储的JSON Web令牌验证请求访问的账号合法性,当验证结果为合法账号时(当然,若验证结果为非法账号,肯定不予应答),再通过秘钥解密上述加密后的请求内容。
在一示例性的实施方式中,服务器端计算服务器端HMAC签名。
在一示例性的实施方式中,HMAC签名包括消息内容,消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳以及随机数(该随机数为只能使用一次的随机数)。
在一示例性的实施方式中,服务器端HMAC签名的哈希算法与终端HMAC签名的哈希算法一致。
在一示例性的实施方式中,只所以设计服务器端再计算一遍服务器端HMAC签名,在于后续与终端HMAC签名比较,判断二者是否一致。
在步骤106,判断服务器端HMAC签名与终端HMAC签名是否一致,若一致,则服务器端向终端返回响应内容;其中,响应内容为经过秘钥加密的响应内容。
在一示例性的实施方式中,在计算出服务器端HMAC签名,并且该服务器端HMAC签名与终端HMAC签名一致时,服务器端向终端返回响应内容。
在一示例性的实施方式中,服务器端接收到只能使用一次的随机数之后还包括,验证只能使用一次的随机数是否被使用过,验证该只能使用一次的随机数未被使用过之后,服务器端再向终端返回响应内容。
在步骤107,终端接收到响应内容后,通过秘钥对响应内容进行解密,并呈现解密后的响应内容。
在一示例性的实施方式中,终端接收到服务器端返回的响应内容后,通过上述秘钥对该响应内容进行解密。
在一示例性的实施方式中,终端将解密后的响应内容呈现出来。
在一示例性的实施方式中,通过上述方法,实现了对请求内容和响应内容的加解密,极大的保障了访问的安全性。
实施例2
图2是本发明实施例的通信连接的加解密系统结构示意图,下面将参考图2,对本发明实施例的通信连接的加解密系统进行详细说明。
在一示例性的实施方式中,本发明实施例的通信连接的加解密系统包括终端和服务器端。
在一示例性的实施方式中,终端包括有:终端连接请求模块201、终端计算模块202、终端访问请求模块203以及终端解密模块204。
在一示例性的实施方式中,服务器端包括有:服务器端验证模块205、服务器端存储模块206、服务器端判断模块207、服务器端计算模块208以及服务器端响应模块208。
在一示例性的实施方式中,终端连接请求模块201,通过账号和密码向服务器端发起连接请求。
在一示例性的实施方式中,账号和密码均在服务器端有备份。
在一示例性的实施方式中,账号可以为终端的ID,(一个终端对应着一个ID)。
在一示例性的实施方式中,服务器端验证模块205,接收到终端的连接请求后,对账号与密码进行验证,验证通过后向终端返回JSON Web令牌。
在一示例性的实施方式中,终端计算模块202,选取JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将秘钥通过哈希算法计算终端HMAC签名。
在一示例性的实施方式中,HMAC是秘钥相关的哈希运算消息认证码(Hash-basedMessage Authentication Code)的缩写。
在一示例性的实施方式中,HMAC算法的数学公式为:
Figure 115702DEST_PATH_IMAGE001
其中,H 为密码Hash函数(如MD5或SHA-2),能够对明文进行分组循环压缩;
k 为秘钥(secret key);
m 为要认证的消息(即,消息内容);
k’是从原始秘钥 k 导出的另一个秘钥(如果 k 短于散列函数的输入块大小,则向右填充零;如果比该块大小更长,则对 k 进行散列);
ipad 内部填充(0x5C5C5C…5C5C,一段十六进制常量);
opad 外部填充(0x363636…3636,一段十六进制常量)。
在一示例性的实施方式中,请求内容包括请求体和请求参数。
在一示例性的实施方式中,终端接收到服务器端返回的JSON Web令牌之后,选取JSON Web令牌中的部分内容作为秘钥,通过该秘钥对请求内容进行加密处理。
在一示例性的实施方式中,HMAC签名包括消息内容,消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳以及随机数(该随机数为只能使用一次的随机数)。
在一示例性的实施方式中,哈希算法(Hash)也称为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值。
在一示例性的实施方式中,HMAC(Hash-based Message Authentication Code,基于密钥散列消息认证码)。
在一示例性的实施方式中,该秘钥在服务器端有备份(可以理解为,终端选取JSONWeb令牌的部分内容,该部分内容在服务器端有备案;或者说终端与服务器端统一设定秘钥为JSON Web令牌的某个部分;或者终端选定秘钥后将该秘钥提供给服务器端)。
在一示例性的实施方式中,服务器端存储模块206,用于存储账号、密码、JSON Web令牌以及秘钥。
在一示例性的实施方式中,终端访问请求模块203,向服务器端发起访问请求,访问请求中包括有经过秘钥加密后的请求内容、JSON Web令牌和终端HMAC签名。
在一示例性的实施方式中,请求中还包括有:时间戳和只能使用一次的随机数。
在一示例性的实施方式中,服务器端判断模块207,接收到终端的访问请求后,通过存储的JSON Web令牌验证账号是否合法。
在一示例性的实施方式中,服务器端接收到终端的访问请求后,通过之前存储的JSON Web令牌验证请求访问的账号合法性(即,验证该账号是否合法)。
在一示例性的实施方式中,服务器端计算模块208,当验证结果为是时(即当前账号为合法用户时),服务器端再通过秘钥解密加密后的请求内容,并计算服务器端HMAC签名。
在一示例性的实施方式中,HMAC是秘钥相关的哈希运算消息认证码(Hash-basedMessage Authentication Code)的缩写。
在一示例性的实施方式中,HMAC算法的数学公式为:
Figure 545546DEST_PATH_IMAGE002
其中,H 为密码Hash函数(如MD5或SHA-2),能够对明文进行分组循环压缩;
k 为秘钥(secret key);
m 为要认证的消息(即,消息内容);
k’是从原始秘钥 k 导出的另一个秘钥(如果 k 短于散列函数的输入块大小,则向右填充零;如果比该块大小更长,则对 k 进行散列);
ipad 内部填充(0x5C5C5C…5C5C,一段十六进制常量);
opad 外部填充(0x363636…3636,一段十六进制常量)。
在一示例性的实施方式中,HMAC签名包括消息内容,消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳以及随机数(该随机数为只能使用一次的随机数)。
在一示例性的实施方式中,服务器端HMAC签名的哈希算法与终端HMAC签名的哈希算法一致。
在一示例性的实施方式中,服务器端判断模块207还包括:判断服务器端HMAC签名与终端HMAC签名是否一致。
在一示例性的实施方式中,服务器端响应模块208,在服务器端HMAC签名与终端HMAC签名一致时,向终端返回响应内容;其中,响应内容为经过秘钥加密的响应内容。
在一示例性的实施方式中,服务器端接收到只能使用一次的随机数之后还包括,验证只能使用一次的随机数是否被使用过,验证该只能使用一次的随机数未被使用过之后,服务器端再向终端返回响应内容。
在一示例性的实施方式中,终端解密模块204,收到响应内容后,通过秘钥对响应内容进行解密,并呈现解密后的响应内容。
实施例3
图3是是根据本发明实施例的电子设备的结构示意图,如图3所示,在硬件层面,该电子设备包括处理器,可选地还包括总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过总线相互连接,该总线可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
处理器从非易失性存储器中读取对应的计算机程序到存储器中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行上述通信连接的加解密方法的步骤。
实施例4
本发明实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行附图中所示实施例的方法,并具体用于执行上述通信连接的加解密方法的步骤。
虽然本发明所揭露的实施方式如上,但内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

1.一种通信连接的加解密方法,其特征在于,包括:
终端通过账号和密码向服务器端发起连接请求,其中所述账号与所述密码均在所述服务器端有备份;
所述服务器端接收到所述终端的连接请求后,对所述账号与所述密码进行验证,所述验证通过后,所述服务器端向所述终端返回JSON Web令牌;其中,所述服务器端存储所述JSON Web令牌;
所述终端选取所述JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将所述秘钥通过哈希算法计算终端HMAC签名;
其中,所述秘钥在所述服务器端有备份;
所述终端向所述服务器端发起访问请求,所述访问请求中包括有经过所述秘钥加密后的请求内容、所述JSON Web令牌和所述终端HMAC签名;
所述服务器端接收到所述终端的访问请求后,通过存储的所述JSON Web令牌验证所述账号是否合法,当所述验证结果为是时,所述服务器端再通过所述秘钥解密所述加密后的请求内容,并计算服务器端HMAC签名;
判断所述服务器端HMAC签名与所述终端HMAC签名是否一致,若一致,则所述服务器端向所述终端返回响应内容;其中,所述响应内容为经过所述秘钥加密的响应内容;
所述终端接收到所述响应内容后,通过所述秘钥对所述响应内容进行解密,并呈现解密后的所述响应内容。
2.根据权利要求1所述的通信连接的加解密方法,其特征在于,所述HMAC签名包括消息内容,所述消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳和随机数;其中,所述随机数为只能使用一次的随机数。
3.根据权利要求2所述的通信连接的加解密方法,其特征在于,所述访问请求中还包括有:所述时间戳和所述只能使用一次的随机数。
4.根据权利要求3所述的通信连接的加解密方法,其特征在于,所述服务器端接收到所述只能使用一次的随机数之后还包括,验证所述只能使用一次的随机数是否被使用过。
5.一种通信连接的加解密系统,其特征在于,包括:终端和服务器端,所述终端包括有:终端连接请求模块、终端计算模块、终端访问请求模块以及终端解密模块;所述服务器端包括有:服务器端验证模块、服务器端存储模块、服务器端判断模块、服务器端计算模块以及服务器端响应模块;
所述终端连接请求模块,通过账号和密码向所述服务器端发起连接请求;
所述服务器端验证模块,接收到所述终端的连接请求后,对所述账号与所述密码进行验证,所述验证通过后向所述终端返回JSON Web令牌;
所述终端计算模块,选取所述JSON Web令牌的部分内容作为秘钥对请求内容进行加密,加密方式包括将所述秘钥通过哈希算法计算终端HMAC签名;
所述服务器端存储模块,用于存储所述账号、所述密码、所述JSON Web令牌以及所述秘钥;
所述终端访问请求模块,向所述服务器端发起访问请求,所述访问请求中包括有经过所述秘钥加密后的请求内容、所述JSON Web令牌和所述终端HMAC签名;
所述服务器端判断模块,接收到所述终端的访问请求后,通过存储的所述JSON Web令牌验证所述账号是否合法;
所述服务器端计算模块,当所述验证结果为是时,所述服务器端再通过所述秘钥解密所述加密后的请求内容,并计算服务器端HMAC签名;
所述服务器端判断模块还包括:判断所述服务器端HMAC签名与所述终端HMAC签名是否一致;
所述服务器端响应模块,在所述服务器端HMAC签名与所述终端HMAC签名一致时,向所述终端返回响应内容;其中,所述响应内容为经过所述秘钥加密的响应内容;
所述终端解密模块,收到所述响应内容后,通过所述秘钥对所述响应内容进行解密,并呈现解密后的所述响应内容。
6.根据权利要求5所述的通信连接的加解密系统,其特征在于,
所述HMAC签名包括消息内容,所述消息内容包括:账号,请求链接,请求内容,HTTP方法类型,时间戳和随机数;其中,所述随机数为只能使用一次的随机数。
7.根据权利要求6所述的通信连接的加解密系统,其特征在于,所述访问请求中还包括有:所述时间戳和所述只能使用一次的随机数。
8.根据权利要求7所述的通信连接的加解密系统,其特征在于,
所述服务器端验证模块,还包括,在所述服务器端接收到所述只能使用一次的随机数之后,验证所述只能使用一次的随机数是否被使用过。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行权利要求1-4任一项所述通信连接的加解密方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行权利要求1-4任一项所述通信连接的加解密方法的步骤。
CN202211588116.2A 2022-12-12 2022-12-12 一种通信连接的加解密方法、系统及电子设备 Pending CN115604034A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211588116.2A CN115604034A (zh) 2022-12-12 2022-12-12 一种通信连接的加解密方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211588116.2A CN115604034A (zh) 2022-12-12 2022-12-12 一种通信连接的加解密方法、系统及电子设备

Publications (1)

Publication Number Publication Date
CN115604034A true CN115604034A (zh) 2023-01-13

Family

ID=84853573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211588116.2A Pending CN115604034A (zh) 2022-12-12 2022-12-12 一种通信连接的加解密方法、系统及电子设备

Country Status (1)

Country Link
CN (1) CN115604034A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116032948A (zh) * 2023-02-21 2023-04-28 苏州阿基米德网络科技有限公司 一种医院内网与外网数据同步方法、系统及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107809317A (zh) * 2017-11-09 2018-03-16 郑州云海信息技术有限公司 一种基于令牌数字签名的身份认证方法及系统
CN112187724A (zh) * 2020-09-03 2021-01-05 北京金山云网络技术有限公司 访问控制方法、装置、网关、客户端和安全令牌服务

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107809317A (zh) * 2017-11-09 2018-03-16 郑州云海信息技术有限公司 一种基于令牌数字签名的身份认证方法及系统
CN112187724A (zh) * 2020-09-03 2021-01-05 北京金山云网络技术有限公司 访问控制方法、装置、网关、客户端和安全令牌服务

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116032948A (zh) * 2023-02-21 2023-04-28 苏州阿基米德网络科技有限公司 一种医院内网与外网数据同步方法、系统及电子设备

Similar Documents

Publication Publication Date Title
CN109347835B (zh) 信息传输方法、客户端、服务器以及计算机可读存储介质
US11128477B2 (en) Electronic certification system
CN109714167B (zh) 适用于移动应用签名的身份认证与密钥协商方法及设备
WO2021012552A1 (zh) 一种登录处理方法及相关设备
US8775794B2 (en) System and method for end to end encryption
CN106612180B (zh) 实现会话标识同步的方法及装置
US8156333B2 (en) Username based authentication security
CN110990827A (zh) 一种身份信息验证方法、服务器及存储介质
CN110662091B (zh) 第三方直播视频接入方法、存储介质、电子设备及系统
CN110677382A (zh) 数据安全处理方法、装置、计算机系统及存储介质
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN111740995A (zh) 一种授权认证方法及相关装置
CN112926046A (zh) 用于保护设备标识信息的移动终端设备匿名标识信息认证的方法及其系统
CN114944921A (zh) 登录认证方法、装置、电子设备及存储介质
CN116032655A (zh) 一种可抵御计时攻击的身份鉴别方法以及系统
CN115604034A (zh) 一种通信连接的加解密方法、系统及电子设备
CN117436043A (zh) 待执行文件的来源验证方法、设备以及可读存储介质
CN115955320A (zh) 一种视频会议身份认证方法
CN108242997B (zh) 安全通信的方法与设备
CN113872769B (zh) 基于puf的设备认证方法、装置、计算机设备及存储介质
CN115529591A (zh) 基于令牌的认证方法、装置、设备及存储介质
CN114065170A (zh) 平台身份证书的获取方法、装置和服务器
CN109214425B (zh) 图片验证方法、图片处理方法、设备及系统
CN112925535A (zh) 一种密码芯片嵌入式应用安装方法及装置
CN116866093B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20230113

RJ01 Rejection of invention patent application after publication