OpenSSL是一套件开放源代码的安全套接字密码学基础库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL/TLS协议,并提供丰富的API,以供应用程序开发、测试或其它目的使用。它广泛地集成在各种类型的操作系统中,作为其基础组件之一,深爱广大IT爱好者的喜爱。即使用某些操作系统没有将其集成为组件,通过源代码下载,也是十分轻松地构建OpenSSL的开发及应用环境。
尽管OpenSSL的功能十分强大且丰富,然而对于中国商用密码体系的算法及相关应用来说,它距离我们还是十分遥远,因为它仅仅包含的国际通用的密码算法、认证体系及相关协议,却没有将中国商用密码体系中的公开算法SM2、SM3、SM4及祖冲之流密码算法纳入其中,也不支持双证书体系的应用及相关协议。这对于推广及研究中国商用密码体系的广大密码爱好者来说,却是十分无奈的事情。 国内也存在着不少密码界同仁,尝试着将OpenSSL国密化,但其大多都局限于公司内部交流使用,这对于国密SSL的推广不利。针对这种现状,北京江南天安公司经过长时间的研究分析,于2017年上半年推出天安版国密OpenSSL,也就是TaSSL,解决了中国商用密码体系无法构建基于OpenSSL应用的实际问题。现以源码的形式提供出来,供大家参考使用,为促进国密的推广和应用贡献自己的一份力量。
将国密算法SM2、SM3、SM4及祖冲之流密码算法作为OpenSSL的内置算法,并且严格按照《GMT 0006-2012 密码应用标识规范》定义的OID来对相关国密算法进行标识;
将SM2作为EC的内置曲线,可通过ECDSA、ECDH分别完成SM2的签名和密钥协商;
可通过 EVP_DigestSignInit、 EVP_DigestSignUpdate、 EVP_DigestSignFinal EVP_DigestVerifyInit、 EVP_DigestVerifyUpdate、 EVP_DigestVerifyFinal 智能化、自动化完成SM2的签名和验签过程;
实现SM2公钥加密算法的同时,也将ECIES的公钥加密算法添加到OpenSSL中,可完成国际EC曲线的公钥加密;
可通过引擎的方式来实现SM1算法的应用;
实现了《GMT 0024-2014 SSL VPN技术规范》中与SM2相关的国密TLSv1.1的密码套件;
添加了对中国商用密码体系的双证书的支持;
完善了OpenSSL命令行工具对中国商用密码体系算法的支持;
完善了X509对中国商用密码体系的支持。