2026年下半年首款开源软件版服务器密码机,夯爆了
01
先问大家一个问题
今天,我想跟大家聊一款特别的产品。聊它之前,先问大家一个问题。
做密码应用开发的朋友,做信创项目的朋友,做密评整改的朋友,你们有没有算过一笔账:想联调 GM/T 0018 的 SDF 接口,得先有一台服务器密码机。这台机器多少钱?入门款几万块起步,主流型号五到十万,好一点的十几万,还得机房、机架、专用网络、专人运维。代码还没写一行,几十万先砸下去了。
高校老师更委屈。一个班四十个学生学密码应用开发,总不能买四十台密码机吧?结果就是老师讲 PPT,学生纸上谈兵,到毕业都没摸过一次真机。
这个难题,困扰行业太多年了。
我们的工程师跟我说:能不能用纯软件,做一台兼容 GM/T 0018-2023 SDF 接口的“密码机”?让每个开发者、每个学生,一台笔记本就能拥有一台。
我说:好,做!而且——开源!
2026 年 7 月 30 日,CryptoKit SoftHSM 正式开源。今天,我要骄傲地向大家介绍这款产品:CryptoKit SoftHSM,2026 年下半年首款开源软件版服务器密码机。
https://github.com/sawanolin/cryptokit-soft-hsm
02
它到底是什么
一句话:这是一台跑在 Docker 里的“服务器密码机”。
它基于 SDFX 和 openHiTLS 构建,兼容 GM/T 0018-2023 SDF 接口规范。Linux 上一个容器跑服务端,Windows 上一个 DLL 调接口,浏览器里一个 Web 管理端管全部。三件套,齐了。

它的架构非常干净:
Windows C/C++ 应用
│ SDF_* API
▼
sdfapi_x64.dll
│ TCP 18081
▼
┌────────────────────────────────────────┐
│ Docker: CryptoKit SoftHSM │
│ │
│ sdfxd ── openHiTLS │
│ ├─ SDF TCP 服务 :18081 │
│ └─ 私有 Web 管理命令(随机令牌鉴权) │
│ │
│ Web 管理服务 :18080 │
│ └─ Supervisor 套接字控制 sdfxd 启停 │
│ │
│ 持久化卷 /var/lib/sdfx │
└────────────────────────────────────────┘
标准 SDF 接口进,密码运算出,中间的密钥、会话、用户文件,全部落盘持久化。这就是一台密码机该有的样子。
03
接口覆盖:把 GM/T 0018-2023 卷干净
做密码设备,最怕什么?接口不全。你买一台设备回来,文档写得好好的,一调用,返回不支持。坑不坑?
我们做了一个决定:除附录 B 的 SM9 接口外,基础接口、扩展接口和附录 C VPN 接口,全部实现。








看这张表:
Windows 那个 DLL,一共导出 94 个公开 SDF 函数。什么概念?你手头存量代码里的 SDF 调用,基本不用改,换个链接库直接跑。
SM9 呢?我特别要说明一下。SM9 目前没有实现,调用就直接返回 SDR_NOTSUPPORT,绝不伪造成功。有些设备遇到不支持的接口,文档里查不到,错误码靠猜。我们明明白白写进 API 矩阵文档:SM9 未实现。做技术,不忽悠。
04
国密算法,全家桶
再来看算法。很多人觉得软件模拟器嘛,能跑个 SM4 加密就不错了。我们偏不信这个邪。
SM4,一口气支持八种模式:ECB、CBC、CFB、OFB、CTR、XTS、GCM、CCM。XTS 做了双密钥和密文窃取,GCM/CCM 完整支持 AAD、Nonce 和认证标签——篡改标签,立刻返回 SDR_VERIFYERR。再加上 CBC-MAC 和 HMAC-SM3,MAC 家族也齐了。
SM2,签名、加密、密钥协商一个不落。签名密钥和加密密钥严格分离,签名输入严格限定 32 字节摘要,SM2 签名、密钥交换、加密和 SM4-XTS 的算法标识严格按 GM/T 0006-2023 执行。密钥协商支持静态和临时密钥,能派生 64 到 512 位的会话密钥——要用的内部 SM2 加密密钥,提前由安全管理员预置授权。
RSA,1024 到 2048 位,内部密钥、外部密钥、会话密钥包装全支持。
索引空间给到 1 到 1024。一千多个索引位,教学和联调场景,管够。
05
密钥安全:软件密码机,也要有密码机的尊严
有人会问:软件实现的密码机,密钥安全怎么保证?
这个问题,我们的工程师是掰开了揉碎了做的。
- 没有默认密码
。 首次初始化只创建超级管理员、设备信息和设备完整性密钥,不会自动生成任何业务密钥,出厂口令想赖都赖不了。 管理员口令用 PBKDF2-SHA256 存储摘要,明文?不存在的。 所有内部私钥,用 SM4-CTR 加密后落盘持久化。 每条 SM2、RSA、SM4 密钥记录,连同算法、类型、索引、元数据,全部用 HMAC-SM3 做完整性保护。HMAC 的密钥来自初始化时自动生成的设备完整性密钥,Web 上改不了、也导不出。校验失败的记录,直接拒绝参与密码运算。 Web 管理命令走容器启动时随机生成的令牌鉴权,令牌只保存在容器内的运行时目录 /run/sdfx,不落业务数据卷。
改个索引,记录重新做完整性保护;备份包恢复前,逐条校验路径、类型、校验和、大小。这台“软件密码机”,把该较真的地方全较真了。
06
四权分立:把商用密码管理的规矩搬进来
大家知道,商密领域的密码机讲究权限分离。很多软件模拟器一个管理员账号包打天下,这在真实场景里是要出大事的。
我们把商用密码管理的规矩原样搬了进来,四角色分权:
超级管理员管初始化,系统管理员管运维,安全管理员管密钥,审计管理员管日志。密钥的操作和密钥的审计,分在两个人手里。页面只显示授权模块,服务端 API 强制校验角色,手工构造请求也越不了权。
审计日志支持按级别、分类、管理员、来源、时间段组合筛选,一键导出 TXT、CSV、JSONL。密钥还带有效期管理,30 天内到期、已到期都会告警;教学模式下到期仅告警,不会自动停用。
这就是规矩。
07
Web 管理端:好看,好用,在线自检
Web 管理端(18080 端口)能干什么?
设备状态、活动会话、累计请求,一屏尽览。SM2、RSA、对称密钥的生成、启停、删除、公钥导出、口令修改、改索引,点几下就完成。SDF 会话可以直接查看、强制终止。系统管理员还能从 Web 上真正启停、重启容器里的 sdfxd 服务进程——Web 本身保持在线,操作要求输入确认文字,动作全部进审计。
我最喜欢的功能,是在线密码自检:随机数、SM3、SM4、SM2、RSA,浏览器里点一下,当场验证算法活儿干得对不对。

