CN113890726A - 用于国际数据驻留的加密密钥管理 - Google Patents
用于国际数据驻留的加密密钥管理 Download PDFInfo
- Publication number
- CN113890726A CN113890726A CN202110688850.5A CN202110688850A CN113890726A CN 113890726 A CN113890726 A CN 113890726A CN 202110688850 A CN202110688850 A CN 202110688850A CN 113890726 A CN113890726 A CN 113890726A
- Authority
- CN
- China
- Prior art keywords
- key
- organization
- geopolitical region
- message
- geopolitical
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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 key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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 central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key 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 central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key 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 central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2111—Location-sensitive, e.g. geographical location, GPS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
用于为国际数据驻留提供加密密钥管理的介质、方法和系统。使用基于组的通信系统的组织可以指定可以存储该组织的数据的特定地缘政治区域和应存储用来加密和解密该数据的加密密钥的另一个地缘政治区域(其可以是相同的或不同的)。该组织的用户可以发布消息或访问来自任何地缘政治区域的先前发布在该基于组的通信系统上的消息,导致该系统自动存储和检索来自适当的区域的消息和加密密钥,以允许用户透明地访问该基于组的通信系统,同时维持安全性和数据驻留要求。
Description
相关申请
本专利申请是关于所有共同的主题要求享有2019年6月6日提交的并且题为“METHOD,APPARATUS,AND COMPUTER PROGRAM PRODUCT FOR ENCRYPTION KEY MANAGEMENTWITHIN A GROUP-BASED COMMUNICATION SYSTEM”的第16/434,097号早前提交的美国非临时专利申请(“’097申请”)的优先权权益的部分继续申请。’097申请是关于所有共同的主题要求享有2018年6月6日提交的第62/681,578号早前提交的美国临时专利申请的优先权权益的非临时专利申请。所标识的早前提交的专利申请据此通过引用整体并入本申请。
本专利申请是关于所有共同的主题要求享有2019年12月3日提交的并且题为“METHODS,APPARATUSES,AND COMPUTER PROGRAM PRODUCTS FOR MANAGEMENT OF ANDSEARCH INDEX GENERATION BASED ON GEOGRAPHICALLY DISTRIBUTED DATA”的第16/702,197号早前提交的美国非临时专利申请(“’197申请”)的优先权权益的部分继续申请。’197申请是关于所有共同的主题要求享有2019年9月3日提交的第62/895,333号和2018年12月14日提交的第62/780,067号早前提交的美国临时专利申请的优先权权益的非临时专利申请。所标识的早前提交的专利申请据此通过引用整体并入本申请。
本专利申请是关于所有共同的主题要求享有2019年9月13日提交的并且题为“METHODS,APPARATUSES,AND COMPUTER PROGRAM PRODUCTS FOR MANAGEMENT OF DATADELETION REQUESTS BASED ON GEOGRAPHICALLY DISTRIBUTED DATA”的第62/900,297号早前提交的美国临时专利申请的优先权权益的非临时申请。所标识的早前提交的临时专利申请据此通过引用整体并入本申请。
技术领域
本发明的实施方案总体上涉及用于国际数据驻留的加密密钥的管理,并且更具体地,涉及用于基于对将数据和/或密钥材料存储在特定地缘政治区域中的要求检索和存储加密的消息的技术。
传统上,用于基于组的(group-based)通信系统的数据由该基于组的通信系统的提供者存储在中央位置,而不考虑使用该基于组的通信系统的组织。然而,一些组织期望将它们的机密数据存储在特定地缘政治区域中,以满足法律限制、监管限制或政治限制。同时,一些组织期望使它们的数据以加密形式存储,以确保隐私免受潜在入侵者入侵。然而,管理的加密密钥和地缘政治区域数据存储约束的组合先前已经在可以存储数据的每个地缘政治区域中要求单独的系统以将一致性和延时(latency)维持在可以接受的水平。这导致效率低下和不必要地重复的资源。这样,所需要的是一种允许客户管理的加密密钥和客户指定的数据驻留同时允许用于协调和交互的中央访问点的系统。
发明内容
本发明的实施方案通过提供如下技术来解决上文描述的需要:所述技术允许使用在任意地缘政治区域中同样管理的密钥来进行到任意地缘政治区域的加密的消息的存储和检索,同时允许用于基于组的通信系统的中央主访问点。特别地,在第一实施方案中,本发明包括一个或多个非暂时性计算机可读介质,所述介质存储计算机可执行指令,所述计算机可执行指令在由处理器执行时执行一种用于为国际数据驻留提供加密密钥管理的方法,所述方法包括以下步骤:从用户接收与组织相关联的待在基于信道的通信系统中发布的消息,所述用户位于第一地缘政治区域中,响应于基于所述组织确定用于与所述组织相关联的数据的驻留的第二地缘政治区域,向位于所述第二地缘政治区域中的密钥服务器发送对加密密钥的请求,其中所述第二地缘政治区域不同于所述第一地缘政治区域,从位于所述第二地缘政治区域中的所述密钥服务器接收组织特定的加密密钥,使用所述组织特定的加密密钥来加密所述消息,在所述第二地缘政治区域中的第二数据存储器中存储加密的消息;以及在所述第一地缘政治区域中的第一数据存储器中存储标识所述加密的消息的存储位置的信息,而不在所述第一地缘政治区域中存储所述加密的消息。
在第二实施方案中,本发明包括一种用于为国际数据驻留提供加密密钥管理的方法,所述方法包括以下步骤:从客户端设备接收用户试图访问与组织相关联的在基于组的通信系统中发布的加密的消息的指示,从第一地缘政治区域中的第一数据存储器检索标识所述加密的消息的存储位置的信息,其中标识所述加密的消息的存储位置的信息指示所述加密的消息被存储在第二地缘政治区域中的第二数据存储器中,其中所述第二地缘政治区域不同于所述第一地缘政治区域,从所述第二地缘政治区域中的所述第二数据存储器检索所述加密的消息,响应于确定与所述加密的消息相关联的解密密钥未被存储在所述第一地缘政治区域中的密钥高速缓存中,从位于第三地缘政治区域中的密钥服务器检索所述解密密钥,其中所述第三地缘政治区域不同于所述第一地缘政治区域,使用所述解密密钥解密所述加密的消息以获得明文消息,向所述客户端设备传输所述明文消息以用于显示给用户。
在第三实施方案中,本发明包括一个或多个非暂时性计算机可读介质,所述介质存储计算机可执行指令,所述计算机可执行指令在由处理器执行时执行一种用于为国际数据驻留提供加密密钥管理的方法,所述方法包括以下步骤:从第二地缘政治区域中的客户端设备接收试图访问与组织相关联的在基于组的通信系统中发布的加密的消息的指示,从第一地缘政治区域中的第一数据存储器检索与所述加密的消息相关联的信息,基于与所述加密的消息相关联的所述信息,将所述加密的消息的存储位置标识为所述第二地缘政治区域中的第二数据存储器,其中所述第二地缘政治区域不同于所述第一地缘政治区域,从所述第二地缘政治区域中的所述第二数据存储器检索所述加密的消息,从位于第三地缘政治区域中的密钥服务器检索与所述加密的消息相关联的组织特定的解密密钥,其中所述第三地缘政治区域不同于所述第一地缘政治区域,使用所述组织特定的解密密钥解密所述加密的消息以获得明文消息,以及向所述客户端设备传输所述明文消息以用于显示给用户。
提供此发明内容以便以简化形式介绍一些概念,这些概念在下文在详细描述中被进一步描述。此发明内容既不意在标识所要求保护的主题的关键特征或必要特征,也不意在被用来限制所要求保护的主题的范围。通过以下对实施方案和附图的详细描述,目前的发明的其他方面和优点将是明显的。
附图说明
下文参考附图详细描述了本发明的实施方案,其中:
图1A描绘了用于本发明的某些实施方案的示例性硬件平台;
图1B描绘了例示了用于执行本发明的实施方案的系统的部件的示例性图;
图2描绘了例示了根据本发明的实施方案的用于将加密的消息存储在指定的地缘政治区域中的方法的操作的流程图;
图3描绘了例示了根据本发明的实施方案的用于将加密的消息存储在指定的地缘政治区域中的过程的部件责任流(component responsibility flow)的泳道图(swim lanediagram);
图4描绘了例示了用于访问存储在指定的地缘政治区域中的加密消息的方法的操作的流程图;以及
图5A和图5B共同地描绘了例示了根据本发明的实施方案的用于访问存储在指定的地缘政治区域中的加密的消息的过程的部件责任流的泳道图。
附图不将本发明限制于本文所公开并且描述的具体实施方案。附图不一定按比例绘制,而是将重点放在清楚地例示本发明的原理上。
具体实施方式
在高水平,本发明的实施方案提供如下技术:所述技术允许使用在任意地缘政治区域中同样管理的密钥来进行到任意地缘政治区域的加密的消息的存储和检索,同时允许用于基于组的通信系统的中央主访问点。在一些实施方案中,基于组的通信系统是基于信道的消息传递平台。下文更详细地描述了这些技术以及用于执行它们的示例性环境。
下文详细描述了本发明的实施方案的主题,以满足法定要求;然而,描述本身并不意在限制权利要求的范围。相反,结合其他目前的或未来的技术,可能以其他方式体现所要求保护的主题,以包括类似于在此文档中所描述的步骤的不同步骤或步骤的组合。来自下文的描述的微小变体对本领域技术人员来说将是明显的,并且意在被捕获在所要求保护的发明的范围内。除非明确地描述了各个步骤的顺序,否则术语不应被解释为暗示所描述的多个步骤的任何特定顺序。
本发明的实施方案的以下详细描述参考附图,所述附图例示了可以实践本发明的具体实施方案。所述实施方案意在充分详细地描述本发明的各方面,以使得本领域技术人员能够实践本发明。在不脱离本发明的范围的情况下,可以利用其他实施方案并且可以进行改变。因此,以下详细描述不应被视为具有限制意义。本发明的实施方案的范围仅由所附权利要求以及这样的权利要求有权享有的等同物的全部范围来限定。
在本说明书中,提及“一个实施方案(one embodiment)”、“一实施方案(anembodiment)”或“实施方案(embodiments)”意味着,被提及的一个或多个特征被包括在技术的至少一个实施方案中。在本说明书中,单独提及“一个实施方案”、“一实施方案”或“实施方案”不一定指相同的实施方案并且也不是互相排斥的,除非如此说明和/或除了根据说明书对本领域技术人员来说将是容易明显的之外。例如,在一个实施方案中描述的特征、结构或动作也可以被包括在其他实施方案中,但是不一定被包括。因此,该技术可以包括本文所描述的实施方案的各种各样的组合和/或集成。
首先转到图1A,描绘了用于本发明的某些实施方案的示例性硬件平台。计算机102可以是台式计算机、膝上型计算机、服务器计算机、诸如智能电话或平板计算机的移动设备或任何其他形状因数(form factor)的通用或专用计算设备。出于例示性目的,几个部件与计算机102一起描绘。在一些实施方案中,某些部件可以被不同地布置或不存在。也可能存在附加的部件。在计算机102中包括系统总线104,由此计算机102的其他部件可以相互通信。在某些实施方案中,可以存在多个总线或部件可以直接相互通信。中央处理单元(CPU)106连接到系统总线104。一个或多个随机存取存储器(RAM)模块108也附接到系统总线104。图形卡(graphics card,显卡)110也附接到系统总线104。在一些实施方案中,图形卡104可以不是物理上单独的卡,而是可以被集成到母板或CPU 106中。在一些实施方案中,图形卡110具有单独的图形处理单元(GPU)112,该图形处理单元可以被用于图形处理或用于通用计算(GPGPU)。GPU存储器114也在图形卡110上。显示器116(直接或间接)连接到图形卡110,用于用户交互。在一些实施方案中,不存在显示器,而在其他实施方案中,显示器被集成到计算机102中。类似地,诸如键盘118和鼠标120的外围设备连接到系统总线104。像显示器116一样,这些外围设备可以被集成到计算机102中或不存在。本地存储器122也连接到系统总线104,该本地存储器可以是任何形式的计算机可读介质,并且可以被内部地安装在计算机102中或被外部地并且可移除地附接。
计算机可读介质包括易失性介质和非易失性介质二者、可移动介质和不可移动介质,并且构想由数据库可读的介质。例如,计算机可读介质包括(但不限于)RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)、全息介质或其他光盘存储器、磁带盒、磁带、磁盘存储器和其他磁存储设备。这些技术可以临时地或永久地存储数据。然而,除非另有明确规定,否则术语“计算机可读介质”不应被解释为包括物理但暂时形式的信号传输,诸如无线电广播、通过电线的电信号或通过光纤电缆的光脉冲。存储的信息的实施例包括计算机可用指令、数据结构、程序模块和其他数据表示。
最后,网络接口卡(NIC)124也附接到系统总线104并且允许计算机102通过网络(诸如网络126)进行通信。NIC 124可以是本领域中已知的任何形式的网络接口,诸如以太网、ATM、光纤、蓝牙或Wi-Fi(即,IEEE 802.11系列标准)。NIC 124将计算机102连接到本地网络126,该本地网络还可以包括一个或多个其他计算机诸如计算机128和络存储器诸如数据存储器130。通常,诸如数据存储器130的数据存储器可以是任何存储库(repository),可以根据需要从该存储库存储和检索信息。数据存储器的实施例包括关系数据库或面向对象数据库、电子制表、文件系统、平面文件、诸如LDAP和活动目录的目录服务、或电子邮件存储系统。数据存储器可以是经由复杂的API(诸如,例如,结构化查询语言)、仅提供读取、写入和寻找(seek)操作的简单API、或介于两者之间的任何复杂水平的API可访问的。一些数据存储器可以附加地提供用于存储在其中的数据集的管理功能,诸如备份或版本控制。数据存储器对于单个计算机诸如计算机128可以是本地的、可以是在本地网络诸如本地网络126上可访问的、或可以是通过因特网132远程可访问的。本地网络126进而连接到因特网132,该因特网连接许多网络,诸如本地网络126、远程网络134或直接附接的计算机,诸如计算机136。在一些实施方案中,计算机102本身可以直接连接到因特网132。
现在转到图1B,描绘了例示了用于执行本发明的实施方案的系统的部件的示例性图,并且该系统总体上由参考数字150指代。系统150包括许多计算机诸如计算机102和数据存储器诸如数据存储器130。如所描绘的,系统150的部件位于两个不同的地缘政治区域,在虚线左侧的部件位于第一地缘政治区域中,并且在右侧的部件位于第二地缘政治区域中。例如,第一地缘政治区域可能是美国,而第二地缘政治区域是欧盟。替代地,第一地缘政治区域可以是加利福尼亚,而第二地缘政治区域是弗吉尼亚。在一些实施方案中,该系统的部件可以存在于不止两个地缘政治区域中。例如,系统150的第一组部件可以位于美国,第二组可以位于欧盟,并且第三组可以位于俄罗斯联邦。当不同的地缘政治区域具有关于数据存储、隐私和保留的不同法律时,本发明的实施方案是特别有用的。例如,根据第一地缘政治区域的法律组织的组织可能被要求(或可能更喜欢)将它们的数据存储在该地缘政治区域中。然而,本发明的实施方案被构想为跨越任何一组地缘政治区域。
第一客户端设备152位于第一地缘政治区域中。在本说明书中为了简洁起见,第一地缘政治区域将是美国;然而,本领域技术人员将理解,第一地缘政治区域也可以是任何其他地缘政治区域。替代地,第一客户端可以位于第二地缘政治区域或第三地缘政治区域(未示出)中。广义地说,客户端设备152可以是上文关于图1所讨论的任何类型的计算设备;然而,在一典型实施方案中,第一客户端设备152可以是台式计算机、膝上型计算机或诸如智能电话的移动设备。第一客户端设备152允许用户与基于组的通信系统交互。在一些实施方案中,第一客户端设备152可以运行用于基于组的通信系统的专用软件。在其他实施方案中,用户可以通过使用第一客户端设备152上的网页浏览器访问网站来访问基于组的通信服务器。尽管在第一地缘政治区域中仅描绘了单个客户端设备,但是基于组的通信系统在任何给定的地缘政治区域中可以具有大量用户,并且用户中的每个可以从任何数目的客户端设备访问基于组的通信系统。在一些实施方案中,基于组的通信系统是基于信道的消息传递平台。
基于组的通信服务器154也位于第一地缘政治区域中。基于组的通信服务器经由诸如网络126或因特网132的网络通信地耦合到第一客户端设备152,并且允许用户的多个客户端设备通过将消息发布到组来交换消息。基于组的通信服务器154还通信地耦合到基于组的通信系统数据存储器156。如所描绘的,基于组的通信服务器154直接连接到基于组的通信系统数据存储器156;然而,也构想其中基于组的通信服务器154连接到基于组的通信系统数据存储器156(如,例如,其中基于组的通信系统数据存储器156是基于网络的存储器或云存储器)的实施方案。基于组的通信系统数据存储器156存储用于基于组的通信系统的数据的一部分,包括消息数据、组(或信道)数据和用户数据。特别地,基于组的通信系统数据存储器156存储被指定存储在第一地缘政治区域中的数据。对于被指定存储在不同的地缘政治区域(诸如第二地缘政治区域)中的数据,基于组的通信系统数据存储器156可以代替地存储指向该数据的指针或标识该数据的存储位置的其他信息。如下文所讨论的,可以以加密形式存储基于组的通信系统数据存储器156中的数据中的一些或全部。例如,可以使用客户管理的密钥加密地存储数据。
为了减少与取得(fetch)密钥相关联的延时(例如,如果密钥被存储在第二地缘政治区域中),能够解密基于组的通信系统数据存储器156中的数据的最近使用的密钥可以被高速缓存在密钥高速缓存158中。例如,在最初从密钥服务器取得密钥之后,该密钥可以在五分钟的时段内保持有效。如果在该时段内需要相同的密钥(例如,以解密存储在基于组的通信系统数据存储器156上的另一个消息),可以从密钥高速缓存158检索该密钥,而不是必须从(可能在区域外的)密钥存储器重新取得该密钥,从而减少延时。本领域技术人员将理解密钥可以被高速缓存不同的时间段,并且不同的密钥可以被高速缓存不同的时间长度。本领域技术人员还将理解减少的与从密钥高速缓存访问密钥相关联的延时与增加的高速缓存大小之间的权衡(以及最小化密钥位于它们的指定存储区域之外的时间的潜在客户期望)。
现在转到第二区域,在一些实施方案中,对于位于第二地缘政治区域中的客户端(诸如第二客户端设备168),第二区域基于组的通信系统服务器160可以类似于基于组的通信系统数据存储器156。在其他实施方案中,客户端(诸如第一客户端设备152和第二客户端设备168)与单个基于组的通信系统服务器(例如,基于组的通信系统服务器154)通信,而不管它们位于的区域,并且中央基于组的通信系统服务器在适当的地缘政治区域存储和检索(适当加密的)消息数据。在这样的实施方案中,第二区域基于组的通信系统服务器160可以不是面向客户端的,而是中央基于组的通信系统服务器与区域数据存储器(在此,第二区域基于组的通信系统数据存储器162)交互所通过的接口。在一些实施方案中,第二区域基于组的通信系统数据存储器162附加地存储组织和信道元数据。例如,用于组织的信道成员身份数据和搜索索引可以被存储在指定的区域中。类似地,用于组织的记录数据(loggingdata)可以被存储在第二区域基于组的通信系统数据存储器162中——如果由组织如此指定。
如上文所描述的,某些数据可以被指定用于存储在特定地缘政治区域中。此指定可以基于客户设置或该特定地缘政治区域中与客户相关联的本地法律。响应于这样的指定,客户端设备与其进行通信的基于组的通信系统将数据存储到适当的地缘政治区域中的基于组的通信系统数据存储器(诸如第一区域基于组的通信数据存储器156或第二区域基于组的通信系统数据存储器162)(以及从其检索数据)。下文详细讨论了此过程。
第二区域密钥服务器164和第二区域密钥数据存储器166也在第二地缘政治区域中。广义地,第二区域密钥服务器164管理用于第二地缘政治区域的加密密钥的所有方面。例如,第二区域密钥服务器164在新的加密密钥被需要时生成新的加密秘钥、轮换(rotate)和撤销用于第二地缘政治区域的密钥,以及将加密密钥存储到第二区域密钥数据存储器166和从第二区域密钥数据存储器166检索加密密钥。在一些实施方案中,第二区域密钥服务器164不是面向客户端的,而是仅与适当的基于组的通信系统服务器交互以提供在存储之前加密数据和在检索后解密数据所必需的密钥。在一些实施方案中,用来加密特定数据项(例如,在基于组的通信系统中发布的特定消息)的密钥被存储在与存储该数据项相同的地缘政治区域中。因此,例如,密钥将被存储在第二区域密钥数据存储器166中以解密存储在第二区域基于组的通信系统数据存储器162中的数据。在其他实施方案中,加密的数据和对应的加密密钥被存储在单独的地缘政治区域中。这例如对于确保没有单个管辖范围可以单独访问数据可以是有利的。在一些实施方案中,在特定地缘政治区域中仅存在单个物理服务器,该物理服务器实施关于该地缘政治区域上文所描述的功能。例如,第二区域基于组的通信系统服务器160可以是与第二区域密钥服务器164相同的物理服务器。在一些这样的实施方案中,不同的服务器可以在同一物理服务器上的不同虚拟机或容器上运行。在其他实施方案中,可以可扩展的方式实施不同的服务器,使得附加的基于组的通信系统服务器和/或密钥服务器可以在需要时被启动(spin up),并且这些服务器可以在相同的硬件、不同的硬件或其任何组合上运行。
现在转到图2,描绘了例示了根据本发明的实施方案的用于将加密的消息存储在指定的地缘政治区域中的方法的操作的流程图,并且该方法总体上由参考数字200指代。该方法开始于步骤202处,在步骤202处,基于组的通信系统的用户将消息发布到基于组的通信系统的一个组。广义地说,此消息可以是要与该组共享的任何信息,诸如文本内容、文档、图像、对另一个消息的反应(或确认)、使用信息、组成员身份的改变或任何其他存储在基于组的通信系统数据存储器(诸如,第一区域基于组的通信系统数据存储器156或第二区域基于组的通信系统数据存储器162)中的信息。在下文所讨论的本发明的实施方案中,此消息将以加密形式存储。在一些实施方案中,所有消息都以加密形式存储;在其他实施方案中,仅某些消息以加密形式存储。为了对消息进行加密,需要适当的加密密钥。在一些实施方案中,此加密密钥可以由用户是其成员的组织(例如,公司)来管理。如上文所讨论的,组织可以指定要在其中存储(加密的)消息的地缘政治区域和要在其中管理加密密钥的地缘政治区域(其可以是相同的或不同的)。
处理进行到测试204,其中基于组的通信系统检查本地密钥高速缓存,以确定所需要的密钥是否被本地存储。在一些实施方案中,最近使用的密钥被保留在基于组的通信系统服务器本地的密钥高速缓存中一高速缓存时段(诸如,五分钟、十分钟、一小时、一天或任何其他适当的持续时间),以避免需要从管理密钥的不同的地缘政治区域重新取得频繁使用的密钥。这与每次需要密钥时重新取得密钥相比可以节省相当多的资源,因为时空局部性原理表明,发布需要特定密钥的消息的用户很可能在短时间间隔内发布需要相同的密钥的第二消息。在一些实施方案中,在此持续时间之后,从高速缓存清理(flush)密钥;在其他实施方案中,从高速缓存清理过期的密钥。在又一个实施方案中,固定大小的高速缓存保留固定数目的最近使用的密钥,其中随着需要新的密钥并且从适当的密钥服务器取得新的密钥,较旧的(或过期的)密钥被清除(purge)。在一些实施方案中,当从高速缓存访问密钥时,保留时段被重置或以其他方式被延长。在密钥过期的一些实施方案中,从密钥高速缓存访问密钥可能导致该密钥的租约被续订。如果密钥不能够位于密钥高速缓存中,处理移动到步骤206;如果在高速缓存中发现密钥,处理代替地跳到步骤208。
在步骤206处,在确定必需的密钥不在密钥高速缓存中之后,基于组的对话系统服务器从适当的密钥服务器取得密钥。通常,该适当的密钥服务器将不与该基于组的对话系统服务器在相同的地缘政治区域中;然而,如果用户的组织已经将用户的本地区域指定为用于该组织的密钥存储的地缘政治区域,则可以使用与本地基于组的通信系统服务器在相同的地缘政治区域中的密钥服务器。广义地说,可以采用允许组织管理它们的密钥的密钥层级。例如,一个组织可以具有一个主组织密钥,该主组织密钥被用来认证每个工作空间密钥,所述每个工作空间密钥进而可以被用来对每个信道密钥进行签名,该主组织密钥可以被用来生成会话密钥(例如,每小时轮换的密钥)。回顾本公开内容之后,本领域技术人员将理解,各种各样的密钥层级中的任何一个可以与本发明一起采用。如果需要,适当的密钥服务器可以在基于组的对话系统服务器请求密钥后生成新的密钥。例如,如果采用每小时的会话密钥,并且自会话密钥轮换以来在特定的信道中没有消息被发布,在需要时可以使用存储在密钥数据存储器中的密钥生成材料生成密钥。在一些实施方案中,可以响应于消息被发布而生成多个密钥。例如,如果消息导致新的工作空间或信道被创建,情况可能如此。
接下来,在已经生成密钥或从密钥高速缓存检索到密钥之后,处理进行到步骤208,在步骤208处,使用适当的密钥加密接收到的消息。本领域技术人员将理解。各种各样的加密算法可以被用于此步骤,包括AES、Twofish、Serpent和Blowfish加密算法。在一些实施方案中,对称密钥加密被用来对消息进行加密;在其他实施方案中,非对称加密被用来加密被用来对消息进行加密的对称加密密钥。在一些实施方案中,可以采用密码块链接或流密码来确保密钥重复使用不导致密文中缺乏扩散。
接下来,在测试210处,确定由用户的组织指定的用于数据的存储的区域是否是基于组的对话系统服务器位于其中的相同的地缘政治区域。如果是这样的话,处理进行到步骤212;否则,代替地,处理代替地进行到步骤214。在仅存在单个基于组的对话系统服务器的那些实施方案中,此确定仅测试用户的组织是否已经将对应于该单个服务器的地缘政治区域指定为用于数据驻留的地缘政治区域。在具有多个基于组的对话系统服务器的实施方案中,测试210可以代替地比较用于指示数据存储在何处的主索引的位置,而不是用户正在与其进行通信的特定的基于组的对话系统服务器的位置。
如果用户的组织已经将基于组的对话系统服务器(或主数据索引)的地缘政治区域指定为该组织的数据应驻留的区域,则在步骤208处生成的加密的消息在步骤212处被存储在用于该区域的基于组的对话系统数据存储器中。加密元数据可以与加密的消息一起存储,以标识用于解密的适当的密钥。在一些实施方案中,不同的密钥可以被用于每个消息(或用于一小组消息),并且与消息一起存储(用组织的密钥层级中的适当的密钥加密)。
如果在测试210处确定用于组织的指定的地缘政治区域与主存储区域不同,则加密的消息被代替地存储在用于由用户的组织指定的地缘政治区域的基于组的通信系统数据存储器(诸如,例如,第二区域基于组的通信系统数据存储器162)中。如上文关于步骤212所描述的,加密元数据可以与加密的消息相关联地存储(按照上文的实施例,在第二区域基于组的通信系统数据存储器162中)。
接下来,在步骤216处,将指针(或标识加密的消息的存储位置的其他信息)存储在用于主存储区域的基于组的通信系统数据存储器中。以此方式,可以通过首先咨询用于主存储区域的基于组的通信系统数据存储器并且然后如果发现指针则使用指针包含的位置来从用于指定的地缘政治区域的基于组的对话系统数据存储器检索加密的消息来检索消息。在一些实施方案中,加密元数据可以与指针一起存储,使得可以与加密的消息数据并行地取得密钥数据用于解密以使延时最小化。在一些实施方案中,最近发布的加密的消息,像最近使用的密钥一样,可以被高速缓存在主存储区域中一预定的高速缓存时段(诸如,例如,5分钟、一小时或一天),使得当其他信道成员最初查看它们时,可以快速地取得它们,而无需要求从指定的区域重新取得它们。
现在转到图3,描绘了例示了根据本发明的实施方案的用于将加密的消息存储在指定的地缘政治区域中的过程的部件责任流的泳道图,并且该图总体上由参考数字300指代。出于图300的目的,用于用户组织的指定的存储区域与用于基于组的通信系统服务器的主区域不同,尽管情况未必如此。
该过程在步骤302处在用户的客户端设备处开始,在步骤302处,用户创建并且发布消息。如上文所描述的,此消息可以是文本内容、文档、表情符号/用来表达反应的表情符号、或要与基于组的通信系统中的其他用户共享的任何其他形式的内容。经由在在用户的客户端设备上运行的软件与用于基于组的通信系统的服务器软件之间建立的通信信道将此消息传输到基于组的通信系统服务器。在一些实施方案中,使用诸如SSL、TLS或HTTPS加密的传输层加密来加密此通信信道。
控制然后切换到基于组的通信系统服务器,该基于组的通信系统服务器在步骤304处接收消息。在确定消息应被加密之后(根据用户的组织的指定),系统确定用于对消息进行加密的适当的密钥范围,并且在步骤306处,将消息发送到密钥高速缓存以检查对应的密钥。控制然后转到密钥高速缓存。
在一些实施方案中,如下文所讨论的,密钥高速缓存是浏览缓存,使得当密钥高速缓存从基于组的通信系统服务器接收到密钥请求(步骤308)时,如果密钥在高速缓存中,则该高速缓存立即返回密钥(即,它直接跳到步骤322)。否则,密钥高速缓存负责从适当的密钥服务器请求密钥(步骤310-320),之后在步骤322处将密钥返回到基于组的通信系统服务器。在其他实施方案(未示出)中,密钥高速缓存是后备高速缓存,其中如果密钥不在高速缓存中,则该密钥高速缓存返回“未发现密钥”指示,并且基于组的通信系统服务器负责从密钥服务器请求密钥并且然后将它存储在高速缓存中。回顾本公开内容之后,本领域技术人员将理解如何改编下文的教导以利用后备高速缓存代替浏览高速缓存。
在在步骤308处接收到密钥请求之后,并且假设密钥还没有在高速缓存中,在步骤310处密钥高速缓存将密钥请求(包括密钥范围)转发到由用户的组织指定的地缘政治区域中的密钥服务器,并且控制转到密钥服务器。在步骤312处,指定地缘政治区域中的密钥服务器接收密钥请求,包括请求的密钥范围。在一些实施方案中,密钥服务器可以具有类似于首先被咨询以确定期望的密钥是否最近已经被请求的第一地缘政治区域中的密钥高速缓存的本地密钥高速缓存。在步骤314处,密钥服务器根据需要检索或生成请求的密钥。例如,如果用于特定信道的密钥自上次在该信道中发布消息以来已经被轮换,则可能需要生成新的密钥。在一些实施方案中,加密密钥本身以加密形式存储。一旦密钥服务器具有请求的密钥,它就在步骤316处用期望的密钥对请求进行回复。控制然后可以返回到密钥高速缓存。
在步骤318处,在密钥高速缓存处接收具有期望的密钥的响应,并且在步骤320处,密钥高速缓存存储密钥以加快未来的检索。如上文所讨论的,密钥可以被高速缓存一有限的时间段。在一些实施方案中,密钥被高速缓存一固定的时间段,诸如五分钟、一小时或一天。在其他实施方案中,密钥(诸如,会话密钥)被高速缓存直到它们的范围过期。一旦密钥已经被添加到高速缓存(或如果它已经存在于高速缓存中),在步骤322处,密钥服务器就可以将请求的密钥数据发送到基于组的通信系统服务器,并且控制现在返回到该服务器。
在步骤324处,基于组的通信系统服务器接收具有适当的范围的请求的密钥。在使用浏览高速缓存的实施方案中,无论是直接从密钥高速缓存检索密钥还是必须从密钥服务器取得密钥,过程是相同的(从基于组的通信系统服务器的角度来看)。在步骤326处,使用接收的密钥,基于组的通信系统服务器用适当的密钥对消息进行加密,从而创建消息的加密版本(或密文)。接下来,在步骤328处,基于组的通信系统服务器将包括加密的消息的存储请求发送到由用户的组织指定的地缘政治区域中的基于组的通信系统服务器(或直接发送到基于组的通信系统数据存储器)。如上文所讨论的,指定用于数据存储的地缘政治区域可以与由用户的组织指定用于密钥管理的地缘政治区域相同或不同。
在步骤330处,控制转到指定区域基于组的通信系统服务器/数据存储器,在步骤330处,它接收具有加密的消息的存储请求。在步骤332处,指定区域基于组的通信系统服务器/数据存储器将消息存储在指定的地缘政治区域中用于稍后的检索。在一些实施方案中,加密的消息与用户的组织相关联地存储(例如,在该组织专用的数据库分片(shard)中)。在其他实施方案中,加密的消息与其他加密的数据一起存储,使得无法仅基于加密的消息数据来辨别哪些加密的数据消息与特定的组织相关联。
在步骤332之后(或与步骤330和步骤332同时地),控制返回到基于组的通信系统服务器。在步骤334处,该服务器创建指向存储在基于组的通信系统服务器中的加密的消息的指针(或使能访问的其他信息)。在一些实施方案中,基于由基于组的通信系统服务器返回的信息(诸如,例如,唯一行标识符)创建此指针。在其他实施方案中,在步骤334处,在发送存储请求之前创建指针,并且使能稍后的检索的唯一记录标识符与存储请求包括在一起。在一些实施方案中,指针可以包括用于加密的数据的唯一记录标识符以及加密的数据存储在其中的地缘政治区域的标记(indicia)。在步骤336处,将此指针存储在主基于组的通信系统数据存储器中,以使能消息的稍后的检索。例如,可以将该指针存储在将存储未加密的消息(或将主地缘政治区域指定为存储区域的加密的消息)的位置,并且包括标志(flag)以指示它是指针而不是消息数据。一旦已经存储加密的消息数据和指向加密的消息数据的指针,过程300就终止。
现在转到图4,描绘了例示了用于访问存储在指定的地缘政治区域中的加密的消息的方法的操作的流程图,并且该方法总体上由参考数字400指代。最初,在步骤402处,与组织相关联的并且使用诸如客户端设备152或客户端设备168的客户端设备的用户试图访问加密的消息。例如,用户可以打开在它的对话历史中包括该消息的特定信道或组。在一些实施方案中,对于对话历史中的每个消息执行大体上类似于过程400的过程。在其他实施方案中,对话历史可以包括加密的消息和未加密的消息的混合。在又一些实施方案中,对话历史可以包括来自与不同的组织相关联的用户的消息,每个组织被配置有其自己的加密策略和数据驻留策略。
当访问(加密的或未加密的)消息时,从主区域基于组的通信系统数据存储器检索数据记录。此数据记录可以包括(加密的或未加密的)消息数据或指向存储在不同的地缘政治区域中的消息数据的指针,如上文关于方法200和过程流程图300所描述的那样创建的。出于此讨论的目的,假设数据记录包含指向存储在不同的地缘政治区域中的消息数据的指针;然而,回顾本公开内容之后,技术人员将能够理解此方法如何可以适用于记录代替地包括加密的或未加密的消息数据的那些情况。
接下来,处理进行到步骤404,在步骤404处,使用指针来从适当的基于组的对话系统数据存储器检索加密的消息数据。例如,指针可以被解包以标识地缘政治区域和记录标识符,如上文所描述的。然后主区域中的基于组的对话系统服务器可以使用记录标识符将请求发送到用于指定的地缘政治区域的基于组的对话系统服务器(或直接发送到基于组的对话系统数据存储器)。该服务器(或数据存储器)然后可以用加密的消息数据进行响应。
当加密元数据被用来确定可用于解密加密的消息的适当的密钥范围时,在步骤406处该方法继续。例如,加密元数据可以包括被包括在指针中的唯一记录标识符和/或指示存储在加密的消息中的数据的类型(诸如,但不限于,信道发布、用户数据、共享文件和加密密钥)的信息。替代地或另外地,加密元数据可以包括密钥标识符或可用于确定用以解密消息数据的解密密钥的密钥标识符的信息。例如,加密元数据可以包括组织标识符、工作空间标识符、信道标识符和会话标识符(例如,时间戳)(中的一些或全部),它们中的每个(或它们的集合)可以对应于一个密钥范围。作为这的一具体实施例,特定的加密的消息可以存储用来保护用于该信道的会话密钥的特定的信道密钥。用于该加密的消息的加密元数据可以包括唯一记录标识符、指示加密的消息是信道密钥的类型字段、用于密钥的密钥寿命数据、用于密钥的密钥范围(在此,信道标识符)以及用于密钥的组织和工作空间标识符。回顾本公开内容之后,本领域技术人员将理解各种各样的非敏感信息可以被存储为用于特定的加密的消息的加密元数据。
在一些实施方案中,加密元数据与加密的消息一起存储。在其他实施方案中,加密元数据与指针一起存储。在又一些实施方案中,根据需要从对话历史确定加密元数据。例如,可能是可以在知道组织、消息发布的信道以及最初发布消息的时间来确定适当的密钥范围。此信息可以被包括在对话历史中,使得加密元数据与指针和加密的消息数据单独地存储。
接下来,处理移动到测试408,在测试408处,确定适当的密钥是否在密钥高速缓存中。如果密钥存在于密钥高速缓存中,处理可以跳到步骤412,否则,处理代替地进行到步骤410。在步骤410处,基于组的通信系统服务器从由用户的组织指定用于密钥存储的地缘政治区域中的密钥服务器取得对应于先前确定的密钥范围的密钥。步骤410类似于步骤206,并且关于取得用于加密的密钥所描述的相同的技术和变体也可以类似地被用于取得用于解密的密钥。
一旦已经检索到适当的密钥,或如果适当的密钥已经存在于密钥高速缓存中,处理可以进行到步骤412,在步骤412处,解密加密的消息数据。步骤412的解密与步骤208的加密相反。回顾本公开内容之后,本领域技术人员将理解应采用对应于步骤20的加密算法的解密算法。在一些实施方案中,相同的密钥被用于加密和解密。在其他实施方案中,不同的(但是对应的)密钥被用于加密和解密。与加密过程一样,现在已知的或稍后开发的任何加密算法都被构想用于与本发明一起使用。最后,在步骤414处,将解密的消息返回到客户端以显示给用户。方法400可以在这一点处终止,或可以重复以解密另外的消息以用于显示给用户。
现在同时转到图5A和图5B,描绘了例示了根据本发明的实施方案的用于访问存储在指定的地缘政治区域中的加密的消息的过程的部件责任流的泳道图,并且该过程总体上由参考数字500指代。过程500在步骤502处在客户端设备处开始,在步骤502处,响应于用户试图访问消息,客户端将对消息数据的请求发送到基于组的通信系统服务器。用户的访问消息的试图可以是显式的(诸如,例如,选择消息)或隐式的(诸如,例如,访问包含消息的信道或滚动以查看对话的历史)。在一些实施方案中,消息可以被一次解密一个。在其他实施方案中,消息可以被成批解密。例如,如果用户正在滚动通过特定信道中的对话历史,客户端可以发送对将在客户端的视图窗格中可见的所有消息的单个请求。替代地,如果用户保持滚动,客户端可以请求将在视图窗格中可见的所有消息以及要显示的附加的消息。作为又一个替代方案,当用户使用会话密钥查看第一消息时,可以请求共享特定的密钥范围的所有消息(例如,使用此相同的会话密钥的所有消息)。
当服务器接收到对消息的请求时,在步骤504处,控制然后移动到基于组的通信系统服务器。在一些实施方案中,对对话历史中的多个消息的请求可以在一起分组为单个请求。在一些这样的实施方案中,这样的一个分组的请求可以包括对用不同的密钥加密的消息(例如,由不同的组织控制的消息或在不同的时间发布的消息)或未加密的消息的请求。这样的分组的请求可以被解包并且被单独地处理,并且各个响应或一个分组的响应被提供给客户端设备。
接下来,在步骤506处,基于组的通信系统服务器从本地基于组的通信系统数据存储器检索数据指针。例如,对消息的请求可以包括记录标识符或足以标识消息的时间戳和信道指示。如先前所讨论的,出于此实施例的目的,假设要检索的消息被存储在与主基于组的通信系统服务器的地缘政治区域不同的地缘政治区域中;然而,本领域技术人员将理解本文所公开的技术还可以被应用于加密的消息数据被存储在主基于组的通信系统服务器的地缘政治区域中的情况。一旦已经从数据存储器检索到数据指针,在步骤508处,就可以如上文关于图4所描述的那样使用该数据指针来生成请求并且将请求发送到用于指定的地缘政治区域的基于组的通信系统服务器或数据存储器。
控制然后转到第二地缘政治区域基于组的通信系统服务器/数据存储器,在步骤510处,该第二地缘政治区域基于组的通信系统服务器/数据存储器接收请求。基于包括在请求中的信息(诸如,例如,对应于如上文关于方法200和过程300所讨论的加密的消息的记录标识符),在步骤512处,服务器可以从对应的数据存储器检索加密的消息数据(或数据存储器可以直接检索它)。最后,在步骤514处,服务器或数据存储器生成包括对应于该请求的加密的消息数据的响应消息,并且将它传输到用于主地缘政治区域的基于组的通信系统服务器,并且控制返回到该服务器。
在步骤516处,主区域基于组的通信系统服务器从由用户的组织指定的用于数据驻留的地缘政治区域接收加密的消息数据。接下来,在步骤518处,基于组的通信系统服务器确定用于加密的消息的适当的密钥范围。如上文所讨论的,可以根据消息数据指针、消息数据、对话历史、或根据存储相关信息的另一个源确定适当的密钥范围。基于确定的密钥范围,在步骤520处,基于组的通信系统服务器将对匹配确定的密钥范围的密钥的请求发送到密钥高速缓存。
当密钥高速缓存接收到对密钥的请求时,在步骤522处,控制转到密钥高速缓存。如果密钥已经存储在密钥高速缓存中,过程500可以直接进行到步骤536,跳过步骤524-534。否则,密钥高速缓存进行到步骤524,在步骤524处,它将接收到的密钥请求转发到指定的区域中的密钥服务器。本领域技术人员将理解,可以转发从基于组的通信系统服务器接收的密钥请求,或,等效地,可以生成对同一密钥的新的请求并且将该新的请求发送到指定区域中的密钥服务器。
在步骤526处,用于由用户的组织指定的地缘政治区域的密钥服务器接收请求,并且控制转移到密钥服务器。接下来,在步骤528处,密钥服务器检索请求的密钥。如上文所讨论的,密钥本身可以加密形式存储。替代地,可以在需要时重新生成加密密钥。最终,在步骤530处,生成包括请求的密钥的响应,并且将该响应发送回密钥高速缓存。
在步骤532处,密钥高速缓存从用于指定的地缘政治区域的密钥服务器接收包括请求的密钥的响应。在步骤534处,密钥高速缓存存储密钥(一预先指定的时间段,直到它过期,或直到它被驱逐以为另一个密钥腾出空间),以避免如果很快再次请求它则需要重新取得它。最后,在步骤536处,无论密钥已经在高速缓存中还是从指定的密钥服务器检索到密钥,密钥高速缓存将具有请求的密钥的响应发送到基于组的通信系统服务器,并且控制返回到该服务器。
在步骤538处,主基于组的通信系统服务器接收密钥数据,并且在步骤540处,使用它来解密包括在基于用户的动作从客户端设备接收的请求中的一个或多个加密的消息。最后,在步骤542处,基于组的通信系统服务器将解密的消息发送到客户端设备。在一些实施方案中,解密的消息在传输中可以通过传输层加密(诸如,例如,SSL、HTTPS或TLS)来保护。控制然后返回到客户端设备,在步骤544处,客户端设备接收解密的一个或多个消息,并且在步骤546处,为用户显示它。在这一点处,过程500可以终止,用户可以请求一个或多个附加的消息(导致过程500重复),或用户可以发布响应,导致过程300被执行。在一些实施方案中,使用不同的密钥范围的消息在被查看时可能被交错。例如,当用户正在查看共享的信道或搜索结果时,情况可能如此。在这样的实施方案中,可以保持解密的消息,直到已经接收到对应于其解密被请求过的所有消息的响应。在其他实施方案中,保持解密的消息,直到对于在显示器中在解密的消息之前出现的所有消息已经接收到响应,使得按顺序显示消息。在又一些实施方案中,显示解密的消息,其中为尚未接收到解密响应的加密的消息显示占位符。
在不脱离所附权利要求的范围的情况下,所描绘的多个部件以及未示出的部件的许多不同的布置是可能的。已经出于例示性而非限制性的目的描述了本发明的实施方案。在阅读本公开内容之后并且因为阅读本公开内容,替代实施方案对本公开内容的读者将变得明显。在不脱离所附权利要求的范围的情况下,可以完成实施前述内容的替代手段。某些特征和子组合具有实用性,并且在不参考其他特征和子组合的情况下可以被采用,并且在权利要求的范围内被构想。尽管已经参考附图中例示的实施方案描述了本发明,但是应注意,在不脱离如权利要求中所记载的本发明的范围的情况下,可以在本文中采用等同物并且进行替换。
已经这样描述了本发明的多个实施方案,要求保护的新的并且期望由本专利保护的内容包括所附权利要求的内容。
Claims (20)
1.一个或多个非暂时性计算机可读介质,所述介质存储计算机可执行指令,所述计算机可执行指令在由处理器执行时执行一种用于为国际数据驻留提供加密密钥管理的方法,所述方法包括以下步骤:
从用户接收与组织相关联的待在基于组的通信系统中发布的消息,所述用户位于第一地缘政治区域中;
响应于基于所述组织确定用于与所述组织相关联的数据的驻留的第二地缘政治区域,向位于所述第二地缘政治区域中的密钥服务器发送对加密密钥的请求,
其中所述第二地缘政治区域不同于所述第一地缘政治区域;
从位于所述第二地缘政治区域中的所述密钥服务器接收组织特定的加密密钥;
使用所述组织特定的加密密钥来加密所述消息;
在所述第二地缘政治区域中的第二数据存储器中存储加密的消息;以及
在所述第一地缘政治区域中的第一数据存储器中存储标识所述加密的消息的存储位置的信息,而不在所述第一地缘政治区域中存储所述加密的消息。
2.根据权利要求1所述的介质,其中从所述密钥服务器接收所述组织特定的密钥的步骤响应于确定所述组织特定的密钥不存在于所述第一地缘政治区域中的密钥高速缓存中。
3.根据权利要求1所述的介质,其中所述组织特定的密钥是与所述组织相关联的密钥层级中的子密钥。
4.根据权利要求3所述的介质,其中用于所述组织的所述密钥层级包括主组织密钥、工作空间密钥、信道密钥和会话密钥,并且其中用来加密所述消息的所述组织特定的密钥是所述会话密钥。
5.根据权利要求1所述的介质,其中所述第二地缘政治区域中的所述第二数据存储器存储与所述组织相关联的搜索索引。
6.根据权利要求1所述的介质,其中所述第二地缘政治区域中的所述第二数据存储器存储用于所述组织的记录数据。
7.根据权利要求1所述的介质,其中所述方法还包括以下步骤:将所述加密的消息高速缓存在所述第一地缘政治区域中的所述第一数据存储器中一预定的缓存时段。
8.一种用于为国际数据驻留提供加密密钥管理的方法,所述方法包括以下步骤:
从客户端设备接收用户试图访问与组织相关联的在基于组的通信系统中发布的加密的消息的指示;
从第一地缘政治区域中的第一数据存储器检索标识所述加密的消息的存储位置的信息,
其中标识所述加密的消息的存储位置的信息指示所述加密的消息被存储在第二地缘政治区域中的第二数据存储器中,
其中所述第二地缘政治区域不同于所述第一地缘政治区域;
从所述第二地缘政治区域中的所述第二数据存储器检索所述加密的消息;
响应于确定与所述加密的消息相关联的解密密钥未被存储在所述第一地缘政治区域中的密钥高速缓存中,从位于第三地缘政治区域中的密钥服务器检索所述解密密钥,
其中所述第三地缘政治区域不同于所述第一地缘政治区域;
使用所述解密密钥解密所述加密的消息以获得明文消息;
向所述客户端设备传输所述明文消息以用于显示给用户。
9.根据权利要求8所述的方法,其中用户试图访问加密的消息的指示包括所述用户对一组的选择以在所述基于组的通信系统中查看所述组。
10.根据权利要求8所述的方法,其中所述第三地缘政治区域不同于所述第二地缘政治区域。
11.根据权利要求8所述的方法,其中向所述客户端设备传输所述明文消息的步骤包括使用传输层加密向所述客户端设备传输所述明文消息。
12.根据权利要求8所述的方法,其中所述客户端设备在所述第一地缘政治区域中。
13.根据权利要求8所述的方法,其中组织特定的密钥是与所述组织相关联的密钥层级中的子密钥,并且其中用于所述组织的所述密钥层级包括主组织密钥、工作空间密钥、信道密钥和会话密钥,并且其中用来加密所述消息的所述组织特定的密钥是所述会话密钥。
14.根据权利要求8所述的方法,其中所述第二地缘政治区域中的所述第二数据存储器存储与所述组织相关联的搜索索引。
15.一个或多个非暂时性计算机可读介质,所述介质存储计算机可执行指令,所述计算机可执行指令在由处理器执行时执行一种用于为国际数据驻留提供加密密钥管理的方法,所述方法包括以下步骤:
从第二地缘政治区域中的客户端设备接收试图访问与组织相关联的在基于组的通信系统中发布的加密的消息的指示;
从第一地缘政治区域中的第一数据存储器检索与所述加密的消息相关联的信息,
基于与所述加密的消息相关联的所述信息,将所述加密的消息的存储位置标识为所述第二地缘政治区域中的第二数据存储器,
其中所述第二地缘政治区域不同于所述第一地缘政治区域;
从所述第二地缘政治区域中的所述第二数据存储器检索所述加密的消息;
从位于第三地缘政治区域中的密钥服务器检索与所述加密的消息相关联的组织特定的解密密钥,
其中所述第三地缘政治区域不同于所述第一地缘政治区域;
使用所述组织特定的解密密钥解密所述加密的消息以获得明文消息;
向所述客户端设备传输所述明文消息以用于显示给用户。
16.根据权利要求15所述的介质,其中所述第一地缘政治区域与所述第三地缘政治区域相同。
17.根据权利要求15所述的介质,其中所述第二地缘政治区域与所述第三地缘政治区域相同。
18.根据权利要求15所述的介质,其中所述组织特定的密钥是与所述组织相关联的密钥层级中的子密钥。
19.根据权利要求18所述的介质,其中用于所述组织的所述密钥层级包括主组织密钥、工作空间密钥、信道密钥和会话密钥,并且其中用来解密所述消息的所述组织特定的密钥是所述会话密钥。
20.根据权利要求15所述的介质,其中试图访问所述加密的消息的指示包括在所述基于组的通信系统中执行搜索,对于所述搜索,所述明文消息是搜索结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/918,284 US11539675B2 (en) | 2018-06-06 | 2020-07-01 | Encryption key management for international data residency |
US16/918,284 | 2020-07-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113890726A true CN113890726A (zh) | 2022-01-04 |
Family
ID=74550591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110688850.5A Pending CN113890726A (zh) | 2020-07-01 | 2021-06-21 | 用于国际数据驻留的加密密钥管理 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP3933606A1 (zh) |
JP (2) | JP7092840B2 (zh) |
KR (1) | KR20220003463A (zh) |
CN (1) | CN113890726A (zh) |
AU (2) | AU2020104253A4 (zh) |
CA (1) | CA3092836A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11184159B1 (en) | 2020-09-01 | 2021-11-23 | Slack Technologies, Inc. | Encryption key management for channels with multiple organizations |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8416954B1 (en) * | 2008-09-30 | 2013-04-09 | Emc Corporation | Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management |
US8799322B2 (en) * | 2009-07-24 | 2014-08-05 | Cisco Technology, Inc. | Policy driven cloud storage management and cloud storage policy router |
US8447732B2 (en) * | 2011-08-02 | 2013-05-21 | International Business Machines Corporation | Deduplication in network storage with data residence compliance |
US9407440B2 (en) * | 2013-06-20 | 2016-08-02 | Amazon Technologies, Inc. | Multiple authority data security and access |
US10454778B2 (en) * | 2014-06-03 | 2019-10-22 | Box, Inc. | Policy-based computation and storage of cloud-based collaboration objects |
US9292699B1 (en) * | 2014-12-30 | 2016-03-22 | Airwatch Llc | Encrypted file storage |
EP3497614B1 (en) * | 2016-08-10 | 2022-01-05 | Nextlabs, Inc. | Sharing encrypted documents within and outside an organization |
US20200192881A1 (en) | 2018-12-14 | 2020-06-18 | Slack Technologies, Inc. | Methods, apparatuses, and computer program products for management of and search index generation based on geographically distributed data |
CN112534773A (zh) | 2018-06-06 | 2021-03-19 | 斯莱克技术有限公司 | 用于基于组的通信系统内的加密密钥管理的方法、装置和计算机程序产品 |
-
2020
- 2020-09-11 CA CA3092836A patent/CA3092836A1/en active Pending
- 2020-10-08 JP JP2020170204A patent/JP7092840B2/ja active Active
- 2020-12-23 AU AU2020104253A patent/AU2020104253A4/en not_active Ceased
-
2021
- 2021-02-03 EP EP21155087.6A patent/EP3933606A1/en active Pending
- 2021-06-21 CN CN202110688850.5A patent/CN113890726A/zh active Pending
- 2021-06-28 KR KR1020210083721A patent/KR20220003463A/ko active Search and Examination
- 2021-11-05 AU AU2021107603A patent/AU2021107603B4/en active Active
-
2022
- 2022-06-16 JP JP2022096935A patent/JP7374264B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
AU2020104253A4 (en) | 2021-03-11 |
AU2021107603A4 (en) | 2022-01-06 |
JP2022120157A (ja) | 2022-08-17 |
JP7374264B2 (ja) | 2023-11-06 |
JP7092840B2 (ja) | 2022-06-28 |
JP2022013554A (ja) | 2022-01-18 |
AU2021107603B4 (en) | 2022-10-20 |
KR20220003463A (ko) | 2022-01-10 |
CA3092836A1 (en) | 2022-01-01 |
EP3933606A1 (en) | 2022-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220376910A1 (en) | Encrypted file storage | |
US10063372B1 (en) | Generating pre-encrypted keys | |
US20200336474A1 (en) | Selective encryption of profile fields for multiple consumers | |
US11757852B2 (en) | Encryption key management for international data residency | |
US8549653B2 (en) | Secure wildcard searchable database | |
US20030210790A1 (en) | Optimizing costs associated with managing encrypted data | |
US8375424B2 (en) | Replicating selected secrets to local domain controllers | |
KR102595830B1 (ko) | 통제된 액세스 자원들에 대한 위치―기반 액세스 | |
US8769302B2 (en) | Encrypting data and characterization data that describes valid contents of a column | |
US11818250B2 (en) | Encryption key management for channels with multiple organizations | |
JP7374264B2 (ja) | 国際データレジデンシのための暗号化キー管理 | |
US9218296B2 (en) | Low-latency, low-overhead hybrid encryption scheme | |
US11909861B2 (en) | Privately querying a database with private set membership using succinct filters | |
AU2015413372B2 (en) | Selective encryption of profile fields for multiple consumers | |
JP2022084349A (ja) | 計算機システム及びデジタル資産の処分方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230512 Address after: California, USA Applicant after: Cyrus Flowserve Co.,Ltd. Address before: California, USA Applicant before: Slaker Technology Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |