数据安全
概述
数据安全主要分为两方面:
- 可用性:数据不丢失,保持数据的完整和一致
- 机密性:数据不被泄漏、不被篡改
思源对这两方面都进行了一定支持,下面是关于数据安全方面的说明。
明文存储
思源使用明文方式将数据存储在本地文件系统上,这意味着:
- 任何能够使用操作系统的人或软件都读取其中的数据
- 数据的可用性依赖于硬件磁盘和操作系统的可用性
端到端加密
思源云端同步使用端到端加密,密码在本地通过内置密钥加密保存,除使用者之外的任何第三方均无法在云端获得明文数据。
建议
- 定期备份数据,参考 321 备份原则(至少 3 个副本、2 种介质和 1 个异地存储)
- 重要密码、密钥或者核心机密等建议使用专用软件、设备或者离线保存
威胁模型
主要针对本地数据安全和思源云端存储安全进行评估。
前提假设
- 本地操作系统是完全受信任的环境。这是数据安全最基础的前提,基于该前提才能保证
- 原始数据的可用性
- 原始数据不被泄漏
- 密钥的安全性
- 用户不泄漏密钥给攻击者
- 云端存储中的数据不被删除
- AES-GCM 加密算法未被攻破
- 攻击者无法提供暴力破解所需算力
云端存储能够保证
- 只有通过正确的密钥才能解密数据
- 数据被篡改后无法解密
正常示例
基于上述假设和保证,下面是攻击者能够达成的目标示例。
如果攻击者对云端存储具有只读权限,那么他能够:
- 获取到已经加密的数据,尝试暴力破解
- 通过索引信息推断出数据大小
如果攻击者能够劫持网络,那么他能够:
- 篡改数据造成数据不可用
- 获得用户 ID 信息
- 通过流量推断出数据大小
异常示例
如果违反了上述假设或保证,下面是攻击者能够达成的目标和示例。
如果攻击者能够入侵本地操作系统,那么他能够:
- 修改或删除原始数据,造成原始数据不可用
- 获得原始数据
- 获得密钥
如果攻击者对云端存储具有写入权限,那么他能够:
- 修改或删除云端存储,造成云端存储数据不可用
数据可用性保障
本地设备
在提升本地设备上的数据可用性方面我们做了大量努力:
- 编辑器中的内容变更会自动保存到磁盘上,实际写入磁盘时间会根据文档大小有所不同,通常情况下 1 秒以内会完成最终保存
- 支持文件历史
- 支持数据快照
- 支持完整导出和导入 Data 压缩包
- 禁止通过第三方同步盘软件同步数据以避免造成文件损坏
通过这些努力,我们已经尽量保障了本地设备上的数据可用性。但请注意的是,这些保障落实的前提是设备磁盘不发生故障和意外。
云端同步
仅仅提升本地设备上的数据可用性是不够的,因为云端数据同步是刚性需求之一。数据同步会影响本地设备数据,所以我们也要尽量保障同步后数据的可用性:
- 同步前生成数据快照,如果出现非预期的同步结果则可以通过该快照回滚
- 同步时如果发生文件冲突
- 自动生成文件历史,可以通过文件历史回滚
- 也可以在 设置 - 云端 中开启 同步冲突时生成冲突文档
- 支持在 数据历史 - 数据快照 - 云端快照 中浏览和下载云端快照
总结
通过以上保障措施,希望你不再对数据可用性方面产生太多顾虑,请放心使用。
尽管如此,我们依然建议你参考 321 备份原则(至少 3 个副本、2 种介质和 1 个异地存储)进行定期数据备份。
欢迎给我们反馈更多建议,数据可用性是重中之重,期待在大家的努力下不断提高它。