在工业控制、智能终端、物联网等嵌入式场景中,SQLite 凭借轻量、零部署、单文件存储的优势,被大量用于保存业务配置、设备采集数据、隐私信息等核心业务数据。但原生 SQLite 以明文形式保存数据库文件,一旦存储介质被窃取、设备被非法访问,敏感数据极易发生泄露。在关键信息基础设施、政务、工业领域,还需要满足国密合规要求,传统软件加密方案逐渐暴露出短板。
主流开源加密组件 SQLCipher 可实现 SQLite 全盘透明加密,但原生采用国际加密算法,不支持国密标准,无法满足国产化合规要求。如果直接采用纯软件实现国密算法,大量加解密运算会占用 CPU 资源,造成性能瓶颈;同时密钥存放在主机内存中,存在内存转储、恶意程序窃取密钥的安全风险,企业常常陷入 “要合规就要牺牲性能,要性能就要妥协安全” 的两难局面。

什么是透明加密?
简单来讲,业务应用不需要修改任何代码,照常执行读写 SQL 语句;加密解密逻辑在底层自动完成,存储到磁盘上的是密文文件,上层业务完全感知不到加密过程,做到业务与安全解耦,降低改造和维护成本。
针对以上痛点,业界形成一套结合硬件密码设备、国密 SM4/SM3 算法的 SQLite 透明加密方案,兼顾密钥安全、运算性能、国密合规与业务兼容性。
这套方案整体分层架构分为四层:业务应用层、加密适配层(基于 SQLCipher 改造)、国密工具箱 GmSSL、硬件密码设备层。业务程序的读写请求向下传递,由适配层将原有加密回调重定向到 GmSSL,再通过国密 SDF 标准接口调用硬件密码卡完成密码运算,密钥全程不离开硬件安全区域腾讯云。

数据库打开阶段,系统加载硬件密码设备驱动,建立和硬件密码设备的通信连接。在硬件设备内部安全存储区生成或者读取加密主密钥,获取密钥句柄作为密钥引用标识。密钥生成、存储全部在硬件内部完成,密钥私钥永不导出硬件,从根源避免密钥被窃取。
当业务发起数据写入时,系统获取密码学安全随机数作为 SM4-CBC 模式初始化向量,调用硬件内部 SM4 对称加密算法,把 SQLite 数据库页面明文加密为密文页面,将初始化向量与密文数据一同写入数据库文件。同时可调用国密 SM3 杂凑算法生成数据摘要,和密文页面一起保存,实现数据完整性保护,为防篡改打下基础国家密码管...。
读取数据时,从数据库文件读出密文页面,解析密文数据与初始化向量,调用硬件密码设备执行 SM4 解密运算还原明文页面。解密完成后执行 SM3 摘要校验,将重新计算的摘要和存储的摘要比对;如果比对不一致,判定数据遭到篡改,直接终止读取并返回错误提示;校验通过后,再把明文数据返回上层业务应用。

数据库会话关闭时,系统释放密钥句柄,断开硬件密码设备连接,完成会话资源回收。整个读写循环对业务完全透明,原有 SQL 接口无需改动。
对比传统方案,这套实践方案具备三重核心价值。
第一,密钥安全等级更高。密钥的生成、存储、使用全部在硬件密码设备内部完成,密钥不会导出到主机内存,抵御内存窃取、转储攻击,满足国密管理规范。
第二,兼顾合规与性能。采用 SM4 对称加密、SM3 完整性校验,完全符合国产商用密码标准;密码运算卸载到专用硬件,降低 CPU 负载,解决纯软件国密加密的性能瓶颈,适配嵌入式设备算力有限的现实条件。
第三,业务改造成本低。依托 SQLCipher 做适配层改造,业务代码无需大幅改动,原有业务逻辑可直接复用,实现透明无感加密,降低企业落地难度。
对于工业控制、物联网终端、关键信息基础设施领域,嵌入式数据库安全是整体安全体系容易被忽视的一环。透明加密不是简单的文件加解密,而是一套包含密钥全生命周期管理、数据机密性保护、完整性防篡改的完整安全能力。将硬件密码能力与嵌入式数据库结合,能够帮助企业在不破坏业务可用性的前提下,同时达成数据安全保护、国密合规、性能可控的建设目标。
本文来源:国家网信办,数据安全研究院
主笔专家:马旭
责任编辑:编辑部-王泽宇
最后更新时间:2026年10月15日