摘要
因为其对许多不同的通信接口的支持, Microsoft? Windows CE操作系统可以在各种移动的信息工具上能够使用。为接口编写程序能提供安全的通信以确保敏感的数据的完整性与秘密性。从使用PAP,CHAP,和Microsoft CHAP 的数据连接鉴别,通过 Microsoft CryptoAPI ,SSPI ,Winsock ,以及WinInet API 功能,各种已经存在的和刚刚开发出来的支持安全通信的方法可以用来鉴别用户和加密码数据。
回顾
通过网络来通信通常意味着你的目标将仅仅是许多你的信息的接收者中的一个。例如,本地区域网络传输能在本地的网络的分支上被所有的计算机收到。 在Internet 上的传输可能在到达他们的目的地之前流经不同的计算机与路由器,比如本地网的特定计算机。
在收到信息的计算机上的用户或者应用程序能够阅读那条信息的内容。唯一的仅仅让合法接收者读到你所发出的消息的方法――而不让别人读到――就得在发出信之前对其加密,并且在受到它后对其解码。另一个重要的安全技术就是鉴别,将消息准确的发到接收者的手中。
如果你对通信有安全的需要,Windows CE 提供许多编写程序的选项,按照从最高级接口到低级接口叙述如下:
- WinInet API 为FTP 和HTTP 通信提供一高级的安全机制。它使用到Winsock 的扩展安全插件。
- 能直接使用Winsock标准接口。支持Secure Sockets Layer 2.0 和3.0 和个人通信安全草案(PCT)1.0。在WinInet上这三个协议是可供使用的,但是在他们如何被使用上Winsock提供更大的灵活程度。
- 提供支持安全者接口(SSPI )被用来要求从安全提供者鉴别过的的连接。Winsock在内部使用SSPI ,但是你也能直接使用API 来获得更多的控制过程。
- 加密API 允许应用程序控制大多数加密技术。
- 在网络堆栈的数据连接级别上,提供口令鉴别草案(PAP ),挑战鉴别草案(CHAP ),和 Microsoft CHAP。
下列的图概要地说明Windows CE 安全体系结构。
简言之,较高水平的方法使用起来简单,但是在如何控制加密上提供控制的较少。本文下面的段落将介绍每种个编写程序的接口。要获得全部的的信息,包括含有原代码的例子,请查看Windows CE Toolkit for Visual C++ 5.0。
使用安全接口: WinINet 或是 Winsock
实现安全通信有可能最简单的方法是建立一个安全插槽连接(socked)。建立一个安全插槽连接线路以后,你象通常一样简单地通信,而Winsock 自动地处理加密与解密。可供使用的三个安全协议是:SSL 2.0 ,SSL 3.0 ,和PCT 1.0 。
有两种方法路的使用安全插槽(Socked):
- 使用 WinInet API 。对于加密的FTP 或者HTTP 通信,这是最简单方法。 当打开线路并提出要求后,设置适当的安全标志。WinInet 处理建立安全的插座连接的细节工作。其余部分由非安全连接以完全相同的方法来严密的完成。加密与解密是自动的。
- 使用Windows CEAPI插座 。你使用setsockopt,以及WSAIoctl来规定安全连接协议。一旦建立安全连接,你的应用程序仅仅为正常的连接来发送和接收。你也必须实现信息复查功能来接收鉴别信息。和非安全连接的过程相比,安全连接的过程和非安全连接的过程是很相似的。
在如何建立连接上,WinInet给你比较小的灵活性。例如,你不能选择将被使用的安全协议。在过程中要更多控制,你可以使用Winsock 来建立连接和控制通信。当你建立连接时,你能调用安全协议,否则你只能等待一直到你需要使用他们是采行。一旦协议自动地被调用,Winsock 自动地控制数据的加密和解密。
提供支持安全者接口(SSPI )
Microsoft提供能访问最顶端的可扩展的安全层应用程序,提供支持安全者能执行向他们特定安全系统绘制这些访问的DLLs的地图 。从这方面来说,应用程序能使用高级的接口用十分不同的安全系统来相互作用。在将来,在不改应用程序的情况下,新的安全系统可以被加进来。
这个通用的安全层,提供支持安全者接口(SSPI ),在Internet RFC 1508 之后被模仿,通用安全服务API (GSSAPI ),和 Microsoft Windows加以使用于服务。
SSPI 在传送级别应用软件和提供支持安全者之间可能被认为是WIN32界面,提供不同的安全形式组织结构。SSPI 使应用程序能够调用底层模块实现安全连接而不必了解协议的细节。
支持SSPI的是一组动态连接库(DLL),使用一种或多种安全机制对应用程序提供支持。安全认证数据包可以映射SSPI的信息,Windows NT?, LAN Manager或者Schannel都是如此 。安全数据包包有时指的是"SSPs",就象"NTLM SSP"一样。
因为SSPI一般是被操作系统所处理的一个有特权的操作,SSPI并不建立登录上网凭证。然而,一个用户的登录上网凭证一经建立之后,应用程序能使用SSPI 功能来为那个用户建立信任关系。信任关系是一种不透明的数据结构,包含与连接有关的安全数据联系(诸如会话的译文),会话的程序时间等等。在通信连接中,用户与服务器连接必须合作并且要对建立信任关系达成一致,并且在这样做以后,他们就能在连接过程中,使其具有SSPI信息支持功能来确保信息的整体性和保密性。
SSPI 包括以下的API 功能组:
信任管理API
信任管理API提供对信任(密码口令数据,令牌tickets,等等)的调用。
信任关系管理API
信任关系管理API提供用于建立和使用信任关系的支持。信任关系在通信过程中由用户端和服务器端共同建立。这些内容稍后被用来支持消息调用API。
消息支持API
基于信任关系的消息支持API提供通信的完整性和保秘性服务。
数据包管理API
数据包管理API为不同格式的数据打包安全封装服务。
安全封装的能力决定它向应用程序提供什么样的服务。这些能力包括如支持鉴别,相互鉴定或者是用户单向鉴定,支持信息的完整性和保密性。应用程序将基于具体情况选择性地进行调用以满足的需要。
Microsoft CryptoAPI
Microsoft CryptoAPI是在公共网络上安全传递数据时需要的,Microsoft现在使用RSA公司的RC4 算法和美国政府标准的DES 算法(虽然可以买到允许附加的算法)。RC4 要求信息的发送者有和接收者一样的秘匙。在信息的发送者有和接收者之间秘匙以授权的方式被交换,有“授权权威机构”来签署,保证秘匙是可信的。
Microsoft CryptoAPI 包括支持加密,解密,以及秘匙认证管理的API 功能。
一个远程的站点通过从认证权威机构的手中获得认证
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126772/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-126772/