简易移动应用数据加密方案

不想巴拉巴拉一大堆关于移动端应用泄露用户数据的问题,所以直接上干货,一贯风格,只有文字!

对于移动端应用的数据加密,严格来讲并没有太好的办法,一是移动设备计算能力不足,撑不起比较复杂的加密解密算法,另一个是实际上信息泄露大多数是在由移动设备与带有恶意的设备组成的内网中,而目前的解决方案针对内网的信息泄露基本无解,毕竟千防万防,家贼难防,故而明明pc端有非常好用的解决方案妈蛋就是无法移植到移动端来。(请无视掉那些特殊目的而开发的应用,本文讲昂的是普通应用)

实际上针对移动端的应用分析来看,移动端实际上做的大部分工作都是调用接口,然后有些接口做的比较丧心病狂的传输的是明文数据,这还有什么秘密可言,尽管系统做得安全无比,但我压根就不需要去碰系统,我只要拦截传输的数据就行了,实际上,大部分的移动端信息泄露都是这么来的。

对此,有好的解决办法没?有,那就是开发一种超级复杂的加密算法,然后对传输的传输的数据进行加密,这里面的原理并不复杂,所以本文不对这种办法进行过多的介绍,仅提供一种通用性的加密算法: 减法替换法

减法替换法,其实非常简单,采用的是key-vaule对应的算法,即每一个用户都拥有一对密钥,分为公钥和私钥,服务端和客户端都保存有该公钥和私钥,具体生成的话没什么要求,这里仅提出一个范例:40个字符组成的密钥对,即公钥和私钥都是40个字符长度。在通讯过程中,客户端先将要传输的数据打包处理,处理成一个连续的字符串,然后拿这个字符串去对私钥进行减法操作,注意,因为私钥只有40个字符,所以长度肯定不够,那么循环吧,先从头减到尾,然后再从尾减到头还是重头再来可以随意,当然,做减法的过程中可能会产生溢出,这就要求有这么一个文件记录溢出情况,当然,这也不是问题,加上溢出文件就是的了,然后加上公钥,打包交给tcp/ip协议打包然后发送给服务端,服务端接收到完整的数据后解密,服务端发给客户端的数据也是一样的,同样的加密过程,客户端也是同样的解密过程,不同的是服务端采用的不是统一的秘钥对,而是采用用户的密钥对,这也是为什么在数据包中附加上公钥的原因

以上就是简单的加密过程,优点是数据包加密性比较强,被解开的可能性非常小,缺点是资源消耗比较高。当然,脑洞打开的我怎么可能只会有一种解决办法,针对上面的办法的优缺点,提出了另外一种解决办法:vpn数据包隧道会话方案!

vpn这个东西是个好东西啊,简直是21世纪中国程序猿必备工具,而且这货自带加密算法,虽然这个算法安全性不怎么样,但总比裸奔要强,而且这个加密算法不用我们去设计,可以直接拿来用(这大概是我们广大程序猿最喜欢干的事了);但是,vpn有个问题,那就是这货建立的是ip地址与ip地址间的通道,而且要授权,这样在pc端还好,但到了移动端却是个麻烦,因为我们不可能让整个移动设备的网络资源给一个应用。但是呢,网络资源尽管共享,但在某一时刻,其实是独享的,只不过因为独享的时间非常短,造成共享的错觉,这也就为我改造vpn技术提供了可能性:我可以去掉认证环节,去掉一切所有不必要的环节,仅保留对数据包加密和点对点通道的能力,这样不就ok拉!当然,这样还不行,可以预计的是,尽管我只需要点对点通道的能力,但构建点对点通道是需要时间的,所以我将点对点通道做成开放式通道,这样任何ip地址都能连接过来。

于是,这样一个怪异的vpn被构建出来:不需要认证,任何人都可以连接!这样还不够,还得改,我们知道,网络尽管在我们看来是连续的,但实际上是一个一个的数据包,于是,我们可不可以将vpn的基于ip地址改成基于数据包?貌似可行!如果能够做到只vpn的通道在需要的时候迅速建立,然后发送完数据包后就断开,这样就完美了!可以吗?可以!我们可以这样做:

现在有一台vpn服务器,开放的,这时客户端要发送数据,于是给服务器打给招呼:哥们,注意啦,我要发送数据啦,你给我开个通道咯,然后服务器与客户端建立了vpn的通道,这时,数据传输准备就完成了,接下来客户端照常传输数据,因为拥有了vpn,这时走的是vpn,自然,数据就被加密过了,然后客户端数据发送完了,又给服务端打给招呼:哥们,我数据传完了,你给断开吧,然后服务器就认为这个会话已经完成,将断开这个通道。

