适用于:
Microsoft windows XP Embedded
摘要:Microsoft windows XP Embedded 为开发人员提供了一个 windows XP 操作系统的组件化版本。开发人员可以精确挑选满足其设计需要的组件,从而减少他们的设计所占用的空间。本文从技术角度概述了 windows XP Embedded 提供的组件化环境中的安全性考虑。
Microsoft® windows® XP Embedded 是 Microsoft windows NT® Embedded 4.0 的后续产品。Windows XP Embedded 采用与 windows XP Professional 相同的二进制文件,使您能够快速开发可靠的、功能齐全的连接设备。
windows XP Embedded 组件数据库包括大约 10,000 个组件。您可以建立许多 windows XP Embedded 运行时映像,从安全要求最低的基本仅内核配置到功能齐全的设备(包含联网、多媒体、安全保护以及其他通常在安装有 windows XP Professional 的计算机上可以找到的功能)。
windows XP Embedded 继承了 windows XP Professional 中的所有安全保护功能。
此外,Windows XP Embedded 还具有以下优点:
您可以通过以下基准配置之一使用目标设计器来建立您的基本设计配置:
选择 Minlogon 之前,请确保您不要求 LSASS 用户身份验证。
如果没有 LSASS,Minlogon 就没有标准的 windows XP Professional 中所提供的交互式登录和身份验证功能,而总是将用户登录为系统用户。
即使选择了 Minlogon 组件,目标设计器也可以在运行时映像中包括 LSASS。如果所包括的其他组件要求使用 LSASS,或者手动添加了本地安全授权子系统组件,就会发生这种情况。
LSASS 组件的可见性设置较低,因此,您需要降低可见性级别才能在目标设计器中看到该组件。有关详细信息,请参阅 windows XP Embedded 帮助文档。
在 windows XP Professional 中,会话管理器 Smss.exe 是系统中创建的第一个用户模式进程。而会话管理器将启动 windows 子系统进程和标准的 windows 登录进程。标准的 windows 登录进程要求本地安全验证子系统进程 (LSASS)。
LSASS 是一种用户模式进程,它负责以下几个方面的工作:
即使开始指定了仅内核或 Minlogon 配置,您添加到设计中的某些组件也可能会需要 Winlogon 基准配置。这些组件表明自己需要 Winlogon,从而导致在运行目标设计器相关性检查时会自动将 Winlogon 组件添加到您的设计中。
注意:默认的用户密码为空白,应将其更改为一个可靠的密码,以确保适当的身份验证安全保护。
下表显示了可用的设计模板以及它们是支持 Minlogon 还是 Winlogon。
设计模板 | Minlogon | Winlogon |
---|---|---|
基于 windows 的终端(专业版) | X | |
信息设备 | X | |
基本机顶盒 | X | X |
数字机顶盒 | X | X |
高级机顶盒 | X | |
展台/游戏控制台 | X | X |
家用网关 | X | |
零售点终端 | X | |
网络连接存储 | X |
选择设计模板时,应考虑以下问题:
有关详细信息,请参阅 windows XP Embedded 帮助文档。
Michael Howard 和 David LeBlanc 所著的《Writing Secure Code》一书提供了有关安全设计、安全编码以及测试技术的实用信息。
规避技术列出了 windows XP 的安全保护功能,这些功能必须映射到将安全保护功能映射到组件中所述的组件。
下表使用《Writing Secure Code》一书中介绍的 STRIDE 模型,介绍了主要的安全威胁以及可以用来规避风险的相应 windows XP Professional 安全保护功能。
威胁 | 说明 | 规避技术 |
---|---|---|
欺骗性身份 | 从本地或远程非法访问系统。 | 身份验证支持安全保护功能:摘要式身份验证、Passport 身份验证、Kerberos 身份验证和 X.509 证书身份验证等。 |
篡改数据 | 恶意修改数据。 | 授权支持和防篡改安全保护功能:访问控制列表 (ACL)、权限、加密文件系统 (EFS)、IPSec 和数字签名等。 |
否认 | 如果另一方无法提供证明,用户会拒绝承认执行过某个操作。 | 身份验证支持、授权支持以及安全支持保护功能:审核、IPSec 和数字签名等。 |
信息泄露 | 将信息泄露给没有访问权的人。 | 授权和防篡改的安全保护功能:授权、增强保密协议和加密等。 |
拒绝服务 | 拒绝向有效用户提供服务。 | Internet 连接安全保护支持和 API 安全保护功能:防火墙、身份验证、授权、筛选和限制等。 |
提升权限 | 没有权限的用户获得特许访问权,从而危害或破坏系统。 | 身份验证、授权和安全管理保护功能:组策略、软件/系统限制等。 |
windows XP Embedded 支持与 windows XP Professional 相同的可配置安全选项。默认安全设置在 Defltwk.inf 中定义。要了解如何将自定义安全设置应用到嵌入式设备,请参阅“系统设计中的安全性”指南。
以下各表包含了有关 windows XP 安全保护功能以及它们如何与组件相关的信息。每一个功能都需要一个拥有关键二进制文件的组件以及组件的相关性。
某些列出的组件可能不可见。如果要看到这些组件,您需要在目标设计器中降低其可见性级别。
本节讨论以下主题:
身份验证是一个用户或设备向另一个当事人、用户或设备证明其身份的过程。下表显示了如何将身份验证功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
公用二进制 (适用于所有身份验证功能) |
Lsass.exe、Lsasrv.dll | 本地安全授权子系统 (LSASS) |
Secur32.dll | 原型:Secur32 | |
Crypt32.dll | 原型:Crypt32 | |
Cryptdll.dll | 原型:Cryptdll | |
Netapi32.dll | 原型:Netapi32 | |
Netlogon.dll | Netlogon/NetJoin | |
基本 内置于 HTTP 中的本机身份验证机制。如果使用该功能,则需要一个具有强大的服务器端身份验证的 SSL 加密链接,以确保连接的安全性。 |
Advapi32.dll | Win32 API - 高级 |
摘要式 一种简单的询问和响应协议。用于取代基本身份验证。 |
Wdigest.dll | 摘要式身份验证安全程序包 |
NTLM windows NT LAN 管理器。Windows NT 4.0 上的本机身份验证协议。包括跨域身份验证。Windows XP 为了保持向后兼容,也支持 NTLM。 |
Msv1_0.dll | 本地安全授权子系统 (LSASS) |
Kerberos 提供安全的行业标准身份验证。 |
Kerberos.dll | 本地安全授权子系统 (LSASS) |
Passport 联机用户身份验证。用户只需创建一个用户名和密码,便可以轻松安全地访问所有 Passport 帐户。 |
Wininet.dll | Wininet 库 |
凭据管理器 用于密码信息的安全存储。使用此功能,用户只需输入一次用户名和密码,系统将在后续访问中自动提供该信息。 |
Credui.dll | 凭据管理用户界面 |
Keymgr.dll | 密钥管理器 | |
Advapi32.dll | Win32 API - 高级 | |
安全通道(X.509 证书) 支持使用数字签名证书的多种级别的证书权限层次结构。 |
Schannel.dll | 本地安全授权子系统 (LSASS) |
Cryptnet.dll | 加密网络服务 | |
智能卡 windows XP Embedded 将智能卡功能集成到 OS 之中,包括支持通过智能卡登录到终端服务会话。 |
Scardsvr.exe、Scardssp.dll | 智能卡子系统 |
Winscard.dll | 原型:Winscard |
一旦当事人、用户或计算机通过身份验证,授权进程将确定该当事人可以执行什么操作。下表显示如何将授权支持功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
访问控制列表 (ACL)、当事人、权限 一种保护系统对象的机制。例如,可以将文件夹或文件共享配置为接受默认的 ACL 设置,也可以实施自定义的 ACL 设置以限制对对象的访问。 |
Ntdll.dll | 原型:Ntdll |
Lsass.exe、Lsasrv.dll | 本地安全授权子系统 (LSASS) | |
Authz.dll | 原型:AuthZ | |
GPO、限制(软件、计算机) 组策略对象管理和控制。使用组策略定义应用到计算机或用户的策略设置。 |
Gptext.dll | 组策略客户端核心 |
Profmap | 原型:Profmap | |
本地、漫游配置文件 | Userenv.dll | 本地配置文件核心 |
漫游配置文件 | ||
审核 | Ntdll.dll | 原型:Ntdll |
Lsass.exe、Lsasrv.dll | 本地安全授权子系统 (LSASS) | |
Msaudite.dll | 审核资源 DLL | |
Eventlog.dll | 事件日志 |
您可以利用内置到 windows XP 中的全功能安全 API 支持。下表显示了如何将 API 支持功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
CryptoAPI CryptoAPI 提供的服务可以使应用程序开发人员增加应用程序的安全性。包括编码到 ASN.1 和从 ASN.1 解码的功能、加密和解密数据的功能以及使用数字证书进行身份验证的功能。 |
Crypt32.dll | 原型:Crypt32 |
Cryptnet.dll | 加密网络服务 | |
SSPI(安全保护支持提供程序接口) 用于凭据管理、上下文管理、邮件支持和程序包管理的 API。 |
Secur32.dll | 原型:Secur32 |
Ksecdd.sys | 原型:Ksecdd | |
Lsasrv.dll | 本地安全授权子系统 (LSASS) |
嵌入式运行时配置中的文件系统的安全级别在很大程度上是由您所选择的文件系统组件确定的。下表显示了如何将存储介质上的防篡改和数据保密功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
EFS 支持多用户的加密文件系统 (EFS) 是 NTFS 文件系统 (NTFS) 的一部分。EFS 使用随机生成的密钥对每个文件进行加密,该密钥对用户来说是透明的。 |
Efsadu.dll | 用户界面核心 |
Ntfs.sys | NTFS | |
Crypt32.dll | 原型:Crypt32 | |
Lsasrv.dll | 本地安全授权子系统 (LSASS) | |
NTFS windows NT 文件系统支持使用访问控制列表 (ACL) 来保护文件系统对象。 |
Ntfs.sys | NTFS |
WFP windows 文件保护功能可防止丢失或损坏重要的系统文件。 |
Sfc.dll | 原型:Sfc |
Sfcfiles.dll | 原型:Sfcfiles | |
Sfc_os.dll | 原型:Sfcos | |
回滚驱动程序 windows XP 系统恢复功能的一部分。使用回滚驱动程序功能可以将设备驱动程序替换为以前安装的版本。 |
Newdev.dll | “添加硬件”控制面板 |
Setupapi.dll | 原型:Setupapi | |
系统恢复 一种定期创建系统快照的子系统,允许您将 OS 恢复为以前的状态。 |
Sr.sys、Srrstr.dll、Srsvc.dll、Srclient.dll | 系统恢复核心 |
卷的影子副本服务 管理和实现卷的影子副本,用于备份和其他目的。 |
Volsnap.sys | 卷的影子副本服务 |
Srv.sys | 文件共享 |
嵌入式运行时映像中的网络安全级别在很大程度上是由您所选择的网络组件决定的。下表显示了如何将网络上的防篡改和数据保密功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
IPSec Internet 协议 (IP) 安全保护。 使用加密安全服务,使组织能够通过虚拟专用网络 (VPN) 安全地传输数据。 |
Ipsec.sys、Ipsecsvc.dll、Winipsec.dll | IP 安全服务 |
SSL/TLS 安全套接字层。HTTPS 是用于 SSL 端口 443 的 URL 方案的名称。 |
Schannel.dll | 本地安全授权子系统 (LSASS) |
Cryptnet.dll | 加密网络服务 | |
Secur32.dll | 原型:Secur32 | |
Crypt32.dll | 原型:Crypt32 | |
Cryptdll.dll | 原型:Cryptdll | |
Netapi32.dll | 原型:Netapi32 | |
Netlogon.dll | Netlogon/NetJoin | |
安全 RPC MSRPC 将 windows 安全保护应用到 COM+、DCOM 和 RPC 中。 |
Rpcrt4.dll | RPC 本地支持 |
Secur32.dll | 原型:Secur32 | |
Authz.dll | 原型:AuthZ | |
Kerberos 上的安全 RPC | ||
协商上的安全 RPC | ||
NTLM 上的安全 RPC | ||
SSL 上的安全 RPC |
无线网络连接提出了一系列新的需要考虑的安全问题。下表显示了如何将 802.11 / 无线安全保护支持功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
有线设备隐私 (WEP) | Wzcsvc.dll | 原型:Wzcsvc |
Wzcsapi.dll | 无线零配置 |
您可以使用功能完备的 Internet 连接安全保护支持。下表显示了如何将 Internet 连接安全保护支持功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
Internet 连接防火墙 (ICF) 保护设备免受常见的 Internet 攻击。 |
Hnetcfg.dll、Alg.exe | Internet 连接共享和防火墙 |
S/MIME 采用加密来保护电子邮件的安全。 |
Mapi32.dll | Mapi32 库 |
Cryptnet.dll | 加密网络服务 | |
Crypt32.dll | 原型:Crypt32 | |
WebDAV/Web 文件夹 如果您使用加密文件系统 (EFS) 对文件进行加密和解密,并且希望在网络上共享这些文件时使其保持加密状态,请使用 Web 分布式创作和版本控制 (WebDAV) 以及 Web 文件夹。 |
Msonsext.dll | Web 文件夹 |
HTTPS 传统的 URL 方案 HTTP 使用端口 80,并且不具有任何安全性。HTTPS URL 方案使用端口 443,并且结合了 SSL/TLS 加密安全措施。 |
Wininet.dll | Wininet 库 |
Schannel.dll | 本地安全授权子系统 (LSASS) | |
Cryptnet.dll | 加密网络服务 | |
Secur32.dll | 原型:Secur32 | |
Crypt32.dll | 原型:Crypt32 | |
Cryptdll.dll | 原型:Cryptdll | |
Netapi32.dll | 原型:Netapi32 | |
Netlogon.dll | Netlogon/NetJoin | |
PPTP/L2TP 通过使用 VPN 连接(使用点对点隧道协议 [PPTP]),您可以通过 Internet 或其他公共网络安全地访问专用网络。将第 2 级隧道协议 (L2TP) 与 IPSec 配合使用时,可以提供安全的数据传输,就象在公司 Web 站点的单个 LAN 内传输数据一样。 |
Raspptp.sys、Ras.sys | 拨号网络公用库 |
在 windows XP Embedded 中,您可以利用 windows XP Professional 中包含的全套管理工具。下表显示了如何将安全管理支持功能映射到组件。
功能 | 关键二进制文件 | 组件 |
---|---|---|
证书管理 | Certmgr.dll | 证书 MMC 管理单元工具 |
安全配置、分析 | Scesrv.dll | windows 安全配置编辑器引擎 |
Scecli.dll | windows 安全配置编辑器客户端引擎 | |
Samlib.dll | 安全帐户管理器客户端 | |
Samsrv.lib | 安全帐户管理器服务器库 | |
Wsecedit.dll | 安全设置编辑器 | |
Secedit.exe | 安全配置引擎命令行实用程序 | |
IP 安全管理 | Ipsecsnp.dll、Ipsmsnap.dll | IP 安全工具和用户界面 |
组策略管理 | Gpedit.dll | 组策略核心管理 MMC 管理单元 |
本地用户和组管理 | Nusrmgr.cpl | “用户”控制面板 |
凭据管理 | Credui.dll | 凭据管理用户界面 |
Keymgr.dll | 密钥管理器 |
有关详细信息,请参阅 windows XP Embedded 帮助文档。
下面的列表将有助于解决与 windows XP Embedded 设备及其应用程序相关的安全问题:
有关网络安全的详细信息,请参阅 Michael Howard 和 David Leblanc 所著《Writing Secure Code》一书(Microsoft Press,2002 年出版),以及 Keith Brown 所著《Programming windows Security》一书(Addison Wesley Longman, Inc.,2000 年出版)。
下面的 Web 站点可以提供更多的安全保护信息:
本文撰稿者包括但不仅限于 windows Embedded 组、Security 组和 Componentization 组的成员。