CN112075051A - 用于保护计算机之间的数据通信的系统和方法 - Google Patents

用于保护计算机之间的数据通信的系统和方法 Download PDF

Info

Publication number
CN112075051A
CN112075051A CN201980029860.9A CN201980029860A CN112075051A CN 112075051 A CN112075051 A CN 112075051A CN 201980029860 A CN201980029860 A CN 201980029860A CN 112075051 A CN112075051 A CN 112075051A
Authority
CN
China
Prior art keywords
computer
data
key
public
token
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
CN201980029860.9A
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.)
Nitto Denko Corp
Original Assignee
Nitto Denko Corp
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 Nitto Denko Corp filed Critical Nitto Denko Corp
Publication of CN112075051A publication Critical patent/CN112075051A/zh
Pending legal-status Critical Current

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
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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
    • H04L63/045Network 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 wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/88Medical equipments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

本公开的方面总体涉及一种用于保护第一计算机(110)与第二计算机(120)之间的数据通信的计算机系统(100)和方法(200)。方法(200)包括:由第一计算机(110)和第二计算机(120)协同地执行(202)第一数据通信指令,以从第一计算机(110)向第二计算机(120)传送第一数据;由第一计算机(110)生成(204)第一会话密钥;由第一计算机(110)使用第一会话密钥,对第一数据进行加密(206);由第一计算机(110)使用第一公钥,对第一会话密钥进行加密(208),第一公钥与第一私钥成对,其是为第二计算机(120)生成的;将加密的第一数据和加密的第一会话密钥从第一计算机(110)发送到(210)第二计算机(120);由第二计算机(120)使用第一私钥,对所加密的第一会话密钥进行解密(212);由第二计算机(120)使用解密的第一会话密钥,对加密的第一数据进行解密(214);和由第二计算机(120)基于第一数据通信指令来处理解密的第一数据。

Description

