mPaaS云平台运维系列之—移动网关常见问题

本文涉及的产品
性能测试 PTS,5000VUM额度
mPaaS订阅基础套餐,标准版 3个月
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 移动网关服务(Mobile Gateway Service,MGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。本章主要介绍产品常见问题。

1.1    常见问题

1.1.1  RPC报错排查

1客户端抓包

客户端抓包一般采用Charles Fiddler 工具,通过抓包工具,可以看到 RPC 请求的一些关键数据。然后通过抓包数据获取到 TraceId ,通过TraceId查询 MGS 日志。如图1-1所示。

image.png

图1‑1 抓包效果

2常见错误码

11000 API 调用成功,其他都是失败的错误码。

21001-59997XXX 为网关错误。其中,7XXX 表示无线保镖验签或解密报错,请参考无线保镖结果码说明进行排查。除结果码外,您还可以查看响应 Header 中的 Memo tips 字段,以了解更多错误信息。

1.1.2  安全机制

MGS通过加签机制和加密机制实现了数据通信的防伪造和防窃取特性,实现细节介绍如下。

1.防伪造

通过无线保镖机制来实现防止网络请求被篡改,验证请求合法性。无线保镖是一套保障移动平台应用完整性、应用执行环境可信性、数据机密性的专业完整的安全解决方案。无线保镖有如下特性:

1使用无线保镖SDK的加签,加密功能需要依赖加密图片

2无线保镖不分配任何秘钥,三方加密图片的所有秘钥均由接入方自定义,只需按照规定传参即可

3AndroidiOS的加密图片都是和应用绑定的加密图片,加密图片根据用户App信息绑定生成。

整体实现机制如图3-7所示,流程如下:

1)当在mPaaS控制台创建应用时,移动网关为每个应用随机生成一个唯一的加盐值。

2)客户端根据Bundle IDRSA证书,调用无线保镖安全黑匣子算法将加盐值保存安全图片里,无线保镖安全黑匣子可以保证图片中的信息不被窃取。

3)客户端根据该次请求的数据内容进行乱序,添加时间因子后以安全图片中的加盐值进行加盐,并进行签名,将该签名与请求内容一起发送到移动网关。

4)服务端使用收到改此次请求后,以相同的加盐值按同样规则计算签名。

5)移动网关会对客户端带上的签名和上一步算出的签名进行比对,验证是否相等,来校验请求的合法性。

image.png

图1‑2 无线保镖签名机制

2.防窃取

对网络请求内容进行加密,如图1-3所示。流程如下:

1)使用openssl工具生成一对非对称加密算法的公私钥,私钥保存在移动网关,公钥保存在客户端本地;

2)客户端每次RPC请求生成一个新的对称密钥

3)客户端使用公钥对对称密钥进行加密,得到加密后的SecKey

4)同时客户端使用对称密钥对原始数据进行加密,得到加密的数据SecData

5)将加密后的SecKeySecData发送到移动网关

6)移动网关使用私钥对接收到的SecKey进行解密并计算,得到对称密钥

7)移动网关使用上一步解密得到的对称密钥,对接收到的加密数据SecData进行解密,得到原始数据。

通过以上的混合加密机制,既利用了非对称加密的安全性,也很好的结合了对称加密的高性能,实现了安全和性能的平衡。

image.png

图1‑3 安全加密机制

1.1.3  MGS压测

1.背景

随着越来越多的金融行业基于mPaas搭建并上线新的AppApp整体架构的负载能力,各个环节的优化逐步成为各个客户关注的重点,尤其是作为连接服务端和客户端的MGS组件的性能,成为关注的重点。可以通过对MGS进行全链路的压力测试,来测试业务的负荷瓶颈,评估整体架构性能,排查出各节点的薄弱关系,从而优化系统资源,避免短板效应,同时也可以为后期上线提供准确的用户承载量作为限流数据支撑,避免新应用上线带来的突发流量导致系统异常。

2.链路梳理

通常我们可以简单的把负载性能=单机性能*机器总量这一公式套用到预估的方案中,但是在实际的场景下,常常会涉及到大量的业务节点,如防火墙,网关,数据库等环节,都有可能是导致整体业务性能的瓶颈,因而实际服务能力可能与预期存在较大误差。因此,如何基于MGS实现全链路的压测,成为客户压测方案关注的重点。

区别于以往的测试方案,全链路压测方案中最大的不同是视角上的不同,站在客户端角度上作为切入点,将整个服务端链路作为一个黑盒,以真实的requestresponse作为评估的依据,模拟真实的业务请求,真实的数据流量,真实的用户习惯,来达到得出尽可能真实的评估结果。

1) 请求阶段

如图1-4所示,是一个标准的MGS数据链路模型。而在全链路压测中,我们把整体的服务端实现视为一个黑盒,因而我们所需关注的焦点聚焦在前半段,重点可以概括为:

1)客户端请求构建;
2)客户端请求发送并通过MGS网关;
3)客户端解析MGS网关返回的response并做出正确处理;
4)实现高并发的客户端请求集群。


image.png
图1‑4 MGS通信链路模型

