首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Baikal/ SabreDAV上实现加密?

如何在Baikal/ SabreDAV上实现加密?
EN

Stack Overflow用户
提问于 2021-05-01 13:41:17
回答 1查看 186关注 0票数 0

我正在试用Baikal的CardDAV功能,以便在iOS上为我的用户提供通讯簿功能。

我已经创建了一个桌面应用程序,并希望能够使用VCard数据从这个应用程序中创建一个BLOB,并将其插入到MySQL表中,让贝加尔文将其视为有效的通讯簿数据。棘手的部分是,我想要求用户提供一个加密密钥,以建立他们的CardDAV帐户在贝加尔湖。我希望将这个密钥传递给加密函数,以便加密vcard并将其存储在Baikal的MySQL数据库中。为了检索用户iOS (iphone)设备上的iOS联系人,我会以某种方式要求用户将他们的密钥作为参数添加到iOS的连接URL中。最后,我将使用这个参数来解密每个用户的卡片。所以,如果我的用户的通讯录在http://myserver/baikal/html/dav.php/user1/default,我会要求他们添加如下参数:http://myserver/baikal/html/dav.php/user1/default?p=12345678

这样,只有用户才知道解密他们的数据的方法,如果它落入黑客之手,那么Baikal将是安全的。

这有道理吗?知道从哪里开始吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-02 09:55:46

如果您将密码输入到URL中,如果服务器落入黑客之手,系统日志中将到处都是密码。您只需使用用户的常规密码进行加密,至少在服务器上通常不会以其他方式记录或持久化。

真正的客户端加密不能用(未经修改的) CardDAV客户端完成,因为常规的Cal/CardDAV客户机(如iOS/macOS中的客户机)根本不支持进行内容级加密的方法。你能得到的最多的是保护传输的TLS。

如果您还想继续前进,则需要将服务器修改为:

  • 将存储的加密- vCards视为常规的vCards(例如,报告正确的内容类型),
  • 会根据用户的请求对它们进行预先传递解密,并在用户到达时对它们进行加密,
  • 对CardDAV查询做一些合理的操作,可能禁用它们将是最佳的

坦白地说,与仅仅让数据库或文件系统加密数据相比,这只会带来有限的代价。

这取决于您想要解决的特定安全问题。但是,如果黑客可以访问您的服务器,他也可以访问所有传入的密码,并且只需捕获它们。

如果您想要真正的客户端加密,就不能使用标准的CardDAV客户机,而是需要编写自己的客户机。例如,在iOS/macOS上,您可以使用一个应用程序进行本地加密,并更新用户的联系人数据库。

正确地实现加密是非常困难的,如果数据是合理的,那么您需要一个专家来审核。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67346947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档