论文部分内容阅读
随着网络应用的增多和Web服务技术不断完善和发展,越来越多的企业和组织选择将自己的业务以Web服务的形式提供到网上,以方便用户和其他应用服务的调用.但是随之而来的安全问题也更加突出.认证技术是网络安全的基础.现有的认证机制都普遍要求用户先注册,访问站点时用户首先要认证自己(一般通过用户名/密码),才能调用不同站点(可能位于不同域)提供的服务.这样用户必须记住许多用户名和密码,而且每次都要进行输入工作,非常的不方便.同时密码多次在网上传送也留下了很多安全隐患.针对这类问题出现了"单点登录"的概念.单点登录是指用户进行一次登录后就可以访问多个服务网站,而无需重复认证自己.要实现单点登录,可以有多种方式,从最初的密码同步和脚本方式到后来的基于令牌的认证机制,都能从不同程度上实现单点登录.目前的单点登录系统广泛使用了Kerberos这种业界普遍认同的安全网络身份验证协议.传统的Kerberos认证系统采用对称密钥加密算法对信息进行加密.因此,用户、应用服务和认证中心之间彼此都共享一个不为外人所知的会话密钥.这对于密钥的管理和保存都提出挑战并且在会话的过程中无法保证双向认证;同时,现有的网络应用中,存在着各种不同的认证方式,而Kerberos无法在使用不同认证机制的域间实现统一的单点登录.该文采用公钥加密和web服务中的安全声明标记语言SAML来解决传统Kerberos中的上述问题.传送敏感数据时,发送方可以先用对方的公钥加密再用自己的私钥签名,这样只有正确的接受方才能解密数据,并且确认发送方的身份.公钥的分发可以采用证书的形式,减少了会话密钥在网络上的传递,进一步保证了通信双方的身份安全.SAML声明则被用于在各个异构体系之间传递身份认证信息.由于SAML本身并不提供认证服务,所以必须与身份认证服务联合使用.其与Kerberos的结合使用,能为网络提供更安全的适用于Web服务具体环境的联合单点登录系统.