用于保护计算机之间的数据通信的系统和方法
相关申请的交叉引用
本公开要求于2018年3月2日提交的新加坡专利申请No.10201801747W的权益,所述新加坡专利申请通过引用整体包含于此。
技术领域
本公开总体上涉及用于保护计算机之间的数据通信的系统和方法。更具体地,本公开描述了使用用于加密和解密的各种安全密钥来保护本地客户端计算机与远程计算机服务器(例如,基于云的服务器或平台)之间的数据通信的系统和方法的各种实施例。
背景技术
在许多情况下,计算机之间的数据通信未加密,并且这可能存在安全风险,诸如,中间人攻击,尤其是在数据通信包含机密/敏感信息的情况下。在这种现代环境中,包括个人和企业在内的用户通常将基于云的平台用于各种目的,诸如,数据存储或信息共享。已经出现了各种云计算平台来满足对云计算服务不断增长的需求。
云计算服务可以在广义上划分为高级服务和低级服务。高级服务通常为企业或组织提供服务。通常对终端用户应用(end-user application)的定制存在限制,并且高级服务不允许与低级服务直接交互或访问。低级服务通常服务于直接从另一源提取的原始数据。企业通常具有计算机系统来执行各种功能,包括存储、访问和处理机密/专有信息。机密信息可以包括医疗或个人信息。制定了一些政府政策和法规来保护医疗信息以防止欺诈使用,诸如,美国的《健康保险可移植性和责任法案》(HIPAA)和欧洲的《通用数据保护法规》(GDPR)。这些法规对提供给第三方源的医疗信息提出了一定的安全要求。
随着企业发展超越传统业务环境,企业越来越多地使用云计算服务。一些企业可能需要与可能希望得到对敏感信息(诸如,医疗和/或个人数据)的访问的其他参与方合作。尽管一些参与方可能具有合法意图,诸如,将信息用于保险单,但是可能存在可疑的甚至具有恶意意图的一些参与方。这些参与方可能在经由云计算服务进行信息通信期间尝试得到对敏感信息的访问。因此,在通信或分发给其他参与方之前,有必要对数据/信息进行某种加密,以进行保护。
对机密/敏感信息(诸如,基于生命体征、个人数据的医疗信息、测量数据或原始数据以及其他形式的敏感信息)的保护是非常重要,因为这样的机密/敏感信息可能会受到未知用户的未经授权的访问。诸如基于密钥的加密过程的技术可以用于保护使用云计算服务传送的数据以满足用户需求。然而,这些加密方法通常不能满足必要的保护,因为当加密数据通常在该数据被读取时被解密时,仍然有可能发送加密数据并且有未知的接收者对其进行解密。
美国专利9,166,782描述了一种对源计算机与目的计算机之间的通信进行加密的方法。然而,该方法涉及用于向计算机提供安全密钥的第三方密钥存储服务器。此外,需要计算机将其私钥存放到密钥存储服务器,以实现计算机之间的加密通信。这种方法似乎很复杂,因为每个要加密的通信都需要密钥存储服务器与源计算机和目标计算机二者之间的动作。
因此,为了解决或减轻上述问题和/或缺点中的至少一者,需要提供一种用于保护计算机之间的数据通信的改进的系统和方法。
发明内容
根据本公开的一方面,提供一种用于保护第一计算机与第二计算机之间的数据通信的计算机系统、方法以及包括指令的非暂时性计算机可读存储介质。所述系统包括彼此通信地连接的第一计算机和第二计算机。所述第一计算机和所述第二计算机被配置用于执行所述方法。所述方法包括:由所述第一计算机和所述第二计算机协同地执行第一数据通信指令,以从所述第一计算机向所述第二计算机传送第一数据;由所述第一计算机生成第一会话密钥;由所述第一计算机使用所述第一会话密钥,对所述第一数据进行加密;由所述第一计算机使用第一公钥,对所述第一会话密钥进行加密,所述第一公钥与第一私钥成对,第一公钥-私钥对是为所述第二计算机生成的;将加密后的第一数据和加密后的第一会话密钥从所述第一计算机发送到所述第二计算机;由所述第二计算机使用所述第一私钥,对加密后的第一会话密钥进行解密;由所述第二计算机使用解密后的第一会话密钥,对加密后的第一数据进行解密;以及由所述第二计算机基于所述第一数据通信指令来处理解密后的第一数据。
因此在本文中公开了一种根据本公开的用于保护计算机之间的数据通信的系统和方法。仅通过非限制性示例的方式,从下面对本公开的实施例的详细描述以及附图,本公开的各个特征、方面和优点将变得更加明显。
附图说明
图1A是用于保护第一计算机与第二计算机之间的数据通信的计算机系统的示意图。
图1B是用于保护计算机之间的数据通信的计算机系统的示意图,其中,第一计算机是本地客户端计算机,并且第二计算机是远程计算机服务器。
图1C是用于保护计算机之间的数据通信的计算机系统的示意图,其中,第一计算机是远程计算机服务器,并且第二计算机是本地客户端计算机。
图2A是用于保护第一计算机与第二计算机之间的数据通信(具体地,用于将数据从第一计算机传送到第二计算机)的方法的流程图。
图2B是用于保护第一计算机与第二计算机之间的数据通信(具体地,用于将数据从第二计算机传送到第一计算机)的方法的流程图。
图3A是由第一计算机和第二计算机执行的令牌生成过程的流程图,该令牌生成过程为第二计算机生成非对称秘钥对。
图3B是由第一计算机和第二计算机执行的令牌生成过程的流程图,该令牌生成过程为第一计算机生成非对称秘钥对。
图4A至图4D是由本地客户端计算机和远程计算机服务器执行的令牌生成过程的示意图。
图5是用于通过HTTPS协议在本地客户端计算机与远程计算机服务器之间建立安全会话的方法的示意图。
图6A是用于保护本地客户端计算机与远程计算机服务器之间的数据通信以及用于在远程计算机服务器上存储第一数据的方法的示意图。
图6B是用于保护本地客户端计算机与远程计算机服务器之间的数据通信以及用于从远程计算机服务器获取(retrieve)第二数据的方法的示意图。
图7A和图7B是用于保护本地客户端计算机与远程计算机服务器之间的数据通信以及用于认证第一数据的方法的示意图。
图8A至图8C是用于保护本地客户端计算机与远程计算机服务器之间的数据通信的方法的示意图,该方法包括执行令牌生成过程。
图9A是令牌生成过程中的传送到本地客户端计算机的响应的示图。
图9B和图9C是从本地客户端计算机传送到远程计算机服务器的加密数据和解密数据的示图。
图9D是一次性客户端私钥和一次性服务器公钥的示图。
图10是计算机的技术架构的框图说明。
具体实施方式
为了简明和清楚,根据附图,本公开的实施例的描述针对用于保护计算机之间的数据通信的系统和方法。尽管将结合本文提供的实施例来描述本公开的各方面,但是将理解,它们并不旨在将本公开限制于这些实施例。相反,本公开旨在覆盖本文描述的实施例的替代、修改和等同物,其包括在由所附权利要求限定的本公开的范围内。此外,在以下详细描述中,阐述了具体细节以提供对本公开的透彻理解。然而,本领域普通技术人员(即,技术人员)将认识到:可以在没有特定细节的情况下和/或在由于特定实施例的各方面的组合而产生多个细节的情况下实践本公开。在许多情况下,未详细描述公知的系统、方法、过程和组件,以免不必要地使本公开的实施例的各方面不清楚。
在本公开的实施例中,在特定附图中对给定元素的描述或者对特定元素标号的考虑或使用、或者在相应的描述性材料中对其的引用可以包含另一附图或与之相关的描述性材料中标识的相同、等同或类似的元素或元素标号。
对“实施例/示例”、“另一实施例/示例”、“一些实施例/示例”、“一些其他实施例/示例”等的引用指示如此描述的一个或多个实施例/示例可以包括特定的特征、结构、特性、属性、元素或限制,但是并非每个实施例/示例都必须包括特定的特征、结构、特性、属性、元素或限制。此外,重复使用短语“在实施例/示例中”或“在另一实施例/示例中”不必须指相同的实施例/示例。
术语“包括”、“包含”、“具有”等不排除存在除了实施例中所列出的特征/元素/步骤之外的其他特征/元素/步骤。在互不相同的实施例中对某些特征/元件/步骤的叙述不指示这些特征/元素/步骤的组合不能用于一个实施例。
如本文所用,术语“一”和“一个”被定义为一个或多个。除非另外指出,否则在附图或相关联的文本中使用的“/”应理解为“和/或”。根据已知的数学定义,术语“集合(set)”定义为:元素的非空有限组织,其在数学上表现出至少一者的基数(例如,本文定义的集合可以对应于单元集合、单集合、或者单元素集合、或多元素集合)。
如本文所用,术语“组件”、“模块”、“系统”、“接口”等通常旨在表示与计算机有关的实体、硬件、硬件和软件的组合、软件或执行中的软件。例如,组件或模块可以是但不限于:在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在控制器上运行的应用和控制器二者可以是组件/模块。一个或多个组件/模块可以位于一个进程和/或执行线程内。组件/模块可以位于一台计算机上和/或分布在多台计算机之间。
在本公开的代表性或示例性实施例中,存在一种计算机系统100,其包括经由通信网络130彼此通信地连接的第一计算机110和第二计算机120,如图1A所示。计算机系统100被配置为通过使用用于加密和解密的安全密钥140来保护第一计算机110与第二计算机120之间的数据通信。第一计算机110和第二计算机120被配置为协同地执行数据通信指令,包括使用安全密钥140来加密和解密经由通信网络130在第一计算机110与第二计算机120之间传送的数据。
第一计算机110和第二计算机120各自分别包括或通信地连接到用于存储数据的第一数据库112和第二数据库122。数据库112和122可以分别位于第一计算机110和第二计算机120本地,或者可选择地位于通信地链接到第一计算机110和第二计算机120的相应远程服务器或云服务器上。数据库112和122可以具有用于存储数据的闪存、硬盘驱动器、临时存储位置等。另外,如技术人员将容易理解的,数据库112和122可以利用用于防护和保护存储在其上的数据的各种安全措施来实现。
通信网络130是通过其在包括第一计算机110和第二计算机120的各种实体之间传送内容、通知和/或消息的介质或环境。通信网络130的一些非限制性示例包括虚拟专用网络(VPN)、无线保真(Wi-Fi)网络、光保真(Li-Fi)网络、局域网(LAN)、广域网(WAN)、城域网(MAN)、卫星网络、互联网、光纤网络、同轴电缆网络、红外(IR)网络、射频(RF)网络及其任何组合。与通信网络130的连接可以根据各种有线和无线通信协议,诸如,传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、第二代至第五代(2G至5G)、长期演进(LTE)、远距离(LoRa)及其任何组合。第一计算机110和第二计算机120均包括数据通信或收发器模块,以通过通信网络130进行通信以及发送/接收数据。收发器模块的一些非限制性示例包括天线模块、射频收发器模块、无线收发器模块、蓝牙收发器模块、以太网端口、通用串行总线(USB)端口或其任何组合。
在计算机系统100中用于加密和解密的安全密钥140可以被分类为对称密钥和非对称密钥。对称密钥用于对称加密技术,对称加密技术由双方拥有的仅一个对称密钥来执行。对称密钥被应用于加密数据和解密数据。非对称密钥是用于非对称加密技术或公钥加密技术的密钥对。每对非对称密钥由公钥和私钥组成。用户的公钥对于希望向该用户传送机密/敏感数据并希望对要传送的数据进行加密的任何其他用户是可用的。仅能使用同一公钥-私钥对中的私钥,对使用公钥加密的数据进行解密。加密/解密/对称/非对称密钥均可以是数字、单词、字母数字串或随机字符串。
使用诸如以下项的对称加密算法来生成诸如会话密钥的对称密钥:高级加密标准(AES)、两鱼法(Twofish)、Serpent、Blowfish、Rivest Cipher 4(RC4)、数据加密标准(DES)和三重DES(3DES)等及其任何组合。使用诸如以下项的非对称加密算法来生成非对称公钥-私钥对:Rivest-Shamir-Adleman(RSA)算法、Diffie-Hellman密钥交换方法、椭圆曲线加密(ECC)方法、ElGamal算法和数字签名算法(DSA)等及其任何组合。技术人员将理解,可以存在其他算法、方法或办法来生成对称和非对称密钥。此外,每个非对称密钥对由受信任的安全组织认证,并且具有与密钥对相关联的数字证书。数字证书包含诸如以下项的信息:发布数字证书的受信任组织或证书颁发机构(CA)的名称、为其生成非对称密钥对的用户的标识详细信息、以及同一密钥对中的用户的公钥。数字证书通常是根据用于加密技术中的公钥证书的X.509标准发布的。X.509证书用于许多互联网协议中,包括传输层安全性(TLS)/安全套接字层(SSL),其是超文本传输协议安全(HTTPS)的基础、是用于访问互联网的安全协议。
参照图2A,示出了用于保护第一计算机110与第二计算机120之间的数据通信的方法200。在第一计算机110和第二计算机120上实现并且由第一计算机110和第二计算机120执行方法200,第一计算机110和第二计算机120均包括用于执行方法200的各种操作或步骤的各种模块/组件。方法200包括步骤202:由第一计算机110和第二计算机120协同地执行第一数据通信指令,以从第一计算机110向第二计算机120传送第一数据。
方法200还包括步骤204:由第一计算机110生成第一会话密钥。第一会话密钥是用于加密和解密二者的对称密钥。方法200还包括步骤206:由第一计算机110使用第一会话密钥,对第一数据进行加密,其中,第一数据包括要从第一计算机110传送到第二计算机120的数据/信息。方法200还包括步骤208:由第一计算机110使用第一公钥,对第一会话密钥进行加密,第一公钥与第一私钥成对。第一公钥-私钥对是为第二计算机120生成的非对称密钥对。
方法200还包括步骤210:将加密的第一数据和加密的第一会话密钥从第一计算机110发送到第二计算机120。方法200还包括步骤212:由于使用同一第一非对称公钥-私钥对中的第一公钥加密了第一会话密钥,因此由第二计算机120使用第一私钥,对加密的第一会话密钥进行解密。方法200还包括步骤214:由第二计算机120使用解密的第一会话密钥,对加密的第一数据进行解密。方法200还包括步骤216:由第二计算机120基于第一数据通信指令来处理解密的第一数据。例如,第二计算机120将解密的第一数据存储在其第二数据库122上,以用于保护数据存储以及随后由第一计算机110或具有访问第一数据的权限的其他计算机进行获取。由于第一数据源自第一计算机100,因此可以由第一计算机110的用户或管理员向其他计算机授予访问第一数据的权限,诸如在用户希望其他计算机的用户共享对第一数据的访问的情况下。在某些情况下,第二计算机120的用户或管理员可以向其他用户授予权限,诸如在某些参与方正在请求访问第一数据的情况下。
在一些实施例中,第一公钥-私钥对具有到期条件,使得第一公钥-私钥对在满足到期条件之前对于加密和解密有效。在一个示例中,到期条件是预定义有效期,例如,从生成第一公钥-私钥对开始的时间段、或者预定义到期日期和时间。第一公钥-私钥对在预定义有效期或者预定义到期日期和时间之后自动到期,并且在预定义有效期之外或者在预定义到期日期和时间之后,对于加密和解密无效。预定义有效期至少为两个小时,但是可以由第一计算机110和/或第二计算机120配置或定义,诸如,将其更改为任何数量的小时、分钟、天等。在另一示例中,到期条件是第一公钥-私钥对的预定义使用次数,第一公钥-私钥对在该预定义使用次数之后自动到期。预定义使用次数可以由第一计算机110和/或第二计算机120配置或定义。第一公钥-私钥对可以被配置为仅单次使用或一次性使用,即,第一公钥-私钥对在单次使用之后自动到期。到期条件可以是以上条件中的任意一个或多个的组合。例如,第一公钥-私钥对的预定义使用次数仅在预定义有效期内有效。
以上描述的方法200涉及保护从第一计算机110到第二计算机120的数据通信,诸如,用于将第一数据存储在第二计算机120上。在一些实施例中,在第一计算机110与第二计算机120之间存在数据交换。具体地,第二计算机120可以经由如图2B所示的方法250将加密的数据返回到第一计算机110。方法200还包括执行方法250。将理解的是,方法200的各个方面相似地或类似地应用于方法250,反之亦然,并且为了简明,从方法250的描述中省略了这些方面。
参照图2B,方法250包括步骤252:由第一计算机110和第二计算机120协同地执行第二数据通信指令,以从第二计算机120向第一计算机110传送第二数据,诸如针对第一计算机110从第二计算机120获取第二数据的请求。
方法250还包括步骤254:由第二计算机120生成第二会话密钥。第二会话密钥是用于加密和解密二者的对称密钥。方法250还包括步骤256:由第二计算机120使用第二会话密钥,对第二数据进行加密,其中,第二数据包括要从第二计算机120传送到第一计算机110的数据/信息。方法250还包括步骤258:由第二计算机120使用第二公钥,对第二会话密钥进行加密,第二公钥与第二私钥成对。第二公钥-私钥对是为第一计算机110生成的非对称密钥对。
方法250还包括步骤260:将加密的第二数据和加密的第二会话密钥从第二计算机120发送到第一计算机110。方法250还包括步骤262:由第一计算机110使用第二私钥,对加密的第二会话密钥进行解密。方法250还包括步骤264:由第一计算机110使用解密的第二会话密钥,对加密的第二数据进行解密。方法250还包括步骤266:由第一计算机110基于第二数据通信指令来处理解密的第二数据。例如,第一计算机110响应于在第一计算机110中的所述解密而提取解密的第二数据,并且将解密的第二数据存储在其第一数据库112上。
在一些实施例中,并且类似第一公钥-私钥对,第二公钥-私钥对具有到期条件,使得第二公钥-私钥对在满足到期条件之前对于加密和解密是有效的。将理解,上述第一公钥-私钥对的到期条件相似地或类似地适用于第二公钥-私钥对。
以上描述的方法200和250涉及通过使用为第一计算机110和第二计算机120生成的相关的第一会话密钥、第二会话密钥、第一公钥-私钥对和第二公钥-私钥对,来保护第一计算机110与第二计算机120之间的数据通信。特别地,分别为第二计算机120和第一计算机110生成第一公钥-私钥对和第二公钥-私钥对。然而,将理解,所述保护数据通信可以使用为第一计算机110生成的第一公钥-私钥对以及为第二计算机120生成的第二公钥-私钥对。
在一些实施例中,第一/第二公钥-私钥对由第二计算机120生成。参照图3A,方法200还包括:在执行第一数据通信指令之前,由第一计算机110和第二计算机120协同地执行令牌生成过程300。如果第一计算机110第一次将第一数据传送到第二计算机120,并且先前未生成第一/第二公钥-私钥对,则会发生这种情况。令牌生成过程300包括步骤302:由第一计算机110生成令牌会话密钥。令牌会话密钥是用于加密和解密二者的对称密钥,并且可以具有诸如预定义有效期的到期条件。
令牌生成过程300还包括步骤304:由第一计算机110使用令牌会话密钥,对令牌请求进行加密,该令牌请求用于从第二计算机120至少请求第一/第二公钥-私钥对。令牌生成过程300还包括步骤306:将令牌会话密钥和加密的令牌请求从第一计算机110发送到第二计算机120。令牌生成过程300还包括步骤308:由第二计算机120使用令牌会话密钥,对加密的令牌请求进行解密。令牌生成过程300还包括步骤310:由第二计算机120为第二计算机120/第一计算机110分别生成第一/第二公钥-私钥对。令牌生成过程300还包括步骤312:由第二计算机120使用令牌会话密钥,对第一公钥/第二私钥进行加密。令牌生成过程300还包括步骤314:将加密的第一公钥/第二私钥从第二计算机120发送到第一计算机110。令牌生成过程300还包括步骤316:由第一计算机110使用令牌会话密钥,对加密的第一公钥/第二私钥进行解密。因此,第一计算机110能够使用第一公钥来加密第一会话密钥,并且使用第二私钥来解密第二会话密钥。因此,令牌生成过程300使第二计算机120能够生成第一公钥-私钥对和/或第二公钥-私钥对。
在一些实施例中,由第一计算机110生成第一/第二公钥-私钥对。参照图3B,方法200还包括:在执行第一数据通信指令之前,由第一计算机110和第二计算机120协同地执行令牌生成过程350。将理解的是,令牌生成过程300的各个方面相似地或类似地应用于令牌生成过程350,反之亦然,并且为了简明,从令牌生成过程350的描述中省略了这些方面。
令牌生成过程350包括步骤352:由第一计算机110生成令牌会话密钥。令牌生成过程350还包括步骤354:由第一计算机110为第二计算机120/第一计算机110分别生成第一/第二公钥-私钥对。令牌生成过程350还包括步骤356:由第一计算机110使用令牌会话密钥,对第一私钥/第二公钥进行加密。令牌生成过程350还包括步骤358:将令牌会话密钥和加密的第一私钥/第二公钥从第一计算机110发送到第二计算机120。令牌生成过程350还包括步骤360:由第二计算机120使用令牌会话密钥,对加密的第一私钥/第二公钥进行解密。因此,第二计算机120能够使用第一私钥来解密第一会话密钥,并且使用第二公钥来加密第二会话密钥。因此,令牌生成过程350使第一计算机110能够生成第一公钥-私钥对和/或第二公钥-私钥对。
在如图1B所示的一些实施例中,第一计算机110是本地客户端计算机150,而第二计算机120是远程计算机服务器160。在如图1C所示的一些其他实施例中,第一计算机110是远程计算机服务器160,而第二计算机120是本地客户端计算机150。
本地客户端计算机150是由个人或企业终端用户操作的计算机或计算设备。本地客户端计算机150的一些非限制性示例包括:台式设备、移动设备、平板设备、膝上型计算机、可穿戴设备以及可以具有处理器、微处理器、中央处理单元或控制器的任何其他电子设备。本地客户端计算机150可经由通信网络130与远程计算机服务器160通信,诸如用于将数据传递到远程计算机服务器160进行存储。本地客户端计算机150包括或通信地连接到用于存储数据的本地数据库152,并且远程计算机服务器160包括或通信地连接到用于存储数据的服务器数据库162。远程计算机服务器160是远离本地客户端计算机150的计算机服务器,即,不共享本地客户端计算机150的相同本地网络。如本文所使用的,计算机服务器是在其上运行服务器程序的物理或云数据处理系统。服务器可以以硬件或软件或其组合来实现。服务器包括计算机、膝上型计算机、小型计算机、大型计算机、可以执行机器可读代码的任何非瞬态有形机器、基于云的服务器、分布式服务器网络以及计算机系统网络。
在许多实施例中,远程计算机服务器160是或者包括可与一个或多个本地客户端计算机150通信的基于云的服务器。具体地,基于云的服务器为本地客户端计算机150的终端用户提供网络(web)服务。基于云的服务器可以具有开源服务器、企业服务器、企业对企业服务器、企业对开源服务器、或适合终端用户在不同位置传输、传递和存储数据的任何其他服务器环境。
通过令牌生成过程400为本地客户端计算机150和远程计算机服务器160中的每一者生成非对称公钥-私钥对。可以由远程计算机服务器160或本地客户端计算机150生成非对称公钥-私钥对。为本地客户端计算机150生成的公钥-私钥对被称为客户端公钥-私钥对154,为远程计算机服务器160生成的公钥-私钥对被称为服务器公钥-私钥对164。客户端公钥-私钥对154由客户端公钥154-1和客户端私钥154-2组成。服务器公钥-私钥对164由服务器公钥164-1和服务器私钥164-2组成。客户端公钥-私钥对154和服务器公钥-私钥对164均可以是在本文的各个实施例中描述的第一公钥-私钥对或第二公钥-私钥对。
在本地客户端计算机150和远程计算机服务器160可以执行数据的加密/解密之前,由它们协同地执行令牌生成过程400。具体地,在执行第一数据通信指令的步骤202之前以及在执行第二数据通信指令的步骤252之前,执行令牌生成过程400。可以通过使用用于互联网上的认证和授权的OAuth 2.0标准协议来发生令牌生成过程400。使用在本地客户端计算机150上执行的至少一个客户端应用来执行令牌生成过程400的各个步骤。在一个实施例中,客户端应用被预先安装在本地客户端计算机150上。在另一实施例中,客户端应用未被预先安装,但是客户端可以通过本地客户端计算机150的操作系统(诸如,iOS、Android等)请求客户端应用,并且随后下载并安装客户端应用。
在一些实施例中,由本地客户端计算机150和远程计算机服务器160协同地执行令牌生成过程400,并且由远程计算机服务器160生成非对称公钥-私钥对。令牌生成过程400涉及至少三个HTTPS会话,如下面参照图4A至图4C所述。
在参照图4A的第一HTTPS会话中,在步骤402中,本地客户端计算机150生成为对称密钥的令牌会话密钥。在步骤404中,本地客户端计算机150将令牌会话密钥发送到远程计算机服务器160。在步骤406中,本地客户端计算机150使用令牌会话密钥,对登录请求进行加密,该登录请求用于在客户端应用的嵌入式浏览器上呈现登录页面。在步骤408,本地客户端计算机150将加密的登录请求发送到远程计算机服务器160。在步骤410,远程计算机服务器160使用令牌会话密钥,对加密的登录请求进行解密,并进一步处理登录请求。在步骤412中,远程计算机服务器160使用令牌会话密钥来加密客户端登录页面。在步骤414中,远程计算机服务器160将加密的客户端登录页面发送到本地客户端计算机150。在步骤416中,本地客户端计算机150使用令牌会话密钥,对加密的客户端登录页面进行解密。在步骤418,本地客户端计算机150在嵌入式浏览器上显示解密的客户端登录页面。
在一些实施例中,在第一HTTPS会话中没有加密。具体地,本地客户端计算机150将未加密的登录请求发送到远程计算机服务器160,以在浏览器上呈现登录页面。远程计算机服务器160接收并处理登录请求。远程计算机服务器160将未加密的客户端登录页面发送到本地客户端计算机150以在嵌入式浏览器上显示。
在参照图4B的第二HTTPS会话中,在步骤420中,用户或客户端在客户端登录页面上输入包括用户名和/或密码的客户端登录详细信息。用户名和密码均可以是数字、字母、文本和字符等的任何组合或串。在步骤422中,本地客户端计算机150将客户端登录详细信息发送到远程计算机服务器160进行认证。在步骤424中,远程计算机服务器160认证客户端登录详细信息并生成消息认证码(MAC)。MAC也被称为标签,并且是用于认证诸如客户端登录详细信息的消息的简短信息,从而保护消息的数据完整性和真实性。在步骤426中,远程计算机服务器160使用令牌会话密钥,对MAC进行加密。在步骤428中,远程计算机服务器160将加密的MAC发送到本地客户端计算机150。在步骤430中,本地客户端计算机150使用令牌会话密钥,对加密的MAC进行解密。可选择地,MAC可以不被加密。MAC授权客户端成功登录浏览器,并且客户端可以在可以由客户端设置的预定时间段内保持登录。客户端现在可以使用浏览器从远程计算机服务器160请求公钥-私钥对。
在参照图4C的第三HTTPS会话中,在步骤432中,本地客户端计算机150发起对来自远程计算机服务器160的公钥-私钥对的令牌请求。在步骤434中,本地客户端计算机150使用令牌会话密钥,对令牌请求进行加密。在步骤436中,本地客户端计算机150将加密的令牌请求发送到远程计算机服务器160。在步骤438中,远程计算机服务器160使用令牌会话密钥,对加密的令牌请求进行解密,并进一步处理令牌请求。在步骤440中,远程计算机服务器160生成两个公钥-私钥对,包括用于本地客户端计算机150的客户端公钥-私钥对154和用于远程计算机服务器160的服务器公钥-私钥对164。可选地,在步骤440中,远程计算机服务器160还生成用于本地客户端计算机150的客户端令牌。客户端令牌可以用于标识客户端和/或本地客户端计算机150,诸如使远程计算机服务器160能够识别为本地客户端计算机150生成的客户端公钥-私钥对154。
在步骤442中,远程计算机服务器160使用令牌会话密钥,对客户端私钥154-2、服务器公钥164-1和客户端令牌进行加密。在步骤444中,远程计算机服务器160将加密的客户端私钥154-2、加密的服务器公钥164-1和加密的客户端令牌发送到本地客户端计算机150,以供本地客户端计算机150随后使用令牌会话密钥进行解密。如技术人员将容易理解的,这些可以被串行、并行、分块或分区发送。在步骤446中,本地客户端计算机150使用令牌会话密钥,对加密的客户端私钥154-2、加密的服务器公钥164-1和加密的客户端令牌进行解密。在步骤448中,本地客户端计算机150响应于本地客户端计算机150中的所述解密来提取客户端私钥154-2、服务器公钥164-1和客户端令牌,并将它们存储在其本地数据库152上。客户端公钥-私钥对154、服务器公钥-私钥对164和客户端令牌均可以具有可由本地客户端计算机150和/或远程计算机服务器160配置的到期条件,诸如上述针对第一公钥-私钥对和第二公钥-私钥对所描述的内容。例如,到期条件是与令牌会话密钥的预定义有效期相对应的预定义有效期。因此,在令牌会话密钥到期之后将满足到期条件。
在一些实施例中,由本地客户端计算机150而不是远程计算机服务器160生成非对称公钥-私钥对。这参照图4D被描述为令牌生成过程450。由本地客户端计算机150和远程计算机服务器160经由一个或多个HTTPS会话协同地执行令牌生成过程450。将理解的是,令牌生成过程400的各个方面相似地或类似地应用于令牌生成过程450,反之亦然,并且为了简明,从令牌生成过程450的描述中省略了这些方面。
在步骤452中,本地客户端计算机150生成为对称密钥的令牌会话密钥。在步骤454中,本地客户端计算机150生成两个公钥-私钥对,包括用于本地客户端计算机150的客户端公钥-私钥对154和用于远程计算机服务器160的服务器公钥-私钥对164。可选地,在步骤454中,本地客户端计算机150还生成用于本地客户端计算机150的客户端令牌。客户端令牌可以用于标识客户端和/或本地客户端计算机150,以使得远程计算机服务器160能够识别为本地客户端计算机150生成的客户端公钥-私钥对154。
在步骤456中,本地客户端计算机150使用令牌会话密钥,对客户端公钥154-1、服务器私钥164-2和客户端令牌进行加密。在步骤458中,本地客户端计算机150将令牌会话密钥、加密的客户端公钥154-1、加密的服务器私钥164-2和加密的客户端令牌发送到远程计算机服务器160,以供远程计算机服务器160随后使用令牌会话密钥进行解密。如技术人员将容易理解的,这些可以被串行、并行、分块或分区发送。在一个实施例中,当在本地客户端计算机150与远程计算机服务器160之间存在有效的通信链接或有效的HTTPS会话时,密钥被生成并被发送到远程计算机服务器160。在另一实施例中,在离线模式下生成密钥,在离线模式中,本地客户端计算机150诸如由于缺少互联网连接而与远程计算机服务器160通信断开。密钥可以存储在本地客户端计算机150的本地数据库152上,并且在与远程计算机服务器160建立了有效的通信链接之后,密钥随后被发送到远程计算机服务器160。
在步骤460中,远程计算机服务器160使用令牌会话密钥,对加密的客户端公钥154-1、加密的服务器私钥164-2和加密的客户端令牌进行解密。在步骤462中,远程计算机服务器160响应于远程计算机服务器160中的所述解密来提取客户端公钥154-1、服务器私钥164-2和客户端令牌,并将它们存储在其服务器数据库162上。
在任何基于会话的加密中,诸如在上述的HTTPS会话中,都存在用于通过HTTPS协议提供和建立安全会话的过程、功能或方法500。参照图5,在步骤502中,用户或客户端通过客户端应用提供指令以请求与远程计算机服务器160的TLS/SSL连接。在步骤504中,远程计算机服务器160可以使用具有编程功能集合的应用程序接口(API),以获取或生成可以与服务器公钥164-1相关联的TLS/SSL证书。在步骤506中,远程计算机服务器160将TLS/SSL证书和服务器公钥164-1发送到本地客户端计算机150。在步骤508中,本地客户端计算机150验证并认证TLS/SSL证书以及服务器公钥164-1。在步骤510中,本地客户端计算机150生成会话密钥或对称密钥,诸如,步骤204中的第一会话密钥和步骤254中的第二会话密钥。在步骤512中,本地客户端计算机150使用服务器公钥164-1,对会话密钥进行加密。在步骤514中,本地客户端计算机150将加密的会话密钥发送到远程计算机服务器160。在步骤516中,远程计算机服务器160使用服务器私钥164-2,对加密的会话密钥进行解密。在步骤518中,远程计算机服务器160将消息发送到本地客户端计算机150,以确认完成会话密钥的所述解密。在步骤520中,本地客户端计算机150和远程计算机服务器160随后可以使用现在在它们之间共享的会话密钥来通信和交换数据。
在参照图6A的一些实施例中,存在用于保护本地客户端计算机150与远程计算机服务器160之间通过HTTPS协议进行数据通信的过程、功能或方法600。使用在本地客户端计算机150上安装并执行的客户端应用,来执行方法600的各个步骤。
在方法600的步骤602中,本地客户端计算机150与远程计算机服务器160协同执行第一数据通信指令,以将第一数据存储在远程计算机服务器160上。第一数据可以包括从对各种受试者/患者执行的医疗程序收集的测量数据。测量数据可以包括心率数据系列的集合、血压数据系列的集合、脉压数据系列的集合中的至少一者。例如,测量数据包括多个心率数据系列,包括在第一时间段中收集的第一心率数据系列以及在第二时间段中收集的第二心率数据系列。
在步骤604中,本地客户端计算机150获取存储在本地数据库152上的测量数据。在步骤606中,本地客户端计算机150通过使用诸如运行长度编码(RLE)、霍夫曼编码、LZ77、LZ78等及其任何组合的数据压缩算法来压缩测量数据。可选择地,测量数据是未压缩的,但是可以是可压缩的。在步骤608中,本地客户端计算机150生成第一会话密钥。在步骤610中,本地客户端计算机150使用第一会话密钥,对测量数据进行加密。在步骤612中,本地客户端计算机150使用从令牌生成过程400/450生成的服务器公钥164-1,对第一会话密钥进行加密。在步骤614,本地客户端计算机150向远程计算机服务器160发送加密的测量数据和加密的第一会话密钥。
因此,在方法600的上述步骤中,本地客户端计算机150可以在任何给定时间通过HTTPS协议将测量数据(诸如,第一和第二心率数据系列)发送到远程计算机服务器160。在步骤616中,远程计算机服务器160使用服务器私钥164-2,对加密的第一会话密钥进行解密,并提取解密的第一会话密钥。在步骤618中,远程计算机服务器160使用解密的第一会话密钥,对加密的测量数据进行解密,并提取解密的测量数据。在步骤620中,测量数据可以是被压缩的,并且远程计算机服务器160将压缩的测量数据解压缩到其原始未压缩状态。可选择地,测量数据可以是原始未压缩的。在步骤622中,远程计算机服务器160基于第一数据通信指令将测量数据存储在服务器数据库162上。
在步骤624中,远程计算机服务器160使用算法集来组合和/或操纵测量数据以生成细粒度数据。在步骤626中,远程计算机服务器160将细粒度数据与测量数据一起存储在服务器数据库162上。如技术人员将容易理解的,细粒度数据可以被生成,使得其中的每个数据元素具有其自己的用于云计算的访问控制策略。在某些情况下,远程计算机服务器160操作云计算服务,客户端通过对云计算服务的付费订阅来进行订阅。如果及时支付订阅费用,则远程计算机服务器160生成细粒度。相反,如果未及时支付订阅费用,则远程计算机160可以终止或限制云计算机服务,诸如通过在步骤624中限制算法集生成细粒度数据,尽管这可以优化将测量数据存储在服务器数据库162上的方法600的处理流程。在步骤628中,远程计算机服务器160向本地客户端计算机150发送消息,以确认完成将测量数据/细粒度数据存储在服务器数据库162上的步骤622。
在参照图6B的一些实施例中,存在用于保护本地客户端计算机150与远程计算机服务器160之间通过HTTPS协议进行数据通信的过程、功能或方法650。使用在本地客户端计算机150上安装并执行的客户端应用,来执行方法650的各个步骤。在方法650的步骤652中,本地客户端计算机150与远程计算机服务器160协同执行第二数据通信指令,以从远程计算机服务器160获取第二数据。第二数据可以包括如上面方法600中所述存储在服务器数据库162上的历史测量数据和/或历史细粒度数据。
在步骤654中,远程计算机服务器160获取存储在服务器数据库162上的历史测量数据/细粒度数据。在步骤656中,远程计算机服务器160通过使用上述的数据压缩来压缩历史测量数据/细粒度数据。可选择地,历史测量数据/细粒度数据是未压缩的,但是可以是可压缩的。在步骤658中,远程计算机服务器160生成第二会话密钥。在步骤660中,远程计算机服务器160使用第二会话密钥,对历史测量数据/细粒度数据进行加密。在步骤662中,远程计算机服务器160使用从令牌生成过程400/450生成的客户端公钥154-1,对第二会话密钥进行加密。第二数据通信指令可以包括客户端令牌,该客户端令牌标识本地客户端计算机150和/或客户端将其用于远程计算机服务器160来识别为本地客户端计算机150生成的客户端公钥154-1。在步骤664中,远程计算机服务器160向本地客户端计算机150发送加密的历史测量数据/细粒度数据和加密的第二会话密钥。
在步骤666中,本地客户端计算机150使用从令牌生成过程400/450生成的客户端私钥154-2,对加密的第二会话密钥进行解密,并提取解密的第二会话密钥。在步骤668中,本地客户端计算机150使用解密的第二会话密钥,对加密的历史测量数据/细粒度数据进行解密,并提取解密的历史测量数据/细粒度数据。在步骤670中,历史测量数据/细粒度数据可以是被压缩的,并且本地客户端计算机150将压缩的历史测量数据/细粒度数据解压缩到其原始的未压缩状态。可选择地,历史测量数据/细粒度数据可以是原始未压缩的。在步骤672中,本地客户端计算机150基于第二数据通信指令将历史测量数据/细粒度数据存储在本地数据库152中。在步骤674中,本地客户端计算机150在客户端应用上显示历史测量数据/细粒度数据。在一个实施例中,本地客户端计算机150仅接收历史测量数据,并且可以使用算法集来组合和/或操纵历史测量数据以生成细粒度数据。
因此,在方法650的上述步骤中,本地客户端计算机150可以在任何给定时间通过HTTPS协议从远程计算机服务器160获取历史测量数据/细粒度数据。在一个实施例中,第二数据通信指令是用于获取至少一组历史测量数据/细粒度数据的单个请求。如果客户希望获取另一组或其他组的历史测量数据/细粒度数据,则执行其他第二数据通信指令。因此,技术人员将容易地理解,可以重复第二数据通信指令以从远程计算机服务器160获取一个以上的数据包或历史测量数据/细粒度数据的集合。
在参照图7A和图7B的一些实施例中,存在用于保护本地客户端计算机150与远程计算机服务器160之间通过HTTPS协议进行数据通信的过程、功能或方法700。使用在本地客户端计算机150上安装并执行的客户端应用来执行方法700的各个步骤。
在参照图7A的方法700的步骤702中,本地客户端计算机150与远程计算机服务器160协同执行第一数据通信指令,以使远程计算机服务器160认证第一数据。第一数据包括认证数据/信息,该认证数据/信息可以包括本地客户端计算机150的客户端或用户的用户名和/或密码。访问本地客户端计算机150上的其他应用和/或客户端应用的其他模块会需要认证数据。因此,第一数据通信指令可以被称为认证请求。
在步骤704中,本地客户端计算机150获得认证数据。可以从本地数据库152中获取或由客户端提供认证数据。在步骤706中,本地客户端计算机150通过使用数据压缩算法来压缩认证数据。可选择地,认证数据是未压缩的,但是可以是可压缩的。在步骤708中,本地客户端计算机150生成第一会话密钥。在步骤710中,本地客户端计算机150使用第一会话密钥,对认证数据进行加密。在步骤712中,本地客户端计算机150使用从令牌生成过程400/450生成的服务器公钥164-1,对第一会话密钥进行加密。在步骤714中,本地客户端计算机150向远程计算机服务器160发送加密的认证数据和加密的第一会话密钥。
在步骤716中,远程计算机服务器160使用服务器私钥164-2,对加密的第一会话密钥进行解密,并提取解密的第一会话密钥。在步骤718中,远程计算机服务器160使用解密的第一会话密钥,对加密的认证数据进行解密,并提取解密的认证数据。在步骤720中,认证数据可以是压缩的,并且远程计算机服务器160将压缩的认证数据解压缩到其原始未压缩状态。可选择地,认证数据可以是原始未压缩的。在步骤722中,远程计算机服务器160基于第一数据通信指令来处理认证数据。具体地,远程计算机服务器160通过验证过程对认证数据进行认证。验证过程包括将认证数据与预先从客户端获得并存储在服务器数据库162上的参考认证数据进行比较。在步骤724中,远程计算机服务器160响应于认证数据的成功认证来生成MAC。
进一步参照图7B,在步骤726中,远程计算机服务器160与本地客户端计算机150协同执行第二数据通信指令,以将MAC发送到本地客户端计算机150。在步骤728中,远程计算机服务器160通过使用数据压缩算法来压缩MAC。可选择地,MAC是未压缩的,但是可以是可压缩的。在步骤730中,远程计算机服务器160生成第二会话密钥。在步骤732中,远程计算机服务器160使用第二会话密钥对MAC进行加密。在步骤734中,远程计算机服务器160使用从令牌生成过程400/450生成的客户端公钥154-1,对第二会话密钥进行加密。在步骤736中,远程计算机服务器160向本地客户端计算机150发送加密的MAC和加密的第二会话密钥。
在步骤738中,本地客户端计算机150使用从令牌生成过程400/450生成的客户端私钥154-2,对加密的第二会话密钥进行解密,并提取解密的第二会话密钥。在步骤740中,本地客户端计算机150使用解密的第二会话密钥,对加密的MAC进行解密,并提取解密的MAC。在步骤742中,MAC可以是压缩的,并且本地客户端计算机150将压缩的MAC解压缩到其原始未压缩状态。可选择地,MAC可以是原始未压缩的。在步骤744中,本地客户端计算机150基于第二数据通信指令来处理MAC。例如,MAC使客户端能够成功访问本地客户端计算机150上的其他应用和/或客户端应用的其他模块。
在参照图8A至图8C的一些实施例中,存在用于保护本地客户端计算机150与远程计算机服务器160之间通过HTTPS协议进行数据通信的过程、功能或方法800和850。使用在本地客户端计算机150上安装并执行的客户端应用,来执行方法800和850的各个步骤。可以执行方法800,以将第一数据传送到远程计算机服务器160以存储在其上,并且可以执行方法850,以从远程计算机服务器160获取第二数据。第一数据可以包括当前数据集合,并且第二数据可以包括过去数据集合。
当前数据集合可以包括最近收集的、先前未发送到远程计算机服务器160的新的个人/医疗数据。当前数据集合可以是文档形式、数据形式、数据记录、原始数据或任何其他合适的形式。当前数据集合可以被存储在本地数据库152上并从本地数据库152获取。过去数据集合可以包括先前收集的、已经被发送到远程计算机服务器160以存储在服务器数据库162上的过去的数据/信息。可以从远程计算机服务器160取回过去数据集合,以在客户端应用上可视化。
当前数据集合和过去数据集合均可以包括合规(compliant)数据集合和/或不合规(non-compliant)数据集合。合规数据集合可以包括需要在本地客户端计算机150和远程计算机服务器160可以被授权访问之前被法规或策略认可的个人数据集合、细粒度数据集合或任何其他数据。合规数据可以包括关于客户账户或客户简档的信息(例如,客户的身高、体重和年龄)。不合规数据集合可以包括在访问被授权之前通常不需要任何检查的测量数据集合、原始数据集合、细粒度数据集合或任何其他数据。可以基于在本地客户端计算机150和/或远程计算机服务器160中实现的算法集来生成细粒度数据集合。细粒度数据集合可以包括活动数据、睡眠数据、压力数据、或与受试者/患者的生物特征相关的任何类似形式的数据。可以基于测量数据或原始数据(诸如但不限于:心率、心率变异性、血压、脉压、由传感器测量的任何相关数据等及其任何组合)来生成细粒度数据。
远程计算机服务器160可以使用具有编程功能集合的API将合规/不合规数据传送到本地客户端计算机150。编程功能可以基于各种编程语言,诸如但不限于Java、JavaScript、Python和超文本标记语言(HTML)。
在参照图8A的方法800的步骤802中,本地客户端计算机150与远程计算机服务器160协同执行第一令牌生成过程400/450,以生成第一客户端公钥-私钥对154a和第一服务器公钥-私钥对164a。在步骤804中,本地客户端计算机150从远程计算机服务器160接收第一服务器公钥164a-1和第一客户端私钥154a-2。在步骤806中,本地客户端计算机150与远程计算机服务器160协同执行第一数据通信指令,以将第一数据或当前数据集合存储在远程计算机服务器160上。在步骤808中,本地客户端计算机150获取存储在本地数据库152上的当前数据集合。如以上实施例中所述,可以压缩当前数据集合。在步骤810中,本地客户端计算机150生成第一会话密钥。在步骤812中,本地客户端计算机150使用第一会话密钥,对当前数据集合进行加密。在步骤814中,本地客户端计算机150使用第一服务器公钥164a-1,对第一会话密钥进行加密。在步骤816中,本地客户端计算机150向远程计算机服务器160发送加密的当前数据集合和加密的第一会话密钥。
在一些实施例中,当前数据集合包括合规数据和不合规数据。在一个实施例中,使用第一会话密钥,对当前数据集合进行加密,即,使用相同的第一会话密钥,对合规数据和不合规数据进行加密。在另一实施例中,使用不同的会话密钥,对合规数据和不合规数据进行加密。本地客户端计算机150将生成用于加密合规数据的第一会话密钥A以及用于加密不合规数据的第一会话密钥B。
第一客户端公钥-私钥对154a和第一服务器公钥-私钥对154b可以具有到期条件,其中,它们仅对于单次使用有效。单次使用的到期条件可以适合于暂时或单次性使用情况,诸如,用于存储新客户帐户/简档信息、或用于请求授权访问远程计算机服务器160上的数据。
在步骤818中,远程计算机服务器160使用第一服务器私钥164a-2,对加密的第一会话密钥进行解密,并提取解密的第一会话密钥。在步骤820中,远程计算机服务器160使用解密的第一会话密钥,对加密的当前数据集合进行解密,并提取解密的当前数据集合。在步骤822中,远程计算机服务器160基于第一数据通信指令将当前数据集合存储在服务器数据库162上。
客户端随后可能希望诸如通过使用方法850从远程计算机服务器160获取当前数据集合和/或过去数据集合。参照图8B,在步骤852中,本地客户端计算机150与远程计算机服务器160协同执行第二数据通信指令,以请求授权访问当前数据集合和/或过去数据集合。当前数据集合和/或过去数据集合可以包括合规/不合规数据。在步骤854中,远程计算机服务器160确定客户端授权级别,该客户端授权级别决定客户端是否被授权访问合规/不合规数据。
在步骤856中,远程计算机服务器160检查包括的客户凭证集合,以使客户端访问级别符合请求的数据的所有或部分。作为合规/不合规数据的处理和传播的部分,远程计算机服务器160可以根据客户端凭证来确定和/或检查,以决定客户端可以被授权请求和获得数据、数据记录、原始数据、细粒度数据、已处理数据中的哪个字段或任何所述数据的部分。此后,客户端将能够查看或访问所有或部分合规/不合规数据。另外,远程计算机服务器160可以仅授权客户端在预定时间段内访问合规/不合规数据。这允许远程计算机服务器160监视并防止不需要的数据被放置在服务器数据库162的活动存储位置中;可以将不需要的数据存储在服务器数据库162的休眠存储位置中。
在步骤858中,远程计算机服务器160响应于来自步骤856的客户端的成功授权来生成MAC。可以压缩MAC。在步骤860中,远程计算机服务器160生成第二会话密钥。在步骤862中,远程计算机服务器160使用第二会话密钥,对MAC进行加密。在步骤864中,远程计算机服务器160使用第一客户端公钥154a-1,对第二会话密钥进行加密。在步骤866中,远程计算机服务器160向本地客户端计算机150发送加密的MAC和加密的第二会话密钥。
在步骤868中,本地客户计算机150使用第一客户端私钥154a-2,对加密的第二会话密钥进行解密,并提取解密的第二会话密钥。在步骤870,本地客户端计算机150使用解密的第二会话密钥,对加密的MAC进行解密,并提取解密的MAC。在步骤872中,本地客户端计算机150基于第二数据通信指令来处理MAC。例如,MAC使客户端能够请求访问合规/不合规数据。
进一步参照图8C,在步骤874中,本地客户端计算机150与远程计算机服务器160协同执行第二令牌生成过程400/450,以生成第二客户端公钥-私钥对154b、第二服务器公钥-私钥对164b和客户端令牌。第二客户端公钥-私钥对154b、第二服务器公钥-私钥对164b和客户端令牌是客户端访问合规/不合规数据所需要的。访问合规/不合规数据的时间段可以根据数据的量和/或重要性来预先设置。第二客户端公钥-私钥对154b、第二服务器公钥-私钥对164b和客户端令牌可以具有到期条件,其中,它们仅在预定义时间段内有效。预定义时间段可以是两个小时,并且可以有助于防止未知用户或客户端获得对合规/不合规数据的访问。在步骤876,本地客户端计算机150从远程计算机服务器160接收第二服务器公钥164b-1、第二客户端私钥154b-2和客户端令牌。
在步骤878中,本地客户端计算机150与远程计算机服务器160协同执行第三数据通信指令,以从远程计算机服务器160访问和获取合规/不合规数据。第三数据通信指令可以包括用于标识本地客户端计算机150/客户端的客户端令牌,并且客户端令牌可以在预定义有效期内保持活动状态,此后客户端从访问和获取合规/不合规数据中登出。在客户端令牌到期时,远程计算机服务器160可以向本地客户端计算机150发送超时或登出消息。
在步骤880中,远程计算机服务器160查询和获取服务器数据库162上存储的合规/不合规数据。在步骤882中,远程计算机服务器160生成第三会话密钥。在步骤884中,远程计算机服务器160使用第三会话密钥,对合规/不合规数据进行加密。在步骤886中,远程计算机服务器160使用第二客户端公钥154b-1,对第三会话密钥进行加密。在步骤888中,远程计算机服务器160向本地客户端计算机150发送加密的合规/不合规数据和加密的第三会话密钥。
在一个实施例中,使用相同的第三会话密钥,对合规数据和不合规数据进行加密。在另一实施例中,使用不同的会话密钥,对合规数据和不合规数据进行加密。远程计算机服务器160将生成用于加密合规数据的第三会话密钥A以及用于加密不合规数据的第三会话密钥B。
在步骤890中,本地客户端计算机150使用所生成的第二客户端私钥154b-2,对加密的第三会话密钥进行解密,并提取解密的第三会话密钥。在步骤892中,本地客户端计算机150使用解密的第三会话密钥,对加密的合规/不合规数据进行解密,并提取解密的合规/不合规数据。在步骤894中,本地客户端计算机150基于第三数据通信指令将合规/不合规数据存储在本地数据库152上。
在一个实施例中,本地客户端计算机150在客户端应用上显示的合规/不合规数据,以进行可视化。在另一实施例中,本地客户端计算机150将合规/不合规数据分发到其他客户端计算机/设备。本地客户端计算机150可以在向其他客户端计算机/设备传送加密的合规/不合规数据之前,生成用于加密合规/不合规数据的分发会话密钥集合。合规/不合规数据可以被划分为一个或多个合规/不合规数据分区。分区可以存储在本地数据库152的单独的存储位置中。可以通过相同的分发会话密钥,对分区进行加密,或者可以通过各自的分发会话密钥,对每个分区进行加密。用于加密合规/不合规数据或其分区的分发会话密钥也被传送到其他客户端计算机/设备,以对接收到的数据进行解密。
本文描述的各种实施例涉及通过使用用于加密和解密的安全密钥140来保护本地客户端计算机150与远程计算机服务器160之间的数据通信。安全密钥140包括由令牌生成过程400/450生成的客户端公钥-私钥对154和服务器公钥-私钥对164。图9A示出了令牌生成过程400中的从远程计算机服务器160传送到本地客户端计算机150的OAuth 2.0响应900。响应900示出了客户端私钥154-2的文本串902和服务器公钥164-1的文本串904。图9B示出了从本地客户端计算机150传送到远程计算机服务器160的加密的不合规数据的密文906,其中,使用会话密钥对数据进行了加密。图9C示出了已经使用会话密钥解密的不合规数据的纯文本908。
在一些实施例中,客户端公钥-私钥对154和服务器公钥-私钥对164具有单次使用到期条件。到期条件可以另外包括预定义有效期,使得必须在预定义有效期内执行单次使用。即使客户端公钥-私钥对154和服务器公钥-私钥对164未被使用,但是在预定义有效期之后它们也会自动到期。图9D示出了单次使用的客户端私钥154-2的文本串910和单次使用的服务器公钥164-1的文本串912。单次使用的密钥可以适用于单次使用的情况,诸如,当客户端应用的嵌入式浏览器或单独的互联网浏览器获取登录页面以执行各种功能(诸如,查看和编辑客户简档)时。客户端使用浏览器执行数据通信指令,并使用相关的单次使用的密钥来加密/解密数据。在一个实例中,本地客户端计算机150使用单次使用的服务器公钥164-1,对要发送到远程计算机服务器160的认证数据进行加密。认证数据包括用户名和/或密码或者用于更改密码的指令。在另一实例中,单次使用的客户端公钥154-1被远程计算机服务器160用于对要被发送到本地客户端计算机150并显示在浏览器上的简档页面进行加密。
本文所述的各种实施例有利地允许用户或客户端通过使用安全密钥140在本地客户端计算机150与远程计算机服务器160之间执行安全数据通信,安全密钥140包括由远程计算机服务器160生成的客户端公钥-私钥对154和服务器公钥-私钥对164。这消除了对使数据通信过程复杂化的第三方服务器提供安全密钥的需要。本地客户端计算机150可以从远程计算机服务器160请求安全密钥140,并在需要时发起与远程计算机服务器160的安全数据通信。数据通信可以用于存储使用安全密钥140加密的新数据或获取过去数据。
在医疗/个人信息的示例中,某些数据可以被认为在所有情况下都是机密的,并且仅可由一组客户端访问,而其他一些数据则仅可以由选定的客户端访问。因此,不同类别的数据仅可以由不同选择的客户端来访问。通过使用客户端专用的公钥154-1对数据进行加密以及使用对应的客户端专用的私钥154-2对加密的数据进行解密,不同的客户端可以访问不同类别的数据。有利地,这仅允许选定的客户端访问选定类别的数据,并且为了诸如对医疗/个人信息进行某些更改的目的,同时仍保持在相关法规/政策之内。这防止欺诈性地访问不允许访问的数据,从而防止更改敏感的医疗/个人信息(其可能导致对医疗/个人信息进行错误集体分析)。
图10是示出根据本公开的实施例的计算机1000的技术架构的框图。计算机1000的一些非限制性示例是第一计算机110、第二计算机120、本地客户端计算机150和远程计算机服务器160。计算机1000包括处理器/中央处理单元(CPU)1002、存储器装置1004、数据库1006、数据通信模块1008和安全模块1010。
处理器1002执行从存储器装置1004访问的指令、代码、计算机程序和/或脚本。处理器1002包括合适的逻辑、电路和/或接口以执行这样的操作或步骤。处理器1002的一些非限制性示例包括专用集成电路(ASIC)处理器、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、现场可编程门阵列(FPGA)等。虽然仅示出了一个处理器1002,但是可以存在多个处理器1002。因此,尽管指令可以被讨论为由处理器1002执行,但是可以由一个或多个处理器1002(例如,以多核配置的处理器)同时、串行或者以其他方式执行指令。
存储器装置1004可以包括存储设备(诸如闪存、磁盘驱动器或存储卡)、只读存储器(ROM)和随机存取存储器(RAM)。存储器装置1004存储由处理器1002操作以执行根据本公开的各种实施例的方法的各种操作或步骤的非暂时性指令。存储器装置1004可以被称为计算机可读存储介质和/或非暂时性计算机可读介质。非暂时性计算机可读介质包括所有计算机可读介质,唯一的例外是暂时性传播信号本身。
数据库1006是适合于存储和/或获取数据的任何计算机操作的硬件。数据库1006的一些非限制性示例是数据库112、122、152和162。数据库1006可以包括多个存储单元,诸如,独立磁盘冗余阵列(RAID)配置下的硬盘和/或固态磁盘。数据库1006可以包括但不限于存储区域网络(SAN)和/或网络附加存储(NAS)系统。数据通信模块1008被配置为与其他计算机1000通信。例如,本地客户端计算机150的数据通信模块1008可以与远程计算机服务器160的数据通信模块1008通信或交换数据。
安全模块1010被配置为根据本文描述的各种对称/非对称加密算法来生成安全密钥140。另外,安全模块1010被配置为使用安全密钥140执行数据的加密和解密。安全密钥140的一些非限制性示例是会话密钥、第一公钥-私钥对、第二公钥-私钥对、客户端公钥-私钥对154和服务器公钥-私钥对164。安全模块1010生成用于加密数据的会话密钥,并且还经由令牌生成过程400/450生成公钥-私钥对。
在前面的详细描述中,参照提供的附图描述了与用于保护计算机之间的数据通信的系统和方法有关的本公开的实施例。本文中各种实施例的描述不旨在指出或仅限于本公开的特定或具体代表,而仅是为了说明本公开的非限制性示例。本公开用于解决所提及的问题和与现有技术相关联的问题中的至少一个。尽管本文仅公开了本公开的一些实施例,但是根据本公开对于本领域普通技术人员将显而易见的是,在不脱离本公开的范围的情况下,可以对所公开的实施例进行各种改变和/或修改。因此,本公开的范围以及所附权利要求的范围不限于本文描述的实施例。

