第
3
章
访问控制和身份认证
访问控制和身份认证是保证物联网安全的两大重要技术。访问控制是授
权用户访问物联网资源的过程,而身份认证是验证物联网用户证书真实性的
过程。
本章从基本概念、实现原理和常用技术3方面分别介绍访问控制和身份认
证相关机制。特别地,在访问控制方面,还介绍各种访问控制机制在物联网的
实际应用及其优缺点;在身份认证方面,进一步介绍身份认证技术在物联网中
的实际应用。

3.访问控制
1 

访问控制是物联网的安全基础之一,它在物联网设备资源授权和信息保护
方面尤为重要,用在某一方授权另一方(例如,用户)在何种条件下可以访问哪
些资源或信息的场景中。传统的访问控制机制如访问控制列表(AcesControl 
List,ACL )、基于角色的访问控制(Role-BasedAcesControl,RBAC)协议和
基于属性的访问控制(Atribute-BasedAcesControl,ABAC)协议已经被广
泛应用在物联网中。目前,为适应物联网环境下设备多源异构、数据体量大以
及设备计算和存储能力有限的场景特性,许多新型、灵活、轻量级且扩展性强的
访问控制机制相继被提出,如基于区块链技术的访问控制协议FairAces
、
BlendCAC和ControlChain。

3.1 
访问控制的基本概念
1.
广义上讲,访问控制的定义包含认证(Authentication)、授权(Authorization)和
审计(Auditing)3个属性(即AAA标准),工业上许多安全的访问控制协议都是
基于AAA标准来设计的,如Diameter基础协议。首先,协议认证用户的身份, 
通常的方法有用户名和密码认证、智能卡认证和生物特征认证等;其次,对认证
成功的用户,授权的一方决定哪些用户在什么条件下可以操作哪些资源对象, 
例如,授权用户名为U的用户只能通过Telnet访问服务器S;最后,用户的访问
历史可以被审计,例如,用户名为U的用户在2019年3月11日通过Telnet访问
了服务器S10分钟。从狭义上讲,访问控制是决定授权某一方可以基于某些安


第3章访问控制和身份认证29
全模型和策略读取或修改某些资源对象的过程,即上述的第二个属性。通常,一个有效安
全的访问控制机制需要满足3个特性:机密性(Confidentiality)、完整性(Integrity)和可
用性(Availability)。机密性指资源对象不允许泄露给任何未被授权访问的一方;完整性
指资源对象不可被任何未被授权访问的一方篡改;可用性是指任何被授权的一方可以正
确地访问到相应的资源对象。然而,在物联网时代,新型的访问控制机制应该满足高延展
性、灵活性和轻量级的需求。
3.1.2访问控制的实现原理
总体来说,实现访问控制的过程包括定义访问控制策略(或规则),基于定义的策略建
立访问控制模型,基于建立的模型设计访问控制机制,基于设计的机制实现访问控制。例
如,当对一个系统实现安全的访问控制机制时,可以先使用威胁诊断和漏洞评估方法制定
系统的安全访问控制策略,然后运用基于角色的访问控制方法对制定好的策略进行访问
控制建模,再基于访问控制标记语言XACML标准和OAuth2.0框架(见3.1.4节)设计
对应的访问控制机制,最后使用一些硬件或软件工具(如访问控制列表、加密算法、智能卡
等)实现访问控制。
定义访问控制策略时需要明确被访问的对象(称为主体)、请求访问的对象(称为客
体)以及主体和客体之间的交互活动。例如,在操作系统的保护中,主体可以是某些特定
的进程,客体可以是这些进程的父进程,客体可以向操作系统发出请求中断哪些子进程。
确定主体和客体之间的交互活动时,依据系统的威胁和漏洞评估结果,制定安全的针对对
象之间活动的访问控制策略。常见的评估方法有ISO/IEC27002 、ISO/IEC27005标准、
OTACEEBIOS规则,以及MAHARI 、CRAMM和OWASP标准等。

在现实情况下,定义好的访问策略往往偏向于人类可读的语言。因此,计算机系统要
识别策略存在语义的鸿沟,而建立合理的访问控制模型在这之间就起到了桥梁的作用。
访问控制模型,也称授权模型,可以将访问策略形式化为机器可读的语言。目前,存在许
多访问控制模型,如自主访问控制(DiscretionaryAcesControl,DAC)模型、强制访问
控制(MandatoryAcesControl,MAC)模型、基于角色的访问控制(RBAC)模型、基于
属性的访问控制(ABAC)模型和使用控制模型(UsageControlModel,UCM )。对一个
系统的访问策略进行建模时,可以使用多种访问控制模型完成建模,这往往适用于异构的
系统环境。

建立好合理的访问控制模型后,依据ISO的访问控制标准ISO/IEC10181-3,使用访
问控制标记语言XACML和OAut0框架设计协议,

h2.实现基于对象的访问控制和审核
策略,如引用监视器。在ISO/IEC10181-3标准下,引用监视器除了主体和客体对象外, 
还包含另外两个实体:访问控制实施(AcesEnforcementFacility,AEF)部件和访问决
策实施(AcesDecisionFacility,ADF)部件。访问控制实施部件也称策略实施部件
(PolicyEnforcementPoint,PEP),访问决策实施部件也称策略决策部件(PolicyDecision 
Point,PDP )。在协议设计中,请求者的访问请求先由AEF拦截解析,再转发给ADF根
据制定的访问策略做出访问控制决策,选择接受或拒绝请求者的访问请求。

最后,应用软硬件结合的工具实现访问控制协议,例如,如何执行策略,如何依据访问


