Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何使用客户端加密和Web API实现SaaS?_Security_Encryption_Architecture_Privacy_System Design - Fatal编程技术网

Security 如何使用客户端加密和Web API实现SaaS?

Security 如何使用客户端加密和Web API实现SaaS?,security,encryption,architecture,privacy,system-design,Security,Encryption,Architecture,Privacy,System Design,我想制作一个开源的“篮中”软件(GTD的概念),这样我就可以快速捕获移动中的脱机文本、语音和图片,然后让它们在我所有的设备上同步,以便第二天早上进行分类 但是,我不想让服务器知道我或任何用户真正在捕获什么,所以我将在客户端对其进行加密 问题是,我还想提供一个Web API,以便人们可以为它编写自己的客户端 但是,服务器只能向新客户端发送加密数据。我如何解决这个问题?我是否只与每个客户端(包括第三方站点)共享加密密钥?如果用户突然不信任客户机怎么办?我需要用新密钥再次加密整个内容吗?恐怕我对您的用

我想制作一个开源的“篮中”软件(GTD的概念),这样我就可以快速捕获移动中的脱机文本、语音和图片,然后让它们在我所有的设备上同步,以便第二天早上进行分类

但是,我不想让服务器知道我或任何用户真正在捕获什么,所以我将在客户端对其进行加密

问题是,我还想提供一个Web API,以便人们可以为它编写自己的客户端


但是,服务器只能向新客户端发送加密数据。我如何解决这个问题?我是否只与每个客户端(包括第三方站点)共享加密密钥?如果用户突然不信任客户机怎么办?我需要用新密钥再次加密整个内容吗?

恐怕我对您的用例模型不太清楚。您是否正在尝试将数据从单个用户共享给其他用户?如果是,他们如何进行身份验证并获得许可?由于这不包括像系统设计那样多的编程,所以最好在(API设计在系统设计之后,我相信你还没有超过这个目标)。不,但是想象一下你希望服务与slack、telegram、dynalist、MembertElist、github集成,身份验证和权限是一个已解决的问题:我设置了openid connect、OAuth等等,我可以自动创建应用程序与之交互。问题是,如果没有私钥,他们就无法读取或写入任何内容。如果将问题分为两部分:使用普通数据不信任服务器和提供对客户端的访问。在这种情况下,您可以在服务器上实现访问条件,并确实与客户端共享解密密钥(您可能需要为加入的特定客户端自行传输)。您可能需要不止一个键,以便从中派生其他键,等等。。设计一个完整的密钥管理方案对于一个答案或评论来说有点难(但现在你至少知道这个术语了)。在这个复杂的主题上写一个长的答案是完全可以的。我应该知道,我是第一个用我的一个达到炭极限的人。也许是关于装饰师的。不管怎样,如果我们不能进行那些极客式的谈话,那么我们将在哪里进行呢:)