应用系统商用密码改造传输篇

一、前言
商用密码改造主要工作在应用系统存储加密和传输加密,存储加密和URL使用加密算法都需要用到商用密码设备,根据厂商提供的Websocket接口对接开发,传输加密可使用密码模块配合专用设备完成,这里讲下使用国密证书保证数据传输的安全性,在应用系统服务端配置国密证书,配合终端上的国密浏览器实现传输过程数据加密,满足相关测评要求(如涉及到移动端访问,现尚无移动端国密浏览器,无法直接通过浏览器访问,需要进行相应的改造,工作量较大,在移动APP需要将相应的脚手架国密化,如国密CURL,可使用tengine启用一个RSA证书加密的端口供移动端使用,测评扣除部分分值)。
二、环境准备
1.国密自签名证书
https://www.gmcrt.cn/gmcrt/
2.tengine
https://tengine.taobao.org/
3.Tongsuo
https://github.com/Tongsuo-Project/Tongsuo?tab=readme-ov-file
4.服务器
/
三、申请证书
打开商用密码的证书申请链接,申请自签名证书在局域网使用,根据提示填写好信息,摘取以下四个文件备用。
应用系统商用密码改造传输篇
应用系统商用密码改造传输篇
四、安装软件
统信服务器操作系统(使用ROOT账号):
sudo apt-get install gcc gcc-c++ make pcre pcre-devel gzip zlib-devel
银河麒麟服务器操作系统(使用ROOT账号):
yum install gcc gcc-c++ make pcre pcre-devel gzip zlib-devel
将tengine上传到服务器解压后如下图所示,同时解压Tongsuo并知道目录位置
应用系统商用密码改造传输篇
在当前目录执行编译,替换Tongsuo对应的目录,执行成功后依次执行make -j 和make install
./configure --add-module=modules/ngx_tongsuo_ntls --with-openssl=/sunif/Tongsuo-master/ --with-openssl-opt="enable-ntls" --with-http_ssl_module --with-stream --with-stream_ssl_module --with-stream_sni
应用系统商用密码改造传输篇
安装完成后根目录为/usr/local/nginx,执行/usr/local/nginx/sbin/nginx -v查看安装情况
应用系统商用密码改造传输篇
接下来修改nginx.conf配置文件,将第三步申请的国密证书上传到服务器的指定位置,修改完成后执行nginx -t 做下测试。

server {
listen 443 ssl;
server_name dns.sunif.cn;
enable_ntls on;
ssl_sign_certificate /www/typecho/cert/sig.crt.pem; 
ssl_sign_certificate_key /www/typecho/cert/sig.key.pem; 
ssl_enc_certificate /www/typecho/cert/enc.crt.pem; 
ssl_enc_certificate_key /www/typecho/cert/enc.key.pem;
ssl_ciphers ECC-SM2-SM4-CBC-SM3:ECC-SM2-SM4-GCM-SM3:ECDHE-SM2-SM4-CBC-SM3:ECDHE-SM2-SM4-GCM-SM3:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!RC4:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
ssl_protocols  TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
root /www/typecho/;
index index.php;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always;
add_header Permissions-Policy "interest-cohort=()" always;
add_header X-Frame-Options "SAMEORIGIN";
if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}

应用系统商用密码改造传输篇
应用系统商用密码改造传输篇
重新启动NG服务,pkill nginx && nginx,使用国密浏览器访问网站左上角就会提示国密(统信操作系统自带国密浏览器),用普通浏览器会提示使用不受支持的协议,结束收工。
应用系统商用密码改造传输篇
应用系统商用密码改造传输篇
应用系统商用密码改造传输篇
访问地址
https://dns.sunif.cn/

标签:none

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。