30物联网安全:原理与技术
策略评估访问请求,检测策略执行时的异常情况以及验证策略的正确性等。除了上文提
到的访问控制列表、加密算法、智能卡外,还有审计日志软件、防火墙和报警器。
3.1.3访问控制的基本模型
3.1.2节主要介绍了实现访问控制过程的基本原理,本节将具体解释常用于实现访问
控制的技术,它们包括访问控制模型、标准协议和框架。
1.自主访问控制模型
自主访问控制模型根据客体的身份和访问规则控制资源如何被访问,说明允许(或不
允许)客体对哪些主体执行哪些操作。它通常包含了一个决定授权管理访问控制规则的
管理员策略。自主访问控制模型之所以被称为是自主的,是因为用户(客体)可以将其权
限传递给其他用户,但权限的授予和撤销由管理员策略决定。
访问矩阵(AccessMatrix)是用于描述自主访问控制模型的常用方法,它将操作的授
权表示为矩阵的形式,如表3.1所示。访问矩阵最早由Lampson提出,用于刻画对操作
系统资源保护的策略,随后又被Harrison等人进一步形式化并对访问策略进行了复杂度
分析。
表3.1访问矩阵
用户
文件
文件1 文件2 文件3 
张三读取,写入,执行执行NULL 
李四读取,写入NULL 读取,执行
虽然访问矩阵能清晰地描述操作的授权情况,但由于它通常是一个庞大又稀疏的矩
阵表格,应用在实际的系统中比较耗内存。因此,它衍生出了3种简洁实用的操作授权表
示方式,分别为授权表(AL )、访问控制列表和基于权能的访问控制列表(CapBACL )。

如表3.2所示,授权表将访问矩阵中的非空元组转换为包含客体、授权操作和主体的
表格。

表3.授权表

2 

客体授权操作主体
张三读取文件1 
张三写入文件1 
张三执行文件1 
张三执行文件2 
李四读取文件1 
李四写入文件1 


续表
第3章访问控制和身份认证31
客体授权操作主体
李四读取文件3 
李四执行文件3 
如图3.1所示,每个包含授权操作的元组以列的形式存储,并指定给客体,再将其关
联到主体,来表达对于主体哪些客体具有哪些授权操作。
图3.访问控制列表

1 

如图3.2所示,每个针对特定主体的授权操作元组以行的形式存储,并被关联到客
体,来表达哪些客体对哪些主体具有哪些授权操作。

总的来说,访问控制列表和基于权能的访问控制列表相比于访问矩阵和授权表能更
灵活地对系统进行授权和管理。同时,它们也有各自的优势和缺点。具体来说,访问控制
列表能支持迅速地查阅针对特定文件的授权情况,然而,当要查阅某一请求者对特定文件
的操作授权情况时,则需要遍历所有的访问控制列表。对于基于权能的访问控制列表,它
能迅速地定位特定请求者具有的所有操作授权情况,但当要查阅某一文件对于某一请求
者的操作授权情况时,则需要遍历所有的基于权能的访问控制列表。

2. 
强制访问控制模型
强制访问控制模型是一种基于中心化授权机构制定的访问控制规则强制执行访问策
略的模型,最常见的模型为建立在对客体和主体分类上的多级安全策略模型,这种模型多
应用在对数据库的多级别安全管理中。在客体的定义上,它与自主访问控制模型有点区
别,在自主访问控制模型中将用户表示为客体,这里客体是指代表用户执行操作的进程, 
而用户就表示为用户,通过这样的表示方法,进程之间的访问和修改等授权操作也能被刻


32物联网安全:原理与技术
图3.2基于权能的访问控制列表
画出来。
在强制访问控制模型中,中心化的授权机构为每个主体和客体都赋值了一个访问类。
该访问类是一个偏序集,偏序指定了集合之间的支配关系,用符号≥表示。访问类包含安
全等级和类别两个元组。其中,安全等级包含具有层级关系的元素,从高到低排列包括绝
密级别(T)、机密级别(S)、秘密级别(C)和公开级别(U); 类别则标识了功能和适用领域, 
如在军用系统中,类别可以为北约、核、军队等。

定义3.1 
给定一个安全等级全序集合
L 
和一个类别集合C,访问类定义为
L 
和

的笛卡儿积ACC), 其中Δ(为
C 
的超集。.c1=(C1),

Δ(C)=L×Δ(C) L1,c2=(L2, 
C2),c1≥c2→(L1≥L2)∧(C1.C2 c1≤c2 也不成立, 

是不兼容的。
)。若c1≥c2 不成立,则称c1 和c2 

根据定义3.1,在强制访问控制模型下,主体和客体之间的访问控制关系可以用格来
描述。如图3.

3表示了绝密等级和机密等级两种安全级别以及标明了核和军队两种类别
的资源访问控制关系。如果一个用户拥有TS 级别的安全许可和被允许访问标明“{军
队}”类别的资源,则该用户可以访问S安全级别下且类别为“{军队}”的资源和TS 安全
级别下且无类别标签的资源。

3. 
基于角色的访问控制模型
基于角色的访问控制模型是基于角色来控制用户访问资源的访问控制模型。根据定
义3.2,它包括用户、角色和权限。其中,权限表示对主体的操作。用户、角色和权限之间
为多对多的关系,例如,一个用户可以有多个角色,一个角色可以有多种权限,同时,一个
角色可以赋予多个用户,一种权限也可以赋予多个角色。如图3.它展示了医护系

4所示, 
统中不同角色的用户对病历的操作权限。


第3章访问控制和身份认证33
图3.3基于格表示的访问控制关系图3.4基于角色控制策略对病历的操作
定义3.2基于角色的访问控制模型由如下6部分组成。
(1)U,R,P,S分别表示用户、角色、权限和会话集合。
(2)P×R.PA,表示权限和角色的多对多关系。
(3)U×R.UA,表示用户和角色的多对多关系。
(4)f:s→u,s∈S,u∈U,实现将一个会话s映射到单个用户的函数f(s) 。
(5)g:s→2R 
, s)。

