安全产品手机客户端技术方案.doc

上传人:豆**** 文档编号:17553483 上传时间:2022-05-24 格式:DOC 页数:25 大小:274KB
返回 下载 相关 举报
安全产品手机客户端技术方案.doc_第1页
第1页 / 共25页
安全产品手机客户端技术方案.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《安全产品手机客户端技术方案.doc》由会员分享,可在线阅读,更多相关《安全产品手机客户端技术方案.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流安全产品手机客户端技术方案.精品文档.安全产品SVN手机客户端技术方案 修订历史版本日期作 者审 核说 明1.020010-7-29许榆晗刘忠柱根据HS项目需求提供的技术方案目 录1.范围12.引用标准、协议23.定义34.背景44.1.系统架构图54.2.系统分析65.Symbian平台75.1.Symbian平台介绍75.2.业务功能需求答复75.3.技术实现方案115.3.1.代码移植115.3.2.基础模块封装115.3.3.线程管理125.3.4.信号量管理125.3.5.消息队列125.3.6.Socket封装125.3.7.Op

2、en SSL接口封装125.4.开发计划126.iPhnoe平台146.1.应用程序146.1.1.应用程序框架146.2.系统运行库156.3.iPhone开发工具156.3.1.xcode+SDK156.4.业务功能点详述166.4.1.任务管理&线程优先级管理166.4.2.内存管理、分配166.4.3.信号量166.4.4.等待队列wait queue166.4.5.时钟,系统时间176.4.6.缓冲区队列176.4.7.消息包队列186.4.8.文件系统186.4.9.Socket API封装SSL通信196.4.10.字符集转换196.4.11.SVN L3VPN客户端功能197.

3、BlackBerry平台197.1.Socket相关接口207.2.开发计划217.3.功能模块227.4.关键点流程237.4.1.登录(Login)流程237.4.2.连接建立流程247.4.3.数据发送流程257.4.4.数据接收流程267.4.5.连接关闭流程277.5.质量保证287.5.1.性能要求287.5.2.配置要求287.5.3.质量保证方案281. 范围本方案适应HS公司委托青犀科技有限公司开发的安全产品SVN手机客户端。本方案主要描述SVN手机客户端产品的系统功能、性能、接口、网络、协议及安全等机制的原理和解决方案。本方案可作为委托方和被委托方评估其项目合作可行性的技术

4、性输入文档,读者为系统架构师、技术专家、项目经理、需求分析师及其利益相关者。2. 引用标准、协议VRPVPNSVNSSLSSL VPNOpen SSL虚拟网卡3. 定义VRP: (Versatile Routing Platform 通用路由平台),是HW公司具有完全自主知识产权的网络操作系统,可以运行在多种硬件平台之上并拥有一致的网络界面、用户界面和管理界面,为用户提供了灵活丰富的应用解决方案。VPN: (Virtual Private Network 虚拟专有网络),被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是

5、对企业内部网的扩展,可以把它理解为虚拟出来的企业内部专线。SVN: HS安全接入网关-系列产品名称,具备优秀的系统安全性和可靠性,是企业VPN网络建设的最佳方案之一。SSL: (Secure Sockets Layer),它是由Netscape公司开发的一套Internet数据安全协议,当前版本为3.0。它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。对于内、外部应用来说,使用SSL可保证信息的真实性、完整性和保密性。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。 SSL VPN: 指采用SSL (Security Soc

6、ket Layer)协议来实现远程接入的一种新型VPN技术,与复杂的IPSec VPN相比,SSL通过简单易用的方法实现信息远程连通。Open SSL: 为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。整个Open SSL软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。虚拟网卡: 用软件模拟网络环境,能够模拟成有 VPN 的网卡,可以直接从公司外部连接到内部的 VPN 服务器上,进而存取公司内的各项服务。4. 背景互联网Internet的迅速普及,企业信息化建

7、设的日益完善,企业面对远程接入的需求越来越丰富,如何安全、便捷、高效的实现企业内网IT信息系统的安全访问,使得企业分支机构、出差员工、合作伙伴、客户等能够及时地获取所需的重要信息,成为企业IT部门进一步提升IT效率面临的关键问题之一。 HS公司针对上述问题推出大容量高可靠SSL/IPSec VPN安全接入网关SVN3000。SVN3000通过支持SSL VPN功能为企业出差员工、合作伙伴、企业客户等终端,提供安全易用、易管理的远程接入方式。同时支持IPSec VPN功能,支持低成本的远程分支机构间互联。SVN3000基于HS专业的高可靠硬件平台,采用专业实时的操作系统,具备优秀的系统安全性和可

