我们来了解认证(Authentication)与授权(Authorization)的区别。认证用于确认用户身份,授权用于核验访问资源的权限。
技术术语往往令人困惑。网络安全领域有大量词汇描述不同方面,有时很难区分。以认证与授权为例,二者读音相近,却指向两个完全不同的过程。
AAA 框架(Triple-A)
你可能听过这些词却不了解其中两个属于网络安全的特殊框架。AAA 是三个关键词的缩写:
Authentication(认证)、Authorization(授权)、Accounting(计费/审计)。
TechTarget 对 AAA 框架的定义更为清晰:「认证、授权与计费(AAA)是一套用于智能控制计算机资源访问、执行策略、审计使用情况并提供计费所需信息的框架。」
下面重点看前两个词——认证与授权的区别。
认证确认身份
在社交礼仪中,握手是常见的问候方式,代表一定程度的信任,这种意象也被用于网络世界。除了握手,人们还通过口头交谈相互介绍。当两人明确说出自己的姓名与身份时,便是在完成身份识别。
在网络上,认证确认正确的人员正在访问系统。最常见的认证方式是用户 ID 与密码的组合——你每天可能都在多个应用或网站上使用。你通过只有自己知道的密码明确表明身份;除非共享密码,否则他人无法登录(而这恰恰违背了密码的目的)。
另一种认证方式是公钥基础设施(PKI,Public Key Infrastructure)。它比简单的用户 ID 与密码组合拥有更多安全层级,使用公钥与私钥来认证用户、设备与软件,并依赖证书颁发机构(CA,Certificate Authority)通过密码学消息构建数字安全。
当两个异地设备相互通信并建立信任,我们称之为认证,有时也称为「握手(handshake)」。握手完成后,双方即可安全开展业务。
授权授予权限
通过可信握手指认通信线路后,接下来要处理的是授权。并非所有人都拥有做所有事的权限。例如进入百货商店,你有权浏览、试穿商品,但无权进入柜台后方或 store 后场,那仅限员工;你显然也无权打开收银机。授权明确界定用户在某一系统上拥有哪些权限:办公电脑上你可能可以使用各类应用,但管理任务可能仅限 IT 人员;已注册的网站可能依据你所购服务套餐赋予不同权限级别。授权告诉你被允许做什么、使用什么。
认证与授权对比
认证:确认用户身份;授权:核验用户访问资源的权限。
认证的方式包括:
密码(Passwords);双因素认证(Two-factor authentication);验证码测试(Captcha);生物特征认证(Biometric authentication)。
授权使用的技术包括:
OAuth(Open Authorization,开放授权);权限(Permissions)——对文件的读写访问、允许访问数据库、指定访问数据的用户角色等。
授权由服务器控制,以判断谁在访问其数据或站点,由服务器决定客户端是否有权访问某项资源。理解认证与授权等概念,能让我们更清楚互联网如何运作、如何变得安全——它们也是任何互联网原理研究中常见的概念。若没有这些流程在网络基础设施中的全面实施,互联网将远不如现在安全。