- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
技术架构图说明
1. 架构设计目标
➢必须满足的功能需求和非功能需求。
➢尽量利用成熟的开源技术,降低成本。
➢架构必须满足简单、安全升级扩展、伸缩。
➢全面、准确地界定系统架构的涉及的范围,清楚定义内部系统与外部系统的边界以及交互约定。
➢确定各子系统的具体职责,子系统间的交互协议和交互过程。
➢确定系统的开发、部署和运维平台和相应的规范。
➢为系统设计和后续编码、测试、维护提供原则、基础和规范。
2. 架构设计原则
➢满足功能性需求和满足非功能需求。这是一个软件系统最基本的要求,也是架构设计时应该遵循的
最基本的原则。
➢实用性原则。就像每一个软件系统交付给用户使用时必须实用,能解决学校的实际问题,并且系统
必须稳定可靠、性能良好。
➢可复用性原则。标准模块设计成可重复使用的中间件或标准组件,最大程度的提高开发人员的工作
效率。
➢单一职责原则。各子系统专注于完成一个特定功能,不交叉耦合,系统间通过设计良好的接口交
互。
➢可扩展原则。应用面向服务的思想,业务模块子系统通过提供服务的方式对外提供接口,以后有业
务扩展可直接扩展服务即可。系统能够灵活的根据业务量的大小来灵活部署,即可集中式部署也可分
布式部署。
3. 详细说明
3.1. APP 端及Web 端与服务器通讯采用https
1 )认证服务器。客户端内置一个受信任的CA 机构认证的证书。第一阶段服务器会提供经CA 机构认
证颁发的服务器证书,如果认证该服务器证书的CA 机构,存在于客户端的受信任CA 机构列表中,
并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么客户端就认为服务端是可信
的,并从服务器证书中取得服务器公钥,用于后续流程。否则,客户端将不会继续发起请求。
2 )协商会话密钥。客户端在认证完服务器,获得服务器的公钥之后,利用该公钥与服务器进行加密通
信,协商出两个会话密钥,分别是用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服
务端往客户端发送数据的服务端会话密钥。在已有服务器公钥,可以加密通讯的前提下,还要协商两
个对称密钥的原因,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节
省计算资源。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。
3 )加密通讯。此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http 数据,都通
过会话密钥加密。这样网路上的其它用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而
保证了数据的私密性和完整性。
3.2. 为防止客户端证书被伪造,客户端使用证书锁定技术
如果用户手机中安装了一个恶意证书,那么就可以通过中间人攻击的方式进行窃听用户通信以及修改
request 或者response 中的数据。
手机中间人攻击过程 :
1 )客户端在启动时,传输数据之前需要客户端与服务端之间进行一次握手,在握手过程中将确立双
方加密传输数据的密码信息。
2 )中间人在此过程中将客户端请求服务器的握手信息拦截后,模拟客户端请求给服务器(将自己支
持的一套加密规则发送给服务器),服务器会从中选出一组加密算法与 HASH 算法,并将自己的身份
信息以证书的形式发回给客户端。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信
息。
3 )而此时中间人会拦截下服务端返回给客户端的证书信息,并替换成自己的证书信息。
4 )客户端得到中间人的 response 后,会选择以中间人的证书进行加密数据传输。
5 )中间人在得到客户端的请求数据后,以自己的证书进行解密。
6 )在经过窃听或者是修改请求数据后,再模拟客户端加密请求数据传给服务端。就此完成整个中间
人攻击的过程。
防护办法 :
1 )公钥锁定
将证书公钥写入客户端apk 中,https 通信时检查服务端传输时证书公钥与apk 中是否一致。
2 )证书锁定 :
即为客户端颁发公钥证书存放在手机客户端中,在https 通信时,在客户端代码中固定去取证书信
息,不是从服务端中获取。
3.3. 应用网关具有对应用接口的负载均衡及熔断能力,并可进行失败重试
1 )负载均衡
接口的请求压力有时候会超过单个服务实例的处理能力,这时候我们需要启动多个服务的实例,为了
避免请求压力传导到其中一个实例,我们在网关层面执行轮询策略,即每次请求都分散到不同的服务
实例上。
2 )路由熔断
当我们的后端服务出现异常的时候,我们不希望将异常抛出给最外层,期望服务可以自动进行一降
级。当某个服务出现异常时,直接返回我们预设的信息。
我们通过自定义的fallback 方法,并且将其指定给某个rou
文档评论(0)