Claims (35)

1.一种用于保护第一计算机与第二计算机之间的数据通信的方法,由所述第一计算机和所述第二计算机执行所述方法,并且所述方法包括:
由所述第一计算机和所述第二计算机协同地执行第一数据通信指令,以从所述第一计算机向所述第二计算机传送第一数据;
由所述第一计算机生成第一会话密钥;
由所述第一计算机使用所述第一会话密钥,对所述第一数据进行加密;
由所述第一计算机使用第一公钥,对所述第一会话密钥进行加密,所述第一公钥与第一私钥成对,第一公钥-私钥对是为所述第二计算机生成的;
将加密后的第一数据和加密后的第一会话密钥从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述第一私钥,对加密后的第一会话密钥进行解密;
由所述第二计算机使用解密后的第一会话密钥,对加密后的第一数据进行解密;以及
由所述第二计算机基于所述第一数据通信指令来处理解密后的第一数据。
2.根据权利要求1所述的方法,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机使用所述令牌会话密钥,对令牌请求进行加密;
将所述令牌会话密钥和加密后的令牌请求从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的令牌请求进行解密;
为所述第二计算机生成所述第一公钥-私钥对,并由所述第二计算机生成所述第一公钥-私钥对;
由所述第二计算机使用所述令牌会话密钥,对所述第一公钥进行加密;
将加密后的第一公钥从所述第二计算机发送到所述第一计算机;
由所述第一计算机使用所述令牌会话密钥,对加密后的第一公钥进行解密。
3.根据权利要求1所述的方法,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机为所述第二计算机生成所述第一公钥-私钥对;
由所述第一计算机使用所述令牌会话密钥,对所述第一私钥进行加密;
将所述令牌会话密钥和加密后的第一私钥从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的第一私钥进行解密。
4.根据权利要求1至3中任一项所述的方法,其中,所述第一公钥-私钥对具有到期条件,使得所述第一公钥-私钥对在所述到期条件被满足之前对于加密和解密有效。
5.根据权利要求4所述的方法,其中,所述到期条件是预定义有效期。
6.根据权利要求4或5所述的方法,其中,所述到期条件是预定义使用次数。
7.根据权利要求4至6中任一项所述的方法,其中,在所述令牌会话密钥到期之后满足所述到期条件。
8.根据权利要求1至7中任一项所述的方法,其中,所述第一计算机是本地客户端计算机,并且所述第二计算机是远程计算机服务器。
9.根据权利要求8所述的方法,其中,所述第一数据通信指令涉及将所述第一数据存储在所述远程计算机服务器上。
10.根据权利要求1至7中任一项所述的方法,其中,所述第一计算机是远程计算机服务器,并且所述第二计算机是本地客户端计算机。
11.根据权利要求10所述的方法,其中,所述第一数据通信指令涉及从所述远程计算机服务器获取所述第一数据。
12.根据权利要求1所述的方法,还包括:
由所述第一计算机和所述第二计算机协同地执行第二数据通信指令,以从从所述第二计算机向所述第一计算机传送第二数据;
由所述第二计算机生成第二会话密钥;
由所述第二计算机使用所述第二会话密钥,对所述第二数据进行加密;
由所述第二计算机使用第二公钥,对所述第二会话密钥进行加密,所述第二公钥与第二私钥成对,第二公钥-私钥对是为所述第一计算机生成的;
将加密后的第二数据和加密后的第二会话密钥从所述第二计算机发送到所述第一计算机;
由所述第一计算机使用所述第二私钥,对加密后的第二会话密钥进行解密;
由所述第一计算机使用解密后的第二会话密钥,对加密后的第二数据进行解密;以及
由所述第一计算机基于所述第二数据通信指令来处理解密后的第二数据。
13.根据权利要求12所述的方法,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机使用所述令牌会话密钥,对令牌请求进行加密;
将所述令牌会话密钥和加密后的令牌请求从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的令牌请求进行解密;
为所述第二计算机生成所述第一公钥-私钥对,并由所述第二计算机生成所述第一公钥-私钥对;
由所述第二计算机为所述第一计算机生成所述第二公钥-私钥对;
由所述第二计算机使用所述令牌会话密钥,对所述第一公钥和所述第二私钥进行加密;
将加密后的第一公钥和加密后的第二私钥从所述第二计算机发送到所述第一计算机;
由所述第一计算机使用所述令牌会话密钥,对加密后的第一公钥和加密后的第二私钥进行解密。
14.根据权利要求12所述的方法,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机为所述第二计算机生成所述第一公钥-私钥对;
为所述第一计算机生成所述第二公钥-私钥对,并由所述第一计算机生成所述第二公钥-私钥对;
由所述第一计算机使用所述令牌会话密钥,对所述第一私钥和所述第二公钥进行加密;
将所述令牌会话密钥、加密后的第一私钥和加密后的第二公钥从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的第一私钥和加密后的第二公钥进行解密。
15.根据权利要求12至14中任一项所述的方法,其中,所述第一公钥-私钥对和所述第二公钥-私钥对均具有到期条件,使得所述第一公钥-私钥对和所述第二公钥-私钥对均在满足各自的所述到期条件之前对于加密和解密有效。
16.根据权利要求15所述的方法,其中,所述到期条件是预定义有效期。
17.根据权利要求15或16所述的方法,其中,所述到期条件是预定义使用次数。
18.根据权利要求15至17中任一项所述的方法,其中,在所述令牌会话密钥到期之后满足所述到期条件。
19.根据权利要求12至18中任一项所述的方法,其中,所述第一计算机是本地客户端计算机,并且所述第二计算机是远程计算机服务器。
20.根据权利要求19所述的方法,其中,所述第一数据通信指令涉及将所述第一数据存储在所述远程计算机服务器上,并且其中,所述第二数据通信指令涉及从所述远程计算机服务器获取所述第二数据。
21.根据权利要求19所述的方法,其中,所述第一数据包括所述本地客户端计算机的用户的认证数据,并且其中,所述第二数据包括消息认证代码(MAC),所述消息认证代码(MAC)是由所述远程计算机服务器响应于所述远程计算机服务器对所述认证数据的成功认证而生成的。
22.根据权利要求1至21中任一项所述的方法,其中,所述第一数据包括与医疗信息有关的测量数据。
23.一种计算机系统,所述计算机系统包括彼此通信地连接的第一计算机和第二计算机,所述计算机系统被配置用于保护所述第一计算机与所述第二计算机之间的数据通信,所述第一计算机和所述第二计算机被配置用于执行以下步骤,包括:
由所述第一计算机和所述第二计算机协同地执行第一数据通信指令,以从所述第一计算机向所述第二计算机传送第一数据;
由所述第一计算机生成第一会话密钥;
由所述第一计算机使用所述第一会话密钥,对所述第一数据进行加密;
由所述第一计算机使用第一公钥,对所述第一会话密钥进行加密,所述第一公钥与第一私钥成对,第一公钥-私钥对是为所述第二计算机生成的;
将加密后的第一数据和加密后的第一会话密钥从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述第一私钥,对加密后的第一会话密钥进行解密;
由所述第二计算机使用解密后的第一会话密钥,对加密后的第一数据进行解密;以及
由所述第二计算机基于所述第一数据通信指令来处理解密后的第一数据。
24.根据权利要求23所述的系统,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机使用所述令牌会话密钥,对令牌请求进行加密;
将所述令牌会话密钥和加密后的令牌请求从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的令牌请求进行解密;
为所述第二计算机生成所述第一公钥-私钥对,并由所述第二计算机生成所述第一公钥-私钥对;
由所述第二计算机使用所述令牌会话密钥,对所述第一公钥进行加密;
将加密后的第一公钥从所述第二计算机发送到所述第一计算机;
由所述第一计算机使用所述令牌会话密钥,对加密后的第一公钥进行解密。
25.根据权利要求23所述的系统,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机为所述第二计算机生成所述第一公钥-私钥对;
由所述第一计算机使用所述令牌会话密钥,对所述第一私钥进行加密;
将所述令牌会话密钥和加密后的第一私钥从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的第一私钥进行解密。
26.根据权利要求23至25中任一项所述的系统,其中,所述第一计算机是本地客户端计算机,并且所述第二计算机是远程计算机服务器。
27.根据权利要求26所述的系统,其中,所述第一数据通信指令涉及将所述第一数据存储在所述远程计算机服务器上。
28.根据权利要求23至26中任一项所述的系统,其中,所述第一计算机是远程计算机服务器,并且所述第二计算机是本地客户端计算机。
29.根据权利要求28所述的系统,其中,所述第一数据通信指令涉及从所述远程计算机服务器获取所述第一数据。
30.根据权利要求23所述的系统,所述步骤还包括:
由所述第一计算机和所述第二计算机协同地执行第二数据通信指令,以从从所述第二计算机向所述第一计算机传送第二数据;
由所述第二计算机生成第二会话密钥;
由所述第二计算机使用所述第二会话密钥,对所述第二数据进行加密;
由所述第二计算机使用第二公钥,对所述第二会话密钥进行加密,所述第二公钥与第二私钥成对,第二公钥-私钥对是为所述第一计算机生成的;
将加密后的第二数据和加密后的第二会话密钥从所述第二计算机发送到所述第一计算机;
由所述第一计算机使用所述第二私钥,对加密后的第二会话密钥进行解密;
由所述第一计算机使用解密后的第二会话密钥,对加密后的第二数据进行解密;以及
由所述第一计算机基于所述第二数据通信指令来处理解密后的第二数据。
31.根据权利要求30所述的系统,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机使用所述令牌会话密钥,对令牌请求进行加密;
将所述令牌会话密钥和加密后的令牌请求从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的令牌请求进行解密;
为所述第二计算机生成所述第一公钥-私钥对,并由所述第二计算机生成所述第一公钥-私钥对;
由所述第二计算机为所述第一计算机生成所述第二公钥-私钥对;
由所述第二计算机使用所述令牌会话密钥,对所述第一公钥和所述第二私钥进行加密;
将加密后的第一公钥和加密后的第二私钥从所述第二计算机发送到所述第一计算机;
由所述第一计算机使用所述令牌会话密钥,对加密后的第一公钥和加密后的第二私钥进行解密。
32.根据权利要求30所述的系统,还包括:在执行所述第一数据通信指令之前,由所述第一计算机和所述第二计算机协同地执行令牌生成过程,所述令牌生成过程包括:
由所述第一计算机生成令牌会话密钥;
由所述第一计算机为所述第二计算机生成所述第一公钥-私钥对;
为所述第一计算机生成所述第二公钥-私钥对,并由所述第一计算机生成所述第二公钥-私钥对;
将所述令牌会话密钥、加密后的第一私钥和加密后的第二公钥从所述第一计算机发送到所述第二计算机;
由所述第二计算机使用所述令牌会话密钥,对加密后的第一私钥和加密后的第二公钥进行解密。
33.根据权利要求30至32中任一项所述的方法,其中,所述第一计算机是本地客户端计算机,并且所述第二计算机是远程计算机服务器。
34.根据权利要求33所述的方法,其中,所述第一数据通信指令涉及将所述第一数据存储在所述远程计算机服务器上,并且其中,所述第二数据通信指令涉及从所述远程计算机服务器获取所述第二数据。
35.根据权利要求33所述的方法,其中,所述第一数据包括所述本地客户端计算机的用户的认证数据,并且其中,所述第二数据包括消息认证代码(MAC),所述消息认证代码(MAC)是由所述远程计算机服务器响应于所述远程计算机服务器对所述认证数据的成功认证而生成的。
CN201980029860.9A 2018-03-02 2019-02-28 用于保护计算机之间的数据通信的系统和方法 Pending CN112075051A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SG10201801747W 2018-03-02
SG10201801747W 2018-03-02
PCT/SG2019/050114 WO2019168477A1 (en) 2018-03-02 2019-02-28 System and method for securing data communication between computers

