安全性
使用一次性密码解决方案更安全地验证身份
Dan Griffin
本文讨论:
密码存在的问题
生成一次性密码
构建基于 Web 服务的 OTP 解决方案
测试和部署 OTP
本文使用了以下技术:
IIS 、SQL Server
目录
一次性密码
完整的 OTP 解决方案
测试 OTP 生成器客户端
示例网站
身份验证 Web 服务
完整的体系结构
运行代码示例
部署注意事项
尝试一下
密码的安全和管理是令企业 IT 管理员非常头疼的一个问题。用户往往创建非常简单的密码,或将其密码写下来以确保他们能够记住这些密码。此外,几乎没有安全有效的程序来重置密码。
既然存在这些限制,如何才能在远程用户访问您的网络时减少此类安全问题呢?由于许多用户都会写下他们的密码,如何才能使公司的密码解决方案更加可靠呢?我将介绍如何使用基于标准的技术以及 C# 和 C 来开发一次性密码(OTP) 概念验证。但是,我想先大致介绍一下密码替代技术。
有多种方法可用于消除远程用户的标准密码。可使用证书颁发机构来向用户颁发证书,但这需要公钥基础结构(PKI),并且其设置和维护成本比较昂贵。同时还难于管理远程用户的证书,尤其是使用基于硬件的令牌(如智能卡)时。此类高安全性常常导致高成本。
另外,可使用 RSA 提供的一次性密码解决方案 SecureID。但是,应当注意 SecureID 并非基于标准的技术,因此它可能导致不兼容问题和授权开销。
第三种选择是使用基于标准的 OTP 解决方案。但是,它有些什么类型的一次性密码选项,为什么 OTP 优于传统的密码?我们这就来研究一下。
一次性密码
传统的静态密码通常只在需要时才进行更改:当它过期时或者当用户忘记密码并需要重置时。由于密码缓存在计算机硬盘上并存储在服务器上,因此它们很容易被破解。便携式计算机尤其如此,因为它们容易被盗。
许多企业都为员工配备了便携式计算机,并将网络打开以允许远程访问。他们还会雇用临时员工和供应商。在此环境中,简单的静态密码解决方案可能成为一种不利因素。
与静态密码不同,一次性密码会在用户每次登录时发生更改。密码有以下两种生成方式:与时间同步或与计数器同步。两种方法通常都要求用户携带一个与服务器同步的小型硬件设备(通常可以挂在钥匙链上),并且通常都使用一些算法来生成密码。
与时间同步的 OTP 已得到广泛部署,但可能出现时钟偏差问题。即,如果身份验证服务器和用户令牌的时间不同,则无法生成预期的 OTP 值,并且用户身份验证将失败。使用与时间同步的 OTP 时,用户通常必须在特定时间段内输入该密码,否则会将其视为过期且必须生成另一密码。
与计数器同步的 OTP 解决方案将同步客户端设备与服务器之间的计数器。每次请求设备的 OTP 值时,计数器都会增加。就像使用与时间同步的 OTP 一样,当用户想要登录时,他必须输入设备上当前显示的 OTP。
用于应对复杂情况的 OTP 是一种特殊情况,它们通常还会使用硬件设备。但是,用户必须提供一个已知值(如个人标识号(PIN))才能生成 OTP。此类 OTP 目前正在欧洲广泛应用,用于为信用卡和借记卡增加身份验证。目前使用的 OTP 解决方案均建立在某种加密处理之上,以根据同步参数(即时间或计数器值)
一次性密码 来自淘豆网m.daumloan.com转载请标明出处.