实现将一个会话映射到一个角色集合的函数f(
(p,
(6){
p∈
sP),
}。
s), 且每个会话拥有的权限集合为∪r∈g(

f(r∈R}.g(

r|(r)∈UA,s){p| 
r)∈PA,

基于角色的访问控制模型可以简化对大量用户权限的管理,这是因为它依据用户之
间需求的相似性将用户按角色分组,然后将权限分配给角色而不是用户。而且,通过对用
户添加或撤销角色和对角色增添或撤销权限,大大降低对用户权限管理的开销。同时,它
还具备其他优点:遵循“最小特权”原则实现对主体的管理,即将对某一主体的操作权限
赋予属于相应角色的用户;实现了职责分离,通过分配给不同用户包含互斥权限的角色来
避免对主体有冲突的操作。然而,基于角色的访问控制模型仅仅按角色这单一属性划分
用户,现实世界中的用户还包含其他特征属性,因此,它不足以描述复杂的、细粒度的访问
控制策略。下面介绍细粒度的基于属性的访问控制模型。

4. 
基于属性的访问控制模型
基于属性的访问控制模型不同于基于角色的访问控制模型,考虑了主体(或资源)、客
体和环境3方面中任何与安全访问相关的特征来定义权限,而不仅是角色这一特征,这些
特征统一称为属性。下面从主体、客体和环境3方面描述各方的属性。

主体就是被客体访问的资源,可以是一个数据结构、系统模块或文档。文档的属性可
以是标题、日期、作者等属性。客体可以指用户也可以是某个程序进程,是访问或操作主
体的一方。而用户的属性可以是名字、所属机构、工作等,角色也可以当成一个属性。所
以,基于属性的访问控制模型的功能其实涵盖了基于角色的访问控制模型的功能。除了


34 
物联网安全:原理与技术

主体和客体的属性外,还有环境的属性,它指资源被访问的上下文信息,例如当前日期、当
前时间、网络状况等。由于在语义上有如此丰富的属性描述,因此该模型能表达更复杂且
更细粒度的访问控制策略。

基于属性的定义,该模型设计包含了策略模块和应用策略的访问控制架构模块。其
中,策略模块如定义3.表示对一个客体赋值一种属性, 对客体赋予值为管理

3所述, 例如
,
员的角色属性或表示对客体赋予值为Alice的名字属性
。
定义3.基于属性的访问控制模型的策略模块由以下4部分组成
。
r3 
,资源和环境
。


(1)s,
e 
分别表示客体、
(2)SAk 
(1≤k≤
K 
)表示客体的属性,RAm 
(1≤
m 
≤
M 
)为资源的属性,EAn 
(1≤ 

n≤
N 
)表示环境的属性,
K 
,
M 
,
N 
都为正整数。
(3)ATTR(·) 如ATTR(表示对客体进行ATTR 属性的赋值,

为属性赋值函数, s)
同时属性赋值函数存在以下关系
:
ATTR(


s).SA1×SA2×…×SAk 
ATTR(

r).SA1×SA2×…×SAm 
ATTR(n

e).SA1×SA2×…×SA(4)P(r,表示客体在某特定环境下是否允许访问主体的策略;
f 
表示属性评估

s,e) 
f(ATTR(ATTR(ATTR(→P(e

函数,返回值为真或假,s),r),e))s,)。

r,

应用定义好的访问控制策略需要属性机构、策略实施部件和策略决策部件的共同协
作,这构成了该模型的架构模块。属性机构负责定义和管理属性,策略实施部件相当于
AEF,负责转发客体的访问请求给策略决策部件,同时策略决策部件相当于ADF,它判断
客体的请求是否被授权。

5. 
使用控制模型
在基于属性的访问控制模型的基础上,使用控制模型支持动态更新控制策略中的属
性。同时,它不但在用户访问资源之前制定访问策略,而且在用户访问资源的过程中也会
根据更新的访问策略规定用户的访问权限。如果当前的访问策略不允许用户访问时,则
立即终止用户的使用,这一特性称为访问策略的持续性。因此,使用控制模型更适合受保
护的资源动态变化的应用环境。

通常,一个使用控制模型由12 个原语来描述,除了前面提到的客体、客体属性、资源、
资源属性、环境属性之外,还包括权限、基于属性构成的授权、职能及条件策略及用于描述
策略动态更新的原语,即包括状态、状态转换操作和属性更新操作。

其中,基于属性构成的授权策略、职能策略和条件策略是一条访问策略的重要组成部
分。授权策略是根据用户的属性和资源的属性制定的策略,例如名字属性为Alice的用
户可以访问标题属性为A的文件资源。职能策略是用户在访问资源之前或过程中或之
后一定要执行的操作,例如角色属性为“专家”的用户审阅申请文件之前一定要签署保密
合约。条件策略是指强加在被访问资源之上的条件约束,例如一个文件资源只被公开访
问1小时。

另一方面,状态、状态转换操作和属性更新操作这3个原语则被用来描述使用控制模


第3章访问控制和身份认证35
型的状态转换模型,体现访问策略的动态变化和持续性。如图3.5所示,状态可以包含
“初始”请求中、访问中、已拒绝、已撤销和结束6个状态;状态转换操作使一个状态转换到
下一个状态,如“尝试访问”操作将“初始”状态转换到“请求中”状态,“拒绝访问”操作将
“请求中”状态转换到“已拒绝”状态;属性更新操作可以发生在每个状态,操作的结果返回
真或假,例如准备更新操作可以发生在“请求中”状态,正在更新可以发生在“访问中” 
状态。
图3.状态转换模型

5 

基于上述12 个原语,使用控制模型可以用定义3.

4进行形式化地定义。根据定

义3.4,一条基于使用控制模型制定的访问策略是一个五元组,每个元素为每个组成部

分的子集。

定义3.使用控制模型包括5个组成部分
M 
=()。

(1)
T 4 
表示系统状态集合。
T,PA 
,PC 
,AA 
,AB 

(2)PA 
表示基于客体属性和资源属性构成的授权有限集。

(3)PC 
表示基于环境属性构成的条件有限集。

(4)AA 
表示属性更新操作有限集。

(5)AB 
表示职能有限集。

每部分基于预定义的客体集合S、资源集合R、权限集合
P 
和属性集合
A 
构成。

1.访问控制的常用技术
3.4 
1.XACML 

XACML 是一种辅助实现访问控制的可扩展标记语言,在2003 年被OASIS(结构化
信息标准促进组织)批准为标准通用的标记语言,已经被广泛地应用在分布式环境下的访
问控制和授权过程。

图3.

6展示了XACML 在访问控制实现过程中的作用。XACML 不但定义了访问策
略的语法结构和执行访问策略的语义结构,而且也规定了获取访问策略的访问请求格式


36物联网安全:原理与技术
和访问响应格式。访问请求和访问响应的格式在策略实施部件和策略决策部件交互的消
息中得以体现。一个XACML 请求在语法结构上由任意大小的树结构组成,在语义上这
些子树表达了访问策略的制定标准,子树的叶子规定了最小单元的策略规则,由于这些策
略规则的存在,这些子树可以表达很丰富且很复杂的访问策略逻辑。XACML 请求通常
包含了主体、与主体相关的属性、对主体的操作等。而XACML 响应可以包含以下4种
决策中的一个:允许、拒绝、请求无效和中断。通常情况下,返回“请求无效”或“中断”时, 
响应内容也包含了与决策相关的解释。同时,XACML 响应也会包含指示策略实施部件
执行决策的指令。关于XACML 的具体语法和语义结构可参见文献。
图3.基于XACML 
访问控制概况图

6 

0协议

2.OAuth2.

0协议是一种开放授权标准协议,它允许用户在不需要提供账户和密码的
情况下授权第三方应用获得访问服务器上用户资源的权限。由于OAu0协议为了

OAuth2.

th1.
保证安全性而在授权交互的过程中加入了签名和加密的步骤,并且要求交互双方管理状
态和临时密钥,这使授权实现起来过于复杂,不能带来良好的用户体验。于是,OAut0

h2.
协议结合HTTPS 来实现认证,替换了OAu0协议复杂的签名和加密步骤,从而更加

th1.
轻便,带来更好的用户体验。目前,大多数互联网公司如谷歌、亚马逊、微软、腾讯等都是
使用OAu0协议来实现应用的第三方授权。

th2.
协议定义了4个角色,分别为资源拥有者、资源服务器、客户端和授权服务器。资源


第3章访问控制和身份认证37
拥有者,也可以说是用户,负责协作授权服务器授予访问资源的权限(通常称为Token); 
资源服务器存有用户的资源,根据访问者的Token响应访问请求。客户端,通常称为第
三方应用程序,可以代表资源拥有者,它在得到资源拥有者授权的情况下请求资源服务
器。授权服务器负责认证客户端,验证客户端是否得到资源拥有者的授权,验证成功会授
予客户端一个访问Token。
图3.7展示了OAuth2.0协议的基本工作流。①客户端向资源拥有者请求授权; 
②客户端得到资源拥有者授权的证书;③客户端向授权服务器请求访问Token;④授权
服务器对客户端的身份和证书认证成功后,发送Token给客户端;⑤客户端使用Token 
向资源服务器请求访问;⑥资源服务器验证Token的有效性之后接受客户端的请求。
图3.0协议的基本工作流

7 
OAuth2.

3.5 
适用于物联网中的访问控制模型
1.
在现实生活中,从小范围的可穿戴、家居设备到覆盖面更广的社区设备和工业设备, 
物联网技术服务于人们生活的方方面面。为了提高物联网技术的可靠性和安全性,针对
不同场景下的物联网设备特点和安全需求,实现合适的安全访问控制技术已经成为重点
研究话题之一。由于物联网中设备多种多样、设备通信架构和协议异构不统一及通信带
宽资源有限等特性,3.4节介绍的传统的访问控制技术并不能直接被应用到物联网环境

1.
中,例如,自主访问控制模型和强制访问控制模型适合用于保护封闭系统中的数据,不适
合开放的物联网环境。面对物联网环境下的安全需求,有些研究者应用传统的访问控制
模型,如RBAC 、ABAC 和UCON 模型,提出管理物联网设备资源访问的方案,也存在一
些不基于传统访问控制模型的访问控制方案。最近,随着区块链技术的高速发展,一些分
布式的融合异构物联网环境的访问控制方案也被广泛讨论。
基于RBAC 、ABAC 或UCON 模型的物联网访问控制方案:Barka等人整合了基于
角色的访问控制模型和ISO 的访问控制标准ISO/IEC10181-3,实现对万维物联网(Web 
ofThings,WoT) 1.

中物理设备之间的安全访问控制。他们的方案基本上遵循3.2节中
介绍的访问控制实现过程,将模型中的各个组成部分和WoT 中资源组件一一做了映射, 
构建由请求监听模块和策略更新模块组成的访问实施部件,以及包含授权模块的访问决
策部件,支持对物理设备进行动态地访问控制,8所示。但是,

如图3.他们的方案对物理


38物联网安全:原理与技术
设备的访问控制是完全中心化的,终端物理设备不具备自主控制资源被访问的能力。
图3.8Barka物联网访问控制方案的部件组成
不同于上述中心化的访问控制方案,R2BAC 机制建立在分布式信誉评估基于角色的
访问控制模型,实现管理物联网系统中传感器节点之间访问资源的活动。其中,分布式的
信誉管理模块由全网节点以服务质量(QualityofService,QoS)为评估标准对传感器节
点的网络行为的可信度进行评价,并以此建立节点之间的可信关系。在该方案中,传感器
节点的信誉值和节点之间的可信程度决定了整个网络的连接拓扑,同时,一个节点的信誉
值也决定了它访问其他节点资源时被赋予的角色。具体来说,在R2BAC 机制中,用户指
物联网系统中的传感器节点;赋予一个用户的角色由信誉管理模块决定,通过评估用户在
网络中的信誉值决定该用户的角色对哪些资源有哪些操作权限;与传统的访问控制方案
类似,权限就是一系列在物联网系统中对节点资源的操作。

由于ABAC 模型相比于RBAC 模型对用户和资源有更细粒度的刻画,例如ABAC 
模型中的属性不仅可以包含对RBAC 模型中用户角色的刻画,还可以描述关于用户的权
限属性和关于资源的特征属性等(见3.4节)。因此,e等人基于RBAC 模

1.Sciancalepor
型和令牌的授权技术实现多个物联网平台资源的访问控制,并支持不同平台之间的数据
共享。他们的方案利用RBAC 模型完成关于用户的角色和权限属性以及物联网平台资
源的特征属性的描述,并将属性封装成访问令牌集存储于认证授权管理(Authentication 
antoiainMaaemet,AAM) 9所示,

dAuhrztongn中心。如图3.用户要访问物联网平台资
源时,先在认证授权管理中心完成身份认证,然后拿到允许访问指定物联网平台资源的令
牌,接着用户凭借包含属性描述的令牌请求资源,被请求的物联网平台根据令牌中的属性
描述和资源的访问策略的匹配结果响应用户的请求。

由于使用控制模型支持属性更新和访问策略持续性,因此,在理论上它相较于RBAC 
和ABAC 更适合应用于动态开放的物联网环境。通过将使用控制模型抽象的组件一一
映射到物联网的实体中,进而实现具体访问控制方法。具体来说,可以将客体映射为物联
网设备,如车;客体属性描述设备的实际信息,如车的信誉值;主体映射为应用层的物联网
服务,如路况服务;主体属性则为服务的实际信息,如路况服务提及的车载信息;条件则根
据物联网环境决定,如建立在信誉值之上的设备之间连接的可信度;职能则依据实际需要


第3章访问控制和身份认证39
图3.9 
Sciancalepore物联网访问控制方案交互图

来定,贯穿访问控制过程的进行前、进行中和进行后。然后,在设备和服务之间制定具体
的控制策略,例如只有当设备的信誉值大于某个值时才能访问哪种可信程度的服务资源。
目前,存在一些理论上将使用控制模型应用到物联网的方案,还没有在实际中部署案例。

在3.由于它相

1节介绍自主访问控制模型时提到了基于权能的访问控制表示方法, 
较于访问控制列表更节省存储的开销,同时物联网设备的计算能力和存储空间有限,所以
基于权能的访问控制表示方法被广泛地应用在物联网领域。ICAP 方案在传统的表示方
法中增加了唯一标识设备身份的标识符使对资源访问的控制更加灵活。CCAAC 方案则
在ICAP 方案的基础上添加了一个属性用来表示被访问资源的上下文信息,使资源的访
问控制更细粒度。不同于上述中心化的访问控制方案,DCapBAC 是一个可延展的分布
式的访问控制方案,每个物联网设备有自主访问控制决策的权利,但它不考虑被访问资源
的上下信息,没有描述访问策略如何制定,同时也不支持委托和撤销职能的功能,更多考
虑访问实施部件的设计。

最近,区块链技术的兴起也为在物联网环境下部署分布式访问控制技术的研究带来
了福音。ControlChain就是一种基于区块链技术的访问控制框架,它将区块链作为一种
分布式的数据库并分成4种区块链,包括关系区块链、上下文区块链、追责区块链和授权
策略区块链。关系区块链用于存储所有设备的公开证书和维护设备之间的关系,上下文
区块链记录了所有关于设备输入、处理和输出数据,追责区块链则存储所有对资源的访问


40物联网安全:原理与技术
记录,授权策略区块链则维护了用户制定的设备访问控制策略。在访问控制策略的设计
方面,ControlChain沿用了访问控制列表、基于权能的访问控制列表和基于属性的访问控
制模型3种传统的访问控制技术,不过,ControlChain仅仅是理论上的框架。另一种同样
基于区块链技术的访问控制方案BleadCAC 进一步在理论仿真的层次上与传统的RBAC 
和ABAC 方案做了处理延迟方面的对比,显示其优越性。它融合了传统的基于权能的访
问控制列表和智能技术,实现了资源访问控制管理的可延展性以及策略的细粒度和动态
管理。物联网中的用户对设备和设备数据有自主管理权力,制定和授予访问策略通过区
块链的智能合约技术完成,由于智能合约被部署在分布式的区块链网络中,因此访问策略
在分布式的环境被验证,增强了策略实施的安全性。目前,由于物联网环境设备和通信协
议多源异构,传统的访问控制技术不能很好地解决其中的访问控制问题。因此,将区块链
技术应用于增强物联网资源访问控制安全性的研究成了当前研究的热点。
3.2身份认证
如今,互联网时代下在线服务涉及人们生活的方方面面。在人们使用在线服务之前, 
服务提供商往往需要对用户先进行身份认证。例如,账户密码认证,这里的账户就是指用
户使用该在线服务的身份。
2.身份认证的基本概念
3.1 

实际上,很难给身份下一个准确的定义。对身份的定义需要考虑具体的应用场景、语
义上下文和身份的用途等。总体来说,身份是对一个实体在具体上下文环境中的表示,包
含标志符和用户的证书,如用户密码、用户的配置文件等。在本书中,我们将身份定义为
用户提供给应用和服务提供商的表示其身份的证书,从而应用和服务提供商可以使用用
户证书来区别不同的用户并提供给用户不同的权限或服务。身份认证是应用和服务提供
商验证用户证书真实性的过程,如用户登录在线服务系统时提供的用户名和密码是否与
存储在服务端的用户证书相匹配。具体来说,这个过程往往由服务端的身份管理模块完
成,身份管理模块定义了一系列身份管理策略和规则,管理用户身份的生命周期,包括身
份创建、身份维护和身份删除。身份认证过程中包含3个角色:用户、服务提供商和身份
提供商。使用服务的用户可以是一个真实的人也可以是虚拟的实体,但必须有唯一的身
份。身份提供商除提供身份注册、身份认证和身份存储这些基本的功能外,也可以根据用
户的身份提供不同级别的信用等级。基于身份提供商对用户的身份认证结果,服务提供
商提供给用户相应的服务。

2.身份认证的实现原理
3.2 
在介绍身份认证的基本概念时,提到了身份认证的基本过程,其中,身份提供商是整
个认证过程的关键角色。在具体实现时,身份提供商可以为用户提供4种类型的身份: 
证书身份、标识身份、属性身份和指纹身份。证书身份是指基于证书来认证用户的身份, 
ITU-509 是最常用的证书标准。标识身份通常通过用户名、

TX.邮箱或身份证等来唯一


第3章访问控制和身份认证41
标识身份。属性身份则指用来描述用户身份的属性,它可以是用户身份证的具体数据,例
如用户名、地址或联系号码等,如果要提供这类身份,身份提供商往往需要和政府合作。
最后一种指纹身份指用户在使用服务过程中独属于用户的一些用户数据记录,可以是信
誉值或访问历史记录等,这种特殊的指纹身份可以用于计算机安全分析,例如,根据黑客
对服务器的特殊访问行为来判别黑客对服务器实施的攻击类型。虽然上面提到了4种身
份类型,但在常见的身份认证场景中,用户使用服务前的身份认证过程基本上使用前两种
身份。另
一方面,根据服务提供商和身份提供商的关系,存在3种模式来实际部署身份管理
模块。
(1)单例模式。服务提供商和身份提供商两种角色是统一的整体,一个存储所有用
户身份及相应证书的服务器同时充当这两种角色,负责对用户身份数据的所有操作,包括
颁发、修改、认证、删除和授权等。很显然,这种身份管理部署模式容易使认证服务器因用
户访问过量而负载过大。
(2)中心化模式。不同于单例模式,它的服务提供商和身份提供商两个角色是职责
分明的,服务提供商服务器负责响应用户的请求服务而身份提供商服务器则存储了用户
的身份和证书,并负责用户的身份认证和授权等功能。以这种模式部署的身份管理系统
常见有PKI(PublicKeyInfrastructure) 、Kerberos和CAS(CentralAuthentication 
Servic等。单例和中心化两种模式身份和证书都是中心化存储的,都存在单点故障的
问题。
e) 

(3)分布式模式。这种模式下存在多个服务提供商,每个服务提供商存储用户的部
分身份信息,但只有一个身份提供商存储用户的证书信息,并负责用户身份认证和一些更
复杂的功能,如基于身份的访问控制。分布式模式下的身份认证系统也有很多,如
OASIS 、SAML 和Shibboleth框架等。
3.3 
身份认证的常见技术
2.
1. 
基于用户名-密码的身份认证
基于用户名-密码的身份认证是最常见的,也是最基本的身份认证技术。通常是服务
端先创建并存储用户的用户名和密码对,当用户使用服务之前,提交正确的用户名和密码
给服务端,服务端通过匹配用户名和密码来完成对用户身份的认证。

这种认证技术虽然最简单,但安全性最弱。首先,它容易遭受攻击,暴力破解攻击是
对用户密码最常见的攻击。黑客可以简单地写一个密码穷举脚本穷举用户密码字符的可
能组合,进而找到匹配的密码。为抵抗暴力破解攻击,服务端可以限定用户请求身份认证
的次数。例如,当用户身份认证请求失败的次数超过预设的门限值,服务端可以临时冻结
用户的账户。然而,攻击者更有可能直接攻击服务端的用户密码数据库而不是直接发起
对用户的攻击,从而一次性拿到所有的用户名和密码对。这就要求服务端对用户的实际
密码进行加密后再进行存储,常见的方法有密码哈希和密码加盐。其次,这个认证方式的
安全性很大程度上依赖用户本身设置的密码,有调查显示90% 的用户设置的密码都是弱


42物联网安全:原理与技术
密码而且往往有规律可循,因此易遭黑客攻击。为了增强安全性,服务端可以在用户设置
密码时根据一定的标准提示所设密码的安全强度,通常的设置标准是至少8个字符,并且
是大小写字符、数字和特殊符号的组合。最后,用户很难对多个账户的密码进行管理,因
此许多用户会对多个账户使用同一个密码,这同样带来了安全隐患。
2.基于智能卡的身份认证
虽然基于用户名-密码的身份认证技术可以通过对数据库的用户密码进行哈希再存
储来抵抗黑客的窃取,但是它无法抵抗攻击者对其进行篡改,从而导致用户认证失败。而
基于智能卡的身份认证技术可以避免这样的攻击。它的身份认证组件包括两部分:智能
卡硬件设备,它存储了用户的公钥证书信息;个人识别密码(PersonalIdentification 
Number,PIN), 作为用户访问智能卡的认证密钥。
智能卡硬件设备既有完成简单认证过程的操作系统模块,也有安全存储个人信息的
内存存储模块。内存存储模块提供了不可篡改的特性,只有用户提供正确的个人识别密
码才能对内存访问相应的数据。操作系统模块则支持认证过程的密码操作,如数据签名
和密钥交换等。
个人识别密码是智能卡认证用户的唯一密钥,它不会被传输到网上。当用户输入个
人识别密码后,智能卡会检索对应的公钥并验证个人识别密码的有效性。
由于智能卡身份认证技术在一张智能卡上完成用户的整个认证过程,具有强认证性, 
既支持物理认证也允许在线逻辑认证,加强了认证过程的安全性和隐私性。因此,它也被
广泛应用于许多场景,如密码管理、虚拟私有网认证、电子签名等。而且许多现实世界的
机构组织也常用这种方式认证用户,如银行、公司、政府和学校等。

下面简单介绍用户基于智能卡身份认证技术登录WindowsServer2003 的例子。首
先,用户需要将其持有的智能卡插入读卡器,Windows系统的登录模块检测到智能卡读
取事件,将登录请求转发到身份识别和认证模块。其次,身份识别和认证模块提示用户输
入个人识别密码,收到用户的个人识别密码后,转发给安全授权模块。再次,安全授权模
块使用个人识别密码访问智能卡的内存并检索对应的公钥证书,利用公钥证书验证基于
个人识别密码生成的签名。最后,如果签名验证成功,则生成一个登录会话密钥,该密钥
用用户的公钥进行加密,加密好的登录会话密钥返回给用户。由于只有用户拥有个人识
别密码,因此只有用户可以解密获得登录会话密钥,从而完成登录过程。

3. 
基于公钥的身份认证
6.
基于公钥的身份认证协议的构建主要以公钥密码学中的数据签名作为理论支撑(见
1节), 同时,通常会有一个可信的证书授权中心(或是密钥分发中心)负责分配给用户
公钥证书。其实,有些研究者也提出了基于密钥的身份认证方案,但它要求客户端和服务
器提前共享一个相同的密钥,这种方法在客户端(或用户)暴增的情况下存在密钥难以分
配和管理的问题。本节只讨论基于公钥的身份认证协议,具体地,以Kerberos网络认证
协议为例展开介绍。为了方便描述,先声明协议中的参与实体:客户端、认证服务器、密
钥分发中心、授权过的票据、票据授权服务器和服务器。粗略地讲,用户登录客户端时需


第3章访问控制和身份认证43
要提供密码和用户名给认证服务器,认证服务器会把用户名转发给密钥分发中心,然后密
钥分发中心会生成一个由票据授权服务器授权过的票据,这个票据将返回给合法的登录
用户,之后用户需要提供有效的票据才可以访问服务器的服务。接下来,具体从以下4方
面来介绍Kerberos协议,如图3.10 所示。
图3.10Kerberos协议
(1)用户登录。用户在客户端输入用户名和密码,客户端使用单向哈希函数以用户
密码为输入并生成一个密钥ku 
。
(2)客户端认证。客户端代表用户请求服务,于是发送用户名给认证服务器,注意此
时并没有将用户的密码和密钥发送给认证服务器。认证服务器检查用户是否存在数据库
中,如果存在,则找到用户名所对应的密码,然后生成密码的哈希值作为密钥ku 
。同时, 
密钥分发中心生成一个由ku 
加密的票据授权服务器产生的会话密钥,记为信息A,以及由
票据授权服务器签过名的票据,记为信息B。这个票据包含了客户端的ID 、IP 地址、票据
有限时长和票据授权服务器产生的会话密钥kc。认证服务器将信息A和信息B返回给
客户端,客户端收到后,用ku 
解密消息A获得话密钥。如果用户输入的密码是错误的, 
则ku 
和认证服务器生成的密钥是不匹配的,这时不能获得会话密钥。客户端获得会话密
钥之后就可以使用它和信息B与票据授权服务器进行安全通信,同时,这也表明用户已
经向票据授权服务器证明了自己的身份。会(t) 
(3)客户端服务授权。当客户端要访问服务时,它需要发送两个信息:信息C和信
息D。信息C包含信息B(票据)和所请求服务的ID;信息D包含用会话密钥加密的客户
端的ID 和请求时间戳,称为认证器。票据授权服务器收到信息C和D之后,先从信息C 
中提取出信息B,然后用会话密钥解密信息B并解密信息D。接着,验证信息D中的客户
端ID 和信息B中的客户端ID 是否匹配,如果匹配,票据授权服务器返回两个消息(信息
E和信息F)给客户端。其中信息E包含用服务器的密钥加密的票据,加密的内容有客户
端ID 、IP 地址、票据有效时长和客户端与服务器之间的会话密钥kcs。信息F则是用kct 

44物联网安全:原理与技术
加密后的kcs。
(4)客户端服务请求。客户端收到票据授权服务器的信息E和信息F后就可以用它
们向服务器认证它的身份。首先,客户端发送给服务器信息E和信息G,信息G是用kcs 
加密客户端ID 、时间戳生成的认证器。然后,服务器收到后解密信息E得到kcs,接着使
用kcs解密信息G,通过对比两个信息中的客户端ID 是否相等,如果相等,则客户端验证
通过,服务器可以提供所请求的服务给客户端。
4.基于生物特征的身份认证
一方面,传统的基于用户名-密码的身份认证方法易遭受字典攻击;另一方面,基于公
钥的身份认证方法用户的密钥难以维护。另外,由于密码和密钥可能丢失或者共享,这些
方法并没有保证认证用户的真实性。因此,研究者提出了基于生物特征的身份认证方法, 
它利用用户的生理特征或行为特征作为用户的身份,常见的特征包括指纹、人脸、掌纹和
虹膜等。
一个基于生物特征的系统其实是一种模式识别系统。一般来说,系统先收集每个个
体的生理数据,然后提取相应的生理数据特征,最后再将特征数据和数据库中构建好的生
物特征模板数据匹配。因此,基于生物特征的认证是通过个体的生理特征数据来构建和
确认该个体的身份。相比于其他身份认证方法,基于生物特征的身份认证有许多优点。
例如,特征难以猜测、不易丢失或遗忘、很难被复制和共享且不能被伪造。所以,一个安全
的基于生物特征的身份认证方案可以抵抗常见的暴力破解攻击、重放攻击和篡改攻击。

下面介绍一个经典的结合了智能卡和生物特征进行两方相互身份认证的方案, 
图3.11 所示。从3个步骤介绍该方案:注册阶段、登录阶段和认证阶段。在注册阶段,(如) 用户首先在服务器一方提供的生物特征采集器录入生理特征B,如指纹,并将密码PW 和
身份ID 安全地发给服务器一方。其次,服务器计算用户数据的哈希值
R 
=hash(PW‖ 
hah(和E=ah(其中
S 
是由服务器选择的随机数。最后,

sB)) hsID‖S)..R, 服务器将存
ID,hashas

有用户(h(·),h(B),E)信息的智能卡安全地发配给相应用户。在登录阶段,用
户将智能卡插入读卡器并向指纹验证器录入指纹B'(这里读卡器和指纹验证器充当客户
端), 如果指纹匹配成功,用户继续输入密码PW',智能卡计算R'=hash(PW'‖hash(B')), 
M1=E..R'=hash(, 由智能卡随机选择的随机数,

