兄弟们,最近干信创项目,被问得最多的就是:电子签章系统怎么搞国密算法改造?怎么跟OA绑到一起?今天咱们不扯官话,就拿真实场景唠唠。
一、为什么非得改?原来那套不是跑得好好的吗?
先说背景。央国企现在搞信创,核心就一条:加密算法要换成国密(SM2/SM3/SM4)。原来电子签章用的RSA、SHA这些国际算法,相当于你家大门装的是进口锁芯,钥匙也是国外买的。现在上面要求:锁芯要换成国产的,钥匙也得是国产标准。为啥?怕后门啊!你想想,合同、红头文件全用进口算法签名,万一哪天人家把算法破解了,签了字都能赖账,那不乱套了?
所以,电子签章系统必须把原来那套国际算法证书、签名、验签的全链路,全部换成国密算法。这就好比你把防盗门整个锁芯换掉,原来那把钥匙不能用了,得配新钥匙。而且不仅签章服务器要换,客户端插件、浏览器控件、手机APP甚至硬件UKey(国密密钥介质)都得跟着换。
二、国密算法改造,到底改了啥?打个比方你就明白
原来用RSA签名,就像用一套模具压印章,模具是进口的。现在用国密SM2签名,相当于换了一套国产模具,而且模具的纹路(算法参数)不一样了。具体改三个东西:
- 证书:原来用国际CA发的RSA证书,现在要用国密CA发的SM2证书。证书格式都不同,.cer变成.gm证书或者PKC格式需要适配。
- 签名/验签:原来调用接口传RSA签名值,现在要传SM2签名值。好比原来写繁体字,现在统一写简体——你看得懂,但机器处理方式不一样。
- 密钥存储:原来私钥可能放在数据库或者文件里,现在国密要求必须用硬件加密机或者国密UKey存储,不能裸存。相当于原来的钥匙放抽屉里,现在必须放进保险柜,而且保险柜本身也要有国产密码认证。
三、跟OA集成,到底怎么搞?举个真实的例子
我前阵子帮一个央企搞OA审批流程电子签章。他们OA系统是用泛微的,流程跑完后自动调用签章服务给合同盖章。原来是这样:OA发起审批 → 审批通过 → OA调用签章接口(传入PDF、签章位置、用户证书)→ 签章服务用RSA签名 → 返回盖章后的PDF → OA展示给用户。
现在要变成国密算法,怎么联调?分三步走:
第一步:签章服务后端改造
把签名算法从RSA换成SM2,验签算法也同步换。同时要支持双算法兼容——因为有些老文件可能还是RSA签的,你不能一刀切,得保留验老签的能力。这就像你换锁芯之前,得保证新钥匙能开旧锁(过渡期内),否则历史文件就打不开了。
第二步:前端插件/控件升级
用户签约时,原来浏览器装的是RSA签名控件,现在要换成支持国密的控件。如果用的是H5页面,要调用国密SDK。注意,很多用户还在用IE或Chrome插件,你得确认控件兼容信创操作系统(统信、麒麟)和国产浏览器。我们当时就踩过坑:用户电脑换成麒麟系统,浏览器是360信创版,原来的ActiveX控件用不了,必须改成NPAPI或者WebSocket调用本地签章客户端。
第三步:OA接口适配
OA系统要改的地方很少,主要是调签章接口时,把传参里“签名算法”字段改成SM2。有些OA系统用了硬编码比如“signType=RSA”,就要改成“signType=SM2”或者动态读取配置。另外,国密证书的序列号、颁发者字段格式跟国际证书不同,OA在展示用户证书信息时也要调整,否则首页显示乱码。
四、常见坑和避坑指南
- 证书双栈:建议先部署一套“双算法并存”的签章服务,国内签用国密,国外签用国际,等所有联通方都升级完再切。我们当时有个跟外部企业联签的场景,对方还没换国密,签名验签就过不去,只能先做路由。
- UKey驱动:国密UKey的驱动往往跟信创操作系统兼容性不好,甚至不同品牌UKey(比如卫士通、三未信安)驱动冲突。最好统一品牌,并在测试环境跑一遍所有浏览器、操作系统组合。
- 性能问题:SM2签名比RSA慢一倍左右,如果OA流程并发高,签章服务器要提前做压测。我们当时用8核16G服务器,每秒只能签80份PDF,后来加了签名缓存才扛住。
- 日志审计:国密算法改造后,所有签章操作日志要包含算法标识,便于监管检查。审计系统也要支持解析国密签名结果。
五、总结:别怕,改造就是“换锁+换钥匙+培训大妈”
说白了,电子签章国密改造,技术原理其实不复杂——就是换一套算法、换一批证书、适配一下接口。但真正的难点在兼容性测试和双算法过渡期管理。建议先找一家有信创目录且做过类似项目的主流签章厂商(比如e签宝、契约锁、上上签等国密版),让他们出改造方案,OA侧配合调整接口就行。
兄弟们,信创是大势所趋,早改早主动。如果你们正在头疼这套技术选型,别光听厂商忽悠,多看看实际落地方案。更多方案可访问 itfangan.com,上面有不少央国企信创电子签章改造的案例和代码片段,省得自己踩坑。
今天就唠这么多,我去补日志审计的坑了,回头见!