AAA是Authentication,Authorization and Accounting(认证、授权和计费)的简称[1],它提供了一个用来对认证、授权和计费这三种安全功能进行配置的一致性框架,实际上也是对网络安全的一种管理,这里的网络安全主要是指访问控制。传统AAA一般采用客户/服务器结构:客户端运行于被管理的一端,服务器上集中存放管理和用户信息。因此,AAA框架具有良好的可扩展性,容易实现用户信息的集中管理。
AAA负责管理的主要问题包括:哪些用户可以访问网络服务器;具有访问权的用户可以得到哪些服务;如何对正在使用网络资源的用户进行计费。AAA的认证、授权、计费三个机制就是针对以上三个问题的解决方案。
认证(Authentication)指用户在使用网络系统中的资源时对用户身份的确认。这一过程,通过与用户的交互获得身份信息(如:用户名和口令组合、生物特征等),然后提交给认证服务器;后者对身份信息与存储在数据库里的用户信息进行核对处理,然后根据处理结果确认用户身份是否正确。
授权(Authorization)是依据认证结果开放网络服务给用户,网络系统授权用户以特定的方式使用其资源,这一过程指定了被认证的用户在接入网络后能够使用的业务和拥有的权限。
计费(Accounting)是网络系统收集、记录用户对网络资源的使用情况,并提供给计费系统,以便向用户收取资源使用费用,或者用于审计等目的。如:在互联网接入业务中,用户的网络接入使用情况可以按流量或者时间被准确记录下来,ISP可以根据这个来进行收费。
认证、授权、计费三个部分是相互关联的。只有通过认证,确认了用户的身份,系统才可以授予用户相应的使用资源的权限;同时,系统也确定了收取服务费用的对象;根据用户级别不同,系统授予用户不同的权限,防止用户非法使用网络资源;根据用户所使用的服务和系统资源,使用不同的计费策略来进行计费,向用户收取相应的费用。认证、授权和计费一起实现了网络系统对特定用户的网络资源使用情况的准确记录。这样既在一定程度上有效地保障了合法用户的权益,又能有效地保障网络系统安全可靠地运行。
下面简单介绍AAA的基本过程:
首先,认证部分提供了对用户的认证。认证通常是采用输入用户名与密码的形式进行。用户名是识别用户的唯一标识,密码则是审核用户权限的依据。AAA服务器将用户的用户名和密码同数据库中保存的用户的数据进行核对。如果符合,那么该用户认证通过。如果不符合,则认证失败,拒绝提供网络服务。
如果认证通过,接下来就进入授权部分,认证和授权过程是紧密相连的,一旦用户通过了认证,他也就被授予了相应的权限。通过授权,用户可以获得操作相应任务的权限。授权过程可以说是伴随用户整个连接过程的,它要随时检测用户是否拥有执行当前命令的权限,它是一系列强迫策略的组合,包括:确定服务的种类或质量、用户被允许的服务有哪些等。
最后是计费过程,主要是通过计费模块计算用户在连接过程中消耗的资源数目。这些资源包括连接使用资源的时间、用户的上传下载流量、用户使用的资源类型等等。根据连接过程的统计日志、用户信息、计费模块记录的信息,使用相应的计费策略,即可以计算用户的费用。
AAA是一种管理框架,它可以用多种协议来实现。目前,应用最广泛的是RADIUS协议,此外还有TACACS协议和正处于研究中的下一代AAA协议——Diameter。