开放原子训练营(第一季)铜锁探密Nginx+国密的应用
在这个信息化的时代,商业数据的保密性越来越重要,而密码技术是保障商业数据安全的重要手段。为了更好地了解商用密码的原理和应用方法,我参加了由开放原子开源基金会和铜锁社区联合举办的铜锁活动,共学习了五次课程。说起来也不是第一次接触国密了,之前公司与国有银行有一些业务往来,但当时也只是懵懵懂懂地进行对接,没有深入了解国密的相关内容,借此机会正好深入学习一下,非常感谢CSDN
和铜锁的开发者提供这种学习机会。
每一次的直播都给我一些新的感悟和体会,活动的第一次课程介绍了商用密码的基本概念和分类,让我对商用密码有了更深入的了解。同时,我们还学习了铜锁密码库的基本使用方法,包括安装、配置和使用,这些基础知识为后续课程的学习奠定了基础。
在第二次课程中,我们学习了国密算法的基本原理和常用算法的编程实现。通过实际的编程实践,我更深刻地理解了国密算法的应用方法和技巧。
第三次课程主要介绍了国密证书和国密传输协议的应用方法和实践技巧。在这个过程中,我学习了如何生成和管理国密证书,以及如何使用国密传输协议来保障数据的安全传输。而且实践起来特别方便,可用性非常高,手册也非常明确
实战铜锁国密应用
在第四次课程中,我们学习了铜锁国密应用的实践方法和技巧。通过 Tengine
进行编译,让铜锁赋予 Tengine
国密验证的能力,实践才是唯一真理!!
结营作业说明
在结营作业中,我根据学到的知识,将 nginx
和 铜锁进行了结合,让公司内部可以通过国密安全地进行数据交换。具体操作如下:
- 首先获取
nginx
源码:
wget http://nginx.org/download/nginx-1.22.1.tar.gz && tar -zxvf nginx-1.22.1.tar.gz
- 编译铜锁
cd Tongsuo \
&& ./config --prefix=/opt/tongsuo enable-ntls enable-ssl-trace -Wl,-rpath,/opt/tongsuo/lib64 --debug \
&& make -j \
&& make install \
&& /opt/tongsuo/bin/tongsuo version
- 获取
tengine
源码
git clone https://github.com/alibaba/tengine
- 将tengine对 src 目录下支持铜锁的代码进行copy,patch到nginx源码中。 通过ide 搜索 T_NGX_SSL_NTLS 编译宏进行修改
- 主要是将
tengine
中的event
、http
、stream
目录下的相关文件进行复制,并迁入到nginx
文件中,使得支持铜锁
- 创建用于测试的相关证书
- 将
tengine
下的module
复制到nginx
目录。因为我们编译需要使用到ngx_tongsuo_module
- 编译
patch
过的nginx
./configure --add-module=modules/ngx_tongsuo_ntls --with-openssl=../Tongsuo --with-openssl-opt='--strict-warnings --api=1.1.1 enable-ntls' --with-http_ssl_module --with-stream --with-stream_ssl_module
make && make install
-
修改
nginx.conf
进行国密测试,需要把我们的certs
复制的nginx.conf
同级目录
-
使用360浏览器验证
总结
总的来说,这次铜锁活动让我更深入地了解了商用密码的原理和应用方法,同时也让我认识到,在实践过程中,需要不断地思考和尝试,才能真正掌握商用密码的技能和技巧。我相信,这些知识和经验对于我未来的发展和工作都非常有帮助。