8、靠性,是企业VPN网络建设的最佳方案之一。 SVN架构图而随着当今全球移动业务异常迅速的发展,实现移动终端的安全接入、移动通信的安全传输是智能移动终端普及和移动业务扩展的重要环节。以保证移动数据安全交换为目的,针对移动终端接入企业内网所面临的安全问题,HS提出了安全移动解决方案:SVN手机客户端-通过支持SSL VPN功能为企业分支机构、出差员工、合作伙伴、企业客户等终端,提供安全易用、易管理的远程接入方式。在不用改变现有网络结构,通过强有力的访问控制能力,达到使移动用户轻松访问公司内部核心资源的目的。SSL/IPSec VPN4.1. 系统架构图SVN手机客户端系统采用了分层的架构。从高到低

9、分为三层:应用程序层APP、操作系统适配层SCOS、底层操作系统OS和物理层。系统架构图核心适配层SCOS屏蔽了不同操作系统之间的差异,对外暴露统一的接口,使上层用户不必关心底层的实现细节,而将精力专注于本身的应用。4.2. 系统分析 5. Symbian平台5.1. Symbian平台介绍平台架构图5.2. 业务功能需求答复序号功能需求Symbian功能青犀答复(S60 V3、V5)1底层适配-任务管理是生成、删除任务等,同时支持上层的任务调度算法满足参考Windows API:CreateThreadTerminateThreadSuspendThreadResumeThreadGetCu

10、rrentThreadIdSetThreadPriorityGetThreadPriority3底层适配-内存管理、分配是提供内存分配和管理接口满足4底层适配-信号量是参考Windows API:满足CreateSemaphore /创建信号量CloseHandle /关闭信号量ReleaseSemaphore /把信号量加1WaitForSingleObject /等待信号量5底层适配-等待队列wait queue是任务挂接在等待队列上,配合信号量一起使用。等任务被阻塞在semaphore上,则先挂接到wait queue上;等唤醒后,再从wait queue上剔除。满足6底层适配-时钟,系

11、统时间是得到cputick,此tick的精度要求为每秒109次方cputick满足参考Windows API:GetSystemTimeAsFileTime得到100-nano second级别的系统时间7底层适配-缓冲区队列是满足8底层适配-消息包是普通消息,紧急消息(插到队列前部),立即消息(直接回调)满足9底层适配-文件系统是文件操作,目录操作满足10底层适配-Socket API封装是支持阻塞、非阻塞以及所有选项。满足参考Windows API:包括但不限于:accept() bind() closesocket() connect()getpeername() getsockname

12、() 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相

13、同的接口满足15底层适配-字符集转换是Gbk,utf8,big5,宽字符,窄字符等的互转,支持Unicode编译模式满足14底层适配-线程优先级管理是 Sleep、满足开启、关闭thread抢占的功能(可选)15虚拟网卡否提供类似于OpenVPN的虚拟网卡特性16路由管理接口否提供路由管理接口17SVN L3VPN客户端功能否提供与HS SVN网关对接的SSL VPN网络扩展客户端功能以及组件库(支持与第三方程序集成),网络扩展特性即根据访问控制策略控制基于IP业务的第三方应用软件进行VPN加密访问5.3. 技术实现方案5.3.1. 代码移植将5.3.2. 基础模块封装5.3.3. 线程管理5

14、.3.4. 信号量管理5.3.5. 消息队列5.3.6. Socket封装5.3.7. Open SSL接口封装5.4. 开发计划迭代一8月,完成需求定义与讨论技术方案设计,完成接口封装和PC端代码移植,配合8月底演示任务。迭代二9月,稳定、优化,继续未完成的需求。保证9月底给出更加稳定版本。迭代三10月,对Demo版本进行优化,调试,完成遗留需求,对产品进行商用化。迭代四11月,对Demo版本进行优化,调试,对产品进行商用化。迭代五12月,调试产品,解决BUG,保证产品商用化,配合验收。6. iPhnoe平台IPhone系统采用了分层的架构。从架构图看,iPhone分为四层,从高层到低层分别

15、是应用程序交互层、媒体库服务、系统核心服务和BSD UNIX核心层。系统分层的架构6.1. 应用程序本项目中应用程序包括移植HS SCOS移植到iPhone平台组件、SVN客户端在iPhone平台上的实现和SSL业务运行代码。6.1.1. 应用程序框架开发人员以封装SCOS平台接口的API、移植SVN代码为主;应用程序实现以SVN客户端框架设计为主,以MVC开发模式为辅,代码结果大体分为如下几个模块: 视图(Views):用来构建应用程序。 委托管理器(Delegate Providers):提供界面以及控件的事件委托处理机制。 资源管理器(Resource Manager):提供非代码资源的

