一种基于用户地址的单点认证方法

时间:2022-04-26 03:29:31

一种基于用户地址的单点认证方法

摘要:在电信运营商级别的NAT(CGN)环境下,用户ADSL拨号成功后,不再获得公有IPv4地址,而是获得一个私有IPv4地址。此私有地址并不能像公有地址那样唯一标识用户,因此,需要考虑用其他的方法来实现原有功能。本文提出基于IPv6地址来标识用户,实现在NAT444环境下的单点认证。

关键词:IPv6;NAT;单点认证

中图分类号:TP393 文献标识码:A文章编号:1007-9599 (2011) 12-0000-01

A Single Point Authentication Methods Based on the User's Address

Tang Jia

(Guangdong Telecom Engineering Co.,Ltd.,Guangzhou510100,China)

Abstract:In the telecom carrier-grade NAT(CGN)environment,the user ADSL dial-up is successful,no longer get public IPv4 addresses,but access to a private IPv4 address.This private address and did not like the public address uniquely identifies the user,therefore,need to consider other ways to achieve the original functionality.In this paper,based on IPv6 addresses to identify users,to achieve a single point NAT444 environment certification.

Keywords:IPv6;NAT;Single point certification

一、概述

在IPv4环境下,用户ADSL拨号,将获得一个公有IPv4地址。当此用户访问ICP收费服务时,不需要输入用户名和密码,系统将根据用户的公有IPv4地址,在AAA中反查用户名和用户权限信息,从而决定是否允许用户访问或使用收费资源。但是在运营商级别的NAT(CGN)环境下,用户ADSL拨号后直接获得一个私有IPv4地址,此地址并不能像公有地址那样唯一标识用户。因此,需要考虑用其他的方法来实现原有功能。本文提出基于IPv6地址来标识用户,实现在NAT444环境下的单点认证。此方法适用场景是用户开启IPv4/IPv6双栈。在拨号时,宽带接入服务器(BRAS)同时下发一个私有IPv4地址和一个全球唯一的IPv6地址(或前缀),此IPv6地址唯一地标识用户。

二、方案简介

本文介绍了一种基于IPv6地址的单点认证方法,其基本思路是通过获取用户的IPv6地址判断用户的合法性和具有的权限信息,实现跨域的单点认证。该方法解决在ICP还没有完全迁移至IPv6环境时,Web内容还是停留在IPv4服务器的情况下,如何准确获取用户的IPv6地址,如何在IPv4系统和IPv6系统之间传递信息和进行会话跟踪。

三、具体流程

(一)首先,用户和Passport认证系统开启IPv4/IPv6双栈,宽带用户拨号通过认证,BRAS和AAA系统将协商并为其分配一个私有IPv4地址和一个IPv6地址,AAA在记录中添加一条记录(用户名、密码、私有v4地址、IPv6前缀)。

(二)用户在浏览器输入付费应用系统A网址并按回车,此操作会触发用户对此域名发起A和AAAA的DNS请求,当DNS系统返回A和AAAA记录时,便会发起HTTP请求,由于用户是双栈的,所以会优选IPv6发起连接。

(三)由于用户是首次发起HTTP请求,所以在HTTP首部中,并没有携带COOKIE信息,因此系统A断定用户还未经过认证,于是重定向到统一的PASSPORT认证平台,并在重定向的URL中携带参数SERVICE=URL_A,保留用户原来访问的系统的URL,使得认证过程完毕后,可以顺利让用户返回付费系统A。

(四)重定向相当于告诉用户,让用户对新的URL发起另外一个新的HTTP请求,因此DNS查询过程也会再次执行,由于用户和PASSPORT系统都是双栈,用户访问PASSPORT平台将使用IPv6地址,PASSPORT系统检测HTTP报头,没有发现COOKIE,断定用户没有在PASSPORT认证过。

(五)PASSPORT系统通过动态页面技术获取用户的IPv6地址,把用户IPv6地址发送至AAA系统,通过IPv6地址的前缀反查用户信息,包括用户购买了哪些服务。

(六)AAA把查询结果返回给PASSPORT系统,如果能在AAA查询到相应条目,说明用户是合法用户,但是否购买服务,还需进一步检查,PASSPORT为合法用户生成一个User Token作为合法用户的凭证,在HTTP的回复中以COOKIE形式返回给用户,存储在客户端,此COOKIE由PASSPORT设置,因此只在PASSPORT所在的域中有效。

(七)PASSPORT再把用户重定向至付费系统URL_A,PASSPORT需要根据AAA返回结果对用户是否具备付费系统A使用权限进行检查,并把检查结果以参数RESULT形式通过URL_A回传给系统A,以便系统A做相应的决策,PASSPORT还需要缓存AAA的返回结果,以便后续的鉴权需要。

(八)系统A接收到用户的再次请求后,可以通过其携带的参数得知用户已经通过PASSPORT系统的认证,并通过RESULT参数得知用户是否具有系统A使用权限。如果有,则允许用户访问付费系统A,并为其生成一个标识合法用户的SP Token,通过COOKIE形式存储在客户端。

(九)至此,一次认证完毕;此时,PASSPORT系统和系统A分别向用户设置了一个COOKIE,两个COOKIE分别只对一个域有效。

(十)如果用户再访问系统B,由于上述两个COOKIE与系统B无关,系统B认为用户是第一次访问,并为经过认证,便把其重定向至PASSPORT做认证,因为之前PASSPORT已经为其设置过COOKIE,因此可判断它已经认证过,但还需根据从AAA返回的结果继续判断是否具有系统B的使用权限,并把判断结果返回给系统B,系统B根据结果判断是否允许访问,以及是否写COOKIE到用户端。

(十一)由此可见,用户在不同系统之间,并没有在PASSPORT重新输入密码等验证信息,验证过程只进行一次,但不同系统的访问权限判断是可以多次的,都在PASSPORT完成,用户不感知。认证过后的用户可以随意访问IPv6资源或IPv4资源,而无需重新输入用户名和密码。

四、结语

本文介绍了一种基于IPv6地址的单点认证方法。此方法包括如何获取用户IPv6地址,如何通过此地址判断用户的合法性和具有的权限信息,如何实现跨域的单点认证等。此方法能有效解决原有基于IPv4地址的认证系统的失效,以及避免传统基于用户名和密码的认证系统的安全风险,并具有推动IPv6发展的长远意义。

参考文献:

[1]杨国良.IPv6技术,部署以及业务应用[M].人民邮电出版社

上一篇:二线制变送正弦信号发生器 下一篇:浅谈WEB设计中的一些问题与对策