ID‖S)以及M2=M1..Rc 
其中Rc 
接着信息(ID,M2)被发送到服务器。服务器执行认证阶段的计算,首先它检验用户ID 
是否有效,然后计算M3=hash(ID‖S),M4=M2..M3=Rc 
,M5=M3..Rs 
和M6= 
hash(M2‖M4), 其中Rs 
是服务器选择的随机数,M5 和M6 发送给客户端,客户端收到
消息后验证M6 是否与hash(M2‖Rc)相等。如果相等则表明服务器是通过了客户端的
验证,于是计算M7=M5⊕M1=Rs 
和M8=hash(M5‖M7), 并将M8 发送给服务器。
服务器收到M8 后验证M8 是否与hash(M5‖Rs)相等,如果相等,服务器通过用户在客
户端的登录请求,否则拒绝用户登录。

通过上面的介绍,不难发现这个方案加强了原本基于智能卡身份认证方法的安全性, 
能够实现客户端和服务器两方身份都不可被假冒,而且即使当智能卡丢失,攻击者也无法
从智能卡中提取用户的秘密信息,这是由哈希函数的不可逆的特征保证的。


第3章访问控制和身份认证45
图3.基于智能卡和生物特征的身份认证过程

11 

3.4 
身份认证技术在物联网中的应用
2.
在物联网中,许多物联网设备通过相互通信并交换数据实现了多种多样的智能服务, 

