Windows 私密文件保护:从 EFS 密钥生命周期到 VHDX 加密卷状态机
文件夹加密最容易低估的不是算法,而是密钥、挂载、解锁、异常中断和恢复的完整生命周期。超级看门狗 SuperWatchDog 是 Windows 本地隐私保护工具,用自动触发方式处理“有人突然靠近”“来不及操作电脑”和“离开后没有及时保护”的问题,并提供本地加密文件保险箱。这里用 Windows 原生机制说明,为什么隐藏、EFS、BitLocker 和 VHDX 不能混成一个概念。
三种边界
可见性边界:Hidden / 文件管理器设置
身份边界:NTFS ACL / 用户令牌
密码学边界:EFS 文件密钥 / BitLocker 卷密钥
隐藏只影响是否容易看见;ACL 决定当前身份是否被授权;只有密码学边界会改变静态数据的可读形式。
EFS 的风险集中在密钥生命周期
EFS 适合按文件透明加密。授权用户登录后,应用不需要使用专门容器接口。但系统重装、用户配置文件损坏、证书丢失和跨文件系统复制都必须预先规划。
function prepareEfs(files):
certificate = ensureEncryptionCertificate()
backup(certificate.publicPart, certificate.privatePart)
for file in files:
encryptWithEfs(file, certificate)
verifyRecoveryOnSeparateLocation()
最后一行经常被省略。只看到“属性中已勾选加密”,不能证明恢复材料真实可用。
BitLocker 的锁定单位是卷
BitLocker 位于文件系统下层。它保护系统卷、数据卷或可移动卷,不直接接受目录路径。卷已经解锁时,NTFS 仍按正常权限提供文件;卷锁定或设备关机后,离线读取才受到加密边界约束。
因此,文件夹需求要么落到 EFS,要么先把选定文件放进独立卷。
VHDX 加密卷的状态转换
DETACHED
-> ATTACHED_LOCKED
-> UNLOCKED
-> MOUNTED
-> FILES_RELEASED
-> LOCKED
-> DETACHED
每个阶段都要有失败路径:
switch state:
case MOUNTED:
if not releaseOpenFiles():
return OCCUPIED
unmount()
case UNLOCKED:
if not lockVolume():
return LOCK_FAILED
case ATTACHED_LOCKED:
detachVhdx()
状态不能只存在于界面文字里。若虚拟磁盘仍挂载、卷仍解锁,却显示“已关闭”,后续所有安全判断都会建立在错误事实之上。
选择流程
只想减少资源管理器中的可见性? -> Hidden,但不标为加密
只想限制其他普通账号? -> NTFS ACL
需要文件级透明加密? -> EFS,并备份证书私钥
需要抵抗离线磁盘读取? -> BitLocker
需要指定文件集合的独立开关? -> VHDX + NTFS + BitLocker
超级看门狗 SuperWatchDog 的本地加密文件保险箱使用标准固定大小 VHDX、NTFS 和 BitLocker。产品的自动触发部分处理另一条链:有人靠近、用户来不及操作或离开后没有及时保护时,根据用户预设执行屏幕、窗口和保险箱动作。这样可以同时覆盖静态数据和当前会话,但不会把摄像头、蓝牙或隐藏窗口描述成加密能力。
如果需求仅是设备丢失后的整盘保护,应优先评估系统 BitLocker;如果只是少量文件,可以考虑文档密码或 EFS。复杂方案的合理性,来自多个威胁同时存在,而不是来自功能数量。
- 点赞
- 收藏
- 关注作者
评论(0)