CN113260998A - 安全的线上协作 - Google Patents
安全的线上协作 Download PDFInfo
- Publication number
- CN113260998A CN113260998A CN202080007799.0A CN202080007799A CN113260998A CN 113260998 A CN113260998 A CN 113260998A CN 202080007799 A CN202080007799 A CN 202080007799A CN 113260998 A CN113260998 A CN 113260998A
- Authority
- CN
- China
- Prior art keywords
- encryption key
- document
- encrypted data
- encrypted
- server
- 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
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 12
- 238000007726 management method Methods 0.000 description 83
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- 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
- G06F21/6272—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 by registering files or documents with a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- 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/602—Providing cryptographic facilities or services
-
- 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/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Document Processing Apparatus (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
提供了一种用于安全线上协作的方法。所述方法包括在基于云的存储系统的服务器处从第一客户端设备接收第一加密数据。所述基于云的存储系统以加密形式存储多个文档。所述方法还包括确定所述多个文档中与所述第一加密数据相关联的文档。所述服务器无法访问呈解密形式的文档。所述第一加密数据表示对所述文档的一部分的编辑。所述方法还包括确定所述文档的协作者的多个用户账户。所述多个用户账户包括与所述第一客户端设备相关联的第一用户账户。此外,所述方法包括将所述第一加密数据提供给一个或多个其他客户端设备,每个客户端设备与所述多个用户账户中的一个相关联,不包括所述第一用户账户。
Description
技术领域
本公开的各方面和实现方式涉及使用基于云的内容管理平台的线上协作,并且更具体地,涉及安全的线上协作。
背景技术
在线上协作期间,用户利用由基于云的内容管理平台通过网络提供的各种协作工具来一起工作。协作工具包括例如文档处理应用(例如,文字处理应用、演示幻灯片应用和电子表格应用)、文档存储、线上日历、电子邮件、信使等。因此,此种协作环境中的用户将对文档进行编辑和评论,并通过网络来响应于来自其他用户的任何反馈以实现目标。
发明内容
以下是本公开的简化概述,以便提供对本公开的一些方面的基本理解。本概述不是对本公开的广泛综述。意图不在于识别本公开的主要或关键元素,也不在于描绘本公开的特定实现方式的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现本公开的一些概念,作为稍后呈现的更详细描述的前奏。
在一些实现方式中,公开了一种用于提供安全线上协作的系统和方法。在实现方式中,在基于云的存储系统的第一服务器处从第一客户端设备接收第一加密数据,所述基于云的存储系统以加密形式存储多个文档。在第一服务器处确定多个文档中与第一加密数据相关联的文档,其中第一服务器无法访问呈解密形式的该文档,并且其中第一加密数据表示对文档的一部分的编辑。第一服务器不能访问呈解密形式的文档,因为不容许对以加密形式存储在基于云的存储系统中的文档进行解密。例如,第一服务器无权访问文档的加密所需的数据。在第一服务器处确定文档的协作者的多个用户账户,其中多个用户账户包括与第一客户端设备相关联的第一用户账户。由第一服务器将第一加密数据提供给一个或多个其他客户端设备,每个客户端设备与多个用户账户中的一个相关联,不包括第一用户账户。
在另一实现方式中,与基于云的存储系统的第一服务器相关联地提供用于文档的线上协作编辑的图形用户界面(GUI)。经由GUI接收对文档的一部分的编辑。生成加密数据,其中加密数据表示所述编辑,并且包括基于数据加密密钥而加密的编辑,以及基于由第二服务器提供的主加密密钥而加密的数据加密密钥。将加密数据提供给基于云的存储系统的第一服务器。
上面概述并在下面更详细地描述的主题支持在基于云的存储系统(例如,基于云的内容管理平台)处进行更安全的文档管理,因为它不能够对存储在基于云的存储系统(例如,基于云的内容管理平台)处的文档进行解密。用户/协作者可以将他们的加密文档提供给基于云的存储系统/基于云的内容管理平台,而不用担心文档的内容是否会对其他用户变得可使,所述其他用户不是文档的协作者,并且此外,不被容许获得关于文档内容的知识。因此,实现了基于云的存储系统/基于云的内容管理平台的更机密的实现方式。
此外,实现了透明且高效的加密密钥管理。这种加密密钥管理使用尽可能少的资源。此外,它达成并支持基于云的存储系统/基于云的内容管理平台的可靠且机密的实现方式。例如,给出了透明度,在该透明度下定义和呈现了用于处置密钥数据的明确和可验证的职责。例如,给出了效率,在该效率下涉及尽可能少的部件和尽可能少的通信,以确保加密文档在基于云的存储系统/基于云的内容管理平台上的机密和可靠存储。使所涉及的部件和通信量最小化增加了安全性和可靠性,因为加密所需的不可允许和未授权检测数据的脆弱点减少了。
本文描述的主题不限于以上列出的示例性优点。鉴于本申请的公开内容,进一步的优点是可达成和可辨识的。
附图说明
从下面给出的具体实现方式以及从本公开的各种方面和实现方式的附图,将更全面地理解本公开的各方面和实现方式,然而不应认为将本公开限制为具体的方面或实现方式,而是仅用于解释和理解。
图1图示了用于本公开的实现方式的系统架构的示例。
图2A绘示了根据本公开的一个实现方式的用于提供文档的安全协作编辑的系统架构的示例。
图2B图示了根据本公开的另一实现方式的用于提供文档的安全协作编辑的系统架构的示例。
图3A绘示了根据本公开的一个实现方式的用于生成用于安全线上协作的加密数据的方法的流程图。
图3B图示了根据本公开的一个实现方式的用于基于加密数据而更新线上协作文档的方法的流程图。
图4绘示了根据本公开的一个实现方式的用于向协作者提供加密数据的方法的流程图。
图5绘示了根据本公开的一个或多个方面操作的示例计算系统的框图。
具体实施方式
以下是本公开的简化概述,以便提供对本公开的一些方面的基本理解。本概述不是对本公开的广泛综述。意图不在于识别本公开的主要或关键元素,也不在于描绘本公开的特定实现方式的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现本公开的一些概念,作为稍后呈现的更详细描述的前奏。
基于云的内容管理平台提供协作工具,诸如文档处理应用、文档存储、线上日历、通信应用等。因此,协作者可以基于基于云的内容管理平台而通过网络同时编辑文档并查看其他协作者的文稿。本文使用的“协作者”是指具有用户账户的用户,该用户账户被指派了使用基于云的内容管理平台访问(例如,查看和/或编辑)文档的权限。然而,文档的此种线上协作编辑当前容易受到除发送者和一个或多个接受者之外的实体(即,预期协作者之外的实体)的干扰或拦截。由于对文档做出编辑的各种协作者之间的基于网络的通信,包括通过协作者的编辑的文档内容可能容易受到安全漏洞的影响。因此,目前基于云的内容管理平台具有以下技术问题:缺乏对来自相应协作者以外的实体的文档内容的保护机制。
本公开的各方面和实现方式通过支持在协作者之间交换呈加密形式的文档编辑而不允许在基于云的内容管理平台的服务器处访问呈解密形式的编辑来解决上述和其他缺陷或问题。例如,文档可以以加密形式存储在基于云的内容管理平台处,而基于云的内容管理平台的服务器可能无法对文档进行解密(即,服务器可能无法访问呈解密形式的文档)。在协作者之间交换文档编辑期间,服务器可以从协作者的客户端设备接收加密数据,并且可以确定哪个文档与接收到的加密数据相关联。服务器然后可以确定哪些用户账户与文档相关联(即,文档的协作者的用户账户)。用户账户可以包括与向服务器发送加密数据的客户端设备相关联的用户账户。此外,服务器可以将加密数据提供给一个或多个其他客户端设备,每个客户端设备与用户账户中的一个相关联,不包括与向服务器发送加密数据的客户端设备相关联的用户账户。
本公开的实现方式的一些技术优点包括:当从协作者的客户端设备接收文档内容(包括编辑)时以及当使用基于云的内容管理平台存储文档内容时,增强所述文档内容的数据安全性。
图1图示了用于本公开的实现方式的基于云的存储系统的系统架构100的示例。
系统架构100包括经由网络130连接至客户端设备120A至120Z的基于云的内容管理平台110。基于云的内容管理平台110是指托管应用的物理机的收集,所述应用经由网络130向多个客户端设备120A至120Z提供一个或多个服务(例如,内容管理)。网络130可以是公共网络(例如,互联网)、私有网络(例如,局域网(LAN)或广域网(WAN))或它们的组合。网络130可以包括可以由一个或多个无线通信系统提供的无线基础设施,诸如与网络130连接的无线保真(WiFi)热点和/或可以使用各种数据处理装备、通信塔等来实现的无线载波系统。另外或替代地,网络130可以包括有线基础设施(例如,以太网)。
基于云的内容管理平台110可以包括服务器112和数据存储库114。数据存储库114可以与服务器112分开,并且通信地耦接至服务器112,或者数据存储库114可以是服务器112的一部分。在一些实现方式中,数据存储库114可以被包括作为客户端设备120A至120Z的一部分。数据存储库114可以存储与各种协作工具相关联的数据,所述协作工具包括文档处理应用、线上日历和诸如电子邮件和消息传递工具等的通信工具。此外,数据存储库114可以以加密的形式存储各种类型的文档。文档类型的示例包括幻灯片演示、文本文档、电子表格或任何类型的电子文档(例如,包括文本、表格、视频、图像、图形、幻灯片、图表、软件编程代码、设计、列表、计划、蓝图、地图等的电子文档)。这些文档可以由协作者同时进行编辑。数据存储库114还可以存储任何识别信息(例如,诸如文档名称等的文档识别信息、诸如‘username@domain.com’等的用户识别信息)以及与文档相关联的时间戳。
服务器112可以表示一个或多个物理机(例如,服务器机、台式计算机等),所述一个或多个物理机包括通信地耦接至存储器设备和输入/输出(I/O)设备的一个或多个处理设备。服务器112可以托管文档管理器115。
文档管理器115可以实现为可由服务器112上的一个或多个处理设备执行的计算机指令。在替代实现方式中,文档管理器115可以安装在客户端设备120A至120Z上(例如,作为独立应用),并且在对等环境中作为对等体操作。在另一替代实现方式中,客户端设备120A至120Z上的应用可以与文档管理器115交互,并且可以执行文档管理器115的功能性中的一些。
在实现方式中,文档管理器115可以提供用户界面(UI)124A至124Z,所述用户界面可以作为要由web浏览器渲染的网页传达给客户端设备120A至120Z,并且在web浏览器窗口中在客户端设备120A至120Z上显示。在另一实现方式中,UI 124A至UI 124Z可以由移动应用或桌面应用提供。例如,UI 124A至UI 124Z可以由在客户端设备120A至120Z上执行的本机应用显示。本机应用可以与web浏览器分开。
服务器112可以包括安全协作部件116以提供用于文档的线上协作编辑的安全环境。安全协作部件116使客户端设备120A至120Z能够安全地对文档执行协作动作(例如,编辑)。特别地,安全协作部件116可以从协作者的客户端设备120A至120Z接收加密数据,并将此种加密数据分发给协作者的其他客户端设备120A至120Z,而无需有权访问加密数据的解密内容。
例如,安全协作部件116接收表示对文档的一部分的编辑的加密数据。加密数据可以包括加密编辑和加密密钥。加密编辑对应于使用数据加密密钥进行加密的编辑。加密密钥对应于使用主加密密钥进行加密或包裹的数据加密密钥。因为使用主加密密钥对数据加密密钥进行加密,并且服务器112(即,服务器112的处理设备)无权访问主加密密钥,所以服务器112不能对(加密的)编辑进行解密。因此,服务器112不能访问呈解密形式的文档的任何部分。
在接收到加密数据后,安全协作部件116可以确定与加密数据相关联的文档以及该文档的协作者的用户账户。在一个实现方式中,安全协作部件116可以向协作者的用户账户指派主人或协作管理者角色。协作管理者角色可以涉及通过确保每个协作者都有权访问文档的相同或基本相同的版本来协调与安全协作部件116的线上协作编辑。根据是否从与协作管理者角色相关联的客户端设备120A至120Z接收到加密数据,安全协作部件116可以确定应将加密数据转发到哪个不同的客户端设备120A至120Z。
例如,当安全协作部件116从与协作管理者角色不相关联的客户端设备120A至120Z接收加密数据时,安全协作部件116可以将加密数据路由传递到与协作管理者角色相关联的客户端设备120A至120Z。响应于从安全协作部件116接收到多个加密数据,与协作管理者角色相关联的客户端设备120A至120Z可以将协作者做出的编辑(在对加密数据进行解密之后)合并成发送到安全协作部件116的加密数据。然后,安全协作部件116将从与协作管理者角色相关联的客户端设备120A至120Z接收到的加密数据分发给其他协作者。
在一些实现方式中,服务器112的安全协作部件116可以与文档管理器115交互以提供本公开的实现方式。下面关于图2A和图2B更详细地描述安全协作部件116的其他方面。
客户端设备120A至120Z可以包括通信地耦接至存储器设备和I/O设备的一个或多个处理设备。客户端设备120A至120Z可以是台式计算机、膝上型计算机、平板计算机、移动电话(例如,智能电话)或任何合适的计算设备。如上面所讨论的,客户端设备120A至120Z各自可以包括web浏览器和/或使用HTML和JavaScript代码在web浏览器中运行的基于客户端的应用。而且,客户端设备120A至120Z各自可以包括其他客户端应用,诸如移动应用或桌面应用。在一个实现方式中,客户端设备120A至120Z各自可以存储与相应用户账户相关联的文档的本地版本(或文档模型)。文档的本地版本可以反映由协作者(包括相应用户)自创建文档以来直到相应用户最后一次访问该文档为止所做的编辑。服务器112无法访问本地版本。
在一个实现方式中,客户端设备120A至120Z与服务器112的安全协作部件116相关联地实现安全线上协作。客户端设备120A至120Z可以呈现GUI 124A至GUI 124Z,用于经由web浏览器或客户端应用对文档进行线上协作编辑。客户端设备120A至120Z可以向服务器112生成表示对文档的一部分的编辑的加密数据,以与其他协作者共享。编辑或变化的示例可以包括文档的一部分中(在特定索引或位置处)的击键以及改变文档的一部分中的文本格式的图标或菜单选择。
客户端设备120A至120Z还从服务器112接收此种加密数据,对加密数据进行解密,并基于解密的数据而更新文档(即,存储在客户端设备120A至120Z中的文档的本地版本)。在编辑的加密和解密期间,客户端设备120A至120Z不会将呈解密形式的编辑暴露于任何其他设备(包括服务器112)。例如,客户端设备120A至120Z生成数据加密密钥并使用数据加密密钥对编辑进行加密。客户端设备120A至120Z还与独立于且未连接至服务器112的另一服务器通信,以对数据加密密钥进行加密或包裹而不以解密形式暴露编辑。然后,客户端设备120A至120Z将包括加密编辑和加密密钥的加密数据提供给服务器112,该服务器无权访问用于对数据进行加密的数据加密密钥或用于对数据加密密钥进行加密或包裹的主加密密钥。下面关于图2A和图2B描述了客户端设备120A至120Z的更多细节。
图2A绘示了根据本公开的一个实现方式的用于提供文档的安全协作编辑的系统架构200的示例。
系统架构200包括客户端设备210A至210Z、云服务器212和密钥管理服务器215。客户端设备210A至210Z与云服务器212和密钥管理服务器215连接,而云服务器212和密钥管理服务器215没有相互连接。云服务器212对应于图1的服务器112。因此,云服务器212针对与基于云的存储系统相关联的用户账户以加密形式存储文档。密钥管理服务器215是管理客户端设备210A至210Z的数据加密密钥的加密(或包裹)和解密(或展开)的服务器。数据加密密钥用于对数据(例如,文档编辑)进行加密和解密。
与图1的客户端设备120A至120Z相似,客户端设备210A至210Z包括使用户能够在安全线上环境中协作地编辑文档的一个或多个处理设备。也就是说,用户可以安全地与其他协作者共享编辑并安全地接收其他协作者所做的编辑,而无需将呈解密形式的编辑暴露于云服务器212和密钥管理服务器215,如将关于操作220至226所描述的。
在操作220处,客户端设备210A至210Z执行加密。例如,客户端设备210A至210Z可以经由图形用户界面(GUI)接收对文档的一部分的编辑,以用于在客户端设备210A至210Z的web浏览器上对文档进行线上协作编辑。编辑或变化的示例可以包括文档的一部分中(在特定索引或位置处)的击键以及改变文档的一部分中的文本格式的图标或菜单选择。作为响应,客户端设备210A至210Z生成数据加密密钥并且使用数据加密密钥来对接收到的编辑进行加密。客户端设备210A至210Z可以根据高级加密标准(AES)生成数据加密密钥。数据加密密钥的长度可以是例如256位。数据加密密钥也可用于对加密的编辑进行解密。客户端设备210A至210Z可以基于任何其他加密密钥标准以任何其他长度生成数据加密密钥。
接着,在操作222处,客户端设备210A至210Z将数据加密密钥传输给密钥管理服务器215,以进行加密或包裹。作为响应,密钥管理服务器215可以使用主加密密钥来对数据加密密钥进行包裹或加密,并将加密的数据加密密钥提供给客户端设备210A至210Z。在一些实现方式中,密钥管理服务器215可以在执行包裹或加密之前验证与客户端设备210A至210Z相关联的文档标识符(例如,文档的名称)和/或用户标识符(例如,username@domain.com)。
主加密密钥可用于数据加密密钥的加密和解密两者。密钥管理服务器215可以生成主加密密钥。密钥管理服务器215可以根据例如长度为256位的AES生成主加密密钥。密钥管理服务器215可以基于任何其他加密密钥标准以任何其他长度生成主加密密钥。在操作224处,客户端设备210A至210Z从密钥管理服务器215接收加密的密钥。在另一实现方式中,客户端设备210A至210Z可以请求密钥管理服务器215提供主加密密钥,并使用主加密密钥本身对数据加密密钥执行包裹或加密。
然后,在操作226处,客户端设备210A至210Z向云服务器212提供加密数据。也就是说,客户端设备210A至210Z组合加密的编辑和加密的密钥两者,并将组合的数据传输至云服务器212。作为响应,云服务器212存储加密数据。云服务器212还将加密数据提供给与文档的其他协作者相关联的适当客户端设备210A至210Z。以这种方式,文档的协作者可有权访问文档的相同或基本相同的版本。
为此,客户端设备210A至210Z通过以下方式阻止云服务器212和密钥管理服务器215访问编辑(以解密的形式):确保云服务器212和密钥管理服务器215均未设置有加密编辑和用于对加密编辑进行解密的对应数据加密密钥。也就是说,客户端设备210A至210Z向云服务器212提供加密编辑和加密密钥。此外,客户端设备210A至210Z仅向密钥管理服务器215提供对应的数据加密密钥,而不提供加密编辑。然而,协作者将有权访问解密的编辑,因为每个协作者的客户端设备210A至210Z将从云服务器212接收加密的编辑并通过密钥管理服务器215获得对应的数据加密密钥,如下面将关于图2B详细描述的。
图2B图示了根据本公开的另一实现方式的用于提供文档的安全协作编辑的系统架构250的示例。
与图2A的系统架构200相似,系统架构250包括客户端设备260A至260Z、云服务器262以及密钥管理服务器265。客户端设备260A至260Z与云服务器262和密钥管理服务器265连接,而云服务器262和密钥管理服务器265彼此不连接。云服务器262对应于图1的服务器112。密钥管理服务器265也对应于图2A的密钥管理服务器215。
与图1的客户端设备120A至120Z相似,并且与图2A的客户端设备210A至210Z相似,客户端设备260A至260Z使用户能够在安全线上环境中协作地编辑文档。也就是说,用户可以安全地与其他协作者共享编辑并安全地接收由其他协作者做出的编辑,而无需将呈解密形式的编辑暴露于云服务器262和密钥管理服务器265,如将关于操作270至276所描述的。
在操作270处,客户端设备260A至260Z从云服务器262接收加密数据。加密数据表示由文档的另一协作者对文档的一部分做出的编辑。加密数据包括由数据加密密钥进行加密的编辑和由主加密密钥进行加密或包裹的数据加密密钥。
在操作272处,客户端设备260A至260Z将来自加密数据的加密密钥传输至密钥管理服务器265。作为响应,密钥管理服务器265用主加密密钥对加密密钥进行解密,并将解密的密钥(即,数据加密密钥)提供给客户端设备260A至260Z。在一些实现方式中,在解密之前,密钥管理服务器265可以确认与客户端设备260A至260Z相关联的文档标识符和/或用户标识符。在操作274处,客户端设备260A至260Z从密钥管理服务器265接收数据加密密钥。在另一实现方式中,客户端设备260A至260Z可以请求密钥管理服务器265提供主加密密钥,并通过使用主加密密钥对加密的密钥进行解密来获得数据加密密钥。
在操作276处,客户端设备260A至260Z执行解密。例如,客户端设备260A至260Z在操作270处从接收到的加密数据中提取加密的编辑。然后,客户端设备260A至260Z使用通过密钥管理服务器265获得的数据加密密钥对编辑进行解密。因此,客户端设备260A至260Z可以访问由另一协作者做出的编辑。
在进一步的实现方式中,客户端设备260A至260Z可以与用于协调利用云服务器262编辑的线上协作的主人或协作管理者角色相关联。此种客户端设备260A至260Z可以确保每个协作者有权协同云服务器262访问文档的相同或基本相同的版本。例如,云服务器262可以以加密形式将从协作者接收到的编辑路由传递到与协作管理者角色相关联的客户端设备260A至260Z。客户端设备260A至260Z然后可以按时间顺序(在解决编辑之间的任何冲突之后)对如上所述进行解密的编辑进行排序,并且将有序的编辑转发给协作者的其他客户端设备260A至260Z。作为响应,协作者的客户端设备260A至260Z中的每个可以基于接收到的编辑而更新文档的本地版本(或文档模型)。为此,协作者可以查看其他人做出的最新编辑,并处理文档的相同或基本相同的版本。
图3A绘示了根据本公开的一个实现方式的用于生成用于安全线上协作的加密数据的方法300的流程图。可以由在客户端设备120A至120Z、210A至210Z、260A至260Z的web浏览器中运行的基于客户端的应用执行方法300,诸如使用HTML和JavaScript代码。可以由客户端设备120A至120Z、210A至210Z、260A至260Z的处理设备执行基于客户端的应用。可以针对基于云的内容管理平台115的每个客户端设备120A至120Z、210A至210Z、260A至260Z来实施方法300。此外,可以在客户端设备120A至120Z、210A至210Z、260A至260Z的用户登录到由服务器112、212、262提供的云存储系统的用户账户时执行方法300。在另一实现方式中,可以由图1的安全协作部件116执行方法300。因此,可以由服务器112、212、262的一个或多个处理设备执行方法300。
为了解释的简单,本公开的方法300被绘示和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,根据所公开的主题,可能不需要所有图示的动作来实现方法300。另外,本领域技术人员将理解和了解,方法300可替代地经由状态图或事件表示为一系列相互关联的状态。另外,应当了解,本说明书中公开的方法300能够存储在制品上以有助于将此方法运输和传递到计算设备。如本文所使用的术语“制品”意在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。
在操作302处,客户端设备120A至120Z、210A至210Z、260A至260Z的处理设备呈现用于文档的线上协作编辑的图形用户界面(GUI)。在一个实现方式中,GUI包括文档的最新版本的一部分并且为用户提供工具以访问(例如,查看或编辑)文档以及与其他用户(即,协作者)进行线上协作所需的任何其他特征。客户端设备的处理设备可以通过访问与用户账户相关联的文档的本地版本(或文档模型)来获取文档的最新版本。文档的本地版本将反映协作者(包括用户)自文档创建以来直到用户最后一次访问文档为止做出的编辑。本地版本被存储在客户端设备120A至120Z、210A至210Z、260A至260Z上,并且不能被云存储系统(也称为基于云的内容管理平台110)的服务器112、212、262访问。此外,在协作期间,只能在客户端设备120A至120Z、210A至210Z、260A至260Z上(即,由客户端设备的处理设备)对本地版本进行本地管理。
为了获得文档的最新版本,客户端设备120A至120Z、210A至210Z、260A至260Z可以针对自用户上一次访问以来从其他协作者接收到的任何编辑向服务器112、212、262发送请求。例如,处理设备可以向服务器112、212、262提供云存储系统的用户账户的登录凭证(例如,诸如‘username@domain.com’等的用户标识符和密码)。在成功登录之后,服务器112、212、262可以向客户端设备120A至120Z、210A至210Z、260A至260Z提供(例如,经由表示用户账户的主屏幕的UI)由服务器112、212、262为用户账户存储的文档列表(例如,word文档、电子表格文档、演示幻灯片)。
服务器112、212、262可以以加密形式存储文档但无权访问文档的解密形式。存储在服务器112、212、262上的每个文档可以对应于从与文档的协作者相关联的客户端设备120A至120Z、210A至210Z、260A至260Z接收到的加密数据的组。加密数据的组表示自文档已经创建以来对文档做出的所有编辑。因此,服务器112、212、262以加密形式存储文档的全部内容。下面将描述加密数据的更多细节。
客户端设备120A至120Z、210A至210Z、260A至260Z可以经由web浏览器从用户接收对在主屏幕上列出的文档的选择,并将该选择以及用户最后一次退出云存储系统的时间指示给服务器112、212、262。作为响应,服务器112、212、262可以加密形式向客户端设备120A至120Z、210A至210Z、260A至260Z提供从其他协作者接收到的任何编辑。客户端设备120A至120Z、210A至210Z、260A至260Z可以按照如关于图3B所描述的方式相似的方式对接收到的数据进行解密。然后,客户端设备120A至120Z、210A至210Z、260A至260Z可以将由其他协作者做出的编辑并入本地版本中,从而更新本地版本以对应于文档的最新版本。
在操作304处,客户端设备120A至120Z、210A至210Z、260A至260Z经由GUI接收对文档的一部分的编辑。编辑或变化的示例可以包括文档的一部分中(在特定索引或位置处)的击键以及改变文档的一部分中的文本格式的图标或菜单选择。客户端设备120A至120Z、210A至210Z、260A至260Z可以经由GUI从客户端设备120A至120Z、210A至210Z、260A至260Z的用户接收编辑。客户端设备120A至120Z、210A至210Z、260A至260Z可以接收在一段时间(例如,0.5秒)内执行的击键和/或图标或菜单选择并识别一系列输入作为编辑。在另一示例中,客户端设备120A至120Z、210A至210Z、260A至260Z可以接收每个击键或图标或菜单选择作为编辑。另外,客户端设备120A至120Z、210A至210Z、260A至260Z可以更新GUI上的文档以反映接收到的编辑。例如,客户端设备120A至120Z、210A至210Z、260A至260Z可以将接收到的编辑并入文档的本地版本,并在GUI上呈现更新的版本。
在进一步的实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以记录在操作304处接收到的编辑。例如,客户端设备120A至120Z、210A至210Z、260A至260Z可以记载包括编辑(例如,文档一部分中的击键、文档的一部分中的文本的图标或菜单选择)的日志条目、表示接收到编辑的时间的时间戳、用户标识符和/或文档标识符(例如,文档的名称)。日志条目稍后可用于解决更新文档的本地版本中的任何冲突,如将关于图4所描述的。
在文档的线上协作编辑中,在与客户端设备120A至120Z、210A至210Z、260A至260Z相关联的用户账户被指派了主人或协作管理者角色的情况下,日志条目还可用于对文档的协作者做出的编辑进行排序。此种角色需要与协作管理者用户账户相关联的客户端设备120A至120Z、210A至210Z、260A至260Z来使用日志管理线上协作编辑,做法是确保每个协作者都有权访问文档的相同或基本相同的版本。客户端设备120A至120Z、210A至210Z、260A至260Z从服务器112、212、262接收由协作者做出的编辑,并且如上所述记录每次编辑。客户端设备120A至120Z、210A至210Z、260A至260Z基于日志条目(在解决任何冲突之后)按时间顺序对编辑进行排序。此外,客户端设备120A至120Z、210A至210Z、260A至260Z将有序编辑分发到其他协作者的客户端设备120A至120Z、210A至210Z、260A至260Z,以使得以相同的方式更新客户端设备120A至120Z、210A至210Z、260A至260Z的每个本地版本。下面将关于图3B和图4描述主人或协作角色的更多细节。
在操作306处,客户端设备120A至120Z、210A至210Z、260A至260Z生成表示编辑的加密数据。在一些实现方式中,加密数据可以包括基于使用对称加密的数据加密密钥而进行加密的编辑。也就是说,客户端设备120A至120Z、210A至210Z、260A至260Z可以生成数据加密密钥,并使用数据加密密钥对编辑进行加密。对称加密仅需要一个数据加密密钥来对数据进行加密和解密。客户端设备可以根据高级加密标准(AES)生成数据加密密钥。数据加密密钥的长度可以是例如256位。客户端设备120A至120Z、210A至210Z、260A至260Z可以基于任何其他加密标准并以任何其他长度而生成数据加密密钥。每次客户端设备120A至120Z、210A至210Z、260A至260Z对编辑进行加密时,客户端设备120A至120Z、210A至210Z、260A至260Z可以生成不同的数据加密密钥。
除了加密的编辑之外,加密数据还可以包括加密密钥-基于主加密密钥而进行加密或包裹的数据加密密钥。例如,客户端设备120A至120Z、210A至210Z、260A至260Z可以请求密钥管理服务器215、265对数据加密密钥进行加密或包裹。密钥管理服务器215、265是管理数据加密密钥的加密和解密的服务器。在处理请求加密和解密之前,密钥管理服务器215、265可以首先基于从处理设备接收到的用户标识符和/或文档标识符而授权请求。密钥管理服务器215、265可以生成用于数据加密密钥的加密和解密两者的主加密密钥。密钥管理服务器215、265可以根据AES以256位的长度生成主加密密钥。密钥管理服务器215、265可以基于任何其他加密标准以任何其他长度生成主加密密钥。密钥管理服务器215、265可以使用相同的主加密密钥来对与相同文档或相同协作者的组相关联的任何数据加密密钥进行加密。根据请求,密钥管理服务器215、265可以仅向客户端设备120A至120Z、210A至210Z、260A至260Z提供主加密密钥或者可以执行数据加密密钥的加密和解密。在一个实现方式中,密钥管理服务器215、265仅连接至客户端设备120A至120Z、210A至210Z、260A至260Z而不连接至云存储系统的服务器112、212、262。
在生成加密密钥时,客户端设备120A至120Z、210A至210Z、260A至260Z可以向密钥管理服务器215、265发送数据加密密钥,以及对数据加密密钥进行加密或包裹的请求。在该请求中,客户端设备120A至120Z、210A至210Z、260A至260Z可以包括诸如文档标识符或用户标识符等的识别信息,以由密钥管理服务器215、265进行授权。随后,客户端设备120A至120Z、210A至210Z、260A至260Z可以从密钥管理服务器215、265接收加密的密钥。在一些其他实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以从密钥管理服务器215、265请求主加密密钥,而无需请求由密钥管理服务器215、265执行加密或包裹。在此种情况下,客户端设备120A至120Z、210A至210Z、260A至260Z从密钥管理服务器215、265接收主加密密钥,并使用主加密密钥对数据加密密钥进行本地加密。此外,客户端设备120A至120Z、210A至210Z、260A至260Z可以使用相同的主加密密钥来对客户端设备120A至120Z、210A至210Z、260A至260Z生成的任何数据加密密钥进行加密,以用于对于同一文档相关联的编辑进行加密。
因为客户端设备120A至120Z、210A至210Z、260A至260Z仅提供加密请求(和数据加密密钥),所以密钥管理服务器无权访问呈加密形式或解密形式的文档的任何部分。一旦客户端设备120A至120Z、210A至210Z、260A至260Z具有加密编辑和加密密钥,客户端设备120A至120Z、210A至210Z、260A至260Z就可以组合加密编辑和加密密钥来生成加密数据。
在操作308处,客户端设备120A至120Z、210A至210Z、260A至260Z向基于云的存储系统的服务器112、212、262提供加密数据。在一些实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以将加密的密钥附加至加密的编辑,并将加密数据的单个数据包提供给服务器112、212、262。在一些其他实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以将加密密钥和加密编辑作为单独的数据包提供给服务器112、212、262。此外,客户端设备120A至120Z、210A至210Z、260A至260Z还可以向服务器112、212、262提供与加密数据相关联的识别信息(例如,文档标识符和/或用户标识符)和时间戳(指示接收到编辑的时间)。服务器112、212、262可以使用此种识别信息和时间戳来存储加密数据和确定应当将加密数据传输至哪个客户端设备120A至120Z、210A至210Z、260A至260Z。下面将关于图4描述关于服务器112、212、262的操作的更多细节。在客户端设备120A至120Z、210A至210Z、260A至260Z与主人或协作管理者用户账户相关联的情况下,客户端设备120A至120Z、210A至210Z、260A至260Z可以跳过操作306和308,因为客户端设备120A至120Z、210A至210Z、260A至260Z在执行操作306和308之前应当等待直到满足某一条件为止,如下面关于图3B所描述的。
图3B图示了根据本公开的一个实现方式的用于基于加密数据而更新线上协作文档的方法350的流程图。可以由在客户端设备120A至120Z、210A至210Z、260A至260Z的web浏览器中运行的基于客户端的应用执行方法350,诸如使用HTML和JavaScript代码。可以由客户端设备120A至120Z、210A至210Z、260A至260Z的处理设备执行基于客户端的应用。可以针对基于云的内容管理平台115的每个客户端设备120A至120Z、210A至210Z、260A至260Z来实施方法350。此外,可以在客户端设备120A至120Z、210A至210Z、260A至260Z的用户登录到由服务器112、212、262提供的云存储系统的用户账户时执行方法350。在另一实现方式中,可以由图1的安全协作部件116执行方法350。因此,可以由服务器112、212、262的一个或多个处理设备执行方法350。
为了解释的简单,本公开的方法350被绘示和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,根据所公开的主题,可能不需要所有图示的动作来实现方法350。另外,本领域技术人员将理解和了解,方法350可替代地经由状态图或事件表示为一系列相互关联的状态。另外,应当了解,本说明书中公开的方法350能够存储在制品(例如,从任何计算机可读设备或存储介质可访问的计算机程序)上以有助于将此方法运输和传递到计算设备。
在操作352处,客户端设备120A至120Z、210A至210Z、260A至260Z的呈现用于文档的线上协作编辑的图形用户界面(GUI)。客户端设备120A至120Z、210A至210Z、260A至260Z可以以与关于图3A的操作302所描述的方式相似的方式提供GUI。客户端设备120A至120Z、210A至210Z、260A至260Z可以经由web浏览器呈现使用户能够编辑文档的GUI。
在操作354处,客户端设备120A至120Z、210A至210Z、260A至260Z从基于云的存储系统的服务器112、212、262接收与文档相关联的加密数据。在一个实现方式中,已经由另一客户端设备120A至120Z、210A至210Z、260A至260Z以与以上关于图3A的操作306描述的方式相似的方式生成加密数据。因此,加密数据表示对文档的一部分的编辑。加密数据包括已使用数据加密密钥进行加密的编辑。文档的协作者已经做出诸如击键和/或图标或菜单选择等的编辑。加密数据还包括加密密钥-基于主加密密钥而进行加密或包裹的数据加密密钥。客户端设备120A至120Z、210A至210Z、260A至260Z还可以接收与加密数据相关联的时间戳。时间戳可以表示做出编辑的时间或服务器112、212、262从另一客户端设备120A至120Z、210A至210Z、260A至260Z接收到加密数据的时间。
在操作356处,客户端设备120A至120Z、210A至210Z、260A至260Z对加密数据进行解密。如果客户端设备120A至120Z、210A至210Z、260A至260Z具有主加密密钥(如先前从密钥管理服务器215、265接收到的),则客户端设备120A至120Z、210A至210Z、260A至260Z可以使用主加密密钥对加密密钥进行解密。然后,客户端设备120A至120Z、210A至210Z、260A至260Z可以基于解密的密钥而对加密的编辑进行解密。
在客户端设备120A至120Z、210A至210Z、260A至260Z尚不具有主加密密钥的情况下,客户端设备120A至120Z、210A至210Z、260A至260Z可以请求密钥管理服务器215、265,以用于对加密数据中包括的加密密钥进行解密。与图3A的密钥管理服务器215、265相似,密钥管理服务器215、265管理数据加密密钥的加密和解密,并且仅连接至客户端设备120A至120Z、210A至210Z、260A至260Z而不是云存储系统的服务器112、212、262。在一些实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以向密钥管理服务器215、265提供加密密钥作为解密请求的一部分。客户端设备120A至120Z、210A至210Z、260A至260Z还可以传输诸如文档标识符和/或用户标识符等的识别信息,以由密钥管理服务器215、265进行授权。在授权之后,密钥管理服务器215、265可以基于识别信息而检索对应于接收到的加密密钥的主加密密钥。
然后,密钥管理服务器215、265可以使用主加密密钥对接收到的加密密钥进行解密,并将解密的密钥提供给客户端设备120A至120Z、210A至210Z、260A至260Z。在一些其他实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以基于识别信息而请求密钥管理服务器215、265提供用于加密密钥的主加密密钥。密钥管理服务器215、265可以基于识别信息而检索主加密密钥,并将主加密密钥传输至客户端设备120A至120Z、210A至210Z、260A至260Z。作为响应,客户端设备120A至120Z、210A至210Z、260A至260Z可以使用接收到的主加密密钥来对加密的密钥进行解密。一旦客户端设备120A至120Z、210A至210Z、260A至260Z具有主加密密钥,客户端设备120A至120Z、210A至210Z、260A至260Z就可以重新使用同一主加密密钥来对与同一文档相关联的任何加密密钥进行解密。响应于获得解密密钥(即,数据加密密钥),客户端设备120A至120Z、210A至210Z、260A至260Z可以使用数据加密密钥对加密数据中包括的加密编辑进行解密。
在进一步的实现方式中,在客户端设备120A至120Z、210A至210Z、260A至260Z与主人或协作管理者用户账户相关联的情况下,客户端设备120A至120Z、210A至210Z、260A至260Z可以在操作356处以与以上关于图3A描述的方式相似的方式记录解密的编辑。例如,客户端设备120A至120Z、210A至210Z、260A至260Z可以记载包括编辑(例如,文档的一部分中的击键、文档的一部分中的文本的图标或菜单选择)的日志条目、表示接收到编辑的时间的时间戳、用户标识符和/或文档标识符(例如,文档的名称)。
此外,与协作管理者用户账户相关联的客户端设备120A至120Z、210A至210Z、260A至260Z可以确定是否合并或组合到目前为止接收到的编辑。客户端设备120A至120Z、210A至210Z、260A至260Z可以使该确定基于自上次合并以来过去的时间段,该时间段可以从日志中识别。也就是说,客户端设备120A至120Z、210A至210Z、260A-260Z可以定期合并编辑。在其他实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以使该确定基于自上次合并以来接收到的编辑数目(即,客户端设备120A至120Z、210A至210Z、260A至260Z在合并之前可以等待直到接收到特定数目的编辑为止)。
一旦客户端设备120A至120Z、210A至210Z、260A至260Z确定合并由协作者对文档做出的编辑,客户端设备120A至120Z、210A至210Z、260A至260Z就可以使用日志条目的时间戳按时间顺序对编辑进行排序。客户端设备120A至120Z、210A至210Z、260A至260Z可以将经排序的编辑组合成单个编辑。例如,第一编辑可以是插入句子,而第二编辑可以是在句子中间插入词语。然后,客户端设备120A至120Z、210A至210Z、260A至260Z可以将两个编辑组合成单个编辑,即用插入的词语更新插入的句子。在一些实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以准备特定于每个协作者的合并的编辑。在此种情况下,客户端设备120A至120Z、210A至210Z、260A至260Z可以维持针对每个协作者的单独的日志。在一些其他实现方式中,客户端设备120A至120Z、210A至210Z、260A至260Z可以生成针对所有协作者的合并的编辑。
在具有相同或基本相同的时间戳(例如,在一秒内)的重叠或冲突编辑的情况下,客户端设备120A至120Z、210A至210Z、260A至260Z可以使用规则集来解决任何冲突。重叠或冲突编辑的示例包括用于在句子中插入词语的编辑和用于删除句子的另一编辑。在此种情况下,客户端设备120A至120Z、210A至210Z、260A至260Z可以应用规则(例如,删除优先于插入)以从文档中移除句子。
一旦客户端设备120A至120Z、210A至210Z、260A至260Z已生成了合并的编辑,客户端设备120A至120Z、210A至210Z、260A至260Z就可以以与如以上关于图3A所描述的方式相似的方式对合并的编辑进行加密。也就是说,与协作管理者用户账户相关联的客户端设备120A至120Z、210A至210Z、260A至260Z生成数据加密密钥,并用数据加密密钥对合并的编辑进行加密。然后,客户端设备120A至120Z、210A至210Z、260A至260Z可以请求密钥管理服务器215、265对数据加密密钥进行加密或包裹。一旦客户端设备120A至120Z、210A至210Z、260A至260Z获得加密编辑和加密密钥,客户端设备120A至120Z、210A至210Z、260A至260Z就可以将加密数据提供给云存储系统的服务器112、212、262。在客户端设备120A至120Z、210A至210Z、260A至260Z已经生成了特定于协作者的合并的编辑的情况下,客户端设备120A至120Z、210A至210Z、260A至260Z还可以提供有关目标目的地地址的协作者的用户标识符,以使得服务器112、212、262可以确定将加密数据提供给哪个协作者。
在操作358处,客户端设备120A至120Z、210A至210Z、260A至260Z基于解密的数据而更新GUI上提供的文档。例如,客户端设备120A至120Z、210A至210Z、260A至260Z可以将解密的编辑应用到由客户端设备120A至120Z、210A至210Z、260A至260Z维持的文档的本地版本,以使得可将本地版本更新到最新版本。该编辑可以是由协作管理者的客户端设备120A至120Z、210A至210Z、260A至260Z生成的合并的编辑,反映了由文档的协作者做出的编辑。在客户端设备120A至120Z、210A至210Z、260A至260Z与主人或协作管理者用户账户相关联的情况下,将由另一协作者做出编辑。
在一个实现方式中,当将解密的编辑应用于文档的本地版本时,客户端设备120A至120Z、210A至210Z、260A至260Z可以识别客户端设备120A至120Z、210A至210Z、260A至260Z的用户已经做出的编辑与解密的编辑之间的冲突或重叠编辑。例如,客户端设备120A至120Z、210A至210Z、260A至260Z的用户可以在文档版本中为句子添加词语(即,本地编辑),但解密的编辑可能是同时或基本上同时的删除句子。客户端设备120A至120Z、210A至210Z、260A至260Z可以根据包括用户对本地版本做出的编辑的日志条目确定本地编辑的定时,并且根据在操作354处与加密数据相关联地接收到时间戳确定解密的编辑的定时。客户端设备120A至120Z、210A至210Z、260A至260Z可以使用规则集来解决冲突。例如,客户端设备120A至120Z、210A至210Z、260A至260Z可以应用使删除优先于插入的规则。作为结果,当更新文档的版本时,客户端设备120A至120Z、210A至210Z、260A至260Z可以撤消或移除已经应用的编辑,并且替代地应用解密的编辑。
图4绘示了根据本公开的一个实现方式的用于向协作者提供加密数据的方法400的流程图。可以由图1的安全协作部件116执行方法400。可以由服务器112、212、262的一个或多个处理设备执行方法400。可以针对基于云的内容管理平台115的每个客户端设备120A至120Z、210A至210Z、260A至260Z来实施方法400。
为了解释的简单,本公开的方法400被绘示和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,根据所公开的主题,可能不需要所有图示的动作来实现方法400。另外,本领域技术人员将理解和了解,方法400可替代地经由状态图或事件表示为一系列相互关联的状态。另外,应当了解,本说明书中公开的方法400能够存储在制品(例如,从任何计算机可读设备或存储介质可访问的计算机程序)上以有助于将此方法运输和传递至计算设备。
在操作402处,云存储系统(即,云存储系统的处理设备)从客户端设备120A至120Z、210A至210Z、260A至260Z接收加密数据。加密数据表示对文档的一部分的编辑。编辑或变化的示例可以包括文档的一部分中(在特定索引或位置处)的击键以及改变文档的一部分中的文本格式的图标或菜单选择。加密数据可以包括加密编辑和加密密钥。加密编辑对应于使用数据加密密钥进行加密的编辑。加密密钥对应于使用主加密密钥进行加密或包裹的数据加密密钥。因为数据加密密钥是使用主加密密钥进行加密的,并且处理设备无权访问主加密密钥,所以处理设备无法对(加密的)编辑进行解密。因此,云存储系统无法访问呈解密形式的文档的任何部分。
云存储系统还可以接收加密数据的识别信息,诸如与客户端设备120A至120Z、210A至210Z、260A至260Z相关联的用户标识符(例如,username@domain.com)以及文档的与编辑相关联的文档标识符(例如,文档的名称)。在一些实现方式中,云存储系统可以接收指示何时在客户端设备120A至120Z、210A至210Z、260A至260Z处接收到编辑的时间戳。在云存储系统未接收到时间戳的情况下,云存储系统可以生成指示何时收到加密数据的时间戳。云存储系统可以使用此类识别信息和时间戳来存储加密数据以及确定应当将加密数据传输至哪个客户端设备120A至120Z、210A至210Z、260A至260Z。
响应于接收到加密数据,云存储系统可以将加密数据与识别信息和/或时间戳相关联地存储在基于云的存储系统的数据存储库中。基于时间戳,云存储系统可以将加密数据按时间顺序存储在具有相同文档标识符的加密数据中。因此,云存储系统可以以加密形式存储自创建文档以来对文档做出的所有编辑。此类编辑将有效地表示相应的文档。为此,基于云的存储系统以加密形式存储多个文档。
在操作404处,云存储系统确定与加密数据相关联的文档。在一个实现方式中,云存储系统可以基于从客户端设备120A至120Z、210A至210Z、260A至260Z接收到的识别信息(即,文档标识符)而识别哪个文档与加密数据相关联。在云存储系统尚未接收到文档标识符的情况下,云存储系统可以向客户端设备120A至120Z、210A至210Z、260A至260Z请求识别信息。
在操作406处,云存储系统确定文档的协作者的用户账户。在一个实现方式中,云存储系统可以确定表示用户账户并且与来自数据存储库的已确定文档的文档标识符相关联的用户标识符。数据存储库可以存储列出具有相关联的用户标识符的文档标识符的表格。数据存储库可以包括在云存储系统中。对于数据存储库中的每个文档标识符,可以记载有权访问(例如,查看或编辑)与相应文档标识符相关联的文档的用户账户。因此,与客户端设备120A至120Z、210A至210Z、260A至260Z相关联的用户账户应当包括在确定的用户账户中(因为由在操作402处接收到的加密数据表示的编辑是由与客户端设备120A至120Z、210A至210Z、260A至260Z相关联的用户账户的用户做出的)。
在进一步的实现方式中,云存储系统可以确定指派有主人或协作管理者角色的用户账户。协作管理者角色通过确保每个协作者都有权访问文档的相同或基本相同的版本,来协调与云存储系统的线上协作编辑。在数据存储库中,对于与文档标识符相关联的每个用户标识符,可以记载在与对应文档标识符相关联的文档的线上协作编辑中是否为相应的用户标识符指派了主人或协作管理者角色。因此,云存储系统可以基于文档标识符而从数据存储库中确定协作管理者角色用户账户。
相应用户可能不知道该角色,因为与该角色的指派相关的所有过程都可以由云存储系统和服务器112、212、262在后台实施。云存储系统可以与和协作管理者角色相关联的客户端设备120A至120Z、210A至210Z、260A至260Z进行协调,以确保协作者有权访问文档的相同或基本相同的版本。例如,当云存储系统从与协作管理者角色不相关联的客户端设备120A至120Z、210A至210Z、260A至260Z接收到加密数据时,云存储系统可以将加密数据路由传递至与协作管理者角色相关联的客户端设备120A至120Z、210A至210Z、260A至260Z。与协作管理者角色相关联的客户端设备120A至120Z、210A至210Z、260A至260Z可以将由协作者做出的编辑(在对加密数据进行解密之后)合并到发送至云存储系统的加密数据。然后,云存储系统将从与协作管理者角色相关联的客户端设备120A至120Z、210A至210Z、260A至260Z接收到的加密数据分发给其他协作者。
在一些实施例中,云存储系统应将仅一个用户标识符指派给该角色。最初,云存储系统可以配置创建文档的用户的用户账户以执行协作管理者角色。云存储系统可以将协作管理者角色指定给用户账户并在数据存储库中如此记载。在某些情形下,云存储系统可以改变角色指派。
例如,当云存储系统检测到具有当前文档的协作管理者用户账户的用户退出云存储系统时,云存储系统可以将该角色重新指派给另一协作者。在另一示例中,当云存储系统检测到与协作管理者用户账户相关联的客户端设备120A至120Z、210A至210Z、260A至260Z的响应时间满足预定阈值条件时(例如,与协作管理者相关联的客户端设备120A至120Z、210A至210Z、260A至260Z超过2秒没有提供响应),云存储系统可以将角色重新指派给另一协作者。响应时间的示例可以包括自云存储系统已经向协作管理者的客户端设备120A至120Z、210A至210Z、260A至260Z提供加密数据开始直到云存储系统已经从协作管理者的客户端设备120A至120Z、210A至210Z、260A至260Z接收到另一加密数据为止的时间段。另外或替代地,响应时间可以是协作管理者的客户端设备120A至120Z、210A至210Z、260A至260Z响应来自云存储系统的通信所花费的任何时间段。云存储系统可以将角色重新指派给当前登录到云存储系统的任何其他协作者。
在操作408处,云存储系统向其他客户端设备120A至120Z、210A至210Z、260A至260Z提供加密数据,所述客户端设备各自与相应的用户账户相关联,不包括与客户端设备120A至120Z、210A至210Z、260A至260Z相关联的用户账户。也就是说,云存储系统不会将加密的数据发送回发送方。在一个实现方式中,云存储系统可以确定是否为发送了加密数据的客户端设备120A至120Z、210A至210Z、260A至260Z指派了协作管理者角色。如果客户端设备120A至120Z、210A至210Z、260A至260Z与协作管理者用户账户相关联,则加密数据表示由文档的协作者对文档的一部分做出的编辑。因此,应当将此种加密数据分发给除协作管理者以外的协作者。另一方面,如果客户端设备120A至120Z、210A至210Z、260A至260Z与协作管理者角色不相关联,则加密数据表示由客户端设备120A至120Z、210A至210Z、260A至260Z的相应用户对文档的一部分做出的编辑。因此,可以将加密数据路由传递至与协作管理者角色相关联的客户端设备120A至120Z、210A至210Z、260A至260Z,以使得客户端设备120A至120Z、210A至210Z、260A至260Z可以合并来自各种协作者的编辑。
云存储系统可以基于客户端设备120A至120Z、210A至210Z、260A至260Z的用户标识符而根据存储在数据存储库中的数据确定客户端设备120A至120Z、210A至210Z、260A至260Z是否与协作管理者角色相关联。在操作402处,云存储系统可以接收与加密数据相关联的用户标识符。在云存储系统尚未接收到用户标识符的情况下,云存储系统可以请求客户端设备120A至120Z、210A至210Z、260A至260Z提供用户标识符。
在云存储系统确定客户端设备120A至120Z、210A至210Z、260A至260Z与协作管理者角色相关联的情况下,则云存储系统可以从在操作406处确定的文档的协作者的用户账户中确定除协作管理者之外的协作者。然后,云存储系统可以将加密数据传输至与文档的其他协作者相关联的客户端设备120A至120Z、210A至210Z、260A至260Z。因此,云存储系统可以将合并的编辑从协作管理者路由传递至其他协作者,以使得每个协作者都可以看到对文档做出的所有改变并访问文档的相同或基本相同的版本。
在另一实现方式中,云存储系统可以从加密数据或利用加密数据接收的任何其他数据中确定是否存在关于由协作管理者为具体协作者提供的加密数据的目标目的地地址的任何信息(例如,用户标识符)。如果云存储系统确定此信息,则云存储系统可以仅向与目标目的地地址相关联的客户端设备120A至120Z、210A至210Z、260A至260Z提供加密数据。
在云存储系统确定发送了加密数据的客户端设备120A至120Z、210A至210Z、260A至260Z与协作管理者角色不相关联的情况下,则云存储系统可以从在操作406处确定的文档的协作者的用户账户中确定与协作管理者角色相关联的用户账户。为此,云存储系统可以将协作者做出的编辑路由传递至协作管理者客户端设备120A至120Z、210A至210Z、260A至260Z,以使得协作管理者可以合并稍后将分发给其他协作者的编辑。作为结果,云存储系统可以有效地确保用户与其他协作者一样编辑文档的相同或基本相同的版本。
图5绘示了根据本公开的一个或多个方面操作的示例计算系统的框图。在各种说明性示例中,计算机系统500可以对应于图1的系统架构100内的计算设备中的任何一个。在一个实现方式中,计算机系统500可以是服务器112。在另一实现方式中,计算机系统500可以是客户端设备120A至120Z、210A至210Z、260A至260Z中的每个。
在某些实现方式中,计算机系统500可以连接(例如,经由网络,诸如局域网(LAN)、内联网、外联网或互联网)至其他计算机系统。计算机系统500可以在客户端-服务器环境中以服务器或客户端计算机的能力操作,或者作为对等或分布式网络环境中的对等计算机操作。计算机系统500可以由个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络家电、服务器、网络路由器、交换机或桥接器或能够执行指令集(顺序或以其他方式)的任何设备,所述指令集指定该设备将要采取的动作。此外,术语“计算机”应包括计算机的任何收集,所述计算机个别或联合地执行指令集(或多个集合)以执行本文所描述的方法的任何一个或多个。
在另一方面,计算机系统500可以包括处理设备502、易失性存储器504(例如,随机存取存储器(RAM))、非易失性存储器506(例如,只读存储器(ROM)或电可擦除可编程ROM(EEPROM))以及数据存储设备516,它们可以经由总线508彼此通信。
处理设备502可以由一个或多个处理器提供,所述一个或多个处理器诸如通用处理器(诸如,复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其他类型指令集的微处理器或实现指令集类型的组合的微处理器)或专用处理器(诸如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或网络处理器)。
计算机系统500还可以包括网络接口设备522。计算机系统500还可以包括视频显示单元510(例如,LCD)、字母数字输入设备512(例如,键盘)、光标控制设备514(例如,鼠标)和信号生成设备520。
数据存储设备516可以包括非暂时性计算机可读存储介质524,其上可以存储对本文所描述的方法或功能中的任何一个或多个进行编码的指令526,包括实现图1的安全协作部件116以实现本文所描述的方法的指令。
指令526还可以在由计算机系统500执行期间完全或部分地驻留在易失性存储器504和/或处理设备502内,因此,易失性存储器504和处理设备502也可以构成机器可读存储介质。
虽然计算机可读存储介质524在说明性示例中被示出为单个介质,但术语“计算机可读存储介质”应当包括存储可执行指令的一个或多个集合的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应包括能够存储或编码用于由计算机执行的指令集的任何有形介质,所述指令集致使计算机执行本文所描述的方法中的任何一个或多个。术语“计算机可读存储介质”应当包括但不限于固态存储器、光学介质和磁介质。
在前述描述中,阐述了众多细节。然而,对于受益于本公开的本领域普通技术人员而言,将显而易见的是,可以在没有这些具体细节的情况下实践本公开。在一些实例中,以框图形式而不是详细示出众所周知的结构和设备,以便避免混淆本公开。
已经依据计算机存储器内的数据位上的运算的算法和符号表示形式来呈现具体描述的一些部分。这些算法描述和表示形式是数据处理领域的技术人员用来最有效地将他们工作的实质转达给本领域的其他技术人员的手段。算法在这里并且通常被认为是导致期望的结果的自洽步骤序列。这些步骤是需要对物理量进行物理操纵的那些步骤。通常,虽然不是一定的,但是这些量采用能够被存储、传递、组合、比较和以其他方式操纵的电或磁信号的形式。出于常用的原因,已经证明有时将这些信号称为位、值、元素、符号、字符、术语、数字等是方便的。
然而,应当记住,所有这些术语和相似的术语都将与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。除非从以下讨论中清楚地另有具体说明,否则应当理解,贯穿本描述,利用诸如“接收”、“呈现”、“生成”、“更新”、“提供”、“确定”、“加密”、“解密”等术语的讨论是指计算机系统或相似的电子计算设备的动作和过程,所述计算机系统或相似的电子计算设备将表示为计算机系统的寄存器和存储器内的物理(例如,电子)量的数据操纵和变换成相似地表示为计算机系统存储器或寄存器或其他此种信息存储、传输或显示设备内的物理量的其他数据。
为了解释的简单,方法被绘示和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,根据所公开的主题,可能不需要所有图示的动作来实现所述方法。另外,本领域技术人员将理解和了解,方法可替代地经由状态图或事件表示为一系列相互关联的状态。另外,应当了解,本说明书中公开的方法能够存储在制品上以有助于将此类方法运输和传递到计算设备。如本文所使用的术语“制品”意在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。
本公开的某些实现方式还涉及一种用于执行本文的操作的装置。该装置可以被构建用于预期目的,或者它可以包括由存储在计算机中的计算机程序选择性地启动或重新配置的通用计算机。此种计算机程序可以存储在计算机可读存储介质中,所述计算机可读存储介质诸如但不限于任何类型的盘,包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的介质。
贯穿本说明书对“一个实现方式”或“实现方式”的引用意味着结合该实现方式描述的特定特征、结构或特性被包括在至少一个实现方式中。因此,短语“在一个实现方式中”或“在实现方式中”贯穿本说明书的各种地方出现不一定全部是指同一实现方式。另外,术语“或”意在表示包括性的“或”而不是排他性的“或”。此外,本文使用了词语“示例”或“示例性”来表示用作示例、实例或说明。本文中描述为“示例性”的任何方面或设计不一定被解释为是优选的或优于其他方面或设计。而是,使用词语“示例”或“示例性”意在以具体方式呈现概念。
应当理解,以上描述意在是说明性的,而不是限制性的。在阅读和理解以上描述后,许多其他实现方式对于本领域技术人员来说将是显而易见的。因此,应当参考所附权利要求以及此类权利要求所享有的等效形式的全部范围来确定本公开的范围。
Claims (20)
1.一种方法,包括:
在基于云的存储系统的服务器处从第一客户端设备接收第一加密数据,其中所述基于云的存储系统以加密形式存储多个文档;
在所述服务器处确定所述多个文档中与所述第一加密数据相关联的文档,其中所述服务器无法访问呈解密形式的所述文档,并且其中所述第一加密数据表示对所述文档的一部分的编辑;
在所述服务器处确定所述文档的协作者的多个用户账户,所述多个用户账户包括与所述第一客户端设备相关联的第一用户账户;以及
由所述服务器将所述第一加密数据提供给一个或多个其他客户端设备,每个客户端设备与所述多个用户账户中的一个相关联,不包括所述第一用户账户。
2.根据权利要求1所述的方法,其中,所述第一加密数据包括:
对基于数据加密密钥而加密的所述文档的所述一部分的编辑;以及
基于主加密密钥而加密的所述数据加密密钥,其中所述服务器无法访问所述主加密密钥。
3.根据权利要求2所述的方法,其中,由未连接至所述服务器而是连接至所述第一客户端设备和所述一个或多个其他客户端设备的另一服务器提供所述主加密密钥。
4.根据权利要求1所述的方法,还包括:
从所述协作者的多个用户账户配置第二用户账户,以与所述服务器协调以用于所述文档的协作编辑,其中与所述第二用户账户相关联的第二客户端设备将按时间顺序组合由所述协作者对所述文档做出的编辑,并且基于所组合的编辑来生成第二加密数据。
5.根据权利要求4所述的方法,其中:
所述文档的所述协作者的多个用户账户的确定包括确定所述第一用户账户对应于所述第二用户账户以外的用户账户;并且
所述第一加密数据的提供包括向与所述第二用户账户相关联的第二客户端设备提供所述第一加密数据,所述第二客户端设备是所述一个或多个其他客户端设备中的一个。
6.根据权利要求4所述的方法,其中:
所述文档的所述协作者的多个用户账户的确定包括确定所述第一用户账户对应于所述第二用户账户;并且
所述第一加密数据的提供包括向各自与所述多个用户账户中除所述第二用户账户之外的一个用户账户相关联的一个或多个其他客户端设备提供所述第一加密数据,其中所述第一加密数据对应于所述第二加密数据。
7.根据权利要求3所述的方法,其中,所述第一客户端设备将执行操作,包括:
生成所述数据加密密钥;
基于所述数据加密密钥而对所述编辑进行加密;
向所述另一服务器提供所述数据加密密钥;
基于使用由所述另一服务器提供的主加密密钥对所述数据加密密钥的加密而获得加密的数据加密密钥;以及
将所加密的编辑与所述加密的数据加密密钥组合以生成所述第一加密数据。
8.一种基于云的存储系统,包括:
存储器;以及
处理设备,所述处理设备操作性地耦接至所述存储器,所述处理设备:
从第一客户端设备接收第一加密数据,其中所述基于云的存储系统以加密形式存储多个文档;
确定所述多个文档中与所述第一加密数据相关联的文档,其中所述基于云的存储系统无法访问呈解密形式的所述文档,并且其中所述第一加密数据表示对所述文档的一部分的编辑;
确定所述文档的协作者的多个用户账户,所述多个用户账户包括与所述第一客户端设备相关联的第一用户账户;以及
将所述第一加密数据提供给一个或多个其他客户端设备,所述一个或多个其他客户端设备中的每一个与所述多个用户账户中的一个相关联,不包括所述第一用户账户。
9.根据权利要求8所述的系统,其中,所述第一加密数据包括:
对基于数据加密密钥而加密的所述文档的所述一部分的编辑;以及
基于主加密密钥而加密的所述数据加密密钥,其中所述基于云的存储系统无法访问所述主加密密钥,并且其中由未连接至所述基于云的存储系统而是连接至所述第一客户端设备和所述一个或多个其他客户端设备的另一服务器提供所述主加密密钥。
10.根据权利要求8所述的系统,其中,所述处理设备还:
从所述协作者的多个用户账户配置第二用户账户,以与所述处理设备协调以用于所述文档的协作编辑,其中与所述第二用户账户相关联的第二客户端设备将按时间顺序组合由所述协作者对所述文档做出的编辑,并且基于所组合的编辑而生成第二加密数据。
11.根据权利要求10所述的系统,其中,为了提供所述第一加密数据,所述处理设备:
响应于确定所述第一用户账户对应于除所述第二用户账户之外的用户账户,向与所述第二用户账户相关联的第二客户端设备提供所述第一加密数据,所述第二客户端设备是所述一个或多个其他客户端设备中的一个;以及
响应于确定所述第一用户账户对应于所述第二用户账户,向各自与所述多个用户账户中除所述第二用户账户之外的一个用户账户相关联的所述一个或多个其他客户端设备提供所述第一加密数据,其中所述第一加密数据对应于所述第二加密数据。
12.根据权利要求9所述的系统,其中,所述第一客户端设备将执行操作,包括:
生成所述数据加密密钥;
基于所述数据加密密钥而对所述编辑进行加密;
向所述另一服务器提供所述数据加密密钥;
基于使用由所述另一服务器提供的所述主加密密钥对所述数据加密密钥进行加密而获得加密的数据加密密钥;以及
将所加密的编辑与所述加密的数据加密密钥组合以生成所述第一加密数据。
13.一种包括用于服务器的指令的非暂时性计算机可读存储介质,所述指令在由处理设备执行时使所述处理设备:
从第一客户端设备接收第一加密数据,其中所述服务器以加密形式存储多个文档;
确定所述多个文档中与所述第一加密数据相关联的文档,其中所述服务器无法访问呈解密形式的所述文档,并且其中所述第一加密数据表示对所述文档的一部分的编辑;
确定所述文档的协作者的多个用户账户,所述多个用户账户包括与所述第一客户端设备相关联的第一用户账户;以及
将所述第一加密数据提供给一个或多个其他客户端设备,所述一个或多个其他客户端设备中的每一个与所述多个用户账户中的一个相关联,不包括所述第一用户账户。
14.根据权利要求13所述的非暂时性计算机可读存储介质,其中,所述第一加密数据包括:
对基于数据加密密钥而加密的所述文档的所述一部分的编辑;以及
基于主加密密钥而加密的所述数据加密密钥,其中所述服务器无法访问所述主加密密钥,并且其中由未连接至所述服务器而是连接至所述第一客户端设备和所述一个或多个其他客户端设备的另一服务器提供所述主加密密钥。
15.根据权利要求13所述的非暂时性计算机可读存储介质,所述处理设备还:
从所述协作者的多个用户账户配置第二用户账户,以与所述服务器协调以用于所述文档的协作编辑,其中与所述第二用户账户相关联的第二客户端设备将按时间顺序组合由所述协作者对所述文档做出的编辑,并且基于所组合的编辑而生成第二加密数据;
响应于确定所述第一用户账户对应于除所述第二用户账户之外的用户账户,向与所述第二用户账户相关联的第二客户端设备提供所述第一加密数据,所述第二客户端设备是所述一个或多个其他客户端设备中的一个;以及
响应于确定所述第一用户账户对应于所述第二用户账户,向各自与所述多个用户账户中除所述第二用户账户之外的一个用户账户相关联的所述一个或多个其他客户端设备提供所述第一加密数据,其中所述第一加密数据对应于所述第二加密数据。
16.根据权利要求14所述的非暂时性计算机可读存储介质,其中,所述第一客户端设备将执行操作,包括:
生成所述数据加密密钥;
基于所述数据加密密钥而对所述编辑进行加密;
向所述另一服务器提供所述数据加密密钥;
基于使用由所述另一服务器提供的所述主加密密钥对所述数据加密密钥进行加密而获得加密的数据加密密钥;以及
将所加密的编辑与所述加密的数据加密密钥组合以生成所述第一加密数据。
17.一种方法,包括:
与基于云的存储系统的第一服务器相关联地提供用于文档的线上协作编辑的图形用户界面(GUI);
经由所述GUI接收对所述文档的一部分的编辑;
生成加密数据,所述加密数据表示所述编辑,其中所述加密数据包括基于数据加密密钥而加密的所述编辑,以及所述数据加密密钥是基于由第二服务器提供的主加密密钥而加密的;并且
将所述加密数据提供给所述基于云的存储系统的所述第一服务器。
18.根据权利要求17所述的方法,其中,所述加密数据的生成包括:
生成所述数据加密密钥;
基于所述数据加密密钥而对所述编辑进行加密;
向所述第二服务器提供所述数据加密密钥;
获得基于使用由所述第二服务器提供的所述主加密密钥对所述数据加密密钥进行加密而生成的加密密钥;以及
将所加密的编辑与所述加密密钥组合以生成所述加密数据。
19.根据权利要求17所述的方法,还包括:
从所述基于云的存储系统的所述第一服务器接收第二加密数据,所述第二加密数据表示由所述文档的协作者对所述文档的所述一部分做出的第二编辑,其中所述第二加密数据包括基于第二数据加密密钥而加密的所述第二编辑,以及所述第二数据加密密钥是基于所述主加密密钥而加密的;
通过使用所述主加密密钥对所加密的第二数据加密密钥进行解密以及使用所解密的第二数据加密密钥对所加密的第二编辑进行解密,从所述第二加密数据中获得所述第二编辑;以及
基于所述第二编辑而更新所述GUI上提供的所述文档。
20.根据权利要求19所述的方法,还包括:
从所述基于云的存储系统的所述第一服务器接收第三加密数据,所述第三加密数据表示由所述文档的另一协作者对所述文档的所述一部分做出的第三编辑;
基于所述第二编辑和所述第三编辑的按时间顺序的组合而生成第四加密数据;以及
将所述第四加密数据提供给所述基于云的存储系统的所述第一服务器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/546,017 | 2019-08-20 | ||
US16/546,017 US11604898B2 (en) | 2019-08-20 | 2019-08-20 | Secure online collaboration |
PCT/US2020/047108 WO2021035007A1 (en) | 2019-08-20 | 2020-08-20 | Secure online collaboration |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113260998A true CN113260998A (zh) | 2021-08-13 |
Family
ID=72291158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080007799.0A Pending CN113260998A (zh) | 2019-08-20 | 2020-08-20 | 安全的线上协作 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11604898B2 (zh) |
EP (1) | EP3888036A1 (zh) |
CN (1) | CN113260998A (zh) |
WO (1) | WO2021035007A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114239057A (zh) * | 2021-12-03 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 文档的加密方法及装置、文档的加密设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11290253B2 (en) * | 2020-02-14 | 2022-03-29 | Gideon Samid | Document management cryptography |
US11683354B2 (en) * | 2021-08-25 | 2023-06-20 | Adobe Inc. | Systems for resolving conflicts in collaborative digital content editing |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08106412A (ja) * | 1994-03-17 | 1996-04-23 | Toshiba Corp | ファイル編集システム及び共有ファイル編集システム |
CN102318262A (zh) * | 2009-02-16 | 2012-01-11 | 微软公司 | 受信云计算和服务框架 |
CN104303157A (zh) * | 2012-03-21 | 2015-01-21 | 英特托拉斯技术公司 | 用于管理文档和其他电子内容的系统和方法 |
CN104333545A (zh) * | 2014-10-26 | 2015-02-04 | 重庆智韬信息技术中心 | 对云存储文件数据进行加密的方法 |
US20150081773A1 (en) * | 2013-09-13 | 2015-03-19 | Box, Inc. | High availability architecture for a cloud-based concurrent-access collaboration platform |
US20170039169A1 (en) * | 2015-08-04 | 2017-02-09 | Google Inc. | Systems and methods for interactively presenting a visible portion of a rendering surface on a user device |
US9590958B1 (en) * | 2016-04-14 | 2017-03-07 | Wickr Inc. | Secure file transfer |
CN107040577A (zh) * | 2015-12-16 | 2017-08-11 | 弗兰克公司 | 在基于云的环境中的项目文档共享和协作 |
US20180048464A1 (en) * | 2016-08-10 | 2018-02-15 | Nextlabs, Inc. | Sharing Encrypted Documents Within and Outside an Organization |
US20180062852A1 (en) * | 2015-02-15 | 2018-03-01 | Adin Reicin Schmahmann | Systems and methods for secure collaboration with precision access management |
US20180255034A1 (en) * | 2017-03-06 | 2018-09-06 | International Business Machines Corporation | System and method for encrypted document co-editing |
WO2018213871A1 (en) * | 2017-05-22 | 2018-11-29 | Commonwealth Scientific And Industrial Research Organisation | Encryption of cloud-based data |
CN109462644A (zh) * | 2018-10-30 | 2019-03-12 | 芜湖市越泽机器人科技有限公司 | 一种用于互联网的在线开发协作系统 |
CN109714155A (zh) * | 2019-03-13 | 2019-05-03 | 北京信息科技大学 | 一种基于量子密钥分发(qkd)网络的协同编辑系统权限管理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006180110A (ja) * | 2004-12-21 | 2006-07-06 | Nec Corp | データ送信システム、データ送信方法、データ送信サーバ、データ受信端末、およびデータ送信プログラム |
US8321688B2 (en) | 2009-06-12 | 2012-11-27 | Microsoft Corporation | Secure and private backup storage and processing for trusted computing and data services |
US20120185759A1 (en) * | 2011-01-13 | 2012-07-19 | Helen Balinsky | System and method for collaboratively editing a composite document |
US8862889B2 (en) * | 2011-07-02 | 2014-10-14 | Eastcliff LLC | Protocol for controlling access to encryption keys |
US8819408B2 (en) * | 2011-12-20 | 2014-08-26 | Industrial Technology Research Institute | Document processing method and system |
GB2507100A (en) * | 2012-10-19 | 2014-04-23 | Ibm | Secure sharing and collaborative editing of documents in cloud based applications |
US9521001B2 (en) * | 2014-04-28 | 2016-12-13 | Adobe Systems Incorporated | Privacy preserving electronic document signature service |
US10007809B1 (en) * | 2015-08-26 | 2018-06-26 | EMC IP Holding Company LLC | Fine-grained self-shredding data in a secure communication ecosystem |
US10135826B2 (en) * | 2015-09-04 | 2018-11-20 | Cisco Technology, Inc. | Leveraging security as a service for cloud-based file sharing |
-
2019
- 2019-08-20 US US16/546,017 patent/US11604898B2/en active Active
-
2020
- 2020-08-20 CN CN202080007799.0A patent/CN113260998A/zh active Pending
- 2020-08-20 WO PCT/US2020/047108 patent/WO2021035007A1/en unknown
- 2020-08-20 EP EP20764550.8A patent/EP3888036A1/en active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08106412A (ja) * | 1994-03-17 | 1996-04-23 | Toshiba Corp | ファイル編集システム及び共有ファイル編集システム |
CN102318262A (zh) * | 2009-02-16 | 2012-01-11 | 微软公司 | 受信云计算和服务框架 |
CN104303157A (zh) * | 2012-03-21 | 2015-01-21 | 英特托拉斯技术公司 | 用于管理文档和其他电子内容的系统和方法 |
US20150081773A1 (en) * | 2013-09-13 | 2015-03-19 | Box, Inc. | High availability architecture for a cloud-based concurrent-access collaboration platform |
CN104333545A (zh) * | 2014-10-26 | 2015-02-04 | 重庆智韬信息技术中心 | 对云存储文件数据进行加密的方法 |
US20180062852A1 (en) * | 2015-02-15 | 2018-03-01 | Adin Reicin Schmahmann | Systems and methods for secure collaboration with precision access management |
US20170039169A1 (en) * | 2015-08-04 | 2017-02-09 | Google Inc. | Systems and methods for interactively presenting a visible portion of a rendering surface on a user device |
CN107040577A (zh) * | 2015-12-16 | 2017-08-11 | 弗兰克公司 | 在基于云的环境中的项目文档共享和协作 |
US9590958B1 (en) * | 2016-04-14 | 2017-03-07 | Wickr Inc. | Secure file transfer |
US20180048464A1 (en) * | 2016-08-10 | 2018-02-15 | Nextlabs, Inc. | Sharing Encrypted Documents Within and Outside an Organization |
US20180255034A1 (en) * | 2017-03-06 | 2018-09-06 | International Business Machines Corporation | System and method for encrypted document co-editing |
WO2018213871A1 (en) * | 2017-05-22 | 2018-11-29 | Commonwealth Scientific And Industrial Research Organisation | Encryption of cloud-based data |
CN109462644A (zh) * | 2018-10-30 | 2019-03-12 | 芜湖市越泽机器人科技有限公司 | 一种用于互联网的在线开发协作系统 |
CN109714155A (zh) * | 2019-03-13 | 2019-05-03 | 北京信息科技大学 | 一种基于量子密钥分发(qkd)网络的协同编辑系统权限管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114239057A (zh) * | 2021-12-03 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 文档的加密方法及装置、文档的加密设备 |
Also Published As
Publication number | Publication date |
---|---|
US20210056233A1 (en) | 2021-02-25 |
WO2021035007A1 (en) | 2021-02-25 |
EP3888036A1 (en) | 2021-10-06 |
US11604898B2 (en) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10708252B2 (en) | Configuring credentials to faciltate sharing data in a secure manner | |
US10025940B2 (en) | Method and system for secure use of services by untrusted storage providers | |
US9027108B2 (en) | Systems and methods for secure file portability between mobile applications on a mobile device | |
US9621343B1 (en) | Systems and methods for providing information security using context-based keys | |
US9430211B2 (en) | System and method for sharing information in a private ecosystem | |
EP2757744B1 (en) | System for muti-point publication syndication | |
CN113260998A (zh) | 安全的线上协作 | |
US20210119985A1 (en) | Providing intercommunication within a system that uses disparate authentication technologies | |
US20130080545A1 (en) | Automatic access settings based on email recipients | |
CN111989648B (zh) | 将生产力应用嵌入第三方平台 | |
US10630722B2 (en) | System and method for sharing information in a private ecosystem | |
US20220229873A1 (en) | Document sharing processing method, apparatus, device, medium, and system | |
Yahiaoui | Firebase Cookbook: Over 70 recipes to help you create real-time web and mobile applications with Firebase | |
EP3759637B1 (en) | Sharing rights to control aspects of an electronic message | |
KR20210134610A (ko) | 개발자 협업 제어 시스템 | |
US10372710B2 (en) | Using metadata to take action on an SMS message on a proprietary system | |
CN105095785A (zh) | 分布式文件系统的文件访问处理、访问方法及装置 | |
US11804954B2 (en) | Encryption key management for an automated workflow | |
CN111814440B (zh) | 一种云文档的处理方法、装置及系统 | |
CN110134530B (zh) | 一种会话内容的处理方法及装置 | |
CN107210992B (zh) | 在安全数据系统和外部数据系统之间上传和下载数据 | |
Ilmonen | Platform-Agnostic End-to-End Encryption for Modern Instant Messaging Platforms | |
Mardan et al. | HackHall | |
Krishnan et al. | Cloud Storage | |
KR20140030539A (ko) | 문서 관리 서비스 장치 및 방법 |
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 |