这篇博客主要介绍笔者做app加密的具体思路

1.浅谈https

https是目前应用最广泛的接口通信加密方式之一了,优点我就不说了(大家自行百度)。

主要的两个缺点 a.有一定的技术门槛 b.花钱(最不想用的东西无非是太难或者太贵)

2.常用的加密算法

1.MD5

2. AES

3. RSA

4.DES (3DES就是用3个不同的秘钥进行3次DES加密)

5.SHA-1

简单地说2和4是对称(能加密能解密)的,1,3,5非对称,1存在暴力破解的可能性,3(公钥只能加密,私钥能加解密)

任何一种加密方式都不是完美的,都有其应用方向,虽然MD5存在暴力破解的可能性,但是在笔者接触的大多数app和web项目中它却是现在应用次数最多的加密方式 . 一般通过增加加密次数来提高安全系数,例如:MD5(MD5(x))

大多数产品提高安全性能的思路之一就是增加犯罪成本,加密也是如此。

3.确认加密的内容

1.  关键信息是否单独加密 例:手机号,身份号,卡号,金额,具体什么是关键信息只能根据业务去判断

2.  是否全报文加密

不采用全报文加密意味着你的接口信息总是暴露的

采用全报文加密会增加服务器的开销,也不能完全保证接口安全

4.简单加密方案

1.在app端生成一个随机码 R

2.用AES+R加密全报文,比如得到加密后全报文data

3.用RSA+公钥加密R,比如得到RR(app不保存R)

4.data+RR

后端解密就是反向操作了,

由于RSA开销远大于AES所以只用RSA加解密随机码,用AES加密报文

5.复杂加密方案

上述的简单加密方案存在一个的风险,由于秘钥不固定不保存,所以一旦发生秘钥解密失败我们就无法获取报文内容。大部分时候当我们受到dos攻击时都是在报文里寻找攻击者的信息,所以大部分系统都不会采用动态的秘钥。

一旦秘钥确定了加上安卓解包,理论上说接口是能破解的,所以接口安全的思路有一部分是在方法调用上设计

1.混淆方法名,将aes加密方法名改成rsa,混淆秘钥名,将aes的秘钥命名为RSA_KEY

混淆各种加密加密方法和秘钥就像郭靖当前写给欧阳锋的九阴真经一样

2.让秘钥更加可控,首先将秘钥分类例如ZMK(主密钥简称Z)MARK(关键信息加密M),TMK(全报文加密T)用不同的秘钥加密不同的信息,秘钥本身也是密文的,存在后端数据库或者缓存,所有秘钥都受到主密钥的保护,主密钥可以设置分量保护。这样在APP端获取密文秘钥后解密成明文秘钥就不是件容易的事了。秘钥可以采用部分永久有效+部分时效性秘钥,当然这和你对系统的安全性要求是一致的,笔者接触过的系统中有一个用户一套秘钥,也有整个系统就一套秘钥。

笔者也是新人,才学疏浅,经验不足,希望多多指正

APP和后端HTTP通信加密思路相关推荐

  1. java服务端开发安全_后端开发:APP与后端交互的安全性

    声明 此文原创,未经允许,禁止转载,可以分享. 最近在做一个项目,是一个APP的后端开发.我需要完成后端框架的建立.数据库设计.后端代码的编写.在这里讲一下APP与后端交互的安全性. 没有AUTH的验 ...

  2. App渗透中常见的加密与解密

    App渗透中常见的加密与解密 2018年10月17日 移动安全 54632 views 前言:本文主要介绍了目前App数据传输过程中几种常见的加密方式,以及一些常规的解密手段,并不涵盖并应对所有情况, ...

  3. 利用stm32+app inventor与esp8266通信

    利用stm32+app inventor与esp8266通信 stm32与esp8266通信 移动端app制作.生成.控制 本章实验的目的是将手机连接上ESP8266提供的WIFI网络,打开自定义的a ...

  4. Zabbix如何实现Server和Agent的通信加密

    一.加密介绍 1.总览 Zabbix版本从3.0之后,开始支持Zabbix server, Zabbix proxy, Zabbix agent, zabbix_sender and zabbix_g ...

  5. java后台开发加密程序_Java后端实现MD5加密的方法

    前言 在我们开发是要考虑这个功能,当用户忘记密码的情况下,我们需要动态的发给他一个6位的随机密码,通过即时通,短信,微信等.并同时修改数据库中的原密码为这6位的随机密码.让用户再去修改密码. 同时在数 ...

  6. php 前端加密密码,WEB前端对应PHP后端的AES加密解密代码

    研究了一阵子,各种翻阅资料测试,今天终于找到了能跟我PHP后端配合解密加密的JS解决方案.代码如下: AES TEST var data = '{"test": "a&q ...

  7. APP与服务器数据传输的加密方式

    APP与服务器之间数据传输加密可采用对称加密(DES)和非对称加密(RSA)两种方式,对称加密是APP和服务器用一个密钥,而非对称加密算法需要两个密钥:公钥(publickey)和私钥(private ...

  8. App渗透中常见的加密与解密。

    随着App移动应用技术 的广泛应用及移动开发技术的飞速发展过程中,移动应用的安全也越来越被得到重视,在App服务端渗透中,我们在抓包时经常会发现App在数据传输过程中做了加密(如图1),以防止数据被查 ...

  9. 通信加密和解密,公钥,私钥,CA

    监听模式:打开ip和端口=套接字 等待别人来连接 为众所周知的服务--固定的端口<1024 客户端程序都是打开一个大于40000 的端口 一个主机与另外主机进程通信过程: 客户端应用层进程本身负 ...

最新文章

  1. sign函数的功能oracle,Oracle中sign函数和decode函数的使用
  2. 【UCHome二次开发】全局变量
  3. 每日一水:HDOJ 1408 盐水的故事
  4. 时间序列 预处理 python_【Python算法】时间序列预处理
  5. 阿里云 腾讯云 服务器挂载数据盘
  6. SpringBoot项目的 log4j漏洞解决—JeecgBoot
  7. Bootstrap学习笔记
  8. python \__class__
  9. 若泽数据 巨人_面部识别巨人拒绝分享有关其算法数据集的详细信息
  10. 网络安全2:各种经典渗透方式合集
  11. java socket 局域网_javase基础socket编程之局域网聊天,局域网文件共享
  12. yolov3安卓实现_Android—yolov3目标检测移植
  13. donet学习笔记10(c#基础)
  14. ios 线条球_画线弹球球游戏下载|画线弹球球ios版下载v1.0.2-乐游网IOS频道
  15. Android 获取/设置:窝蜂移动数据网络状态
  16. 互联网短信网关接口协议
  17. 阿里云 vps云监控插件已停止状态解决方法
  18. 有效学习的6个方法学习方法
  19. vue3.0 引入i18n 做国际化 - 做动态语言切换
  20. (转)爱剪辑学习记录_快速剪辑视频

热门文章

  1. 手写英文单词识别(1)
  2. FastReport for Delphi
  3. zoc7中文乱码问题解决方法
  4. 合力亿捷发布云客服3.0,开启全员客服新时代
  5. 图片怎样加贴纸?这些方法值得一试
  6. jodatime java8交互_Joda-time学习笔记
  7. 桌面计算器The C++ Programming Language程序解析
  8. jointJS系列之一:jointJS的的初步使用
  9. ossec支持mysql数据库_开源入侵检测工具ossec安装配置(HIDS)
  10. Jackson ImmunoResearch通过 SDS-PAGE 进行蛋白质分离