WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章手机编程Win Mobile基础知识创建安全 Windows CE 设备

创建安全 Windows CE 设备
作者:Maricia Alforque  来源:microsoft.com  发布时间:2005-12-21 16:56:27
  • 管理和保证证书的安全性。

  • 创建和验证数字签名,并计算散列。
  • CryptoAPI 1.0 在 Windows CE 3.0 中提供的功能与在 Windows 2000 和 Windows NT 中提供的功能很相似;但是,仅支持 CryptoAPI 2.0 的子集。Windows CE 3.0 支持 CryptoAPI 2.0 的下列功能:基于 X.509 标准对数字证书进行编码和解码,以及管理证书。不支持下列功能:管理验证字撤销列表 (CRL) 和验证字信任列表 (CTL) 的工具、低级消息传递函数和简化的消息传递函数。

    Coredll.lib 导出 CryptoAPI 1.0 函数;Crypto32.lib 导出 CryptoAPI 2.0 函数;所有这些函数都在 Wincrypt.h 头文件中定义。

    在智能卡中隔离敏感数据

    通过使用智能卡存储身份验证信息或数字签名机制,您可以向 Windows CE 设备添加安全层。可以编写定制的 CryptoAPI 提供者,使用智能卡的功能实现安全信息存储。

    Windows CE 智能卡子系统通过智能卡服务提供者 (SCSP) 支持 CrytoAPI,SSCP 是允许访问特定服务的 DLL。该子系统在智能卡读卡器硬件和应用程序之间提供链接。通常,Windows CE 不提供 SCSP,而由智能卡供应商提供相应的 SCSP。但是,Windows CE 提供下表中描述的接口。

    子系统组件 文件 说明
    资源管理器 Scard.dll 使用 Win32 API 管理对多个读卡器和智能卡的访问。
    资源管理器帮助器库 Winscard.dll 为使用智能卡和智能卡读卡器提供 PC/SC 服务。
    智能卡读卡器帮助器库 Smclib.lib 提供通用智能卡驱动支持例程,以及所需特定驱动程序的附加 T=0 和 T=1 协议支持。
    智能卡读卡器驱动程序示例 Pscr.dll

    bulltlp3.dll

    stcusb.dll

    SwapSmart PC 读卡器驱动程序。

    串行读卡器驱动程序。

    通用串行总线 (USB) 读卡器驱动程序。


    典型的智能卡系统包括应用程序、处理智能卡读卡器和应用程序之间的通信的子系统、读卡器以及智能卡。下图显示了基于 Windows CE 的智能卡系统的体系结构。

    图 3:基于 Windows CE 的智能卡系统的体系结构

    在一个独立的硬件中实现智能卡 CryptoAPI 服务提供者的部分功能将保证密钥和操作的安全性,因为:

    • 提供防止篡改的存储区,以便保护个人信息的私人密钥和其他表单。

    • 隔离注重安全性的计算,这些计算涉及系统其他部分的身份验证、数字签名和密钥交换。

    • 使凭据和其他私人信息具备便携性。

    在使用智能卡的组织中,用户实际不必记住任何密码(只有一个个人识别号或 PIN),并且出于其他安全性目的(例如电子签名的电子邮件),他们可以使用相同的证书。

    唯一标识设备

    OEM 可以为 Windows CE 设备提供唯一的识别标记,并使应用程序可以访问它。例如,您可能需要标记运行您的 OS 映像的每个蜂窝电话,以便达到记帐和安全性的目的。

    Windows CE 使用 DEVICE_ID 结构来保存唯一的设备识别号。OEM 适配层中的输入/输出控制 IOCTL_HAL_GET_DEVICEID 返回指定给该 Windows CE 设备的当前 DEVICE_ID。有关详细信息,请参阅 Platform Builder 文档的“操作系统开发”一节中的“为应用程序提供平台信息”。

    使用受保护的内核模式

    在运行线程时使用全内核模式将使整个系统易受攻击,因为 Windows CE 绕过了安全性特性。在全内核模式中,应用程序可以访问系统中的任何物理内存。这将使系统对恶意应用程序保持开放,不能防止它们获取特权信息和加密代码,或者删除文件。

    尽管在全内核模式下运行时性能将得到提高,但这在一个开放的未受保护的环境中是不可接受的。您可以禁用全内核模式;在 Config.bib 文件中设置 ROMFLAGS 的第二个字节。根据其他标志的设置,ROMFLAGS 的值可能会有所不同。

    在拨号启动加载程序中使用数字身份验证

    拨号启动加载程序是一个存储在 ROM 中的程序,该 ROM 用于通过快闪内存或远程服务器升级 OS 映像文件 (Nk.bin)。要确保下载的 OS 映像的完整性,您可以使用数字密钥来签名和验证 OS 映像文件。拨号启动加载程序通过 Microsoft CryptoAPI 使用非对称散列算法 (CALG_SHA) 来验证数据。非对称散列算法将生成 160 位散列值。

    Platform Builder 3.0 为数字身份验证提供下列工具:

    • Makekey.exe,用于创建公共密钥/私人密钥对。

    • Mksigs.exe,用于签名 OS 映像文件。

    • Addsigs.exe,用于向清单文件中附加签名。

    在 OS 映像下载进程中,拨号启动加载程序从清单文件中提取签名,并验证每个 OS 映像文件的可靠性。如果验证失败,将暂停下载进程并通知用户。

    更多信息

    有关 SSPI、安全套接字层、CryptoAPI 和智能卡的实现细节,请参阅 Windows CE 软件开发人员手册(英文)。

    有关内核级别安全性(信任模型和内核模式)、设备标签和拨号启动加载程序的实现细节,请参阅 Windows CE Platform Builder 3.0(英文)。

    还请参阅 MSDN Online Windows 嵌入式开发人员中心,网址为 http://msdn.microsoft.com/embedded(英文)。

    有关智能卡的详细信息,请参阅 PC/SC 工作组主页,网址为 http://www.pcscworkrgroup.com(英文)。

    本文中的信息介绍目前为 Windows CE 3.0 设备和应用程序提供安全性的技术。如果您认为本文的格式和信息有用,或者您有任何其他注释有助于我们为您提供更多的内容,请将您的反馈发送到 ceuafdbk@microsoft.com

    上一页  [1] [2] [3] [4] 

    [] [返回上一页] [打 印]
    文章评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码