那些年我们项目中的报文安全实践

简介: 那些年我们项目中的报文安全实践

背景介绍:


防止报文被窃取后暴露报文中的关键信息,如用户信息,产品信息,交易信息等敏感内容。报文重放和防止窃取不在这次考虑范围。


重构报文格式:


  1. 重构后的报文格式如下由headerrequest两部分构成我们的请求报文格式,响应报文格式类比请求报文。
  2. header中指明请求的业务位置requestType
  3. header报文发送的来源from,主要区别为PC端,Android端,IOS端或H5端。
  4. header报文与服务端协商的固定表示appKey,来保证C端发送的合法性,阻止未知客户端请求。
  5. request中添加接口实际需要的业务数据内容。
{
    "packages": {
        "header": {
            "requestType": "",
            "appKey": "",
            "from": ""
        },
        "request": {
            "uasrname": "",
            "password": ""
        }
    }
}
复制代码


前端发送报文加密过程:


  1. 组装如上格式的报文信息;
  2. request中的JSON对象转为字符串并使用3DES加密算法进行请求数据的加密并将加密后的数据替换原报文的request的内容;
  3. 将这个报文JSON对象转字符串后使用加盐的MD5算法进行整体报文的验签生成;


发送加密报文:


  1. 我们报文统一采用POST请求方式;
  2. 我们使用MD5生成的验签由url携带传递。


服务端接收报文后解密过程:


  1. 通过相同的加盐MD5对POST发送来的报文进行再次验签生成与url携带的验签对比,信息一致进行下一步;
  2. 解析报文中未加密的header部分来对报文合法做初次筛选,合法后进行下一步;
  3. 使用前后端一致的3DES加解密秘钥进行报文解密后交由对应的业务层使用。


原始资料图片:


1.png2.png


总结:


  1. 以上加密为半加密处理即只针对报文中的业务数据加密,也可以考虑将header一同加密(全加密);
  2. 以上采用的3DES对称加密算法进行加解密,秘钥的安全存储需要着重考虑;
  3. 以上采用加盐MD5保证接收前后的报文一致性;
  4. 报文安全可考虑的地方还有不少,安全渗透的公司会经常做重放测试等;
  5. 加解密也是相对的,破解的事会干也不能干。



相关文章
|
Kubernetes 网络协议 关系型数据库
Kubernetes----ExternalName类型的Service
Kubernetes----ExternalName类型的Service
2736 0
|
Java 关系型数据库 MySQL
Windows用Tomcat发布Java项目
对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以Tomcat服务器发布J2EE项目为例。
291 0
Windows用Tomcat发布Java项目
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
SQL 数据可视化 前端开发
ivx低代码开发平台
低代码开发平台(Low-Code Development Platform, LCDS)为企业和开发者提供了高效的应用开发方式。在2023年,中国的低代码开发平台正在快速发展,以下是其中最受关注的十大平台
594 0
|
机器学习/深度学习 Python
利用Python实现一个简单的机器学习模型:线性回归详解
利用Python实现一个简单的机器学习模型:线性回归详解
480 2
|
缓存 网络安全 Nacos
登录nacos客户端提示no message available
登录nacos客户端提示no message available
|
监控 大数据 数据处理
大数据组件之Storm简介
【5月更文挑战第2天】Apache Storm是用于实时大数据处理的分布式系统,提供容错和高可用的实时计算。核心概念包括Topology(由Spouts和Bolts构成的DAG)、Spouts(数据源)和Bolts(数据处理器)。Storm通过acker机制确保数据完整性。常见问题包括数据丢失、性能瓶颈和容错理解不足。避免这些问题的方法包括深入学习架构、监控日志、性能调优和编写健壮逻辑。示例展示了实现单词计数的简单Topology。进阶话题涵盖数据延迟、倾斜的处理,以及Trident状态管理和高级实践,强调调试、性能优化和数据安全性。
773 4
|
网络协议 架构师 应用服务中间件
Nginx 实战系列之三:Nginx TCP backlog 分析优化和性能相关经验汇总
Nginx 实战系列之三:Nginx TCP backlog 分析优化和性能相关经验汇总
|
存储 PyTorch 算法框架/工具
一文读懂—Pytorch混合精度训练
一文读懂—Pytiorch混合精度训练
875 0