摘 要 本文从密码学的角度对Windows操作系统进行了分析,指出了Windows操作系统是如何通过程序来实现密码安全功能的,并描述了Windows操作系统的安全特征及实现用户认证的技术细节。
关键词 CSP;MS-CAPI;数字证书;ActiveX控件;COM组件;NTLM;域控制器
1 引言
在安全方面,微软开发并免费提供一套密码接口API(MS-CAPI),使用这套API能够解决Windows操作系统中的密码安全问题。
像JAVA中的JCA/JCE一样,MS-CAPI隐藏了密码算法本身的一些繁琐内容,而仅体现出功能上的要求。MS-CAPI同样使用了引擎和类的方式,但它有自己的术语描述方法。在MS-CAPI中,提供者类等同于我们常说的CSP(Cryptographic Service Providers)。不同的厂家提供的CSP在内部实现代码上可能不尽相同,但是在对外接口上按照微软的定义都是完全一样的。MS-CAPI提供一套通用的但需要CSP支持的外包接口,应用程序开发者通过使用这套接口来实现密码安全功能。CSP的内部内容对于应用程序的开发者来说是透明的。MS-CAPI自带默认的微软CSP,这个CSP也可被其它第三方的CSP所替代。
图1 MS-CAPI与CSP的关系
图2 MS-CAPI方法与CSP
CSP实际上就是一个DLL文件,这个文件必须经过微软的签名才能保证它在Windows操作系统中的可用性,目前,微软免费对第三方的CSP进行签名。在应用过程中,Windows操作系统首先要验证签名合法性后才能正常使用。
2 MS-CAPI
我们来看一段用VB写的小程序,这是运用MS-CAPI来生成数字签名的例子。例子本身很简单,但笔者还是给出了一定的注解,便于阅读。
//给需要签名的明文分配一个变量strPlainText
strPlainText = ”明文数据”
//通过CAPICOM数字签名类创建一个对象,给对象命名oDigSig
set oDigSig = CreateObject(“CAPICOM.SignedData”)
//在数字签名对象和明文建立关联
oDigSig.Content = strPlainText
//设置输出数据仅为签名结果而不包含明文
fDetached = TRUE
//生成明文。通过调用数字签名对象的Sign方法,同时传递相应参数到方法中,变量signature包含签名结果
signature = oDigSig.Sign(Nothing,fDetached)
和JCA/JCE类似,MS-CAPI的最大优点就在于它是完全公开的,用户可以自由的使用。而且,它已经成为了IE和Windows2000以上操作系统的一部分。在未来的日子里,依靠微软的品牌效应再加上Windows操作系统庞大的用户群,很可能使得MS-CAPI成为相当流行的密码安全类软件。 MS-CAPI另一大优点在于CAPICOM。CAPICOM是一个COM客户端,可以通过ActiveX控件或COM组件的形式进行密码函数的自动调用,CAPICOM用于处理基本的密码操作,如签名验证,数字信封,解密数字信封,加解密数据,检查数字证书的有效性等。CAPICOM可以用VB或VC 进行调用。
3 安全与Windows操作系统
3.1 安全特征
(1)安全登录与反欺骗措施:安全登录要求管理员为所有用户设置一个口令用于登录。黑客会开发一个能够给用户显示登录界面的程序,然后通过某种方式在用户终端上运行,而不加怀疑的用户往往会认为这个登录界面就是系统的登录界面,并在其中输入自己的用户ID和口令,攻击者以此方式轻易地就能够截获用户ID和密码,并显示一个登录失败的错误信息给用户。Windows2000以上操作系统通过要求用户使用CTRL-ALT-DEL结合的方式进行登录来防止上述攻击。键盘驱动程序在捕捉到CTRL-ALT-DEL的序列以后,会通知系统调用正确的登录显示界面。在Windows中,是没有办法屏蔽CTRL- ALT-DEL三键组合消息的,因此,使得黑客欺骗变得无机可乘。
(2)任意访问控制:这种机制允许资源如文件的拥有者能够决定谁并且能够以哪种方式来访问资源。
(3)权限访问控制:这种机制允许系统管理员在出现问题的情况下,超越任意访问控制的范围。
(4)地址空间保护:Windows2000以上操作系统给每个进程提供独立的受保护的虚拟地址空间,这样就有效地防止了恶意的进程攻击。
(5)新页归零:这种机制保证了任何新页都是从内存地址二进制0开始的,这样一来,一个进程就无法知道它前面的那个进程到底做了些什么。
(6)安全审计:利用这个机制,系统管理员能够通过查询系统产生的日志了解系统的相关安全事件。
每个Windows2000的用户和用户组会被分配一个惟一的SID,这个SID由一个随机数和一个短的二进制的头标志组成。每个SID在全世界惟一。进程和线程只有在用户的SID下才能运行。每个进程在Windows2000下都有一个包含SID和其它信息的可访问令牌。系统中的每个资源(如文件)又都有一个对应的安全描述符,该描述符描述了哪个SID允许做哪些操作。
3.2 用户认证
Windows 2000使用Kerberos协议来完成用户身份认证。同时系统也支持Windows NT的挑战/响应机制,这种机制又被称之为NTLM。NTLM以挑战/响应机制为基础,同时避免明文口令的简单传递。NTLM的工作原理如下:
(1)用户在登录界面上输入用户ID和口令。用户的计算机计算出口令的摘要值,同时在内存中销毁用户输入的口令。
(2)客户端将用户ID的明文传递到服务端。
(3)服务器传送16字节的随机数到客户端。
(4)客户端用口令计算出的摘要加密随机数,客户端将加密结果(客户端响应值)传送到服务器端。
(5)服务器将用户ID、传给客户端的随机数、客户端响应值(即客户端加密结果)传递给一台特殊的机器,我们称之为域控制器。在域控制器上保留着所有的用户ID和口令的消息摘要值。
(6)域控制器接收到从服务器端传来的上述数据以后,从数据库(SAM)中可以得到当前用户对应的口令消息摘要值,并且用它来加密从服务器端传来的随机数。
(7)域控制器通过比较从服务器端传来随机数加密结果(第5步)和自身计算得到的结果(第6步)的一致性,来判断用户的身份是否合法。
图3 Windows NTLM 的认证过程
4 结论
从安全性的角度来说,Windows系统本身还有诸多方面值得我们进行深入的研究,因为Windows系统的安全性被集成到了操作系统的方方面面,大多数安全决策被本地的安全颁发策略所控制,本文的侧重点仅在于关于密码安全基础的概念方面,力图使读者对于系统的安全特性有所了解,以便日后再进行深入研究。
参考文献
[1]Steve Burnett & Stephen Paine著,冯登国,周永彬,张振峰,李德全等译.《密码工程实践指南》.清华大学出版社,2001.10
[2]Bruce Schneier著,吴世忠等译.应用密码学——协议、算法与C源程序.机械工业出版社,2000
[3]张世永.《网络安全原理与应用》.科学出版社
[4]尹传勇,刘寿强,陈娇春.《基于PKI/CA身份认证体系的应用研究》.计算机安全
本篇文章来源于 【学习啦】www.xuexi.la 原文链接地址:http://www.xuexi.la/lunwen/computer/3156.html
分享到:
相关推荐
《Windows操作系统的密码解决方案》 本文主要探讨了Windows操作系统中密码安全的相关技术和策略,特别是Microsoft的密码接口API(MS-CAPI)以及与其相关的组件和服务提供商(CSP)。该文档详细解析了Windows如何...
Windows XP的密码修改通常涉及到SAM(Security Account Manager)数据库,这是Windows操作系统存储用户账户和密码的地方。 压缩包内的“XP Password Manager.exe”很可能是这个工具的可执行文件。在运行这个程序...
这是一个专门用于解决Windows系统密码遗忘问题的工具,它包含了不同版本的操作系统对应的密码重置解决方案。下面将详细阐述这个工具的使用及其相关知识点。 1. **密码重置盘的原理**: - Windows系统重置密码盘...
忘记 Windows 7 开机密码破解 Windows 7 登陆解决方案 ...忘记 Windows 7 开机密码破解 Windows 7 登陆解决方案可以解决 PE 或 DOS 认不到硬盘和 net user 命令不成功的问题,为用户提供了一个安全、可靠的解决方案。
### Windows Server 2008 密码忘记解决方案 在日常工作中,我们可能会遇到Windows Server 2008系统管理员密码遗忘的情况。这种情况不仅会给日常工作带来不便,还可能导致业务中断。本文将详细介绍一种无需重装系统...
总之,"Windows系统SVN密码查看工具"是针对开发者在使用SVN过程中遗忘密码问题的一种解决方案。它能够方便快捷地查看本地存储的SVN账户信息,提高了工作效率,同时也提示我们在享受自动化带来的便利时,不要忽视信息...
标题中的“WINDOWS系统登录密码清除工具源代码”指的是一个专门设计用于解除或修改Windows操作系统登录密码的程序。这个程序能够适用于多个Windows版本,包括Windows 2000、XP、2003、2008以及Windows 7。值得注意的...
一种常见的解决方案是删除 Windows 安装目录下的所有 `.pwl` 文件以及 `Profiles` 目录下的个人文件,重启后,系统会提示设置新密码,此时不输入任何内容并点击“确定”,即可清除密码。 4. **注册表修改** 若需...
"Windows 7 忘记管理员密码的解决方案" ...本解决方案可以帮助用户忘记 Windows 7 管理员密码,从而恢复系统的访问权限。但是,需要注意的是,在执行这些步骤时,需要小心和细心,以免留下后门或其他安全问题。
遵循以上步骤,可以成功解决因操作系统密码更改导致的Backup Exec备份问题。这个过程体现了操作系统密码与Backup Exec备份机制之间的紧密关联,以及在密码更改后正确同步Backup Exec登录账户的重要性。对于企业而言...
### Windows Server 2008 R2遗忘管理员密码后的解决方案详解 在IT管理领域,特别是对于网络管理员而言,遭遇忘记本地管理员账户密码的情况可谓是一场噩梦,尤其是在没有备用管理员账户和密码恢复盘的情况下。然而,...
在日常的计算机使用过程中,Windows操作系统因其易用性和广泛支持的应用软件,成为了全球用户最常选择的操作系统之一。然而,有时我们可能会遇到忘记登录密码的情况,这时,Windows登录密码查看器就显得尤为重要。...
### 充分管理Windows操作系统的知识点 ...以上九个知识点涵盖了Windows操作系统中的密码管理、账户权限调整、网络设置等方面的核心内容,旨在帮助用户更好地管理和使用Windows操作系统,提高工作效率及安全性。
在Windows 8.1操作系统中,Internet Explorer 11(简称IE11)是内置的默认浏览器。然而,有些用户在尝试输入网银密码时可能会遇到问题,即即便已经安装了网上银行的安全控件,仍然无法正常输入密码,提示信息通常...
MySQL 忘记 root 密码解决方案 MySQL 是一个流行的关系数据库管理系统,但是当用户忘记了 MySQL 的 root 密码时,会导致无法访问数据库。为了解决这个问题,本文将介绍一种解决方案,使用无验证方式启动 MySQL 服务...
在日常操作中,我们可能会遇到一种尴尬的情况——忘记Windows系统的登录密码,导致无法正常进入操作系统。此时,Windows密码恢复工具就显得尤为重要。本文将详细介绍这款名为“Windows密码恢复工具”的实用软件,...
《Windows服务器安全解决方案详解》 在当今互联网环境中,Windows Server作为广泛应用的服务器操作系统,其安全性问题备受关注。尽管Microsoft不断发布补丁以修复安全漏洞,但用户仍然面临着持续的担忧。为了解决这...
在使用Windows操作系统时,如果忘记了MySQL数据库中root用户的密码,用户可能会陷入无法登录数据库的困境。这种情况对于数据库管理员来说尤其麻烦,因为没有密码意味着无法执行数据库管理任务,比如更新、查询等。...
在Windows操作系统中,有时用户可能会忘记自己的登录密码,导致无法正常访问系统。在这种情况下,"系统密码解除"就显得尤为重要。本文将详细讲解如何通过工具和方法解除Windows系统的密码,以便重新设置新的登录密码...
### 忘记Windows XP登录密码的九种...以上介绍的方法涵盖了多种场景下的解决方案,希望能帮助到忘记Windows XP登录密码的用户。值得注意的是,在尝试这些方法时,一定要确保对系统有充分了解,以免造成不必要的损失。