如路径规划、交通导航和健康监测等。为了实现物联网设备之间可信地通信,防止和杜绝

虚假设备,身份认证是必不可少的技术。本节从资源受限设备之间的身份认证以及云服

务器之间的身份认证两个场景介绍身份认证技术在物联网中的应用。

一方面,物联网设备自身的计算资源和存储资源都有限,因此部署在设备之间的身份

认证技术必须是轻量级的,例如基于生物特征的身份认证技术相比于其他身份认证技术


46物联网安全:原理与技术
更易部署,它会被优先考虑。实际上,在无线传感器网络中,结合智能卡的基于指纹的身
份认证技术被广泛应用。一般来说,应用智能卡和基于指纹的身份认证技术来实现网络
中节点的认证需要基站的参与,它具有如下4个步骤:在预部署阶段,基站给网络中的每
个传感器节点分配一个唯一ID 。用户为了访问传感器的数据需要向基站发送指纹信息、
用户ID 和密码完成注册,随后基站生成一个含有用户指纹信息的哈希值的智能卡给用
户,并在数据库存储用户的指纹信息的哈希值。当用户登录时,用户把智能卡插入读卡器
并输入指纹信息,如果指纹验证成功,用户输入密码,智能卡读取密码之后验证用户ID 和
密码是否匹配,如果匹配则登录成功。当用户访问指定ID 的传感器节点的数据时,基站
计算用户输入的指纹信息的哈希值,并将该哈希值与数据库中存储的指纹模板信息进行
比对,若匹配正确,则允许用户访问。另一方面,由于云服务器拥有丰富的计算机资源,可
以帮助资源受限的设备处理一些复杂的计算任务。因此,设备往往需要和云服务器进行安
全认证前提下的通信。根据3.2.2节关于身份认证的实现原理,可以直接应用一些常见的身
份认证技术实现设备与云服务器的认证通信。但有时候需要考虑场景的具体需求,基于已
有的身份认证技术实现在功能上、性能上和安全性上更优的设备与云服务器身份认证方案。
例如,通过引入职能分明的多代理合作完成认证过程来减低云服务器的认证负载,实现高扩
展性的设备身份认证方案;通过设计双层认证过程实现安全程度可选择的身份认证过程;基
于智能卡的身份认证技术实现用户只需进行一次身份认证就可以访问多个云服务器资源
用户的互联云账户就是用户的身份。为了降低通信
(互联云)的身份认证方案,这种情况下
,
开销和提高延展性,有研究者使用层级的架构实现互联云下的身份认证方案
。