部署呢?一条命令:
docker run -d \
--name cryptokit-soft-hsm \
-p 0.0.0.0:18081:18081 \
-p 0.0.0.0:18080:18080 \
-v cryptokit-sdfx-data:/var/lib/sdfx \
--restart unless-stopped \
--security-opt no-new-privileges:true \
sawanolin/cryptokit-soft-hsm:latest
一台云主机、一台实验室服务器,甚至你自己的开发机,几分钟,密码机上线。
08
Windows SDK:极简到只剩一个 DLL
最后说说 Windows x64 SDK。我给团队提了一个要求:交付包必须极简。
最终交付物长这样:
bin/sdfapi_x64.dll ← 唯一的运行时
lib/sdfapi_x64.lib ← MSVC 导入库
lib/sdfapi_x64.dll.a ← MinGW 导入库
include/ ← 三个公开头文件
config/sdfapi.ini ← 一份配置模板
licenses/ ← 授权与第三方声明
SHA256SUMS ← 全包校验和
一个 DLL,两个导入库,三个头文件,一份配置、一份授权、一份校验清单。MSVC、MinGW 双编译器支持,线程运行库静态链接,不让你再到处找 libwinpthread-1.dll。测试 EXE、OBJ、示例源码、构建元数据,统统不进 SDK 包。每份交付附 SHA256SUMS,校验到字节级。
不服?拿你手头的 SDF 存量代码跑一遍。
09
发布节奏与工程态度
这个项目 2026 年 7 月 30 日首次开源,短短三周,已经迭代到 v1.1.3。86.3% 的 C 代码、10.5% 的汇编,底下一层是 openHiTLS。
发布审核规则我们一点没松:Linux C SDK 的设备、随机数、摘要、SM2 与 0018 扩展回归,Web 初始化、四角色 RBAC、CSRF、密钥与审计的端到端测试,随机数到 RSA 的全套自检,备份恢复与完全重置验证,Windows DLL 的 94 个公开导出,SM2 封装回环和 RSA 真实连接测试。全绿,才发版。
10
多少钱
好,到了大家最关心的环节。
一台入门的硬件服务器密码机,几万块起步。
CryptoKit SoftHSM,多少钱?
我跟同事说,这个定价一定要厚道。同事问:老板,要多厚道?
我说:免费!开源!AGPL-3.0 协议,代码全部放在 GitHub 上。个人学习、开发、课堂教学、接口联调、密码应用测试,随便用。
按 AGPL 第 13 条的规矩,你要是改了代码还对外提供网络服务,就得把对应源码也亮出来——开源的契约,咱们认。
感动人心,价格厚道。这就是我们的态度。
11
几句掏心窝的话
最后,我必须诚实地跟大家说清楚几件事。这也是我们和很多“吹牛产品”最大的区别。
第一,它是软件模拟器,没有商用密码产品认证、FIPS 认证,也没有硬件防拆能力。生产环境的密钥托管、合规场景,请老老实实用认证过的硬件密码机。它的主场是学习、开发、教学、联调和密码应用测试。
第二,TCP 18081 和 Web 18080 默认没有 TLS 和双向认证,请部署在受控网络里,别直接裸奔到公网。
第三,备份包本身没有整包加密,下载下来请放进受控存储。
把这些边界明明白白写出来,恰恰是我们对这个行业的尊重。安全产品,来不得半点含糊。
12
写在最后
很多年前,一台逻辑分析仪贵得离谱,后来开源仪器把整个行业的价格打了下来。今天,服务器密码机的门槛,也该有人来降一降了。
让每一个学密码学的学生,每一支做信创的团队,都能零成本摸到完整的 GM/T 0018 SDF 接口。让“纸上谈兵”彻底成为历史。
项目地址:https://github.com/sawanolin/cryptokit-soft-hsm。
在线演示环境的地址和体验账号就写在项目首页,点开就能玩。

2026 年,首款开源软件版服务器密码机。
夯,爆,了。
永远相信美好的事情即将发生。
我是利刃信安,网络安全和密码安全、数据安全领域的小白。
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见
如有疑问,请联系:Mannix6
夜雨聆风