安全产品SVN手机客户端技术方案修订历史目录1. 范围 (1)2. 引用标准、协议 (2)3. 定义 (3)4. 背景 (4)4.1. 系统架构图 (5)4.2. 系统分析 (6)5. Symbian平台 (7)5.1. Symbian平台介绍 (7)5.2. 业务功能需求答复 (7)5.3. 技术实现方案 (11)5.3.1. 代码移植 (11)5.3.2. 基础模块封装 (11)5.3.3. 线程管理 (12)5.3.4. 信号量管理 (12)5.3.5. 消息队列 (12)5.3.6. Socket封装 (12)5.3.7. Open SSL接口封装 (12)5.4. 开发计划 (12)6. iPhnoe平台 (14)6.1. 应用程序 (14)6.1.1. 应用程序框架 (14)6.2. 系统运行库 (15)6.3. iPhone开发工具 (15)6.3.1. xcode+SDK (15)6.4. 业务功能点详述 (16)6.4.1. 任务管理&线程优先级管理 (16)6.4.2. 内存管理、分配 (16)6.4.3. 信号量 (16)6.4.4. 等待队列wait queue (16)6.4.5. 时钟,系统时间 (17)6.4.6. 缓冲区队列 (17)6.4.7. 消息包队列 (18)6.4.8. 文件系统 (18)6.4.9. Socket API封装SSL通信 (19)6.4.10. 字符集转换 (19)6.4.11. SVN L3VPN客户端功能 (19)7. BlackBerry平台 (19)7.1. Socket相关接口 (20)7.2. 开发计划 (21)7.3. 功能模块 (22)7.4. 关键点流程 (23)7.4.1. 登录(Login)流程 (23)7.4.2. 连接建立流程 (24)7.4.3. 数据发送流程 (25)7.4.4. 数据接收流程 (26)7.4.5. 连接关闭流程 (27)7.5. 质量保证 (28)7.5.1. 性能要求 (28)7.5.2. 配置要求 (28)7.5.3. 质量保证方案 (28)1.范围本方案适应HS公司委托青犀科技有限公司开发的安全产品SVN手机客户端。
本方案主要描述SVN手机客户端产品的系统功能、性能、接口、网络、协议及安全等机制的原理和解决方案。
本方案可作为委托方和被委托方评估其项目合作可行性的技术性输入文档,读者为系统架构师、技术专家、项目经理、需求分析师及其利益相关者。
引用标准、协议VRPVPNSVNSSLSSL VPNOpen SSL虚拟网卡定义VRP: (Versatile Routing Platform 通用路由平台),是HW公司具有完全自主知识产权的网络操作系统,可以运行在多种硬件平台之上并拥有一致的网络界面、用户界面和管理界面,为用户提供了灵活丰富的应用解决方案。
VPN: (Virtual Private Network 虚拟专有网络),被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。
虚拟专用网是对企业内部网的扩展,可以把它理解为虚拟出来的企业内部专线。
SVN: HS安全接入网关----系列产品名称,具备优秀的系统安全性和可靠性,是企业VPN 网络建设的最佳方案之一。
SSL: (Secure Sockets Layer),它是由Netscape公司开发的一套Internet数据安全协议,当前版本为3.0。
它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。
对于内、外部应用来说,使用SSL可保证信息的真实性、完整性和保密性。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL VPN: 指采用SSL (Security Socket Layer)协议来实现远程接入的一种新型VPN技术,与复杂的IPSec VPN相比,SSL通过简单易用的方法实现信息远程连通。
Open SSL: 为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。
整个Open SSL软件包大概可以分成三个主要的功能部分:密码算法库、SSL 协议库以及应用程序。
虚拟网卡: 用软件模拟网络环境,能够模拟成有 VPN 的网卡,可以直接从公司外部连接到内部的 VPN 服务器上,进而存取公司内的各项服务。
背景互联网Internet的迅速普及,企业信息化建设的日益完善,企业面对远程接入的需求越来越丰富,如何安全、便捷、高效的实现企业内网IT信息系统的安全访问,使得企业分支机构、出差员工、合作伙伴、客户等能够及时地获取所需的重要信息,成为企业IT部门进一步提升IT效率面临的关键问题之一。
HS公司针对上述问题推出大容量高可靠SSL/IPSec VPN安全接入网关SVN3000。
SVN3000通过支持SSL VPN功能为企业出差员工、合作伙伴、企业客户等终端,提供安全易用、易管理的远程接入方式。
同时支持IPSec VPN 功能,支持低成本的远程分支机构间互联。
SVN3000基于HS专业的高可靠硬件平台,采用专业实时的操作系统,具备优秀的系统安全性和可靠性,是企业VPN网络建设的最佳方案之一。
SVN架构图而随着当今全球移动业务异常迅速的发展,实现移动终端的安全接入、移动通信的安全传输是智能移动终端普及和移动业务扩展的重要环节。
以保证移动数据安全交换为目的,针对移动终端接入企业内网所面临的安全问题,HS提出了安全移动解决方案:SVN手机客户端----通过支持SSL VPN功能为企业分支机构、出差员工、合作伙伴、企业客户等终端,提供安全易用、易管理的远程接入方式。
在不用改变现有网络结构,通过强有力的访问控制能力,达到使移动用户轻松访问公司内部核心资源的目的。
SSL/IPSec VPN1.1. 系统架构图SVN 手机客户端系统采用了分层的架构。
从高到低分为三层:应用程序层APP 、操作系统适配层SCOS 、底层操作系统OS 和物理层。
SVN 客户端框架SCOS功能模块1功能模块2功能模块3功能模块4Client TierWindows OSSymbian OS Other OSPCPhysical Tier 手机设备其他设备Adapt Tier系统架构图核心适配层SCOS屏蔽了不同操作系统之间的差异,对外暴露统一的接口,使上层用户不必关心底层的实现细节,而将精力专注于本身的应用。
1.2.系统分析Symbian平台1.3.Symbian平台介绍平台架构图1.4.业务功能需求答复序号功能需求Symbian 功能青犀答复(S60 V3、V5)1底层适配-任务管理是生成、删除任务等,同时支持上层的任务调度算法满足参考Windows API:CreateThreadTerminateThread满足满足满足满足满足满足满足满足满足满足1.5.技术实现方案1.5.1.代码移植将1.5.2.基础模块封装1.5.3.线程管理1.5.4.信号量管理1.5.5.消息队列1.5.6.Socket封装1.5.7.Open SSL接口封装1.6.开发计划iPhnoe平台IPhone系统采用了分层的架构。
从架构图看,iPhone分为四层,从高层到低层分别是应用程序交互层、媒体库服务、系统核心服务和BSD UNIX核心层。
系统分层的架构1.7. 应用程序本项目中应用程序包括移植HS SCOS移植到iPhone平台组件、SVN客户端在iPhone平台上的实现和SSL业务运行代码。
1.7.1.应用程序框架开发人员以封装SCOS平台接口的API、移植SVN代码为主;应用程序实现以SVN客户端框架设计为主,以MVC开发模式为辅,代码结果大体分为如下几个模块:➢视图(Views):用来构建应用程序。
➢委托管理器(Delegate Providers):提供界面以及控件的事件委托处理机制。
➢资源管理器(Resource Manager):提供非代码资源的访问。
➢通知管理器 (Notification Center):在状态栏中显示自定义的提示信息。
1.8.系统运行库iPhone OS包含大量framework库,为开发者提供简洁易用的核心功能,以下是一些核心库:➢Uikit framework:系统自带的功能全面丰富的UI控件集。
➢CoreData:对各种数据类型进行支持,包括自行设计。
➢Foundation:iPhone OS的基础性框架,提供各类基础性程序结构。
➢CFNetwork:系统自带的网络模块➢libssl:提供自带的open ssl支持➢libstdc++:提供对大量纯C代码库,IO支持。
➢SQLite:一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
1.9.iPhone开发工具1.9.1.xcode+SDK手机开发者可以使用iPhone SDK开发iPhone应用程序,iPhone应用程序使用Object-C 语言编写并运行在模拟器或手机上。
SDK版本较近的有3.13 , 3.2 , 4.0。
1.10.业务功能点详述1.10.1.任务管理&线程优先级管理功能描述:生成、删除任务等,同时支持上层的任务调度算法。
技术实现:此功能利用系统自带NSThread线程函数,可以封装接口实现此功能。
系统同样提供初始化线程init ,启动线程start,暂停线程stop,设置线程优先级setThreadPriority等函数。
难点:此接口实现为重中之重,对接口代码的内存管理,异步处理,各类线程管理都有着较高的要求。
需要投入较多时间反复测试应用。
1.10.2.内存管理、分配功能描述:提供内存分配和管理接口。
技术实现:此功能利用系统自带内存管理机制实现。
iPhone OS系统提供alloc,release,autorelease等等强大的内存管理机制,并且兼容C语法。
1.10.3.信号量功能描述:多线程情况下,提供对象操作的控制技术实现:此功能已经自带@synchronized关键字,来提供类似信号量的一个功能。
我们将会利用此功能,来封装一个信号量的函数接口。
难点:信号量的标准操作,与iPhone自带的synchronized的功能点都在于信号的控制,但是侧重点一个在于判断信号数值来选择性执行线程代码,一个在于直接用synchronized直接锁定代码块。
1.10.4.等待队列wait queue功能描述:任务挂接在等待队列上,配合信号量一起使用。
等任务被阻塞在semaphore上,则先挂接到wait queue上;等唤醒后,再从wait queue上剔除。