banner
Wind_Mask

Wind_Mask

Wind_Mask,technically me.
github
email

关于Secret的沉思(2):本地

题论#

让我们先从简单的场景出发,也就是先考虑我们的本地活动。这是一类 不被重视的活动(至少对于个人而言),因为个人很少在本地面对攻击,除非处境危险(这种情况我们需要更加一致的体系设计,本地自然也有)。

备份#

个人更多在现在关心的应该是备份和可用性 —— 本地数据的失效是常见的。在这方面,网盘备份同步的服务是应用的。常用的服务我使用的倒较少,因为 onedrive 同步的目录我不怎么用;Google 云盘受限于 GFW,因此不得不转向国内的应用。
我不怎么使用文件同步服务(但是现在各软件都有自己的云同步,代码有 git 仓库),对于文件的备份,国内服务其实是可用的。但这里我们谈论的当然不是大文件备份,因为那也不太会是 Secret(当然,如果我们真的有冷大文件还是 Secret 的,那可真是个问题,或许物理备份(为了 Secret 起见甚至要有独立存储 —— 指放硬盘的保险箱?当然还有全盘加密。)。(当然,有付费的云端加密备份服务,但是对于一般需求不如白嫖,对于极端安全需求 —— 付费甚至是一个攻击面)。
小的文件备份,用来干什么了呢?答案并不多,我个人用于电子书,小的程序工具(这些东西找起来不易),还有,最 Secret 的,密钥备份
是的,密钥备份。无论是自动填充用的密码库,还是 pgp 密钥,ssh 密钥。但是,要谨记,秘密文件云端绝不可有一点明文!保证已加密上传,本地处理,同步处理。这就涉及了一种动态的文件加密:

加密#

这确实是个问题。
如果你不是在做备份,也不是在为长期存储而离线存档,也不是为了安全地将文件发送给别人而加密,也不是为了完成工作而挂载 / 卸载的虚拟驱动器。

这种加密并不是长期备份 —— 可能会被频繁访问,不是离线的,不是为了发送(从而或多或少依赖于公钥密码学),不是虚拟驱动器而是文件(尽管我觉得 VeraCrypt 在这是可用的)。

那么这确实是个问题,尤其是,比如对于 pgp 的主密钥,不会有明文的备份。从而对可访问性提出要求 —— 尽管实际上我们用 U 盘(而且还加密了)来解决,但多途径仍然要考虑 —— 如果 U 盘丢失,也要保证安全性和易访问密钥呢?

首先,密钥一般自身就有加密,以至于可以直接放出 —— 但是没有人会这么做。将它签名(防止对密钥的意外修改)并整合,最简便的方法无疑是加密压缩包。完整性可有签名保证(而加密工具本身就面临拷问:怎么保证软件本身不是一个修改了的恶意版本?—— 这在后面还会导致我的一些考虑,考虑表明这一问题在苛刻条件下的确无解)。

一个推荐工具是age,至少有人认为它实现了目的。但是先生们,这只是把一个密钥问题变成了两个。总的来说,问题是 ——本地加密到底在防御什么?

这确实是个谜。如果离线环境的确处于危险,那么就必须具体情况的分析考虑物理来源的威胁。如果只是对于一种潜在的物理威胁,那么本地防御的强度根本不在加密(因为这是物理的)—— 那是给云端准备的。

弱点在于本地设备本身。

这里才引出本地的问题关键:

设备安全#

开源硬件?除非有一条完整流程都可以完全掌控,否则也并无多用。当然,大可不必假设这么极端。只要稍微不那么极端,正常设备已经(但是不包括没有充分考虑过的手机)够了。

操作系统#

linux 发行版(比如 debian),或者极端点的发行版比如Qubes(我得说,我没用过) 已经太足够了。对于频繁移动的情景,Tails是选择之一,但是移动情景的设备安全依赖于偶然匿名(毕竟你不能保证到处设备都安全),对于被追踪恐怕并无大用。也就是说,自己的设备终究是必要的,但是为了便携如果想用手机,那可需要认真考虑风险。IPhone 真的总是很好,我也不知道为什么,也许 Apple 的市值值得这种信任吧。但是安卓其实有很多空间可操作,这是技术问题。

Windows 很受怀疑,但其实不极端的说也无所谓,更何况一般不止于此 —— 诚然,这是一种侥幸,但是控制好连接可能比系统的漏洞要重要得多,Mac 也是如此。

这正是日常化的安全所在了。完全使用虚拟机以及上面那种系统当然是好的,但是太不日常了(当然日常似乎又不需要一点保护似的,问题是这之间的地带呢?)。在不影响日常下,我们当然尽可能采取更激进的措施。这里的尺度当然是我个人的,但是具体设计可以解耦并且在正确组装下提供相当的安全(当然对于产品的评估是争议的但凡可替换的大可自己代换之)

使用 Win 的话,适当的保持安全更新和检查就要考虑了。细枝末节的安全细节我在此不多谈(那些到处都能看到的建议无需我来重复)。一个看上去关系不大的问题是文件整理 —— 请确保你对你有什么保持认识,让工具代劳管理不意味着忘记。

软件#

开源 + 便携式软件是极好的,几乎避免了各种问题。目前对我来说,压缩,代理,文本编辑器,markdown 编辑器,播放器,图片查看编辑都使用了便携开源产品。总之,避免不必要的专有软件总归是好的,毕竟现在已经妥协太多了。

专用于安全的软件,我希望它们明白(并且实现)不要把实时数据放进硬盘 —— 但这是不一定的。虚拟机和外置磁盘之类或许有助于此,但是有待考察。

元数据#

本地元数据事先考虑是有其重要性的,你当然可以等到连接后再考虑,但是为什么不提前考虑一些呢?其实我会建议你使用纯文本避免元数据灾难,毕竟联机时的元数据问题够麻烦了。但总是有其他格式的嘛……

Office 文档危险得令人害怕,元数据当然要予以清除;PDF 格式元数据也可能含有问题。这些都要予以考究,当然,你甚至可以利用这些进行伪装……

魔怔#

本地问题是无止境的 —— 在极度危险的物理问题下,本地的一切运算设施最好都一次性化,储存移动化。但是对常人来说

个人很少在本地面对攻击。

本地备份主要还是防止损失,但是这方面和云备份自然要结合,两者安全级别亦有不同。


……To be continued……

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。