跳转到内容

数据安全

概述

数据安全主要分为两方面:

  • 可用性:数据不丢失,保持数据的完整和一致
  • 机密性:数据不被泄漏、不被篡改

思源对这两方面都进行了一定支持,下面是关于数据安全方面的说明。

明文存储

思源使用明文方式将数据存储在本地文件系统上,这意味着:

  • 任何能够使用操作系统的人或软件都读取其中的数据
  • 数据的可用性依赖于硬件磁盘和操作系统的可用性

端到端加密

思源云端同步使用端到端加密,密码在本地通过内置密钥加密保存,除使用者之外的任何第三方均无法在云端获得明文数据。

建议

  • 定期备份数据,参考 321 备份原则(至少 3 个副本、2 种介质和 1 个异地存储)
  • 重要密码、密钥或者核心机密等建议使用专用软件、设备或者离线保存

威胁模型

主要针对本地数据安全和思源云端存储安全进行评估。

前提假设

  • 本地操作系统是完全受信任的环境。这是数据安全最基础的前提,基于该前提才能保证
    • 原始数据的可用性
    • 原始数据不被泄漏
    • 密钥的安全性
  • 用户不泄漏密钥给攻击者
  • 云端存储中的数据不被删除
  • AES-GCM 加密算法未被攻破
  • 攻击者无法提供暴力破解所需算力

云端存储能够保证

  • 只有通过正确的密钥才能解密数据
  • 数据被篡改后无法解密

正常示例

基于上述假设和保证,下面是攻击者能够达成的目标示例。

如果攻击者对云端存储具有只读权限,那么他能够:

  • 获取到已经加密的数据,尝试暴力破解
  • 通过索引信息推断出数据大小

如果攻击者能够劫持网络,那么他能够:

  • 篡改数据造成数据不可用
  • 获得用户 ID 信息
  • 通过流量推断出数据大小

异常示例

如果违反了上述假设或保证,下面是攻击者能够达成的目标和示例。

如果攻击者能够入侵本地操作系统,那么他能够:

  • 修改或删除原始数据,造成原始数据不可用
  • 获得原始数据
  • 获得密钥

如果攻击者对云端存储具有写入权限,那么他能够:

  • 修改或删除云端存储,造成云端存储数据不可用

数据可用性保障

本地设备

在提升本地设备上的数据可用性方面我们做了大量努力:

  • 编辑器中的内容变更会自动保存到磁盘上,实际写入磁盘时间会根据文档大小有所不同,通常情况下 1 秒以内会完成最终保存
  • 支持文件历史
  • 支持数据快照
  • 支持完整导出和导入 Data 压缩包
  • 禁止通过第三方同步盘软件同步数据以避免造成文件损坏

通过这些努力,我们已经尽量保障了本地设备上的数据可用性。但请注意的是,这些保障落实的前提是设备磁盘不发生故障和意外。

云端同步

仅仅提升本地设备上的数据可用性是不够的,因为云端数据同步是刚性需求之一。数据同步会影响本地设备数据,所以我们也要尽量保障同步后数据的可用性:

  • 同步前生成数据快照,如果出现非预期的同步结果则可以通过该快照回滚
  • 同步时如果发生文件冲突
    • 自动生成文件历史,可以通过文件历史回滚
    • 也可以在 设置 - 云端 中开启 同步冲突时生成冲突文档
  • 支持在 数据历史 - 数据快照 - 云端快照 中浏览和下载云端快照

总结

通过以上保障措施,希望你不再对数据可用性方面产生太多顾虑,请放心使用。

尽管如此,我们依然建议你参考 321 备份原则(至少 3 个副本、2 种介质和 1 个异地存储)进行定期数据备份。

欢迎给我们反馈更多建议,数据可用性是重中之重,期待在大家的努力下不断提高它。