安全产品手机客户端技术方案.docx
- 文档编号:6135703
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:25
- 大小:366.02KB
安全产品手机客户端技术方案.docx
《安全产品手机客户端技术方案.docx》由会员分享,可在线阅读,更多相关《安全产品手机客户端技术方案.docx(25页珍藏版)》请在冰点文库上搜索。
安全产品手机客户端技术方案
安全产品SVN手机客户端
技
术
方
案
修订历史
版本
日期
作者
审核
说明
1.0
20010-7-29
许榆晗
刘忠柱
根据HS项目需求提供的技术方案
1.范围
本方案适应HS公司委托青犀科技有限公司开发的安全产品SVN手机客户端。
本方案主要描述SVN手机客户端产品的系统功能、性能、接口、网络、协议及安全等机制的原理和解决方案。
本方案可作为委托方和被委托方评估其项目合作可行性的技术性输入文档,读者为系统架构师、技术专家、项目经理、需求分析师及其利益相关者。
2.
引用标准、协议
VRP
VPN
SVN
SSL
SSLVPN
OpenSSL
虚拟网卡
3.
定义
VRP:
(VersatileRoutingPlatform通用路由平台),是HW公司具有完全自主知识产权的网络操作系统,可以运行在多种硬件平台之上并拥有一致的网络界面、用户界面和管理界面,为用户提供了灵活丰富的应用解决方案。
VPN:
(VirtualPrivateNetwork虚拟专有网络),被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。
虚拟专用网是对企业内部网的扩展,可以把它理解为虚拟出来的企业内部专线。
SVN:
HS安全接入网关----系列产品名称,具备优秀的系统安全性和可靠性,是企业VPN网络建设的最佳方案之一。
SSL:
(SecureSocketsLayer),它是由Netscape公司开发的一套Internet数据安全协议,当前版本为3.0。
它包括:
服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。
对于内、外部应用来说,使用SSL可保证信息的真实性、完整性和保密性。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
SSLVPN:
指采用SSL(SecuritySocketLayer)协议来实现远程接入的一种新型VPN技术,与复杂的IPSecVPN相比,SSL通过简单易用的方法实现信息远程连通。
OpenSSL:
为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。
整个OpenSSL软件包大概可以分成三个主要的功能部分:
密码算法库、SSL协议库以及应用程序。
虚拟网卡:
用软件模拟网络环境,能够模拟成有VPN的网卡,可以直接从公司外部连接到内部的VPN服务器上,进而存取公司内的各项服务。
4.
背景
互联网Internet的迅速普及,企业信息化建设的日益完善,企业面对远程接入的需求越来越丰富,如何安全、便捷、高效的实现企业内网IT信息系统的安全访问,使得企业分支机构、出差员工、合作伙伴、客户等能够及时地获取所需的重要信息,成为企业IT部门进一步提升IT效率面临的关键问题之一。
HS公司针对上述问题推出大容量高可靠SSL/IPSecVPN安全接入网关SVN3000。
SVN3000通过支持SSLVPN功能为企业出差员工、合作伙伴、企业客户等终端,提供安全易用、易管理的远程接入方式。
同时支持IPSecVPN功能,支持低成本的远程分支机构间互联。
SVN3000基于HS专业的高可靠硬件平台,采用专业实时的操作系统,具备优秀的系统安全性和可靠性,是企业VPN网络建设的最佳方案之一。
SVN架构图
而随着当今全球移动业务异常迅速的发展,实现移动终端的安全接入、移动通信的安全传输是智能移动终端普及和移动业务扩展的重要环节。
以保证移动数据安全交换为目的,针对移动终端接入企业内网所面临的安全问题,HS提出了安全移动解决方案:
SVN手机客户端----通过支持SSLVPN功能为企业分支机构、出差员工、合作伙伴、企业客户等终端,提供安全易用、易管理的远程接入方式。
在不用改变现有网络结构,通过强有力的访问控制能力,达到使移动用户轻松访问公司内部核心资源的目的。
SSL/IPSecVPN
4.1.系统架构图
SVN手机客户端系统采用了分层的架构。
从高到低分为三层:
应用程序层APP、操作系统适配层SCOS、底层操作系统OS和物理层。
系统架构图
核心适配层SCOS屏蔽了不同操作系统之间的差异,对外暴露统一的接口,使上层用户不必关心底层的实现细节,而将精力专注于本身的应用。
4.2.系统分析
5.
Symbian平台
5.1.Symbian平台介绍
平台架构图
5.2.业务功能需求答复
序号
功能需求
Symbian
功能
青犀答复
(S60V3、V5)
1
底层适配-任务管理
是
生成、删除任务等,同时支持上层的任务调度算法
满足
参考WindowsAPI:
CreateThread
TerminateThread
SuspendThread
ResumeThread
GetCurrentThreadId
SetThreadPriority
GetThreadPriority
3
底层适配-内存管理、分配
是
提供内存分配和管理接口
满足
4
底层适配-信号量
是
参考WindowsAPI:
满足
CreateSemaphore//创建信号量
CloseHandle//关闭信号量
ReleaseSemaphore//把信号量加1
WaitForSingleObject//等待信号量
5
底层适配-等待队列waitqueue
是
任务挂接在等待队列上,配合信号量一起使用。
等任务被阻塞在semaphore上,则先挂接到waitqueue上;等唤醒后,再从waitqueue上剔除。
满足
6
底层适配-时钟,系统时间
是
得到cputick,此tick的精度要求为每秒10^9次方cputick
满足
参考WindowsAPI:
GetSystemTimeAsFileTime得到100-nanosecond级别的系统时间
7
底层适配-缓冲区队列
是
满足
8
底层适配-消息包
是
普通消息,紧急消息(插到队列前部),立即消息(直接回调)
满足
9
底层适配-文件系统
是
文件操作,目录操作
满足
10
底层适配-SocketAPI封装
是
支持阻塞、非阻塞以及所有选项。
满足
参考WindowsAPI:
包括但不限于:
accept()bind()closesocket()connect() getpeername()getsockname()getsockopt()htonl() htons()inet_addr()inet_ntoa()ioctlsocket() listen()ntohl()ntohs()recv() recvfrom()select()send()sendto() setsockopt()shutdown()socket()gethostname() gethostbyaddr()gethostbyname() getprotobyname()getprotobynumber() getservbyname()getservbyport()
14
底层适配-SSL通信
是
提供Openssl相同的接口
满足
15
底层适配-字符集转换
是
Gbk,utf8,big5,宽字符,窄字符等的互转,支持Unicode编译模式
满足
14
底层适配-线程优先级管理
是
Sleep、
满足
开启、关闭thread抢占的功能(可选)
15
虚拟网卡
否
提供类似于OpenVPN的虚拟网卡特性
16
路由管理接口
否
提供路由管理接口
17
SVNL3VPN客户端功能
否
提供与HSSVN网关对接的SSLVPN网络扩展客户端功能以及组件库(支持与第三方程序集成),网络扩展特性即根据访问控制策略控制基于IP业务的第三方应用软件进行VPN加密访问
5.3.技术实现方案
5.3.1.代码移植
将
5.3.2.基础模块封装
5.3.3.线程管理
5.3.4.信号量管理
5.3.5.消息队列
5.3.6.Socket封装
5.3.7.OpenSSL接口封装
5.4.开发计划
迭代一
8月,完成需求定义与讨论技术方案设计,完成接口封装和PC端代码移植,配合8月底演示任务。
迭代二
9月,稳定、优化,继续未完成的需求。
保证9月底给出更加稳定版本。
迭代三
10月,对Demo版本进行优化,调试,完成遗留需求,对产品进行商用化。
迭代四
11月,对Demo版本进行优化,调试,对产品进行商用化。
迭代五
12月,调试产品,解决BUG,保证产品商用化,配合验收。
6.
iPhnoe平台
IPhone系统采用了分层的架构。
从架构图看,iPhone分为四层,从高层到低层分别是应用程序交互层、媒体库服务、系统核心服务和BSDUNIX核心层。
系统分层的架构
6.1.应用程序
本项目中应用程序包括移植HSSCOS移植到iPhone平台组件、SVN客户端在iPhone平台上的实现和SSL业务运行代码。
6.1.1.应用程序框架
开发人员以封装SCOS平台接口的API、移植SVN代码为主;应用程序实现以SVN客户端框架设计为主,以MVC开发模式为辅,代码结果大体分为如下几个模块:
Ø视图(Views):
用来构建应用程序。
Ø委托管理器(DelegateProviders):
提供界面以及控件的事件委托处理机制。
Ø资源管理器(ResourceManager):
提供非代码资源的访问。
Ø通知管理器(NotificationCenter):
在状态栏中显示自定义的提示信息。
6.2.系统运行库
iPhoneOS包含大量framework库,为开发者提供简洁易用的核心功能,以下是一些核心库:
ØUikitframework:
系统自带的功能全面丰富的UI控件集。
ØCoreData:
对各种数据类型进行支持,包括自行设计。
ØFoundation:
iPhoneOS的基础性框架,提供各类基础性程序结构。
。
ØCFNetwork:
系统自带的网络模块
Ølibssl:
提供自带的openssl支持
Ølibstdc++:
提供对大量纯C代码库,IO支持。
ØSQLite:
一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
6.3.iPhone开发工具
6.3.1.xcode+SDK
手机开发者可以使用iPhoneSDK开发iPhone应用程序,iPhone应用程序使用Object-C语言编写并运行在模拟器或手机上。
SDK版本较近的有3.13,3.2,4.0。
6.4.业务功能点详述
6.4.1.任务管理&线程优先级管理
功能描述:
生成、删除任务等,同时支持上层的任务调度算法。
技术实现:
此功能利用系统自带NSThread线程函数,可以封装接口实现此功能。
系统同样提供初始化线程init,启动线程start,暂停线程stop,设置线程优先级setThreadPriority等函数。
难点:
此接口实现为重中之重,对接口代码的内存管理,异步处理,各类线程管理都有着较高的要求。
需要投入较多时间反复测试应用。
6.4.2.内存管理、分配
功能描述:
提供内存分配和管理接口。
技术实现:
此功能利用系统自带内存管理机制实现。
iPhoneOS系统提供alloc,release,autorelease等等强大的内存管理机制,并且兼容C语法。
6.4.3.信号量
功能描述:
多线程情况下,提供对象操作的控制
技术实现:
此功能已经自带@synchronized关键字,来提供类似信号量的一个功能。
我们将会利用此功能,来封装一个信号量的函数接口。
难点:
信号量的标准操作,与iPhone自带的synchronized的功能点都在于信号的控制,但是侧重点一个在于判断信号数值来选择性执行线程代码,一个在于直接用synchronized直接锁定代码块。
6.4.4.等待队列waitqueue
功能描述:
任务挂接在等待队列上,配合信号量一起使用。
等任务被阻塞在semaphore上,则先挂接到waitqueue上;等唤醒后,再从waitqueue上剔除。
技术实现:
此功能系统自带NSOperationQueue极其类似功能要求,能够配合信号量将阻塞的入列,并且唤醒再执行。
需要重新封装部分功能接口,此功能点将会与线程,信号量,同时开发完成。
难点:
此等待队列实现机制难点在于,如何跟封装后的线程类进行衔接操作。
6.4.5.时钟,系统时间
功能描述:
得到cputick,此tick的精度要求为每秒10^9次方cputick
参考WindowsAPI:
GetSystemTimeAsFileTime得到100-nanosecond级别的系统时间
技术实现:
此功能系统自带NSDate可以实现读取系统时间,硬件所能达到的精度为50~100milliseconds。
6.4.6.缓冲区队列
功能描述:
FIFO的功能实现缓冲区。
技术实现:
此功能系统暂无类似功能,需要使用代码移植实现。
实现流程图如下。
缓冲区队列实现流程图
6.4.7.消息包队列
功能描述:
普通消息,紧急消息(插到队列前部),立即消息(直接回调)
技术实现:
此功能系统暂无类似功能,由于Microsoft消息队列功能是用来保证进程间通信,而在iPhone上只需要实现线程间通信即可。
所以需要使用代码移植实现线程间消息包队列功能。
满足普通消息机制,并且实现紧急消息及立即消息。
iPhone编程,支持纯C代码实现。
因而可以借鉴linuxIPC实现机制代码。
消息包设计流程图如下:
消息包设计流程图
重点:
此功能实现重点在于代码的重用性,保证消息队列稳定,高效运行。
6.4.8.文件系统
功能描述:
文件操作,目录操作
技术实现:
此功能系统提供相当多的API,例如NSFile,NSDictionary,等等,提供全部的文件系统,文件创建访问修改等等操作。
6.4.9.SocketAPI封装SSL通信
功能描述:
支持阻塞、非阻塞以及所有选项。
支持UDP,TCP全操作。
技术实现:
此功能系统提供NSStream,CFNetowork,BSDTCP/IP各类操作,基本可以完成全部的操作。
我们将把系统自带的stream流式SOCKET接口,转为标准SOCKET操作接口。
其中,我们将同时实现SSL/TLS等功能。
难点:
此模块难点在于,如何将一个优化后简洁的流式IO操作的SOCKET,变为标准socket接口。
另外socket默认支持的ssl若与HS方要求不一致,将需要另开发openssl组件。
6.4.10.字符集转换
功能描述:
Gbk,utf8,big5,宽字符,窄字符等的互转,支持Unicode编译模式
技术实现:
此功能系统提供encode各类转换器,支持UTF8,GBK,BIG5等等数百中字符集,各类转化。
我们将会标准化实现各类字符集转换。
6.4.11.SVNL3VPN客户端功能
功能描述:
提供与HSSVN网关对接的SSLVPN网络扩展客户端功能以及组件库(支持与第三方程序集成),网络扩展特性即根据访问控制策略控制基于IP业务的第三方应用软件进行VPN加密访问
技术实现:
此功能将在以上接口完成后实现,开发以移植HSWINDOWS的VPN客户端为主,部分修改逻辑代码来满足要求。
难点:
移植的windows客户端,很有可能使用较多的MFC库,win32库,我们将本着效率与质量兼顾的原则,部分由iPhone的自带UIKIT实现界面部分,部分移植win32的业务逻辑功能。
7.BlackBerry平台
考虑到BlackBerry平台的特殊性(开发语言、平台机制等),HS在Win32平台已经实现的这套代码不适宜直接porting到BlackBerry。
所以BlackBerry平台上的SVN客户端需要在遵循已有协议的基础上重新实现。
我司根据需求和对产品的理解,拟构建结构如下:
BlackBerry平台SVN客户端结构图
7.1.Socket相关接口
初始化、绑定、属性设置及获取、发送、接收、关闭等
OSAL_SockInit()
OSAL_Accept()
OSAL_Bind()
OSAL_CloseSocket()
OSAL_Connect()
OSAL_Getpeername()
OSAL_Getsockname()
OSAL_Getsockopt()
OSAL_Inet_addr()
OSAL_Inet_ntoa()
OSAL_Ioctlsocket()
OSAL_Listen()
OSAL_Recv()
OSAL_Recvfrom()
OSAL_Select()
OSAL_Send()
OSAL_Sendto()
OSAL_Shutdown()
OSAL_Socket()
OSAL_Getsockopt()
OSAL_Setsockopt()
OSAL_GetHostname()
OSAL_GetHostbyaddr()
OSAL_Gethostbyname()
OSAL_Getprotobyname()
OSAL_Getprotobynumber()
OSAL_Getservbyname()
OSAL_Getservbyport()
7.2.开发计划
迭代一2010-8-1~2010-8-31BlackBerry平台完成V-Socket雏形
迭代二2010-9-1~2010-9-18稳定、优化迭代一版本,保证9月底的Demo演示
迭代三2010-9-19~2010-10-15在Demo版本基础上进行优化、调试和功能完善
迭代四2010-10-6~2010-11-30解决验收测试发现的问题
7.3.功能模块
BlackBerry平台的系统架构图如下:
BlackBerry系统架构图
我们在BlackBerry平台的开发须跟据平台的架构和特性来构建。
即作为客户端的Mid-Layer部分,V-Socket须以Jar包方式提供给最上层AP使用。
其功能模块和接口分解如下:
1、线程池:
J2ME中没有像在JDK中的那样的现成(包util.concurrent)的线程池直接调用,需要自行实现
2、V-Socket层的同步和异步接口:
需要对V-Socket层的接口分别进行同步及异步的实现
3、数据包的拆分、分解、重组:
对于发送给服务器的数据包需要添加TCP头数据、IP头数据;对于服务器返回的数据包需要拆分后取出实际数据包返回给应用层使用
4、SocketConnention及SSL30Connection连接VPN网关:
数据通信最终是通过客户端的Socket/SSL连接到VPN网关的
实现思路:
1、根据JDK的Socket相关源代码以及MIDP/CLDC的SocketConnection相关源代码进行Java语言描述的Socket的调用封装。
2、参考现有的Windows上实现的C语言代码及相关开源代码。
对数据包进行拆分、分解和重组。
通过手机客户端的SocketConnection及SSL30Connection连接进行公网环境的接入。
7.4.关键点流程
7.4.1.登录(Login)流程
Login登录流程
7.4.2.
连接建立流程
Open建立连接流程三次握手
7.4.3.
数据发送流程
Send发送数据流程
7.4.4.数据接收流程
Receive接收数据流程
7.4.5.连接关闭流程
Close关闭连接流程
8.质量与网络安全
8.1.质量保证
8.1.1.性能要求
Ø监视系统的运行状况,如响应速度,单位时间的处理量。
Ø界面操作不应有明显的延迟:
迅速的响应用户的操作。
Ø客户端运行时不能影响手机的其他正常功能,如电话等。
8.1.2.配置要求
系统配置方案如下表
配置项
配置内容
软件配置
1、支持Symbian、iPhone、BlackBerry平台
2、提供中文版本
硬件配置
1、SymbianV3、V5系列手机,iPhone、BlackBerry手机
系统动态库
1可以提供给其他第三方厂商使用。
8.1.3.质量保证方案
系统质量保证解决方案如下表:
类型
缺陷内容
解决方案
可靠性
1、没有内存泄露
2、没有界面僵死现象
3、链路中断不会引起程序死机
4、对系统异常要进行处理
1.程序采用规范的异常处理机制
2.关注系统的运行状况,如响应速度,单位时间的处理量
3.程序对链路中断处理
可维护性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安全产品 手机 客户端 技术 方案