3.本章小结
3 

如果没有访问控制和身份认证机制,物联网将面临很多安全威胁。访问控制机制允
许定义访问控制策略,基于定义的策略建立访问控制模型、基于建立的模型设计访问控制
协议,最后基于设计的协议实现访问控制的过程,可以有效保护物联网资源的访问安全。
身份认证是应用和服务提供商验证用户证明或证书真实性的过程,确保操作物联网资源
用户身份的唯一性。这两项技术在物联网中应用广泛,基于不同访问控制模型的访问技
术和基于不同介质实现的身份认证技术在特定的物联网应用场景中,实现访问控制和身
份认证发挥着关键性作用。

3.练习
4 

一、填空题

1. 根据AAA 标准,访问控制的定义包含、和3个属性。
2. 通常来说,一个有效安全的访问控制协议需要满足3个特性:、
、。
3. 定义访问控制策略时需要明确3方面,分别是、、。

第3章访问控制和身份认证474. 支持动态更新控制策略中的属性。
5.OAuth2.0协议定义了4个角色,包括、、、。
6. 基于公钥的身份认证的协议有。
二、选择题
1.XACML 标记语言的响应可以包含( ) 决策。
A. 允许B. 拒绝C. 请求无效D. 中断
2.OAuth2.0协议结合HTTPS 来实现认证,替换了OAuth1.0中( ) 步骤,从而
更加轻便,带来更好的用户体验。
A. 签名B. 加密C. 验证D. 解密
3. 根据服务提供商和身份提供商的关系,存在( ) 模式来实际部署身份管理
模块。
A. 单例模式B. 多例模式C. 中心化模式D. 分布式模式
三、问答题
1. 描述现实世界中一个应用了基于角色访问控制模型的访问控制实例。
2. 简要描述OAuth2.0协议的基本原理并举例现实世界中哪些物联网产品使用了
该协议。
3. 传统的访问控制模型DAC 、MAC 、RBAC 、ABAC 和UCON 模型的区别是什么? 
4. 为什么区块链技术能被应用于增强物联网资源访问控制安全性? 
5. 身份认证机制中的“身份”指什么? 举一个现实世界中的例子。
6. 基于用户名-密码的身份认证机制最普遍,它的缺点是什么? 在现实世界中使用时
是如何克服这些缺点的? 
7. 有哪些基于生物特征的身份认证例子? 
8. 你觉得当前发展得如火如荼的机器学习技术能从哪些方面改进基于生物特征的
身份认证技术? 
9. 列出基于生物特征的和非基于生物特征的身份认证技术的优缺点。
3.实践:编程实现一个口令认证系统
5 

基于口令的身份认证系统是由人和计算机组成的系统,该系统提供信息以支持组织
内的操作、认证、管理、分析和决策功能。数据库作为访问和处理数据的工具,在系统中至
关重要。我们需要在此基础上建立数据库及其应用程序系统,以便它可以有效地存储和
管理满足应用程序需求的数据,包括信息管理和认证。信息管理要求是指应在数据库中
存储和管理的数据对象;数据操作要求是指对数据对象的操作,例如查询、添加、删除、更
改和其他操作。