铜锁/Tongsuo是一个提供现代密码学算法和安全通信协议的开源基础密码库,为存储、网络、密钥管理、隐私计算等诸多业务场景提供底层的密码学基础能力,实现数据在传输、使用、存储等过程中的私密性、完整性和可认证性,为数据生命周期中的隐私和安全提供保护能力。
铜锁获得了国家密码管理局商用密码检测中心颁发的商用密码产品认证证书,助力用户在国密改造、密评、等保等过程中,更加严谨地满足我国商用密码技术合规的要求。可在此处下载资质原始文件。
铜锁提供如下主要的功能特性:
- 技术合规能力
- 符合 GM/T 0028《密码模块安全技术要求》的"软件密码模块安全一级"资质
- 符合 GM/T 0005-2021《随机性检测规范》
- 零知识证明(ZKP)
- Bulletproofs range
- Bulletproofs R1CS
- 密码学算法
- **商用密码算法:SM2、SM3、SM4、祖冲之等
- 国际主流算法:ECDSA、RSA、AES、SHA等
- 同态加密算法:EC-ElGamal、Paillier等
- 后量子密码学*:Kyber、Dilithium等
- 安全通信协议
- 支持GB/T 38636-2020 TLCP标准,即双证书国密通信协议
- 支持RFC 8998,即TLS 1.3 +国密单证书
- 支持QUIC API
- 支持Delegated Credentials功能,基于draft-ietf-tls-subcerts-10
- 支持TLS证书压缩
- 支持紧凑TLS协议*
注:*号表示正在支持中
开源应用(Opensource Application)
- Angie, Angie是一个可以替换掉NGINX的新型Web服务器,我们建议使用铜锁的用户优先选择Angie (We highly recommend you to replace NGINX with Angie to enable Tongsuo's functionality)
- Apache APISIX
- Tengine
商业应用 (Commercial Application)
- 支付宝App
- OceanBase数据库
- 阿里云
- 天威诚信
一般来说,典型的编译和安装过程如下:
./config --prefix=/path/to/install/dir
make
make install
如果是Windows,则需要:
perl Configure enable-ntls
nmake
nmake install
以上将会安装铜锁的头文件、library文件和铜锁二进制程序。如果需要在独立的build目录中编译铜锁以保证源代码仓库的整洁,则可以:
cd tongsuo-build
/path/to/Tongsuo/source/config --prefix=/path/to/dest
make
make install
目前铜锁支持的操作系统有:各种Linux发行版、macOS、Android、iOS和Windows。在这些操作系统上,还需要事先准备好对应的环境:
- make
- Perl 5,以及Text::Template模块
- C编译器
- C库
铜锁对第三方库的依赖很少,但是目前依然对Perl依赖较大。
如果希望执行自动化测试用例,则需:
make test
在安装的时候,可以选择只安装library文件:
make install_runtime_libs
如果还需要安装头文件以便于基于铜锁开发应用程序,则可以:
make install_dev
也可以只安装铜锁二进制程序和其依赖的铜锁library文件:
make install_programs
铜锁的Configure脚本提供了大量的用于开关各种特性的选项。一般来讲,使用enable-xxx
做为对某个特性的开启,而使用no-xxx
来关闭某个特性。例如,enable-ntls
即开启TLCP,而no-rsa
则是不编译RSA算法。
铜锁的相关文档组织在 铜锁文档网站 上。
铜锁使用钉钉群进行用户答疑和交流,钉钉群号:44810299
欢迎关注铜锁公众号,获取最新的铜锁动态:
铜锁目前使用蚂蚁集团的威胁搜集系统,请访问如下地址进行安全缺陷的报告:
注意:对于非安全相关的Bug,请使用GitHub的Issues进行提交。