裕平님의 프로필Steven's Coffee Corner사진블로그리스트 도구 도움말
    2005년 7월

    超越密码的时代——我们需要更强的安全认证(二)

    超越密码的时代——我们需要更强的安全认证(二)

     

    肖裕平

    2005年7月

     

      为了完成身份验证,你的身份必须以某种方式与你的密钥相捆绑,那就是证书(Certificate)。通过证书,我们可以将一个公钥和一个身份的实体及其相关信息(如公司,居住地和国家等)相绑定,这种绑定的方法使得被验证方的信息发必须与数字验证系统完全吻合才能通过,这也正是数字验证的目的所在。为了进一步解决陌生的双方互相验证所引起的问题,证书将由证书权威(CACertificate Authorities)——可信任的第三方使用他们自己的私钥统一生成并“签署”。通过这种方式,由这些可信任的作为“根”的CA所生成的任何证书都可以被人们欣然接受。被广泛应用于电子商务网站的SSL验证技术正是来源于数字验证。每个网页浏览器都包含了一个由知名“根”CA所组成的列表,比如说,Internet Explorer的可信任根列表就包含Thawte的证书(如下图所示)。

      

     

     

          公司团体可以向这些“根”CA购买证书,也可以自行在内部设立CA去生成,分发和 撤消他们自己的数字证书。可控安全服务供应商(MSSP)所提供的PKI服务一般都使用他们自己的CA去为客户生成证书。举例来说,一个MSSP可以发布一个CA作为“媒介”去认证一个公司并为使用这个CA的私钥来为签署这个公司所有用户的证书。这个公司必须在每个系统中都安装这些可信的CA证书。当一个公司客户想要进行身份验证时,她需要出示由该公司CA所签署的并使用指纹加密的私钥,验证系统则使用该CA的公钥去检证是否与私钥相匹配,以验证数字证书的有效性。这个验证过程是透明的,正如你输入帐号密码登录你的邮箱或购物网站一样。

     

          从上面简单的描述就可以看出,公钥结构是很复杂的。比较有规模的企业通常有自己的IT人员和安全专家去配置一个PKI,而一些规模较小的的企业在这方面就有进一步提高的空间,而MSSP们正可以给予他们以帮助。以搭建一个PKI平台为起点,利用现有资源实现自己的CA,这些资源包括:

    • Computer Associates   http://www3.ca.com/
    • Cybertrust/Betrusted   http://www.betrusted.com/products/unicert/index.asp
    • Digi-Sign                       http://www.digi-sign.com/
    • Entrust                         http://www.entrust.com/
    • Kyberpass                    http://www.kyberpass.com/
    • Microsoft                             http://www.microsoft.com/
    • OpenCA Project            http://www.openca.org/
    • Netscape/RedHat         http://www.redhat.com/software/rha/netscape/
    • Verisign                        http://www.verisign.com/

          从这些供应商的网站和一些如www.pki-page.org这样的第三方站点中,我们可以了解到更多关于数字验证和配置PKI的知识。数字验证已被广泛应用于服务器验证领域,比如说站点对站点的VPN网关验证。当然,这些供应商还可以提供更强大的用户身份验证系统,如在无线局域网中使用基于802.1XEAP-TLShttp://www.wi-fiplanet.com/tutorials/article.php/10724_3075481_1)。但是,很多公司在配置PKI的复杂度和较高的成本面前不得不选择放弃,他们还在继续寻找其它比密码系统更强的用户验证方法。

     

    1.     一次性密码
        
    如果你不能接受复杂的身份验证系统,那么你可以考虑使用一次性密码(OTPsOne Time Passwords)。密码破解者很希望人们不断重复地使用相同的密码,因为这样一来,他们的破解目标就比较固定。针对这种情况,OTPs主张建立一个每个密码只能被验证一次的验证系统。当一个一次性密码被使用过以后,它就不会再被使用(至少在很长时间内不会被再使用)。

          一次性密码系统依靠的是在用户和验证服务器之间预先定义好的一个同步关系。用户提供一个用短句描述的不为人知的秘密和密码中的一个数字,然后密码生成器就会建立一个由多个密码组成的有序列表。当用户试图进行身份验证时,他的一次性密码就会发往服务器。如果验证通过,服务器就会重新调整用户的密码计数器,这样一来,当用户下一次进行身份验证时,系统就会提示要求另一个一次性密码。

    众所周知,免费可用的一次性密码系统由Bellcore90年代所开发的S/KEY(一个软件包),并作为RFC 2289http://www.ietf.org/rfc/rfc2289.txt)的基础。事实上,在每个操作系统中都包含了免费有效的S/KEY工具。这些操作系统有: 

    • DOS/Win32            http://www.eda.org/pub/tools/
    • Java                       http://www.cs.umd.edu/~harry/jotp/
    • Linux                     http://freshmeat.net/projects/pam_skey
    • MacOS                    http://www.orange-carb.org/SkeyCalc/
    • PalmOS                  http://www.eda.org/tools/pilOTP/index.html
    • FreeBSDhttp://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/one-time-passwords.html

    S/KEY的继承者——OPIEOne-time Passwords In Everything)在很多地方也同样有效。在NASA的网站列表中就有许多与此相关的链接。一些远程访问产品也包含S/KEY,并将其作为一个选项,比如Citrix在线的GoToMyPC公司的一次性密码生成器(如下图所示)。

     

     

          像其它“普通”密码一样,一次性密码的安全性取决于初始秘密短句的强度(长度和随机性)。RFC2899中建议将初始秘密短句至少设在10个字符。好在OTPs系统在防止被动窃听方面并不脆弱,当有些人试图窃听一系列一次性密码然后去猜测列表中剩下的,并跟踪用户去完成后面的验证时,OPTs能够通过主动追踪攻击者来缓解黑客的攻势。攻击者为了实现一次攻击,必须找机会去盯着同一个用户数次使用一次性密码通过验证,而验证系统则需要将一次性密码作为一个独立的验证因素来依靠,不能够让人通过一两个一次性密码就猜出列表中其它所有密码。

     

    S/KEYOPIE可以作为一种更为经济的方式去提升一个基于密码的验证系统的安全性。客户端和服务器端的软件是免费的,而且你不需要在客户端添置任何硬件。但是,大多数公司不怎么愿意使用S/KEY的一个原因是其操作起来较为麻烦。在密码列表中找出第35号一次性密码并且正确输入一长串不固定的字符确实要比输入一个简单的老式密码困难得多。虽然为了少打几个字,我们可以运行一次性密码的工具去再次生成第35号密码,然后使用拷贝/粘贴把它拷贝到登录提示框中,但整个过程依然显得难以使用,所以最终用户并没有广泛地使用它。

     

    댓글

    잠시만 기다려 주세요...
    죄송합니다. 입력한 댓글이 너무 깁니다. 내용을 줄여 보세요.
    입력한 내용이 없습니다. 다시 시도해 보세요.
    죄송합니다. 지금은 댓글을 추가할 수 없습니다. 나중에 다시 시도해 보세요.
    댓글을 추가하려면 부모님의 사용 허락이 필요합니다. 허용 요청
    부모님이 댓글 기능을 해제한 상태입니다.
    죄송합니다. 지금은 댓글을 삭제할 수 없습니다. 나중에 다시 시도해 보세요.
    하루에 남길 수 있는 댓글의 최대 한도를 초과했습니다. 24시간 후에 다시 시도해 보세요.
    회원님의 계정은 다른 사용자에게 스팸 메일을 보낼 수 있다고 여겨지므로 댓글 기능이 비활성화되어 있습니다. 이 설정에 문제가 있다고 생각되면 Windows Live 지원에 문의하시기 바랍니다.
    댓글을 남기려면 아래 보안 검사를 완료해야 합니다.
    보안 검사에 입력한 글자는 그림 또는 오디오에 있는 글자와 일치해야 합니다.

    댓글을 추가하려면 Windows Live ID로 로그인하세요. 핫메일, 메신저 또는 Xbox LIVE를 사용하는 경우 해당 계정을 Windows Live ID로 사용할 수 있습니다.로그인


    Windows Live ID가 없으신가요? 등록

    트랙백

    이 블로그를 참조하는 웹 로그
    • 없음