mPaas国密改造—MGS报文国密加密

简介: 随着当前国家安全信息监管的要求越来越严格,众多金融银行类App 都被要求必须使用国密算法加密通信。mPaaS 对国密算法加密客户端、网关都是支持的,这里整理一份从生成到配置完成的完整指南,以供参考。

背景

随着当前国家安全信息监管的要求越来越严格,众多金融银行类App 都被要求必须使用国密算法加密通信。mPaaS 对国密算法加密客户端、网关都是支持的,这里整理一份从生成到配置完成的完整指南,以供参考。

生成SM2密钥

Mac OS下

Mac OSX一般自带的有OpenSSL。但因为OpenSSL“心脏病失血”事件,Mac OSX 自 10.11 El Capitan 起,将原有的 OpenSSL 替换为 LibreSSL 。在以上这些系统中应该除了实测必须要用 OpenSSL 软件外,应该都可以用 LibreSSL 取代 OpenSSL。而对于其他大多数还没有将系统自带的 OpenSSL 替换为 LibreSSL 的会麻烦一些,并且也可能做不到彻底替换。只是对于编译安装的软件,可以尽量用 LibreSSL 取代 OpenSSL。(其他用LibreSSL 取代 OpenSSL的系统还有:OpenBSD 自 5.6 起,Alpine Linux 自 3.5.0 起)。

所以 Mac 下OpenSSL 生成SM2密钥就需要自己安装OpenSSL,网上有方式直接更改替换Mac OS自带的LibreSSL,这里为了不影响Mac 使用者的日常正常使用,不使用这种方式,而是在Mac 上download 一个OpenSSL版本安装、解压后单独使用,完全不会影响原有的LibreSSL。

这里以openssl 1.1.1d实现为例:

  1. 下载openssl源码

curl -o openssl-1.1.1d.tar.gz https://www.openssl.org/source/openssl-1.1.1d.tar.gz

  1. 解压源码包

tar -xvf openssl-1.1.1d.tar.gz

  1. 进入解压的openssl目录

cd openssl-1.1.1d

  1. 配置生成makefile

./config --prefix=/usr/local/openssl

  1. 安装

//这里用了sudo 需要输入电脑密码,为了保证不会因为权限不足而安装报错

sudo make install

  1. 设置openssl lib .so加载配置

//此步骤可以忽略,so加载配置与否不影响使用生成SM2

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

ldconfig -v

  1. 生成SM2密钥

    i. 进入生成密钥文件的目录,执行以下命令生成私钥

/usr/local/openssl/bin/openssl ecparam -genkey -name SM2 -out SM2PrivateKey.pem

   ii. 进入生成密钥文件的目录,生成公钥

/usr/local/openssl/bin/openssl ec -in SM2PrivateKey.pem -pubout -out SM2PublicKey.pem

Windows 下

同样Windows 下也是需要一些途径才能生成SM2国密密钥。

OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具。

工具地址:http://slproweb.com/products/Win32OpenSSL.html

  1. 下载工具

选择32位或者64位合适的版本下载,例如Win64OpenSSL_Light-1_0_2h.exe。

  1. 安装Win64OpenSSL软件

设置环境变量,自行确定安装位置。

  1. 打开Win64OpenSSL软件,运行以下命令

ecparam -genkey -name SM2 -out priv.key

ec -in priv.key -pubout -out pub.key

服务端配置

  1. 打开登录移动开发平台->移动网关->网关管理->数据加密->打开。
  2. 打开后会弹出选择加密方式和密钥的弹出,选SM2 并 填写对应的私钥密钥。

客户端配置

iOS端

  1. iOS客户端的加密方式和公钥是配置在info.plist下的,详情见图:

其中,

  • mPaaSCrypt:加密配置的主 key,value 是Dictionary类型,里面包含了客户端加密所需设置的相关信息。
  • Crypt:是否进行加密,value 是Boolean类型,YES代表加密,NO代表不加密。
  • GWWhiteList: 需要进行加密的网关,即当前环境的网关地址。如果没有该 key ,则所有的请求都不会加密
  • RSA/ECC/SM2:非对称加密算法选择,value 是String类型,只能填RSAECCSM2
  • PubKey:非对称加密公钥。value 是 String 类型,与选择的非对称加密算法保持一致。

注:iOS端PubKey 的Value 不运行有空格自行换行等,格式不可错误。

Android端

  1. Android 端的加密方式和公钥是配置在mpaas_netconfig.properties 文件下,如图:其中,
  • Crypt:表示是否使用自加密,true表示使用,false表示关闭自加密功能。
  • RSA/ECC/SM2:表示要使用的非对称加密算法,其值只能填充RSAECCSM2
  • PubKey:表示选择的非对称加密算法的公钥。
  • GWWhiteList: 需要进行加密的网关,即当前环境的网关地址。如果没有该 key ,则所有的请求 都不会加密

注:由于 Android 中 properties 文件的 value 值需要在同一行,因此填充公钥时需注意。


目录
相关文章
|
9月前
|
算法 测试技术 Go
go-dongle v1.1.7 发布,新增 SM4 国密分组对称加密算法支持
`dongle` 是一款轻量级、语义化、开发者友好的 Golang 密码库,100% 单元测试覆盖,获 2024 年 GVP 与 G-Star 双项荣誉。支持 SM4 国密算法,提供标准及流式处理,优化读取位置重置,提升安全性与易用性。文档齐全,开源免费,欢迎 Star!
426 0
|
9月前
|
算法 测试技术 Go
go-dongle v1.1.7 发布,新增 SM4 国密分组对称加密算法支持
`dongle` 是一款轻量级、语义化、开发者友好的 Golang 密码库,100% 单元测试覆盖,获 2024 年 GVP 与 G-Star 双项荣誉。支持 SM4 国密算法,提供标准及流式处理,优化读取位置重置,提升安全性与易用性。文档齐全,开源免费,欢迎 Star!
387 0
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
算法 前端开发 JavaScript
SpringSecurity:前后端分离项目中用户名与密码通过国密算法SM2加密传输
SpringSecurity:前后端分离项目中用户名与密码通过国密算法SM2加密传输
2671 2
|
移动开发 数据安全/隐私保护 Android开发
mPaas国密改造—MGS切换国密加密
因当前国家信息安全监管总局对金融类App监管要求,涉及到数据安全通信加密算法必须要使用国密的规定。众多使用mPaaS框架的银卡金融客户,因早期大多数都是在网关配置的RSA加密或者ECC加密算法,当接到监管要求后,都要更改网关加密算法为国密,因需求众多mPaaS团队也为此开发了网关同时兼容多个加密方式的功能,去解决客户侧因更换加密算法造成的种种不便和问题。
3052 0
mPaas国密改造—MGS切换国密加密
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
384 10
|
云安全 安全 数据建模
《数字证书:互联网世界的"身份证"与"防盗门"》 ——揭秘网络安全背后的加密江湖
在2023年某深夜,上海陆家嘴金融公司机房遭遇黑客攻击,神秘青铜大门与九大掌门封印的玉牌突现,阻止了入侵。此门象征数字证书,保障网络安全。数字证书如验钞机识别假币,保护用户数据。它通过SSL/TLS加密、CA认证和非对称加密,构建安全通信。证书分为DV、OV、EV三类,分别适合不同场景。忽视证书安全可能导致巨额损失。阿里云提供一站式证书服务,助力企业部署SSL证书,迎接未来量子计算和物联网挑战。
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
378 10