1、 本科毕业论文 (科研训练、毕业设计 ) 题 目: BeansPass 密码管理系统 开发 姓 名: 学 院:软件学院 系: 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 年 月 摘要 信息社会的今天, 在 密码给 人们 带来 了 便利和安全的同时也因其数量和复杂性让人们 在对密码的管理方面 遇到了 许多困难 。 为了减少密码问题在工作 和 生活中给人们带来的不便和损失, DPM 桌面密码管理 系统 孕育而生 。 它 是一个基于 Windows 操作系统的SSO( Single Sign On)应用程序, 用户只需要记住操作系统密码并登录 Windows 操作系统,就可以通
2、过 DPM 系统记录其他程序的登录信息并为用户实现登录。 BeansPass 以 DPM 为原型,由 香港 Beans Factory 责任有限公司与厦门大学软件学院合作 开发 ,作者和其项目小组 共同 参与了该项目的开发。本文将对 BeansPass 系统的框架和功能 做出 介绍,并将详细介绍作者本人负责开发的部分, 介绍 其 需求 ,实现以及 结果展示 等内容 。 BeansPass 是以 .Net Framework 2.0 作为开发 环境 ,在 该 环境下 实现对该系统的 界面优化 、 国际化 和 许可证控制 等功能。 许可证控制 是其主要部分, 我们 组采用 XML 数字签名技术来实
3、现该功能。 在 本文 中,将 介绍 XML 数字签名 技术 的原理,特点以及其格式内容。 还将结合 XML 数字签名技术 在 BeansPass 系统中的 运用, 说明 在 BeansPass 中如何实现该签名技术的各个环节。 关键词: SSO( Single Sign On) 国际化 许可证控制 XML 数字签名技术 Development of the BeansPass Manager System Abstract Nowadays, in the information age, passwords bring people the convenience and security,
4、 meanwhile the trouble to manager them caused by their amount and complexity also has arisen. In order to save the inconvenience and lost that passwords cause in peoples daily life and work, the DPM system came to being. It is a SSO (Single Sign On) application that runs on the Windows OS and uses t
5、he Windows logon credential to sign on other applications on behalf of users. It makes the management of the passwords much easier. With the cooperation of Beans Factory Hong Kong Co. Ltd and Software School of Xiamen University, the author and his team joined the project BeansPass, which bases on D
6、PM system and is designed to achieve more benefit in business. The thesis is going to introduce the functionalities and architecture of the BeansPass and elaborate the parts shared by the author, including the requirements, implementation, results and so on. .Net Framework 2.0 is the developing envi
7、ronment for BeansPass on which the UI improvements, localization, license control and other requirements were implemented. Among those requirements, license control is a major task and the XML Digital Signature is adopted. Thus, the thesis will explain the XML Digital Signature, about the elements,
8、characteristics and structure of this technology. What is more, the integration of XML Digital Signature and BeansPass system is going to be presented, involving each step of the implementation process. Keywords: SSO (Single Sign On); Localization; License Control; XML Digital Signature 目录 目录 第一章 绪
9、论 . 1 1.1 项目背景 . 1 1.2 系统现状 . 2 1.3 工作内容 . 3 1.4 本文结构 . 4 第二章 BeansPass 系统设计 . 6 2.1 BeansPass 系统框架设计 . 6 2.1.1 系统功能框架 . 6 2.1.2 技术架构 . 7 2.2 BeansPass 模块设计 . 8 2.2.1 脚本管理 . 8 2.2.2 系统管理 . 10 2.2.3 许可证控制 . 10 2.2.4 国际化支持 . 11 2.3 开发流程 . 11 2.4 开发平台 . 12 2.5 小结 . 12 第三章 BeansPass 系统开发 . 13 3.1 界面优化 .
10、 13 3.2 国际化 . 15 3.2.1 界面的汉化 . 15 3.2.2 消息的汉化 . 16 3.3 许可证控制 . 16 3.3.1 XML 数字签名技术 . 16 3.3.2 许可证的实现 . 18 3.4 新 Web 工作流的设计与实现 . 19 3.5 安装文件的生成 . 20 3.6 小结 . 21 目录 第四章 BeansPass 系统展示 . 22 4.1 国际化 . 22 4.2 许可证控制 . 23 4.2.1 许可证生成 . 23 4.2.2 许可证验证 . 26 4.3 系统安装 . 27 4.4 小结 . 30 第五章 总结与展望 . 31 5.1 工作总结 .
11、 31 5.2 工作展望 . 31 参考文献 . 32 致 谢 . 33 Contents Contents Chapter 1 Introduction . 1 1.1 Background. 1 1.2 Current Situation . 2 1.3 Contents and Tasks . 3 1.4 Architecture of Thesis. 4 Chapter 2 System Design of BeansPass. 6 2.1 Architecture of BeansPass . 6 2.1.1 Functional Architecture. 6 2.1.2 Tech
12、nical Architecture . 7 2.2 Design of Modules . 8 2.2.1 Script Management . 8 2.2.2 System Management . 10 2.2.3 License Control . 10 2.2.4 Localization Support . 11 2.3 Program Flow . 11 2.4 Development Platform. 12 2.5 Summary. 12 Chapter 3 Development of BeansPass . 13 3.1 UI Improvement . 13 3.2
13、Localization . 15 3.2.1 Localize UI. 15 3.2.2 Localize Messages . 16 3.3 License Control . 16 3.3.1 XML Digital Signature . 16 3.3.2 Implementation of License Control . 18 3.4 Design and Implementation of New Web Flow . 19 3.5 Installer . 20 3.6 Summary. 21 Contents Chapter 4 The Demonstration of Be
14、ansPass . 22 4.1 Localization . 22 4.2 License Control . 23 4.2.1 Generation of License . 23 4.2.2 Validation of License . 26 4.3 Installation . 27 4.4 Summary. 30 Chapter 5 Conclusion and Future Work . 31 5.1 Conclusion . 31 5.2 Future Work . 31 References . 32 Acknowledge . 33 第一章 绪 论 1 第一章 绪 论 1.
15、1 项目背景 在日常的工作生活中,我们用密码来保护我们的数据,通过密码来验证用户的身份,赋予 用户一些权限 等等 。密码在当今的信息社会已成为相当重要的验证信息,就如同一把特殊的钥匙,持有这把钥匙,才能打开一扇特定的门。 据一项统计资料表明,在工作生活中平均一位商业人士要使用 到 18 个密码 。如果人们的记忆力足够好,也许可以记住这些密码。但是根据安全的密码规则,密码通常都需要在60 90 天内更改一次,在这种情况下,要记住这些密码似乎是一件相当困难的事。就算能记住那些密码,仍然有问题存在。比如用户混淆了密码 ,因此在登录一个程序的时候只能多次尝试不同的密码,直到能够正确登录程序。这个过程对
16、时间来说 无疑 是一个浪费,虽然 只是一个很短的时间 。 但是 假设一家有 400 名员工的企业,每个员工一天平均登录 7 次,偶尔产生 1 2 个错误,平均每次登录错误 花费 10 秒的时间,这样下来一年所浪费的时间约有 2520 小时,即约 315 个工作日。 最坏的情况就是用户不能记住密码,因此需要向管理员申请重设密码。为此需要一些必要的身份验证,操作手续等等。这些都对人力和财力造成了一定的消耗 1。 如若 将那些密码记录在文档里, 是否 可以解决忘记 密码的问题了吗?这样做的确可以解决这个问题,但是却不能保证密码的安全性了,而安全性对于密码来说是至关重要的因素。 除此之外,密码所带来的
17、问题还包括其他方面,如图 1.1 所示: 图 1.1 密码 造成的 问题 因此,要如何来解决对于密码的管理问题,才能 既 方便用户使用密码,又能保证密码的安全性 ,从而减少密码造成的损耗 呢 ? BeansPass 密码管理系统设计与开发 2 1.2 系统现状 如今,用户所使用的许多软件系统或网站都需要用户的身份验证登录后才可以进行使用。常见的有 ICQ、 QQ、 Windows Live Messenger、网易 Popo、淘宝旺旺、各大网站提供的邮箱、各个论坛以及企业中使用的系统、数据库等。 有些软件,如 QQ、 Windows Live Messenger 等即通讯工具都提供了自动登录的
18、功能。它们可以为某一个用户保存用户名和密码信息,当程序运行时便自动为该用户进行登录 。一些论坛等网站也可以通过 Cookies 等手段来为用户保存登录的用户名和密码,默认为用户进行登录。 这些,都可以在一定程度上避免因密码问题造成的损失。 然而,这些 软件 或系统都只能为用户自动登录 本 系统, 却 没有一款通用的软件 能够对多种软件或系统的用户名和密码进行统一管理和帮助用户实现自动登录。 当系统密码需要定期修改时,这种困境往往会变得更加明显。 Beans Factory 香港责任有限公司 ( http:/) 提出了 DPM 系统的设计方案来解决以上所讨论的问题。 DPM( Desktop P
19、assword Manager)桌面密码管理系统软件,它能够帮助用户管理密码,自动对程序进行登录,密码 更新 等操作,并保证密码的安全性。 用户只需要记住操作系统密码并登录 Windows 操作系统,就可以通过 DPM 系统记录其他程序的登录信息并 为用户实现 自动 登录。 DPM 就采用这种 SSO( Single Sign On) 单点登录 的模式 来为用户实现 Windows 桌面程序、 Web 程序以及 3270 终端的登录 , 如图1.2 所示 。 SSO 的根本含义是实现合法用户一次登录 就 可以访问多个应用系统 2, 图 1.2 SSO 图示 DPM 通过一定的训练过程 将 要登
20、录的程序窗口、用户名、密码和提交控件 记录 在脚本第一章 绪 论 3 文件中。 在探测到运行的登录的窗口时,就 根据脚本文件中控件信息,和用户信息文件中的用户登录信息 自动为用 户 完成 登录操作。 DPM 利用 Windows 的 DPAPI来保护应用程序的用户名和密码等敏感信息。并将这些敏感信息以加密的 XML 数据 文件保存在个人电脑中,从而保证了敏感数据的安全性 3。 DPM 系统 在设计和功能方面都能较好的解决上一节中 提到 问题,但 DPM 仍然在几个方面仍存在着 一些不足 : (1) 软件 商业化: 1 界面方面存在局限性 ,体现在界面的美观性和人机交互方面 ,不利于作为一款通用
21、的商业软件发布 ; 2 DPM 只有 英文版本,不支持中文 以及 其他 语言间的 切换; 3 缺少许可证控制 ,不能够很好的保护产品的产权,不利于商业化发展; 4 DPM 需要专门的技术人员手动部署和配制 。 (2) 对 Web 应用程序密码管理流程 : 1 不具有良好的通用性:对网页中设计登录的控件(如 textbox, button)的探测存在缺陷,要求这些控件都具有 name 属性值,且该属性值必需存在于 某个 配置文件中; 2 效率低: 训练 Web 应用程序脚本时,需要 对 页面中 每个控件 在 配制文件的 所有name 值中查找匹配的属性值,导致训练时间很长,并且占用系统资源严重,并且经常会出现训练不成功 的现象 。 3 自动登录过程,采用了计时器技术,每 隔 几秒钟 便对 所有 IE 窗口 进行访问 。当用户打开浏览器窗口过多时,系统速度变慢。 1.3 工作内容 我们与 Beans Factory 公司合作,希望能够在 DPM 的基础上,开发一款通用的商业化密码管理软件 BeansPass。 主要的 工作内容 有 : (1) 界面优化 : 对界面进行 重新 设计和修改,使得界面更加友好。 (2) 国际化 : 提供 中英文两种语言 , 并留下其他语言 包接口, 以及 实现 语言 切换功能 ,以适应