`
jayluns
  • 浏览: 143948 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

移动互联网App客户端服务端通信安全问题。

    博客分类:
  • J2EE
阅读更多

作为一个移动互联网App,天生是需要和服务器通信的。那么,服务器如何识别客户端的身份?我们如何保证数据传输过程中的安全性?要靠两个东西:使用AppKey做身份识别,使用AppSecret校验数据。

这两个东西的定义可以参考淘宝开放平台上这种比较严肃的说法:
AppKey
客户端调用API时的唯一标识,服务器通过App Key来鉴别应用的身份。调用API接口时必须传入的参数。
App Secret
App Secret是服务端给客户端分配的密钥,用来保证应用来源的可靠性,防止请求数据被伪造。

其中,AppKey用来标识客户端的身份,通常保密性没有什么要求。就好比别人知道了我们的名字并不能假冒我们的身份一样。但AppSecret就不一样了。
先说一下App Secret的使用流程。

一个App请求中,通常包含AppKey、业务数据、时间戳等等。我们把这些信息定义为A、B、C。我们要把A、B、C这些信息发往服务器肯定不能直接扔过去,那么毫无安全性可言。通常的做法是把A、B、C和AppSecret(D)一起需要做一个校验,生成一个校验码(sign client),把校验码和A、B、C一起发送给服务器,服务器收到信息后,根据客户端发来的AppKey从数据库中检索对应的AppSecret,然后也同样把A、B、C和AppSecret(D)一起做一个校验,生成一个校验码(sign server)。如果sign client和sign server相同,就证明数据在传输过程中没有被修改过。
可以看出,整个过程中D(AppSecret)和校验过程是旁观者无法得知的。但是校验过程无非就那么几种算法,很好破解。所以说,AppSecret的保密工作就很重要了。

怎么做好AppSecret的保密工作呢?
写在代码里?Java很好编译呢。
做为资源文件?更二。
去服务器请求?请求过程会被劫持噢。
目前,最简单有效的办法还是打到.so库中。

本文转自http://blog.csdn.net/a345017062/article/details/8643870

分享到:
评论

相关推荐

    Java微服务架构l零从基础到精通高清视频教程全套 163课

    138 客户端与服务端通信-解决跨域问题 139 Redis 为数据添加缓存-Redis HA 简介 140 Redis 为数据添加缓存-Redis Sentinel 高可用集群部署 141 Redis 为数据添加缓存-Redis 客户端的使用 142 Redis 为数据添加缓存-...

    Java微服务架构163课

    138 客户端与服务端通信-解决跨域问题 139 Redis 为数据添加缓存-Redis HA 简介 140 Redis 为数据添加缓存-Redis Sentinel 高可用集群部署 141 Redis 为数据添加缓存-Redis 客户端的使用 142 Redis 为数据添加...

    基于移动终端的WIFI签到系统

    本系统旨在基于移动设备WIFI环境下解决学生签到,教师查询考勤记录,发布公告等问题。本课题研究成果如下: (1)通过调查研究发现便捷,低成本的移动设备主要趋向于安卓智能设备。尽管Apple iPhone 系列吸引了广大...

    腾讯游戏APP协议迭代的那些事1

    背景在移动客户端开发中,基本都会需要与服务端进数据交互。对于一般的App来说,通过http请求,采用json格式的文本协议进数据通信也就基本满足需求。在业务断增

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (3)针对页面自适应问题,本文结合渐进增强以及拥抱流式布局的思想,同时研究利用了移动设备的视口特性,实现跨分辨率、跨设备的页面自适应。 (4)针对系统的功能实现问题,通过结合利用原生态框架与HTML5的跨平台...

    基于手机远程控制电脑应用

    您还在为把重要文件遗忘在电脑中不知所措吗,还在为孩子偷偷上网玩游戏无可奈何吗,还在为电脑在不知情情况下被别人使用安全惴惴不安吗? 手机远程控制电脑软件将帮您解决以上所有问题,更多精彩应用,尽在手机远程...

    安卓毕业设计app源码-EyeTracker:眼动仪

    安卓毕业设计app源码 ...实现服务端,利用socket实现windows系统pc与android设备连接通信,涉及网络编程。 根据模型识别眼动精度调整具体交互方式。 参考文献 Krafka K, Khosla A, Kellnhofer P, et

    基于Workerman 改写的简化版 用于开发基于 Socket 的 HTTP Server.rar

    支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持 TCP 长连接,支持Websocket、HTTP等协议,支持...

    Jitsimeet.apk

    Jitsi Meet, Jitsi Videobridge, Jitsi 移动安卓客户端. 官网地址: https://jitsi.org/ 官网demo地址: https://meet.jit.si/ Github地址: https://github.com/jitsi Github推荐指数: 1678(star...

    wireless_controller.apk

    基于OURS PXA270平台的小区安防系统包括嵌入式终端的客户端软件,负责收集节点信息,将信息上传到值班室的PC服务端,并通过移动通信模块将现场信息发送到用户手机上,用户通过手机APP进行互动,并通过手机短信对终端...

    自己的手机或者AndroidStudio的虚拟机怎么连上电脑端的Tomcat服务器

    那如果我们想在客户端连接到自己电脑上的Tomcat服务器并显示这样的界面,应该怎么做呢? 不管是自己的手机还是AS里面的虚拟设备,我们首先都要知道自己PC的IP地址。 Win+R输入cmd打开windows命令行,输入ipconfig,...

    KODExplorer 芒果云-资源管理器

    - 取代FTP,服务端、客户端软件等复杂的安装配置。kod可以一键安装随处使用. - 你可以用它来管理你的服务器(备份,在线解压缩,版本发布....) - 你可以把他当做管理linux的一个操作系统界面 - 可以用来作为私有云...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

    Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...

    asp.net知识库

    如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值在2个页面之间 :要求不刷新父页面,并且...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics