前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >📐那些年我们项目中的报文安全实践

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

作者头像
前端小鑫同学
发布2022-12-26 09:37:14
2530
发布2022-12-26 09:37:14
举报
文章被收录于专栏:小鑫同学编程历险记

Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~

背景介绍:

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

重构报文格式:

重构后的报文格式如下由headerrequest两部分构成我们的请求报文格式,响应报文格式类比请求报文。

header中指明请求的业务位置requestType

header报文发送的来源from,主要区别为PC端,Android端,IOS端或H5端。

header报文与服务端协商的固定表示appKey,来保证C端发送的合法性,阻止未知客户端请求。

request中添加接口实际需要的业务数据内容。

代码语言:javascript
复制
{
 "packages": {
     "header": {
         "requestType": "",
         "appKey": "",
         "from": ""
     },
     "request": {
         "uasrname": "",
         "password": ""
     }
 }
}
前端发送报文加密过程:

组装如上格式的报文信息;

request中的JSON对象转为字符串并使用3DES加密算法进行请求数据的加密并将加密后的数据替换原报文的request的内容;

将这个报文JSON对象转字符串后使用加盐的MD5算法进行整体报文的验签生成;

发送加密报文:

我们报文统一采用POST请求方式;

我们使用MD5生成的验签由url携带传递。

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

通过相同的加盐MD5对POST发送来的报文进行再次验签生成与url携带的验签对比,信息一致进行下一步;

解析报文中未加密的header部分来对报文合法做初次筛选,合法后进行下一步;

使用前后端一致的3DES加解密秘钥进行报文解密后交由对应的业务层使用。

原始资料图片:
image.png
image.png
image.png
image.png
总结:

以上加密为半加密处理即只针对报文中的业务数据加密,也可以考虑将header一同加密(全加密);

以上采用的3DES对称加密算法进行加解密,秘钥的安全存储需要着重考虑;

以上采用加盐MD5保证接收前后的报文一致性;

报文安全可考虑的地方还有不少,安全渗透的公司会经常做重放测试等;

加解密也是相对的,破解的事会干也不能干。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍:
  • 重构报文格式:
  • 前端发送报文加密过程:
  • 发送加密报文:
  • 服务端接收报文后解密过程:
  • 原始资料图片:
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档