16、访问。 通知管理器 (Notification Center):在状态栏中显示自定义的提示信息。6.2. 系统运行库iPhone OS包含大量framework库,为开发者提供简洁易用的核心功能,以下是一些核心库: Uikit framework:系统自带的功能全面丰富的UI控件集。 CoreData:对各种数据类型进行支持,包括自行设计。 Foundation:iPhone OS的基础性框架,提供各类基础性程序结构。 CFNetwork: 系统自带的网络模块 libssl:提供自带的open ssl支持 libstdc+:提供对大量纯C代码库,IO支持。 SQLite:一个对于所有应用程序可

17、用,功能强劲的轻型关系型数据库引擎。6.3. iPhone开发工具6.3.1. xcode+SDK手机开发者可以使用iPhone SDK开发iPhone应用程序,iPhone应用程序使用Object-C语言编写并运行在模拟器或手机上。SDK版本较近的有3.13 , 3.2 , 4.0。6.4. 业务功能点详述6.4.1. 任务管理&线程优先级管理功能描述:生成、删除任务等,同时支持上层的任务调度算法。技术实现:此功能利用系统自带NSThread线程函数,可以封装接口实现此功能。系统同样提供初始化线程init ,启动线程start,暂停线程stop,设置线程优先级setThreadPriorit

18、y等函数。难点:此接口实现为重中之重,对接口代码的内存管理,异步处理,各类线程管理都有着较高的要求。需要投入较多时间反复测试应用。6.4.2. 内存管理、分配功能描述:提供内存分配和管理接口。技术实现:此功能利用系统自带内存管理机制实现。iPhone OS系统提供alloc,release,autorelease等等强大的内存管理机制,并且兼容C语法。6.4.3. 信号量功能描述:多线程情况下,提供对象操作的控制技术实现:此功能已经自带synchronized关键字,来提供类似信号量的一个功能。我们将会利用此功能,来封装一个信号量的函数接口。难点:信号量的标准操作,与iPhone自带的sync

19、hronized的功能点都在于信号的控制,但是侧重点一个在于判断信号数值来选择性执行线程代码,一个在于直接用synchronized直接锁定代码块。6.4.4. 等待队列wait queue功能描述:任务挂接在等待队列上,配合信号量一起使用。等任务被阻塞在semaphore上,则先挂接到wait queue上;等唤醒后,再从wait queue上剔除。技术实现:此功能系统自带NSOperationQueue极其类似功能要求,能够配合信号量将阻塞的入列,并且唤醒再执行。需要重新封装部分功能接口,此功能点将会与线程,信号量,同时开发完成。难点:此等待队列实现机制难点在于,如何跟封装后的线程类进行衔

20、接操作。6.4.5. 时钟,系统时间功能描述:得到cputick,此tick的精度要求为每秒109次方cputick参考Windows API:GetSystemTimeAsFileTime得到100-nano second级别的系统时间技术实现:此功能系统自带NSDate可以实现读取系统时间,硬件所能达到的精度为50100 milliseconds。6.4.6. 缓冲区队列功能描述:FIFO的功能实现缓冲区。技术实现:此功能系统暂无类似功能,需要使用代码移植实现。实现流程图如下。缓冲区队列实现流程图6.4.7. 消息包队列功能描述:普通消息,紧急消息(插到队列前部),立即消息(直接回调)技术

21、实现:此功能系统暂无类似功能,由于Microsoft消息队列功能是用来保证进程间通信,而在iPhone上只需要实现线程间通信即可。所以需要使用代码移植实现线程间消息包队列功能。满足普通消息机制,并且实现紧急消息及立即消息。iPhone编程,支持纯C代码实现。因而可以借鉴linux IPC实现机制代码。消息包设计流程图如下:消息包设计流程图重点:此功能实现重点在于代码的重用性,保证消息队列稳定,高效运行。6.4.8. 文件系统功能描述:文件操作,目录操作技术实现:此功能系统提供相当多的API,例如NSFile,NSDictionary,等等,提供全部的文件系统,文件创建访问修改等等操作。6.4.

22、9. Socket API封装SSL通信功能描述:支持阻塞、非阻塞以及所有选项。支持UDP,TCP全操作。技术实现:此功能系统提供NSStream, CFNetowork,BSD TCP/IP各类操作,基本可以完成全部的操作。我们将把系统自带的stream流式SOCKET接口,转为标准SOCKET操作接口。其中,我们将同时实现SSL/TLS等功能。难点:此模块难点在于,如何将一个优化后简洁的流式IO操作的SOCKET,变为标准socket接口。另外socket默认支持的ssl若与HS 方要求不一致,将需要另开发openssl组件。6.4.10. 字符集转换功能描述:Gbk,utf8,big5,

