本文讨论:
Windows 智能卡编程基础
示例智能卡应用程序的实现方法
编写实现智能卡功能的托管打包程序
智能卡事务管理
这篇文章基 于 Windows Vista 的预发布版而撰写。其中包含的信息可能会有所变动。
本文使 用了以下技术:
Windows Vista, C++, C#
目录
Windows 智能卡编程
智能卡的发展
示例应用程序的实现方法
WinSCard API 打包程序
GetSmartCard 帮助器例程
卡模块 API 打 包程序
处理 CardAcquireContext
事务管理
卡模块接口设计基本原 理
使用 CLR 加密
依赖关系和测试
智能卡(简单地说,就是嵌入了 微型芯片的信用卡)的概念已经提出将近 30 年了。但现在安全工作的重点是让公司和政 府等机构重新审视一些早已有之的理念。
对于身份验证系统的脆弱连接(即密码 )来说,智能卡是一个很吸引人的替代方法。整个行业非常需要能够替代密码的技术。借 助嵌入式的加密处理器,智能卡提供了非常安全且易于使用的身份验证机制。
然 而,智能卡的部署也带来了其特有的挑战。整个行业需要更好的产品来部署和管理复杂的 身份验证技术。比尔·盖茨在 RSA 2006 大会上做的主题发言中,演示了 Microsoft Certificate Lifecycle Manager,该产品充分利用了我们这篇文章中讨论的 API。
整个行业还要着手应对客户隐私保护的要求。消费者需要一种保护特权信息 的方法,例如,美国的在线银行业很快会要求使用严格的身份验证。在这个过程中,消费 者将使用诸如 Windows CardSpace 的技术选择在各种在线事务中,披露哪些个人信 息。例如,在在线银行事务过程中,我可能很机密地证明我的社会保险号 (SSN) 与我的 身份是绑定在一起的,但我不可能与之共享我的信用卡号码。反之,我会授权将我的信用 卡号码(而不是 SSN)透露给电子商务网站。
Microsoft 已经认识到智能卡在其 平台的安全战略中所扮演的重要角色。开发人员需要了解可识别智能卡的应用程序的工作 原理,以及 Windows 操作系统使用了何种方法,使生活变得更加轻松。