安全可靠的3G传输中IP地址的解决方案

安全可靠的3G传输中IP地址的解决方案

1.概述

采用3G网络做为传输方式时,会碰到服务器IP地址不可知的问题。如何解决这个问题,根据实际情况不同的公司或者个人会采取不同的方式。有中间服务器进行中转的方式,有采用绑定域名的方式(如绑定花生壳软件),有借用中间服务器保存服务器IP地址的方式等。各种不同的方式都各有优劣,这边我们提供一种节约成本、易扩展并且开发容易的解决方案。

基本原理图如下:

安全可靠的3G传输中IP地址的解决方案

客户端需要将数据发送到服务器器端,但由于不知道服务器端的IP地址等信息,所以需要通过中间服务器获取目的服务器的IP地址等信息,其实际传输与中间服务器无关。

由于在中间服务器中保存了用户的IP地址等敏感信息,我们对用户提交的信息在提交前会做个简单的加密,也可以支持用户自定义的加密方式,并通过我们的程序进行二次加密,最大限度的保证用户数据的安全性。并且用户保存到服务器端的信息其格式和内容都有用户自己控制。

2.接口说明

提供两个主要的接口:注册用户信息和获取用户信息。在使用这两个接口之前,需要在www.91meican.com网站上注册用户。两个接口所使用的用户名密码即为91meican的登录的用户名密码。

具体格式如下:

/**

* 获取指定用户的IP信息,阻塞式

*@userName 用户名,其长度必须小于

*@password 用户密码

*@registerInfo 注册内容

*@infoLen 注册内容的长度

*@return 注册成功返回TRUE

* 否则返回FALSE

*@remark 该方法虽然是阻塞式的,但如果外部调能够中断它的执行,并且返回FALSE

*/

BOOL RegistUserInfo(char userName[20],char password[20],BYTE* registerInfo,int infoLen);

/**

* 请求用户信息

*@userName 用户名

*@password 用户密码

*@queryUserName 查询的用户名名

*@resultBuff 查询结果接收缓冲区

*@buffLen 缓冲区长度

*@return 查询成功返回获取的字节数

* 失败返回-1

*/

int QueryUserInfo(char userName[20],char password[20],char queryUserName[20] ,char* resultBuff,int buffLen);

其他接口请参考CRegistQueryUserInfo类的声明。

用户的操作过程如下:

安全可靠的3G传输中IP地址的解决方案

如果用户加载动态库不成功调用其他接口,则不操作直接返回,不会有异常出现。

应用实例,我们后面会推出用该方法解决ftp上传的实例。

3.应用场合

注册信息最长512字节,超过则不予保存,返回错误。但这512字节是自由的,不受接口的限制,用户可以组织一些自定义的数据放在服务器上。服务器的作用可以看成是中转,注册用户信息与获取用户信息其实就是传输数据。可以使用在对传输速度没有要求,内容较少的场合下。

1) 传输3G IP信息,使得两端建立通信关系,例如ftp传输;

2) 多使用获取接口,偶尔使用注册接口,用于某些信息的定期更改;

我们特别实现了关于注册与获取接口的代码。请到 http://download.****.net/download/wjh_monkey/5097621 下载。

测试的用户名密码为:

用户名:[email protected]

码:20130227

4.安全性

由于我们对用户数据的格式没有要求,只是要求数据量不能大于512字节,所以用户数据可以自己加密,将密文上传到中间服务器中,然后从中间服务器获取的密文自己解密。并且无论用户上传是数据是什么,我们都会进行一层加密。我们采取的加密方式用户不需关心。 有这样的机制,用户可以放心使用。因为加密之后即使用户数据丢失也不需要担心泄密。

关于加密算法,请关注我们的网站(www.91meican.com),我们后面会推出加密解密库。