开放原子训练营(第一季)铜锁探密Nginx+国密的应用

开放原子训练营(第一季)铜锁探密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 中的 eventhttpstream 目录下的相关文件进行复制,并迁入到 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浏览器验证

在这里插入图片描述

总结

总的来说,这次铜锁活动让我更深入地了解了商用密码的原理和应用方法,同时也让我认识到,在实践过程中,需要不断地思考和尝试,才能真正掌握商用密码的技能和技巧。我相信,这些知识和经验对于我未来的发展和工作都非常有帮助。

<think>嗯,用户问的是如何在Ubuntu系统中安装和配置铜锁Tongsuo)。首先,我需要回忆一下铜锁的相关信息。铜锁是一个开源的密码库,之前可能叫做BabaSSL,后来改名了。记得在提供的引用里提到过安装命令,比如用ls查看/opt/tongsuo目录,还有版本更新的信息。 首先,安装步骤可能需要从源码编译,因为很多开源库都是这样安装的。用户可能已经安装了必要的依赖,比如gcc、make、openssl这些。不过可能需要先安装依赖项,比如build-essential、git、perl这些。然后,下载源码,可能通过git clone或者下载预发布版本。引用里提到8.4.0-pre2版本,所以用户可能需要从官方仓库获取代码。 接下来是配置和编译。通常的步骤是运行./config或者./Configure,然后make和make install。铜锁可能有一些特定的配置选项,比如启用特定的算法或者硬件加速。引用中提到了半同态算法、零知识证明和硬件加速,所以在配置时可能需要启用这些功能。 安装完成后,验证是否成功,可能需要检查/opt/tongsuo目录是否存在,或者运行版本命令。另外,配置动态链接库路径,让系统找到铜锁的库文件,可能需要编辑ld.so.conf或者设置LD_LIBRARY_PATH环境变量。用户可能需要这些步骤,否则运行时找不到库。 测试部分,可能需要写一个简单的C程序,链接铜锁的库,并运行。例如调用某个函数来确认安装正确。如果有问题,可能需要检查路径是否正确,权限是否足够,或者依赖是否满足。 用户的问题还可能涉及到配置,比如如何让应用程序使用铜锁而不是系统自带的OpenSSL。可能需要设置编译时的链接路径,或者在代码中包含铜锁的头文件。 另外,引用中提到铜锁删除了不常用的算法,用户需要注意是否他们的应用需要这些算法。还有漏洞修复,说明新版本可能更安全,但也要考虑兼容性。 可能用户会遇到的问题包括依赖项缺失、权限问题导致安装失败、动态链接库未正确配置等。需要提醒用户检查这些方面,或者提供常见问题解决方法。 最后,生成相关问题时要考虑用户可能进一步想知道的内容,比如验证安装、使用示例、切换版本、卸载方法,或者特定功能的启用,比如半同态算法或硬件加速的支持。</think>### 如何在 Ubuntu 系统中安装和配置铜锁 #### 1. 安装依赖 首先安装编译和运行所需的依赖库: ```bash sudo apt update sudo apt install -y build-essential git perl gcc make ``` #### 2. 下载铜锁源码 从官方仓库克隆代码(若需特定版本如8.4.0-pre2,可通过标签切换): ```bash git clone https://github.com/Tongsuo-Project/Tongsuo cd Tongsuo git checkout 8.4.0-pre2 # 切换到指定版本 ``` #### 3. 配置和编译 启用常用功能(如半同态算法、硬件加速)并指定安装路径: ```bash ./config --prefix=/opt/tongsuo enable-ntt enable-ec_elgamal enable-ippcp make -j$(nproc) sudo make install ``` #### 4. 验证安装 检查安装目录和版本: ```bash ls -l /opt/tongsuo # 查看安装文件[^1] /opt/tongsuo/bin/openssl version # 显示版本信息(如Tongsuo 8.4.0-pre2) ``` #### 5. 配置动态链接库 更新系统库路径: ```bash echo "/opt/tongsuo/lib" | sudo tee /etc/ld.so.conf.d/tongsuo.conf sudo ldconfig ``` #### 6. 环境变量设置(可选) 在`~/.bashrc`中添加路径: ```bash export PATH="/opt/tongsuo/bin:$PATH" export LD_LIBRARY_PATH="/opt/tongsuo/lib:$LD_LIBRARY_PATH" ``` #### 7. 测试示例 编写测试程序`test_ntt.c`: ```c #include <tongsuo/ntt.h> int main() { // 调用NTT相关函数 return 0; } ``` 编译并运行: ```bash gcc -I/opt/tongsuo/include -L/opt/tongsuo/lib -lntt -o test_ntt test_ntt.c ./test_ntt ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值