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

本文涉及的产品
mPaaS订阅基础套餐,标准版 3个月
密钥管理服务KMS,1000个密钥,100个凭据,1个月
性能测试 PTS,5000VUM额度
简介: 移动网关服务(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后,修改掉网关旧的加密方式即可,当然一直保留也可以的。

目录
相关文章
|
运维 网络协议 Java
运维常见问题汇总-tomcat篇
运维常见问题汇总-tomcat篇
|
7月前
|
SQL 运维 DataWorks
DataWorks常见问题之dataworks运维中心指定时间“运行到该节点”失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
7月前
|
存储 缓存 对象存储
通过云存储网关事件告警了解网关使用常见问题
本文通过云存储网关控制台事件告警中心,来说明网关使用过程中一些常见问题及相关的应对方法
|
7月前
|
移动开发 小程序 Android开发
mPaaS常见问题之pixel4 android 13 调用移动网关 报这个错如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
160 0
|
7月前
|
JSON 数据格式
在mPaaS中,通过Postman测试移动网关,可以按照以下步骤操作
在mPaaS中,通过Postman测试移动网关,可以按照以下步骤操作
97 2
|
SQL 存储 运维
OBProxy 路由策略与使用运维-常见问题
OBProxy 路由策略与使用运维-常见问题
123 0
|
弹性计算 运维 网络架构
【运维知识进阶篇】用阿里云配置NAT网关配置
【运维知识进阶篇】用阿里云配置NAT网关配置
485 0
|
机器学习/深度学习 弹性计算 运维
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(下)-常见问题与解决思路(1)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(下)-常见问题与解决思路(1)
326 0
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(下)-常见问题与解决思路(2)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(下)-常见问题与解决思路(2)
257 0
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(下)-常见问题与解决思路(3)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(下)-常见问题与解决思路(3)
173 0

热门文章

最新文章