Publications (1)

Publication Number Publication Date
CN112075051A true CN112075051A (zh) 2020-12-11

Family

ID=67808799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980029860.9A Pending CN112075051A (zh) 2018-03-02 2019-02-28 用于保护计算机之间的数据通信的系统和方法

Country Status (8)

Country Link
US (1) US11310038B2 (zh)
EP (1) EP3759867A4 (zh)
JP (1) JP7314156B2 (zh)
KR (1) KR20200127201A (zh)
CN (1) CN112075051A (zh)
AU (1) AU2019228421A1 (zh)
SG (1) SG11202008452PA (zh)
WO (1) WO2019168477A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116112152A (zh) * 2023-04-11 2023-05-12 广东徐工汉云工业互联网有限公司 跨企业网络的数据共享安全加密方法和装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112567682B (zh) * 2018-08-13 2024-05-28 维萨国际服务协会 用于生成密码以进行令牌交互的令牌密钥
US11463258B2 (en) 2020-03-13 2022-10-04 Ebay Inc. Secure token refresh
US11343079B2 (en) * 2020-07-21 2022-05-24 Servicenow, Inc. Secure application deployment
US11153080B1 (en) * 2020-07-29 2021-10-19 John A. Nix Network securing device data using two post-quantum cryptography key encapsulation mechanisms
US12003629B2 (en) 2020-12-30 2024-06-04 John A. Nix Secure server digital signature generation for post-quantum cryptography key encapsulations
US11444753B1 (en) * 2021-03-09 2022-09-13 ISARA Corporation Protocol key negotiation
US20230262066A1 (en) * 2022-02-15 2023-08-17 Bank Of America Corporation System and method for authenticating the receiving end of data transmission via lifi and holochain network

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011099769A2 (ko) * 2010-02-10 2011-08-18 삼성전자 주식회사 무선 통신 시스템 및 그의 사용자 단말기와 이동성 관리 엔티티 간 연결 방법
CN103889004A (zh) * 2012-12-19 2014-06-25 思科技术公司 用于由演进节点b选择移动管理实体的系统、方法和介质
WO2015003753A1 (en) * 2013-07-12 2015-01-15 Nokia Solutions And Networks Oy Redirection of m2m devices
US20150113275A1 (en) * 2013-10-18 2015-04-23 Alcatel-Lucent Usa Inc. Tamper-resistant and scalable mutual authentication for machine-to-machine devices
US20150312038A1 (en) * 2014-04-23 2015-10-29 Karthikeyan Palanisamy Token security on a communication device
CN105359581A (zh) * 2013-07-04 2016-02-24 日本电气株式会社 通信系统、方法和装置
US20160119318A1 (en) * 2014-10-24 2016-04-28 Netflix, Inc Efficient start-up for secured connections and related services
CN106506470A (zh) * 2016-10-31 2017-03-15 大唐高鸿信安(浙江)信息科技有限公司 网络数据安全传输方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010033972A (ko) * 1998-01-09 2001-04-25 사이버세이퍼 코퍼레이션 클라이언트측 공개키 인증방법 및 단기증명장치
US6980659B1 (en) * 2000-06-02 2005-12-27 Brig Barnum Elliott Methods and systems for supplying encryption keys
WO2002045336A1 (fr) 2000-11-28 2002-06-06 Nagravision Sa Certification des transactions
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
JP5013728B2 (ja) 2006-03-20 2012-08-29 キヤノン株式会社 システム及びその処理方法、並びに通信装置及び処理方法
US8165301B1 (en) * 2006-04-04 2012-04-24 Bitmicro Networks, Inc. Input-output device and storage controller handshake protocol using key exchange for data security
US10462109B2 (en) 2016-06-12 2019-10-29 Apple Inc. Secure transfer of a data object between user devices

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011099769A2 (ko) * 2010-02-10 2011-08-18 삼성전자 주식회사 무선 통신 시스템 및 그의 사용자 단말기와 이동성 관리 엔티티 간 연결 방법
KR20110092875A (ko) * 2010-02-10 2011-08-18 삼성전자주식회사 무선 통신 시스템 및 그의 사용자 단말기와 이동성 관리 엔티티 간 연결 방법
CN103889004A (zh) * 2012-12-19 2014-06-25 思科技术公司 用于由演进节点b选择移动管理实体的系统、方法和介质
CN105359581A (zh) * 2013-07-04 2016-02-24 日本电气株式会社 通信系统、方法和装置
WO2015003753A1 (en) * 2013-07-12 2015-01-15 Nokia Solutions And Networks Oy Redirection of m2m devices
US20150113275A1 (en) * 2013-10-18 2015-04-23 Alcatel-Lucent Usa Inc. Tamper-resistant and scalable mutual authentication for machine-to-machine devices
US20150312038A1 (en) * 2014-04-23 2015-10-29 Karthikeyan Palanisamy Token security on a communication device
US20160119318A1 (en) * 2014-10-24 2016-04-28 Netflix, Inc Efficient start-up for secured connections and related services
CN106506470A (zh) * 2016-10-31 2017-03-15 大唐高鸿信安(浙江)信息科技有限公司 网络数据安全传输方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116112152A (zh) * 2023-04-11 2023-05-12 广东徐工汉云工业互联网有限公司 跨企业网络的数据共享安全加密方法和装置
CN116112152B (zh) * 2023-04-11 2023-06-02 广东徐工汉云工业互联网有限公司 跨企业网络的数据共享安全加密方法和装置

