用 Kerberos 为 AIX 实现双因素身份验证
2009-01-13 08:33:06 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

Kerberos 是用于网络身份验证的常用安全机制。大多数操作系统(比如 AIX、Linux® 和 Windows®)的登录模块都支持基于 Kerberos 的身份验证。另外,UNIX 系统上的许多远程登录应用程序(比如 Open SSH、telnet、rlogin 等)也有支持 Kerberos 的版本。基于 Kerberos 的身份验证模块可以用 Kerberos API 直接实现,也可以使用 GSS-API 接口实现。随着 Kerberos 的使用越来越广泛,组织很可能需要在使用 OTP 的双因素身份验证系统中使用 Kerberos 机制。
按照推荐的双因素身份验证系统设计,本文使用 Kerberos 实现第一因素身份验证,然后使用 Kerberos 基础架构(通过 GSS-API 接口)实现使用 OTP 令牌的第二因素身份验证。在按照这种方式实现的双因素身份验证系统中,Kerberos 协议扮演双重角色:
在第一因素身份验证中,Kerberos 作为身份验证协议。
在第二因素身份验证中,使用 Kerberos(通过 GSS-API 接口)作为与 OTP 通信的安全通道,并在客户机和服务器之间安全地传输 OTP 的检验结果。
除了支持 Kerberos 的现有应用程序(采用单因素身份验证)之外,还可以按照这种设计在基于网络的解决方案中应用 Kerberos 协议,从而实现双因素身份验证。
GSS-API
IETF RFC 2078 对 GSS-API 的定义如下(参见 参考资料):
Generic Security Service Application Program Interface (GSS-API) 按照一种通用方式向调用者提供安全服务,可以支持各种底层机制和技术,因此支持在源代码级把应用程序迁移到不同的环境。
Kerberos 是通过 GSS-API 使用的最流行的底层安全机制。IBM Network Authentication Service V1.4 for AIX 实现了 GSS-API 标准并使用 GSS-API 库导出它的接口,这些接口支持 Kerberos 机制。通过使用这些 GSS-API 接口,可以实现使用 Kerberos 机制的安全应用程序和系统。在 GSS-API 中,两个相互通信的应用程序之间的安全连接通常由一个称为安全上下文的数据结构表示。建立安全连接的应用程序称为上下文发起者。接受安全连接的应用程序称为上下文接受者。在发起者和接受者之间建立上下文实际上是一个握手过程,此过程需要对双方进行身份验证。成功地建立 GSS-API 上下文之后,就可以认为已经成功地检验了用户身份。
更多精彩
赞助商链接