背景
因当前国家信息安全监管总局对金融类App监管要求,涉及到数据安全通信加密算法必须要使用国密的规定。众多使用mPaaS框架的银卡金融客户,因早期大多数都是在网关配置的RSA加密或者ECC加密算法,当接到监管要求后,都要更改网关加密算法为国密,因需求众多mPaaS团队也为此开发了网关同时兼容多个加密方式的功能,去解决客户侧因更换加密算法造成的种种不便和问题。
以下分别对控制台网关配置和客户端配置,整理更换加密算法方案。初次配置网关加密和客户端配置,参考文档:https://help.aliyun.com/document_detail/72752.html。
服务端开发平台
注:mgs 版本要 >=1.34.10
- 打开移动开发平台->移动网关->网关管理:
当前网关已经开启了数据加密(这里示例是RSA)。
- 这时更换国密,需要提前准备一对已生成的SM2 公、私钥,详细密钥生成方法参考:https://help.aliyun.com/document_detail/64281.htm。
- 在控制台-网关管理下,先关闭数据加密,再立刻开启数据加密,这是会出现重新选择加密算法和填写对应密钥的弹窗,如下图。
4.将SM2的私钥按正确格式填写到输入框内,点击提交。之后就能在这里看到已经配置好的两种加密方式:
介此,网关更换密钥操作已完成。
注:步骤3中必须要先关闭再开启,此时要快速操作,所以请务必先提前生成好对应的SM2公、私钥,且保证正确性和正确格式。
客户端
iOS端
- iOS客户端的加密方式和公钥是配置在info.plist下的,详情见图:
- 此时将已生成好的SM2公钥按正确格式替换上述info.plist里PubKey的value,加密算法更改为SM2。
介此 iOS端加密方式和公钥也已更换完毕。
Android端
- Android 端的加密方式和公钥是配置在mpaas_netconfig.properties 文件下的,如图:
- 此时将已生成好的SM2公钥按正确格式替换上述mpaas_netconfig.properties 里的对应value,更换后如下图:
介此 Android 端加密方式和公钥已更换完毕。
结束语
此时服务端和客户端均已更换加密方式完毕,旧版App依然可以正常访问网关,新版App也是可以正常访问网关的,后续需要等待旧版App用户完全升级到新版App后,修改掉网关旧的加密方式即可,当然一直保留也可以的。