于是,移动端数据加密算法完成了。

好吧,我承认写得不好,也没有图来说明,看起来有点看不懂的样子,但是,谁来告诉我怎么上图来着?

时间: 2024-10-16 15:32:40

简易移动应用数据加密方案的相关文章

iOS 数据加密方案

提交用户的隐私数据 一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中服务器的访问日志是黑客攻击的重点对象之一 用户的隐私数据登录密码银行账号- - 数据安全 仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交 常见的加密算法 MD5 \ SHA \ DES \ 3DES \ R

(转)简易WCF负载均衡方案

最近跟高老师讨论nginx跟tomcat集群做负载均衡方案.感觉很有意思.想到自己项目中服务用的WCF技术,于是就想WCF如何做负载均衡,Google了一会,发现wcf4.0的路由服务好像可以实现.不过在研究路由服务期间,我有了个自己的方案,哈哈. 我要在客户端跟WCF服务中间部署一台WCF平衡服务器,用来分发请求,模拟nginx的工作. WCF平衡服务器我同样用WCF来实现,所有服务接口全部通过平衡服务区暴露给客户端.对于客户端来说,只要跟正常调用服务一样,添加平衡器的远程服务引用. 实现:

javascript生成表格增删改查 JavaScript动态改变表格单元格内容 动态生成表格 JS获取表格任意单元格 javascript如何动态删除表格某一行

jsp页面表格布局Html代码 <body > <center> <input type="text" value="111" id="mytext"> <table border="1" width="60%" id="mytable"> <tr> <td id="td1">第一行第一列<

HTTPS连接的前几毫秒发生了什么——Amazon HTTPS案例分析

转自: http://blog.jobbole.com/48369/ 提示:英文原文写于2009年,当时的Firefox和最新版的Firefox,界面也有很大改动.以下是正文. 花了数小时阅读了如潮的好评,Bob最终迫不及待为他购买的托斯卡纳全脂牛奶点击了“进行结算”,然后…… 哇!刚刚发生了什么? 在点击按钮过后的220毫秒时间内,发生了一系列有趣的事情,火狐浏览器(Firefox)不仅改变了地址栏颜色,而且在浏览器的右下角出现了一个 小锁头的标志.在我最喜欢的互联网工具Wireshark的帮

iOS开发 - 网络数据安全加密(MD5)

提交用户的隐私数据 一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中服务器的访问日志是黑客攻击的重点对象之一 用户的隐私数据登录密码银行账号- - 数据安全 仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交 常见的加密算法 <code class="hljs tex&q

我的Android进阶之旅------&gt;Android采用AES+RSA的加密机制对http请求进行加密

前言 未加密的抓包截图 加密之后的抓包截图 基本需求及概念 AES算法 AES基本原理及算法流程 AES算法流程 RSA算法 RSA算法基本原理及流程 RSA算法实现流程 AES与RSA相结合数据加密方案 Android端 AESRSA结合实践 基本要求 基本流程 Android端 服务器端 java版示例 更多参考 前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fidd

2017上半年技术文章集合【Android】—184篇文章分类汇总

地址: http://blog.csdn.net/androidstarjack/article/details/77923753 声明 | 本文是于亚豪 原创 终端研发部 前言: 2017年已经过大半,公众号里技术文章整理和归类了一下,方便给大家查找和阅读.这也是目前 发文的一个统计. View篇: 高级UI特效之酷炫抢红包金币下落动画 一个超级方面的用户指引view-App实现用户指引就是如此简单 让View像粒子一样自由运动 手把手教你实现RecyclerView实现上拉刷新功能 高级UI

毕设参考文献

篇一 [1] 李刚彪. 数据库加密技术的研究与实现[D].太原理工大学,2010:18-78. [2] 杨云君. Android 的设计与实现[M]. 北京:机械工业出版社,2013:5-65. [3] 秦明甫. 基于混沌理论的数字图像加密研究[D].重庆大学,2009:34-48. [4] 柯元旦. Android 内核剖析[M]. 北京:电子工业出版社,2011:67- 98. [5] 李刚. 疯狂 Android 讲义[M]. 北京:电子工业出版社,2013:12-87. [6] 吴明航.

Androidhttp请求加密机制详解

Android开发中,难免会遇到需要加解密一些数据内容存到本地文件.或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击.还有很多开发者没有意识到的加密算法的问题. 1.需要了解的基本概念 密码学的三大作用:加密( Encryption).认证(Authentication),鉴定(Identification) 加密:防止坏人获取你的数据. 鉴权:防止坏人假冒你的身份. 明文.密文.密钥.对称加密算法.非对称加密算法,