2) 链路实现

(1) 客户端请求构建

MGS移动网关RPC通讯是在HTTP协议基础之上的实现的一种标准化接口方式,在复用HTTP请求标准的前提下,定义了一套数据交换格式,采用HeaderBody作为实际区分,可以近似理解为,通过Header中的Operation-Type做为真实api指向,将body部分依据规则封装后进行转发。在该步骤中,我们以JMeter作为实现方案,Jmeter灵活的脚本特性可以良好的实现客户端的真实请求模拟。

(2) 压测集群环境部署

对于压测来说,需要的重点侧重于真实,真实的流量入口,真实的并发数量,才能得出真实的结果,而自行实现压测环境,高昂的集群部署费用,也成了不必要的开支,因而我们推荐用户采用阿里云PTS作为压测平台,基于其他方案,具有部署简易,支持jmeter脚本,流量真实等优势,也可为用户提供更为详实的压测报告。

如图1-5所示,以上模型简单可以归纳为以下结构。


image.png

图1‑5 MGS压测模型

 

3.性能数据

MGS作为连接App和后端的网关服务,性能显得尤为重要。如图1-6所示,为单台资源规格为4C8G容器的在实验室环境下发送hello world报文测试的MGS性能指标参数,可以用做日常性能指标参考。但是由于实际的性能指标受报文大小,网络带宽,后端性能等全链路很多因素制约,所以如果需要真实现场环境性能指标数据,最好通过实际压测获取。

image.png

图1‑6 性能数据介绍

1.1.4  MGS更换秘钥

1.背景

因当前国家信息安全监管总局对金融类App监管要求,涉及到数据安全通信加密算法必须要使用国密的规定。众多使用mPaaS的金融客户,因早期大多数都是在网关配置的RSA加密或者ECC加密算法,当接到监管要求后,都要更改网关加密算法为国密。MGS目前已经具备了同时兼容多个加密方式的功能,解决了客户侧因更换加密算法造成的种种不便和问题。以下分别对控制台网关配置和客户端配置,整理更换加密算法方案。

2.服务端配置

打开移动开发平台->移动网关->网关管理。当前网关已经开启了数据加密。如图1-7所示,这里示例是RSA)。

image.png

图1‑7 秘钥配置介绍

 

这时更换国密,需要提前准备一对已生成的SM2公、私钥。在控制台-网关管理下,先关闭数据加密,再立刻开启数据加密,这是会出现重新选择加密算法和填写对应密钥的弹窗,如下图1-8所示。

image.png

图1‑8 秘钥配置

SM2的私钥按正确格式填写到输入框内,点击提交。之后就能在这里看到已经配置好的两种加密方式,如图1-9所示。

image.png

图1‑9 秘钥配置

至此网关更换密钥操作已完成。

3.客户端配置

1iOS

iOS客户端的加密方式和公钥是配置在info.plist下的,详情如图1-10所示。

image.png

图1‑10 iOS配置

此时将已生成好的SM2公钥按正确格式替换上述info.plistPubKeyvalue,加密算法更改为SM2,如图1-11所示。至此 iOS端加密方式和公钥也已更换完毕。

image.png

图1‑11 iOS国密配置
2Android

Android端的加密方式和公钥是配置在mpaas_netconfig.properties 文件下的。此时将已生成好的SM2公钥按正确格式替换上述mpaas_netconfig.properties 里的对应value,更换后如下图1-12所示。至此 Android 端加密方式和公钥已更换完毕。

 image.png


图1‑12 Android国密配置

此时服务端和客户端均已更换加密方式完毕,旧版App依然可以正常访问网关,新版App也是可以正常访问网关的,后续需要等待旧版App用户完全升级到新版App后,修改掉网关旧的加密方式即可,当然一直保留也可以的。

目录
相关文章
|
6月前
|
移动开发 监控 测试技术
mPaas常见问题之针对某个机器做强制升级如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
106 0
|
6月前
|
XML 移动开发 监控
mPaaS常见问题之这边真机调试和真机预览都会报 {"stats"如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
121 0
|
6月前
|
移动开发 前端开发 Android开发
mPaaS 常见问题之移动开发平台 mpaas的H5 前端 Kylin 框架引入vant后包特别大如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
242 0
|
6月前
|
Web App开发 移动开发 小程序
mPaaS常见问题之安装之后SDK管理器中是空的如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
|
6月前
|
移动开发 监控 安全
mPaaS常见问题之Android集成dexPatch热修复运行时候无法正常进行热更新如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
105 0
|
6月前
|
Web App开发 移动开发 小程序
mPaaS常见问题之音视频通话使多人视频如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
|
6月前
|
移动开发 监控 开发工具
mPaaS常见问题之pod里使用abstract_target后会报错如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
113 0
|
6月前
|
移动开发 监控 小程序
mPaaS常见问题之音视频通话微信小程序通话界面录制为画中画模式如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
100 0
|
6月前
|
移动开发 API Android开发
mPaaS常见问题之初始化异常如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
117 0
|
6月前
|
移动开发 监控 小程序
mPaaS常见问题之消息推送mps 私有化如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
101 0