MSDN 杂志 > 主页 > 所有期刊 > 2008 > May > 安全性: 使用一次性密码解决方案更安全地验证身份
安全性
使用一次性密码解决方案更安全地验证身份
Dan Griffin
代码下载位置:
使用一次性密码解决方案更安全地验证身份
Dan Griffin
代码下载位置: OTPAuthentication2008_05.exe (496 KB)
Browse the Code Online
本文讨论:
- 密码存在的问题
- 生成一次性密码
- 构建基于 Web 服务的 OTP 解决方案
- 测试和部署 OTP
本文使用了以下技术:
IIS 7.0、SQL Server
目录
一次性密码
完整的 OTP 解决方案
测试 OTP 生成器客户端
示例网站
身份验证 Web 服务
完整的体系结构
运行代码示例
部署注意事项
尝试一下
密码的安全和管理是令企业 IT 管理员 非常头疼的一个问题。用户往往创建非常简单的密码,或将其密码写下来以确保他们能够记住这些密码。此外,几乎没有安全有效的程序来重置密码。
既然存在这些限制,如何才能在远程用户访问您的网络时减少此类安全问题呢?由于许多用户都会写下他们的密码,如何才能使公司的密码解决方案更加可靠呢?我将介绍如何使用基于标准的技术以及 C# 和 C 来开发一次性密码 (OTP) 概念验证。但是,我想先大致介绍一下密码替代技术。
有多种方法可用于消除远程用户的标准密码。可使用证书颁发机构来向用户颁发证书,但这需要公钥基础结构 (PKI),并且其设置和维护成本比较昂贵。同时还难于管理远程用户的证书,尤其是使用基于硬件的令牌(如智能卡)时。此类高安全性常常导致高成本。
另外,可使用 RSA 提供的一次性密码解决方案 SecureID。但是,应当注意 SecureID 并非基于标准的技术,因此它可能导致不兼容问题和授权开销。
第三种选择是使用基于标准的 OTP 解决方案。但是,它有些什么类型的一次性密码选项,为什么 OTP 优于传统的密码?我们这就来研究一下。
一次性密码
传统的静态密码通常只在需要时才进行更改:当它过期时或者当用户忘记密码并需要重置时。由于密码缓存在计算机硬盘上并存储在服务器上,因此它们很容易被破解。便携式计算机尤其如此,因为它们容易被盗。
许多企业都为员工配备