下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微信⼩程序应⽤安全分析及设计针对微信关于⼩程序安全设计的分析针对微信⼩程序开发配置及部分配置机制分析微信⼩程序安全设计:AppSecret管理员⽣成AppSecret,在与微信后台交互过程中部分接⼝使⽤,如auth.code2Session获取会话密钥session_key安全分析AppSecret维护必须为⼩程序管理员维护,默认微信侧管理安全Tips:AppSecret的保存需作为后台应⽤安全设计的考虑项。session_key通过⼩程序获取客户敏感信息时需使⽤会话密钥对数据进⾏解密,详见安全分析session_key获取需后台获取,依赖于AppSecret、⼩程序wx.login操作⼩程序组件获取敏感信息需获取客户明⽰同意,且获取信息为加密信息,加密信息解密需后台通过session_key解密,session_key获取依赖AppSecret服务器域名添加服务器域名⽩名单,必须通过ICP备案且为HTTPS,设置后⼩程序可与该域名进⾏信息交互Tips:⼩程序imagesrc不受服务器⽩名单限制。安全分析即使⼩程序内采⽤不安全的JS组件(如通过NPM导⼊开源组件)也可控制请求链路限制信息外泄,将不安全限制在⼩程序内常规WEB不安全组件,获取页⾯敏感信息后通过构造script、image等标签发起⽹络请求,传输⾮法数据,微信⼩程序通过域名⽩名单机制,结合⼩程序不⽀持通过JS动态WXML构造image等标签,即使组件获取到信息通过⽹络请求向外推送强制HTTPS确认通讯通道安全从传输通道控制信息外传风险。Tips:未来⼩程序是否⽀持类似于JS操作DOM⽅式通过JS动态修改WXML不可预知,若⽀持可能会引⼊其他的安全设计。⽹络下仍可被抓包查看,接⼝权限控制、敏感数据保护等仍需通过应⽤安全设计控制。版本管理版本提交可设置提交版本IP⽩名单,限制访问策略安全分析通过该机制防⽌APPID丢失时恶意修改代码上传开发安全提供官⽅微信开发者⼯具,保证开发⼯具安全通过以上提到的开发配置及⼩程序机制结合分析,微信针对⼩程序准备了前端应⽤基础环境的安全保障,⼩程序开发者主要需要关注应⽤安全设计,如接⼝权限控制、敏感数据保护等,接下来需要考虑如何防范⼩程序基础环境外的安全保护。微信⼩程序应⽤安全考虑点针对以上分析,在⼩程序基础环境安全体系内,⾸先需要开发⼈员关注点包括两部分:1、不安全⽹络HTTPS抓包,交易敏感信息明⽂传输HTTPS抓包分析HTTPS抓包主要通过代理软件欺骗客户端隐藏真实服务端、伪造客户端访问后台服务⽅式实现HTTPS报⽂抓取,如BurpSuiteProxy,通过代理模拟服务端证书抓包在HTTPS抓包下,服务端被伪造,暴露交易明⽂,故需通过合理的安全设计防范被抓包后的敏感信息泄露,个⼈考虑可以参考HTTPS握⼿机制,模拟敏感信息会话密钥交换,保护交易报⽂敏感信息敏感数据传输设计⾸先可了解⼀下HTTPS握⼿机制接下来对⼩程序敏感数据传输进⾏讨论:参考HTTPS握⼿过程,计划采取同样⽅式完成敏感信息会话密钥交换基础1.⼩程序内置RSA公钥,服务端留存RSA私钥2.⼩程序内置RSA加密算法、AES加解密算法、AES随机密钥⽣成算法、BASE64算法、SHA256算法会话密钥交换1.AES随机密钥⽣成算法⽣成会话密钥,⼩程序保管会话密钥2.RSA算法通过内置RSA公钥加密会话密钥,⽤于会话密钥明⽂传输3.wx.login获取loginCode作为密钥交换时的签名验证信息部分原⽂4.对loginCode+会话密钥SHA256HASH算法计算会话密钥交换握⼿摘要信息,⽤于后台验证密钥传输是否安全5.拼接会话密钥交换握⼿信息,格式为loginCode|sha256(loginCode+会话密钥)6.采⽤会话密钥加密握⼿信息,格式为aes(握⼿信息)7.组装会话密钥交换报⽂,与后台通讯交互进⾏密钥交换,格式为:{"client_hello":"握⼿信息","secret":"rsa加密完的会话密钥"}8.后台接受报⽂,解析报⽂,并验证会话密钥交换是否有效,验证⽅式如下:a.后台应⽤内置RSA私钥解密获取会话密钥明⽂b.通过会话密钥解密握⼿信息获取握⼿明⽂c.对解密完成的明⽂进⾏校验签名信息是否正确,获取明⽂窜loginCode及会话密钥通过sha256计算签名信息,判断是否与客户端上送⼀致d.⼀致情况下对loginCode与微信服务端进⾏转换,调⽤服务端APIauth.code2Session接⼝校验loginCode是否有效e.会话密钥校验成功,后台⽣成会话标识,⽤于后续敏感信息传输时标识会话信息安全接⼝设计1.通过上述会话密钥交换机制,完成了安全接⼝的基础保障2.在具备会话密钥后,设计安全接⼝交互保障敏感信息,设计流程如下:a.前端⽣成交易明⽂json_datab.组织安全接⼝报⽂,包含要素:会话标识s_session_key来源为密钥交换成功后服务端响应给客户端的会话标识交易时间戳s_time_stamp交易数据密⽂s_data来源为aes(json_data)aes加密密钥为会话密钥交易报⽂摘要s_mac来源为sha256(会话密钥+json_data+s_time_stamp)c.后台报⽂解密及验证,验证流程如下:根据s_session_key获取会话密钥-->解密s_data获取交易明⽂-->服务端计算s_mac_server(获取服务段留存会话密钥及报⽂时间戳,按照前端算法及明⽂拼接⽅式⼀致计算)-->⽐对计算结果设计分析通过敏感信息会话密钥机制,可以保护交易敏感数据不被泄露,分析如下:1.内置RSA公钥,客户端仅包含RSA公钥,在会话密钥交换过程成只有服务端留存有RSA私钥,故即使抓包,会话密钥也⽆法被截取2.采⽤微信loginCode作为会话密钥交换时的验证因⼦,这样后台会话密钥交换成功时通过loginCode与微信后台进⾏接⼝交互,确保会话交互时是通过⼩程序官⽅⽣成的会话,通过微信接⼝获取到OpenId留存会话,⽤于后续会话权限控制使⽤3.s_session_key会话标识后台未采⽤随机算法⽣成,通过sha256(UUID+会话密钥)保证不可预知2、安全参数保护针对以上内容,在应⽤程序中存在⼀个风险点为应⽤程序敏感配置泄漏,故需针对敏感配置进⾏保护敏感配置包括:AppSecret、RSA私钥等其他需保护的配置信息⽅式1:对配置⽂件进⾏加密保护,防⽌直接泄漏,但是在使⽤过程中仍需应⽤程序解密。⽅式2:采⽤Vault或类似⽅案存储敏感参数,仅了解可通过该⽅式实现,具体实现⾃⾏学习。针对以上设计,已开发程序Demo上传⾄Gitee通⽤WEB安全设计以上安全设计仅对基础环境、通讯链路、通讯报⽂进⾏安全防护,针对WEB应⽤通⽤安全设计,需再⾏扩展。权限控制:⾝份标识与数据范围绑定,限制操作数据范围⾝份标识不可信任客户端,由服务端维护操作中鉴定每个⾝份字段域与当前⾝份⼀致客户端不可信:⼀切客户端请求源数据不可信任,数据格式不可信任,数据内容不可信任防重放:对交易进⾏数据标记,同标记控制交易重放注⼊攻击:SQL注⼊,Mybatis框架#{}参数可以防范XSS注⼊:任意客户端上送信息需进⾏转码存储及展⽰Tips:常见防护原则包括:最⼩授权、客户端不可信。推荐读《⽩帽⼦讲web安全》应⽤安全审计简介有安全设计,才有安全审计审计需准确每⼀笔请求记录操作时间、操作⼈、⾏为、操作数据。总结web应⽤安全涉及⽅⽅⾯⾯,包括⽹络安全、应⽤安全、系统安全等,开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东省阳江市幼儿园教师招聘笔试参考试题及答案解析
- 2026年安徽省蚌埠市幼儿园教师招聘考试备考题库及答案解析
- 2025年衡阳市雁峰区幼儿园教师招聘笔试试题及答案解析
- 2026年安徽省池州市街道办人员招聘考试模拟试题及答案解析
- 2026年河北省邯郸市幼儿园教师招聘笔试备考题库及答案解析
- 2026年福州市晋安区街道办人员招聘考试备考试题及答案解析
- 2026年自贡市自流井区街道办人员招聘笔试参考试题及答案解析
- 2026年吉安市吉州区网格员招聘笔试模拟试题及答案解析
- 2026年黑龙江省哈尔滨市幼儿园教师招聘考试备考题库及答案解析
- 2025年南昌市东湖区幼儿园教师招聘笔试试题及答案解析
- 2025年下半年浙江杭州市萧山区国有企业招聘人员笔试历年参考题库附带答案详解
- 2026年70周岁以上驾驶人三力测试模拟题
- 2026年4月23日四川省宜宾市五方面人员选拔笔试真题及答案深度解析
- 2025年四川省从“五方面人员”中选拔乡镇领导班子成员考试历年参考题库含答案详解
- GB/T 17498.6-2026室内固定式健身器材第6部分:跑步机附加的特殊安全要求和试验方法
- Costco开市客数据应用研究
- 2026宁夏农垦酒业有限公司社会招聘3人备考题库及答案详解(名校卷)
- 高低压开关柜投标文件技术标
- 新高考教学教研联盟(长郡二十校)2026届高三年级4月第二次联考英语试卷(含答案详解)
- 基于组态王停车场智能监控方案介绍
- 攀枝花市2026年春季人才引进(484人)笔试备考试题及答案解析
评论
0/150
提交评论