## 加密
为了您的安全,[[Obsidian 官方同步简介|Obsidian Sync]] 会对您的[[本地仓库与远程仓库|远程仓库]]以及与 Obsidian 服务器之间的所有通信进行加密。
当您创建新的远程仓库时,有两个选项:
- **端到端加密(默认)** 提供最高安全性,但需妥善保管加密密码。这保证了没有人——包括 Obsidian 团队——可以访问您的笔记。
- **标准加密** 使用由 Obsidian 管理的加密密钥来保护您在传输过程中和服务器上的数据。
我们建议所有用户使用端到端加密,因为这是最私密、最安全的选项。但请注意,如果您忘记或丢失了加密密码,您的数据将永远保持加密且无法使用。我们无法为您恢复密码或任何加密数据。
您的选择仅影响远程仓库。Obsidian 不会加密您的本地仓库。
### 端到端加密意味着什么?
端到端加密意味着数据从离开您的设备那一刻起就被加密,只有在回到您的某个设备上时,才能使用您的加密密钥解密。
我们无法读取您的数据。任何潜在的窃听者也无法读取,例如您的互联网服务提供商。
在极少数服务器完全被攻破的情况下,您的数据仍然保持加密——没有人能在不知道您密码的情况下解密您的文件。
### 使用标准加密有哪些风险?
标准加密从根本上来说不如端到端加密安全,但如果您不要求同步的数据完全私密,它可以是一个便捷的选项。例如,如果您同步的仓库已经通过 [[发布服务简介|Obsidian Publish]] 发布到像本帮助站点这样的公开网站上,那么端到端加密就不是必需的。
标准加密与云存储公司和 SaaS 平台(如 Google Docs、Dropbox 和 iCloud(未启用高级数据保护))使用的加密方法相同。加密密钥由应用生成,用于保护您在传输过程中和服务器上的数据。由于加密密钥存储在公司服务器上,它可以被用来解密您的数据,例如在公司被要求执行搜查令的情况下,或者在您希望通过网页浏览器访问数据的情况下。
端到端加密保证 Obsidian 永远无法访问您的数据,对于您希望保持完全私密和安全的数据,应始终使用端到端加密进行同步。
### 使用了什么加密方式?
为了数据安全,我们实施了行业标准的加密协议。具体来说,我们使用 [AES-256](https://www.nist.gov/publications/advanced-encryption-standard-aes-0),这是最强的加密标准,广泛应用于网上银行等场景。加密过程涉及以下技术细节:
- **密钥派生函数:** 带盐值的 [scrypt](https://en.wikipedia.org/wiki/Scrypt)
- **加密算法:** 使用 [Galois/Counter Mode (GCM)](https://en.wikipedia.org/wiki/Galois/Counter_Mode) 的 AES-256
### 我可以验证我的数据确实是端到端加密的吗?
可以。请参阅我们的指南:[如何验证 Obsidian Sync 的端到端加密](https://obsidian.md/zh/blog/verify-obsidian-sync-encryption/)。该指南提供了分步说明,让您可以在无需信任的情况下验证数据通过 Sync 服务器发送和接收时的端到端加密。
### Obsidian 是否完成了第三方安全审计?
是的。Obsidian 已经过独立审计。请访问我们的[安全页面](https://obsidian.md/zh/security)查看审计报告。由第三方安全公司进行的定期审计确保 Obsidian 的代码和流程符合最高安全标准。
### 如果我忘记了加密密码怎么办?
如果您丢失或忘记了加密密码,您将无法将更多仓库连接到远程仓库。由于加密密码不会保存在任何地方,它将永远丢失。
不过,您的数据通常安全地存储在每个设备的本地。
要继续使用 Obsidian Sync,我们建议进行完整的重新设置,以便将新设备添加到您的同步系统:
1. 在主设备上进行完整的仓库备份,以防出现问题。这可以简单到复制仓库文件夹,或从仓库创建一个 zip 文件。
2. 在每个设备上断开远程仓库。操作方法是进入 **[[设置]] → 同步 → 选择远程仓库 → 断开同步**。
3. 在主设备上从同一设置页面[[启动同步服务#创建远程仓库|创建新的远程仓库]]。您也可以选择删除之前的远程仓库,因为您已经没有它的密码了。(如果您已达到[[同步常见问题#我可以拥有多少个远程仓库?|仓库数量上限]],可能需要先删除之前的远程仓库)
4. 等待主设备完成同步。观察屏幕右下角的同步指示器,直到它显示绿色对勾。
5. 将每个设备连接到同一个新创建的远程仓库。连接时,会显示关于仓库合并的警告,这是正常的,您可以继续。等待每个设备完全同步后再处理下一个设备。这可以减少出现问题的几率。
6. 现在您的所有设备应该都已连接到新的远程仓库。
## 托管
### Obsidian Sync 的服务器托管在哪里?
我们的数据中心由 [DigitalOcean](https://www.digitalocean.com) 提供支持,在以下位置提供按地理区域划分的远程仓库托管选项:
> [!abstract] Sync 区域
> **自动**:首次设置时,根据您的 IP 位置选择数据中心。
>
> **亚洲**:新加坡
> **欧洲**:德国法兰克福
> **北美**:美国旧金山
> **大洋洲**:澳大利亚悉尼
^sync-geo-regions
### 如何找到我当前的 Sync 服务器及其托管位置?
要查找您的 Obsidian Sync 服务器,请按以下步骤操作:
1. 进入 **[[设置]]** → **同步** → **复制调试信息**。
2. 将复制的信息粘贴到笔记或文件中。
3. 查找类似这样的一行:`Host server: wss://sync-xx.obsidian.md`
这一行表示您的远程仓库托管的服务器。有关服务器位置和运行状态的更多详细信息,请访问我们的[状态页面](https://status.obsidian.md/)。
## 网络与访问
### 在您的网络上管理 Obsidian Sync 的访问
要在您的网络上管理 Obsidian Sync 的访问权限,您需要管理以下域名:
`sync-xx.obsidian.md`
此处的 `xx` 代表 `1 - 100` 范围内的数字。
> [!tip] 如果您的防火墙系统支持,我们建议将 `sync-*.obsidian.md` 加入白名单,以适应子域名数量的持续增长。
## 限制
Obsidian Sync 旨在保持您笔记的私密性和安全性。为了在各设备之间提供快速、可靠的同步和高效的存储,我们在加密的应用方式上做出了一些刻意的权衡。
### 确定性文件哈希加密
我们以确定性方式加密文件哈希:相同的文件内容,使用相同的加密密钥和盐值,在服务器上始终生成相同的加密哈希。这有助于 Sync 检测重复文件并避免重新上传或重新存储相同的数据,从而节省带宽和远程存储空间,尤其是在版本历史中或大文件重复出现时。
但是,如果攻击者攻破了 Sync 服务器,并且有其他方式强制用户上传他们指定的文件,那么攻击者可以强制用户上传特定文件,并判断该文件是否与用户之前上传的文件匹配。
### 路径与内容之间没有加密绑定
某些元数据不是端到端加密的:哪个设备上传或删除了文件、上传时间,以及加密文件路径与加密内容之间的*映射关系*。服务器可以读取这些数据,以便路由更改、确定文件的版本历史并保持设备同步。
如果 Sync 服务器被攻破,攻击者可以篡改该映射关系,导致一个加密文件的内容被投递到另一个文件路径下。这不会泄露您的明文数据,数据仍然是加密的。