Also Published As

Publication number Publication date
AU2019228421A1 (en) 2020-09-24
JP7314156B2 (ja) 2023-07-25
EP3759867A1 (en) 2021-01-06
WO2019168477A1 (en) 2019-09-06
US20210058242A1 (en) 2021-02-25
US11310038B2 (en) 2022-04-19
JP2021516491A (ja) 2021-07-01
EP3759867A4 (en) 2021-11-03
SG11202008452PA (en) 2020-09-29
WO2019168477A9 (en) 2020-04-09
KR20200127201A (ko) 2020-11-10

Similar Documents

Publication Publication Date Title
US11310038B2 (en) System and method for securing data communication between computers
US10375067B2 (en) Mutual authentication with symmetric secrets and signatures
US11329962B2 (en) Pluggable cipher suite negotiation
US9973481B1 (en) Envelope-based encryption method
US10182044B1 (en) Personalizing global session identifiers
US11102191B2 (en) Enabling single sign-on authentication for accessing protected network services
US9852300B2 (en) Secure audit logging
US9330245B2 (en) Cloud-based data backup and sync with secure local storage of access keys
US9887993B2 (en) Methods and systems for securing proofs of knowledge for privacy
US11190504B1 (en) Certificate-based service authorization
KR20190062615A (ko) 키 내보내기 기법
US20180375648A1 (en) Systems and methods for data encryption for cloud services
US8984274B1 (en) Secure data updates
KR20180080183A (ko) 생체인식 프로토콜 표준을 위한 시스템 및 방법
CN110708291B (zh) 分布式网络中数据授权访问方法、装置、介质及电子设备
US11811739B2 (en) Web encryption for web messages and application programming interfaces
CN113411187A (zh) 身份认证方法和系统、存储介质及处理器
US11429753B2 (en) Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications
Junghanns et al. Engineering of secure multi-cloud storage
JP7384487B2 (ja) 暗号認証システム、ユーザ端末、サービスサーバ、及びプログラム
Kumar Yadav et al. An Efficient Approach for Security in Cloud Computing
KR20230152584A (ko) 개인 키의 안전한 복구
WO2022140469A1 (en) Domain unrestricted mobile initiated login
CN115152258A (zh) 在内容分发网络中传输安全信息
Nalinipriya et al. Secure Massive Data Storage With Consistency And Route Control On The Cloud

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