23、宽字符,窄字符等的互转,支持Unicode编译模式技术实现:此功能系统提供encode各类转换器,支持UTF8,GBK,BIG5等等数百中字符集,各类转化。我们将会标准化实现各类字符集转换。6.4.11. SVN L3VPN客户端功能功能描述:提供与HS SVN网关对接的SSL VPN网络扩展客户端功能以及组件库(支持与第三方程序集成),网络扩展特性即根据访问控制策略控制基于IP业务的第三方应用软件进行VPN加密访问技术实现:此功能将在以上接口完成后实现,开发以移植HS WINDOWS的VPN客户端为主,部分修改逻辑代码来满足要求。难点:移植的windows客户端,很有可能使用较多的MFC库,

24、win32库,我们将本着效率与质量兼顾的原则,部分由iPhone的自带UIKIT实现界面部分,部分移植win32的业务逻辑功能。7. BlackBerry平台考虑到BlackBerry平台的特殊性(开发语言、平台机制等),HS 在Win32平台已经实现的这套代码不适宜直接porting到BlackBerry。所以BlackBerry平台上的SVN客户端需要在遵循已有协议的基础上重新实现。我司根据需求和对产品的理解,拟构建结构如下:APP应用程序 V-Socket系统Socket接口封装Socket调用、SSL连接VPN网关Server服务器公网环 境BlackBerry平台SVN客户端结构图7

25、.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_Shutdow

26、n()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-31 BlackBerry平台完成V-Socket雏形迭代二2010-9-1 2010-9-18 稳定、优化迭代一版本,保证9月底的Demo演示迭代三2010-

27、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-Socke

28、t层的接口分别进行同步及异步的实现3、 数据包的拆分、分解、重组:对于发送给服务器的数据包需要添加TCP头数据、IP头数据;对于服务器返回的数据包需要拆分后取出实际数据包返回给应用层使用4、 SocketConnention及SSL30Connection连接VPN网关:数据通信最终是通过客户端的Socket/SSL连接到VPN网关的实现思路:1、 根据JDK的Socket相关源代码以及MIDP/CLDC的SocketConnection相关源代码进行Java语言描述的Socket的调用封装。2、 参考现有的Windows上实现的C语言代码及相关开源代码。对数据包进行拆分、分解和重组。通过手机

29、客户端的SocketConnection及SSL30Connection连接进行公网环境的接入。7.4. 关键点流程7.4.1. 登录(Login)流程APP应用程序 调用V-Socket的Login接口 V-Socket系统Socket Login接口Socket调用、SSL连接VPN网关Server服务器公网环境返回客户端的IP地址Login登录流程7.4.2. 连接建立流程APP应用程序 调用V-Socket的Open接口V-Socket系统Socket Open接口Socket调用、SSL连接VPN网关Server服务器公网环境HelloACKACKOpen建立连接流程 三次握手7.4

30、.3. 数据发送流程APP应用程序 调用V-Socket的Send接口 V-Socket系统Socket Send接口Socket调用、SSL连接VPN网关Server服务器公网环境对数据包添加TCP头、IP头Send发送数据流程7.4.4. 数据接收流程APP应用程序 调用V-Socket的Receive接口 V-Socket系统Socket Receive接口Socket调用、SSL连接VPN网关Server服务器公网环境取出实际数据返回给应用Receive接收数据流程7.4.5. 连接关闭流程APP应用程序 调用V-Socket的Close接口 V-Socket系统Socket Clos

31、e接口Socket调用、SSL连接VPN网关Server服务器公网环境关闭Socket连接Close关闭连接流程8. 质量与网络安全8.1. 质量保证8.1.1. 性能要求 监视系统的运行状况,如响应速度,单位时间的处理量。 界面操作不应有明显的延迟:迅速的响应用户的操作。 客户端运行时不能影响手机的其他正常功能,如电话等。8.1.2. 配置要求系统配置方案如下表配置项配置内容软件配置1、 支持Symbian、iPhone、BlackBerry平台2、 提供中文版本硬件配置1、Symbian V3、V5系列手机, iPhone、BlackBerry手机系统动态库1可以提供给其他第三方厂商使用。8.1.3. 质量保证方案系统质量保证解决方案如下表:类型缺陷内容解决方案可靠性1、 没有内存泄露2、 没有界面僵死现象3、 链路中断不会引起程序死机4、 对系统异常要进行处理1.程序采用规范的异常处理机制2.关注系统的运行状况,如响应速度,单位时间的处理量3.程序对链路中断处理可维护性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