Windows 平台用 VBS 保护私钥安全

问题

之前稣写过《macOS 上用触控 ID 安全登录 SSH》和《Debian 12 上用 TPM 2.0 安全登陆 SSH》,为何没 Windows 版?

分析

当然有!只是太简单,稣以为大家都会……直到今天才发现不少人都不懂保护自己的私钥,真以为没人惦记你的三千块钱存款吗?

解决方案

网络上能轻易找到的一种解决方案是使用虚拟智能卡,它使用 TPM 2.0 保护私钥,而且使用时需要输入 PIN,安全性是可以的,唯一的问题就是很麻烦。

详情参考:Secure SSH Access with TPM2-Backed Key

稣的解决方案基于 VBS,全称 Virtualization-based Security那啥,不是 VBScript 这种已经去世几十年的东西。 VBS 的底层有一部分是 TPM 2.0,安全性有保障。

1. 离线产生私钥

  • 专门买一台百来块的擸𢶍小主机,从不接入网络,是从不,连局域网都不。

  • 产生密钥导出时需要使用强密码保护。

  • 将加密的密钥文件(.pfx)复制到一个安全的 U 盘,但是这个 U 盘丢了也不怕,因为擸𢶍小主机上还有密钥,而且 U 盘里的文件也有密码。

当然,如果您觉得私钥丢了也无所谓,那可以不用保存私钥副本,只需要保证私钥不被偷。

2. 导入使用密钥的机器

这步隐含“使用密钥的机器”是不那么安全的,所以需要处处防御:

  • 机器拔网线、断 WiFi,重启,进入安全模式。

  • 插入 U 盘,快速导入私钥,导入时必须选择“使用虚拟化安全保护私钥(不可导出)”,快速移除 U 盘。

  • 重启。

导入时有几个可选项:

  • “启用强私钥保护。如果启用这个选项,每次应用程序使用私钥时,你都会收到提示。”稣一般也开启,以便知道哪些应用不老实。

  • 密码。如果机器只有自己使用,可以不用设置,把“此密钥需要密码”点掉。即使不设置密码,被 VBS 保护的私钥也不可能被偷走。

后记

本文没有任何命令和图片,单纯传授心法,因为绝大多数的观众老爷们根本没有安全需求,贴出图片也是浪费时间和流量。

如果您使用微信,也可以关注公众号 UMU618,在公众号文章里评论。