【信息安全案例】——身份与访问安全(学习笔记)
📖 前言:一位用户对计算机信息资源的访问活动中,首先必须拥有身份标识,通过该标识鉴别该用户的身份,进一步地,用户还应当具有执行所请求动作的必要权限,系统会验证并控制其能否执行对资源试图完成的操作,还有,用户在整个访问过程中的活动还应当被记录以确保可审查。为了确保敏感信息资源的机密性、完整性等安全属性,可以采取的加密、数字签名等安全措施。接下来将围绕数据资源访问过程中的身份认证和访问控制两个关键安全环节展开介绍。
目录
- 🕒 1. 身份认证的概念
- 🕒 2. 身份凭证信息
- 🕒 3. 身份认证方式
- 🕘 3.1 单向认证
- 🕤 3.1.1 对称密码体制
- 🕤 3.1.2 非对称密码体制
- 🕘 3.2 双向认证
- 🕤 3.2.1 对称密码体制
- 🕤 3.2.2 非对称密码体制
- 🕘 3.3 信任的第三方认证
- 🕒 4. 身份认证机制
- 🕘 4.1 一次性口令(OTP)
- 🕤 4.1.1 原理
- 🕤 4.1.2 实例
- 🕤 4.1.3 安全性分析
- 🕘 4.2 FIDO
- 🕤 4.2.1 产生
- 🕤 4.2.2 FIDO 1.0
- 🕤 4.2.2 FIDO 2.0
- 🕘 4.3 Kerberos
- 🕤 4.3.1 产生
- 🕤 4.3.2 主要组件
- 🕤 4.3.3 认证流程
- 🕤 4.3.4 安全性分析
- 🕘 4.4 基于PKI的认证
- 🕤 4.4.1 产生
- 🕤 4.4.2 组成
- 🕤 4.4.3 步骤
- 🕤 4.4.4 信任模型
- 🕤 4.4.5 安全性分析
- 🕤 4.4.6 案例拓展:早期12306网站数字证书的问题
- 🕒 5. 访问控制的概念
- 🕘 5.1 三要素
- 🕘 5.2 引用监视器和安全内核
- 🕘 5.3 访问控制模型和访问控制方案
- 🕒 6. 访问控制模型
- 🕘 6.1 访问控制基本模型
- 🕤 6.1.1 访问控制矩阵
- 🕤 6.1.2 访问控制表
- 🕤 6.1.3 能力表
- 🕘 6.2 自主访问控制模型
- 🕤 6.2.1 概念
- 🕤 6.2.2 安全性分析
- 🕘 6.3 强制访问控制模型
- 🕤 6.3.1 概念
- 🕘 6.4 基于角色的访问控制模型
- 🕤 6.4.1 产生
- 🕤 6.4.2 概念
- 🕘 6.5 基于PMI的授权与访问控制模型
- 🕤 6.5.1 产生
- 🕤 6.5.2 概念
- 🕒 7. 案例分析:学习通信息泄露事件
- 🕒 8. 案例拓展:基于口令的用户身份认证过程及安全性增强
🕒 1. 身份认证的概念
用户密码,严格地称为用户口令,实际上在人们的信息资源活动中起到标识用户身份,并依此进行身份认证的作用,防止非授权访问。
身份认证(Authentication)是证实实体(Entity)对象的数字身份与物理身份是否一致的过程。身份认证技术能够有效防止信息资源被非授权使用,保障信息资源的安全。
这里的实体可以是用户,也可以是主机系统。
在计算机系统中,身份(Identity)是实体的一种计算机表达,计算机中的每一项事务是由一个或多个唯一确定的实体参与完成的,而身份可以用来唯一确定一个实体。
根据实体的不同,身份认证通常可分为用户与主机间的认证和主机与主机之间的认证,不过实质上,主机与主机之间的认证仍然是用户与主机系统的认证。
身份认证分为两个过程:标识与鉴别。
- 标识(Identification)就是系统要标识实体的身份,并为每个实体取一个系统可以识别的内部名称——标识符ID。
- 识别主体真实身份的过程称为鉴别(Authentication),也有称作认证或验证。
户名或账户就可以作为身份标识。为了对主体身份的正确性进行验证,主体往往还需要提供进一步的凭证,例如密码(口令)、令牌或是生物特征。
系统会将主体提供的账号和凭证这两类身份信息与先前已存储的该主体的身份信息进行比较,如果相匹配,那么主体就通过了身份鉴别。
考虑到身份鉴别是身份认证的重要组成部分,鉴别与标识也紧密联系,所以后面不再对认证和鉴别做区分。
创建和发布的身份信息必须具有3个特性:
- 唯一性:标识符必须是唯一的且不能被伪造,防止一个实体冒充另一个实体。不同的计算机系统、不同的应用中,可以使用不同的方式来标识实体的身份:可以是一个唯一的字符串,可以是一张数字证书(类似于现实生活中的居民身份证),也可以是主机IP地址或MAC地址(Media Access Control,媒介访问控制)。
例如:- Windows系统的登录用户名和口令标识了一个用户的身份;
- 打开压缩包时需要解压密码标识了用户的身份;
- 校园网用户登录学校图书馆资源时根据用户的IP地址确认用户主机的合法身份等。
- 非描述性:任何身份的标识都不能表明账户的目的,例如Administrator这样的身份标识对于攻击者太具有诱惑力了。
- 权威签发:有的身份标识,如数字证书应当由权威机构颁发,以便对标识进行验真,或在出现争执时提供仲裁。
🕒 2. 身份凭证信息
- 用户所知道的(What you know)。如要求输入用户的口令、密钥或记忆的某些动作等。
- 用户所拥有的(What you have)。如U盾、智能卡等物理识别设备。
- 用户本身的特征(What you are)。如用户的人脸、指纹、声音、视网膜等生理特征以及击键等行为特征。
- 生理特征认证:如指纹识别、虹膜识别、人脸识别、声纹识别
- 生物行为认证:如击键认证(利用一个人敲击键盘的行为特征进行身份认证)、步态匹配、心跳密码
- 多因子信息
一般情况下,可以通过多个凭证(也有称多因子)来共同鉴别用户身份的真伪。
我们在银行ATM机上取款需要插入银行卡,同时需要输入银行卡密码,就是采用了双因子认证。
认证的因子越多,鉴别真伪的可靠性就越大。
在高安全等级需求的应用中,最好形成多因子认证机制。
🕒 3. 身份认证方式
🕘 3.1 单向认证
通信的一方认证另一方的身份
- 服务器在提供用户申请的服务前,先要认证用户是否为合法用户;
- 客户端提供标识和密码,服务器确认后允许客户登录。
🕤 3.1.1 对称密码体制
A需要单向认证B的身份
- 某函数变换 f f f
- 双方共享的密钥 K S K_S KS
- 随机数 R A R_A RA
🕤 3.1.2 非对称密码体制
A需要单向认证B的身份
- 随机数 R A R_A RA
- B的私钥 K S B K_{SB} KSB
🕘 3.2 双向认证
双方都要提供用户名和密码给对方,才能通过认证。
🕤 3.2.1 对称密码体制
A需要单向认证B的身份
- A产生一个随机数 R A R_A RA
- 双方共享的密钥 K S K_S KS
- B产生一个随机数 R B R_B RB
🕤 3.2.2 非对称密码体制
A需要单向认证B的身份
- A产生一个随机数 R A R_A RA
- B产生一个随机数 R B R_B RB
- B的私钥 K S B K_{SB} KSB
- A的私钥 K S A K_{SA} KSA
🕘 3.3 信任的第三方认证
当两端欲进行连线时,彼此必须先通过信任第三方的认证,然后才能互相交换密钥,而后进行通信。
一种第三方认证机制:
- S K A U SK_{AU} SKAU:管理员的私钥
- P K B P_{KB} PKB:B的公钥
- P K A P_{KA} PKA:A的公钥
- N 1 N_1 N1: A的临时交互号
- N 2 N_2 N2: B产生的新临时交互号
🕒 4. 身份认证机制
🕘 4.1 一次性口令(OTP)
🕤 4.1.1 原理
在登录过程中加入不确定因子,使用户在每次登录时产生的口令信息都不相同。
认证系统得到口令信息后通过相应的算法验证用户的身份
一种常见实现是挑战/响应(Challenge/Response)方案
- 认证请求:用户端向认证端发出认证请求,需要用户输入用户ID等信息
- 挑战:认证端选择一个随机数X发送给客户端。认证端根据用户ID取出对应密钥K,对X进行加密,得到密文Es
- 响应:客户端收到随机数X后,使用自己的密钥K进行加密得到密文EU,将EU作为凭证发给认证端。
- 认证结果:认证端比较Es和EU,若相同,则认证为合法用户。
🕤 4.1.2 实例
手机验证码
🕤 4.1.3 安全性分析
与传统的静态口令认证方法相比,OTP认证机制的安全性有很大的提高。
- 通过哈希计算可以抵御嗅探攻击。
- 通过加入不确定因子可以抵御字典攻击和重放攻击。
仍存在一些安全问题:
- 没有实现双向认证。
- 难以抵御中间人攻击。
- 难以防范小数攻击
🕘 4.2 FIDO
🕤 4.2.1 产生
致力于不依赖“共享秘密”解决传统身份认证弊端的FIDO(Fast Identity Online,线上快速身份验证),即个人口令、生物特征信息本地存储。
🕤 4.2.2 FIDO 1.0
- UAF(通用认证框架):支持指纹等生物识别,致力于“零口令”
- U2F(通用双因子):支持TPM芯片等硬件设备,使用口令+硬件设备双因子
注册阶段:
1、用户根据服务器支持的本地验证方式,选择一种验证方式,账户和设备绑定。
2、客户端产生公私钥对,公私钥对与用户身份信息关联,私钥保持,公钥发给服务器。
3、服务器将公钥与用户账户关联
登录认证阶段:
1、用户发出登录请求,服务器端发出挑战数据提示用户进行身份验证
2、用户在本地输入身份信息(按键、指纹)。
3、客户端对用户身份验证成功,取出私钥对挑战数据进行签名。
4、服务器使用对应公钥对签名进行验证
🕤 4.2.2 FIDO 2.0
FIDO 2.0包括WebAuthn(Web认证)和CTAP(客户端到认证器协议)两部分。
- WebAuthn:2019年3月WebAuthn被确定为官方网络标准。平台认证器(内置在PC上)或漫游认证器(如手机,平板,智能手表等),通过标准Web API——WebAuthn调用FIDO服务,完成Web应用的强身份认证。
- CTAP(客户端到认证器)协议。CTAP本质上是U2F的延伸。它使外部设备(如手机或FIDO安全密钥)能够与支持WebAuthn的浏览器协同工作,还可以充当桌面应用程序和Web服务的身份验证程序。
华为手机的FIDO快捷按钮:
🕘 4.3 Kerberos
🕤 4.3.1 产生
在一个局域网中通常设有多种应用服务器,若采用传统的基于用户名/口令的认证管理,用户在进入不同系统时都必须输入登录密码进行认证。人们希望设计一种在网络应用过程中更为高效、安全并且简便的认证机制,单点登录(Single Sign On,SSO)技术由此产生。
Kerberos协议是美国麻省理工学院Athena计划的一部分,它是一种基于对称密码算法的网络认证协议。
它能在复杂的网络环境中,为用户提供安全的单点登录服务。
🕤 4.3.2 主要组件
- Kerberos的运行环境由密钥分发中心(KDC)、应用服务器和用户客户端3个部分组成。
- KDC包括认证服务器AS和通行证授予服务器TGS两部分。
- KDC是整个系统的核心部分,它保存所有用户和服务器的密钥,并提供身份验证服务以及密钥分发功能 。
- 客户和服务器都信任KDC,这种信任是Kerberos安全的基础。
- Kerberos协议中使用通行证/票据,来实现用户和应用或服务之间的认证。
- 用户和服务双方虽不能互相信任,但是他们都完全信任KDC,双方通信时,用户如果拥有由KDC出具的通行证,就能通过该通信证获得服务端的信任。
🕤 4.3.3 认证流程
- 客户端认证
- 客户端将用户标识、TGS标识、时间戳TS1一起送往AS,申请得到票据授权票据。
( 1 ) C → A S : I D c ∣ ∣ I D t g ∥ T S 1 (1) \mathrm{C} \rightarrow \mathrm{AS}: \quad \mathrm{ID}_{\mathrm{c}}|| \mathrm{ID}_{\mathrm{tg}} \| \mathrm{TS}_{1} (1)C→AS:IDc∣∣IDtg∥TS1
- AS用从用户口令推出的密钥 K c \color{red}K_c Kc(事先已经存储在AS中)将票据加密,并发送给客户端。由用户在客户端输入口令,并得到Kc,将收到的消息解密,得到票据授权票据Tickettgs
( 2 ) A S → C : E ( K c , [ K c , t g s ∣ ∣ I D t g s ∥ T S 2 ∥ L i f e t i m e 2 ∥ T i c k e t t g s ] ) W h e r e T i c k e t t g s = E ( K t g s , [ K c , t g s ∥ I D c ∥ A D c ∥ I D t g s ∥ T S 2 ∥ L i f e t i m e 2 ] ) (2) \mathrm{AS} \rightarrow \mathrm{C}: \quad \mathrm{E}\left(\mathrm{K}_{\mathrm{c}},\left[\mathrm{K}_{\mathrm{c}, \mathrm{tgs}}|| \mathrm{ID}_{\mathrm{tgs}}\left\|\mathrm{TS}_{2}\right\|\right.\right. \mathrm{Lifetime} _{2} \| \left.\left.\mathrm{Ticket}_{\mathrm{tgs}}\right]\right) \\ \mathrm{Where \ Ticket} _{\mathrm{tgs}}=\mathrm{E}\left(\mathrm{K}_{\mathrm{tgs}},\left[\mathrm{K}_{\mathrm{c}, \mathrm{tgs}}\left\|\mathrm{ID}_{\mathrm{c}}\right\| \mathrm{AD}_{\mathrm{c}}\left\|\mathrm{ID}_{\mathrm{tgs}}\right\| \mathrm{TS}_{2} \| \mathrm{Lifetime}_{2}\right]\right) (2)AS→C:E(Kc,[Kc,tgs∣∣IDtgs∥TS2∥Lifetime2∥Tickettgs])Where Tickettgs=E(Ktgs,[Kc,tgs∥IDc∥ADc∥IDtgs∥TS2∥Lifetime2])
注:时间戳TS2:产生票据授权票据的时间
有效期Lifetime2:票据授权票据的有效期
网络地址ADc:客户的IP地址
多选题
以上关于Kerberos认证过程中AS和用户C交互过程,说法正确的是?
A. 其中Kc是由用户C的口令生成,仅用户C和AS知道
B. TS2是产生Tickettgs的时间戳,用来防重放攻击的
C. ADc是用户C的IP地址,与IDc配合一起核验用户C的身份
D.该过程是基于对称密码进行的身份认证过程
答案:ABCD
- 取得与服务器通信的票据
- 客户端通过IDv表明自己要与服务器V通信,Tickettgs表明自己已通过AS的认证,Authenticatorc是证明自己是Tickettgs的拥有者
( 3 ) C → T G S : I D v ∥ T i c k e t t g s ∥ A u t h e n t i c a t o r c T i c k e t t g s = E ( K t g s , [ K c , t g s ∥ I D C ∥ A D C ∥ I D t g s ∣ ∣ T S 2 ∥ L i f e t i m e 2 ] ) A u t h e n t i c a t o r c c = E ( K c , t g s , [ I D C ∥ A D C ∥ T S 3 ] ) (3)\mathrm{C} \rightarrow \mathrm{TGS}: \quad \mathrm{ID}_{\mathrm{v}} \| \mathrm{Ticket} _{\mathrm{tgs}} \| \mathrm{Authenticator} _{\mathrm{c}} \\ \mathrm{Ticket} _{\mathrm{tgs}}=\mathrm{E}\left(\mathrm{K}_{\mathrm{tgs}},\left[\mathrm{K}_{\mathrm{c,tgs}}\left\|\mathrm{ID}_{\mathrm{C}}\right\| \mathrm{AD}_{\mathrm{C}}\left\|\mathrm{ID}_{\mathrm{tgs}}|| \mathrm{TS}_{2}\right\|\right.\right. \mathrm{Lifetime}_{2}\left.\left.\right ] \right) \\ \mathrm{Authenticator}\mathrm{c}_{\mathrm{c}}=\mathrm{E}\left(\mathrm{K}_{\mathrm{c}, \mathrm{tgs}},\left[\mathrm{ID}_{\mathrm{C}}\left\|\mathrm{AD}_{\mathrm{C}}\right\| \mathrm{TS}_{3}\right]\right) (3)C→TGS:IDv∥Tickettgs∥AuthenticatorcTickettgs=E(Ktgs,[Kc,tgs∥IDC∥ADC∥IDtgs∣∣TS2∥Lifetime2])Authenticatorcc=E(Kc,tgs,[IDC∥ADC∥TS3])
- TGS为C和服务器V生成一个会话密钥Kc,v,生成一个用来与服务器通信用的票据Ticketv ,生成时间戳TS4表明票据产生时间、服务器标识符IDv表明票据用以和服务器V沟通,并用自己与C的会话密钥Kc,tgs加密, 发给C
( 4 ) T G S → C : E ( K c , t g s , [ K c , v ∥ I D v ∥ T S 4 ∥ T i c k e t v ] ) T i c k e t v = E ( K v , [ K c , v ∥ I D C ∥ A D C ∥ I D v ∥ T S 4 ∥ L i f e t i m e 4 ] ) (4)\mathrm{TGS} \rightarrow \mathrm{C}: \quad \mathrm{E}\left(\mathrm{K}_{\mathrm{c}, \mathrm{tgs}},\left[\mathrm{K}_{\mathrm{c}, \mathrm{v}}\left\|\mathrm{ID}_{\mathrm{v}}\right\| \mathrm{TS}_{4} \|\right.\right.\mathrm{Ticket}_{\mathrm{v}}\left.\left.\right]\right) \\ \mathrm{Ticket}_{\mathrm{v}}=\mathrm{E}\left(\mathrm{K}_{\mathrm{v}},\left[\mathrm{K}_{\mathrm{c}, \mathrm{v}}\left\|\mathrm{ID}_{\mathrm{C}}\right\| \mathrm{AD}_{\mathrm{C}}\left\|\mathrm{ID}_{\mathrm{v}}\right\| \mathrm{TS}_{4} \|\right.\right. \mathrm{Lifetime}_{4}\left.\left.\right]\right) (4)TGS→C:E(Kc,tgs,[Kc,v∥IDv∥TS4∥Ticketv])Ticketv=E(Kv,[Kc,v∥IDC∥ADC∥IDv∥TS4∥Lifetime4])
- 客户端与服务器通信:使用所需服务
- 用户通过Authenticatorc ,和请求服务的票据发向服务器V请求提供服务
( 5 ) C → V : T i c k e t v ∥ A u t h e n t i c a t o r c T i c k e t v = E ( K v , [ K c , v ∥ I D c ∥ A D c ∥ I D v ∥ T S 4 ∥ L i f e t i m e 4 ] ) A u t h e n t i c a t o r c = E ( K c , v , [ I D c ∥ A D C ∥ T S 5 ] ) (5)\mathrm{C} \rightarrow \mathrm{V}: \mathrm{Ticket}_{\mathrm{v}} \| \mathrm{Authenticator}_{\mathrm{c}} \\ \mathrm{Ticket}_{\mathrm{v}}=\mathrm{E}\left(\mathrm{K}_{\mathrm{v}},\left[\mathrm{K}_{\mathrm{c}, \mathrm{v}}\left\|\mathrm{ID}_{\mathrm{c}}\right\| \mathrm{AD}_{\mathrm{c}}\left\|\mathrm{ID}_{\mathrm{v}}\right\| \mathrm{TS}_{4} \|\right.\right. \mathrm{Lifetime}_{4}\left.\left.\right]\right) \\ \mathrm{Authenticator}_{\mathrm{c}}=\mathrm{E}\left(\mathrm{K}_{\mathrm{c}, \mathrm{v}},\left[\mathrm{ID}_{\mathrm{c}}\left\|\mathrm{AD}_{\mathrm{C}}\right\| \mathrm{TS}_{5}\right]\right) (5)C→V:Ticketv∥AuthenticatorcTicketv=E(Kv,[Kc,v∥IDc∥ADc∥IDv∥TS4∥Lifetime4])Authenticatorc=E(Kc,v,[IDc∥ADC∥TS5])
- 服务器向用户C发回用会话密钥加密的最后时戳TS5+1,自证自己能够解密Authenticatorc,并向C表明C认证成功
( 6 ) V → C : E ( K c , v , [ T S 5 + 1 ] ) (6)\mathrm{V} \rightarrow \mathrm{C}: \mathrm{E}\left(\mathrm{K}_{\mathrm{c}, \mathrm{v}},\left[\mathrm{TS}_{5}+1\right]\right) (6)V→C:E(Kc,v,[TS5+1])
🕤 4.3.4 安全性分析
Kerberos协议在通信的过程中,用户在通行证的有效期内,只需要第一次登录,可以访问多个资源和服务。
同时,通信过程中的信息都加入了时间戳,通行证也包含有效期,可以通过比对时间戳以及检验有效期,阻止攻击者的重放攻击。
存在问题:
- 协议认证的基础是通信双方均无条件信任KDC,一旦其安全受到影响,将会威胁整个认证系统的安全。
- 协议中的认证依赖于时间戳来实现抗重放攻击,这要求所有客户端和服务器时间同步。
- Kerberos协议防止口令猜测攻击的能力较弱。
🕘 4.4 基于PKI的认证
🕤 4.4.1 产生
PKI的产生就是为了验证公钥所有者的身份是否真实有效。
公钥基础设施PKI(Public Key Infrastructure)的本质是实现大规模网络中的公钥分发问题,建立大规模网络中的信任基础。
在PKI环境中,通信的各方需要申请一个数字证书(由权威的第三方认证授权中心CA颁发的,用于标识用户身份的文件)
支付宝网站的数字证书
由权威的可信第三方(Certification Authority CA)产生根证书。网络实体的系统中通常会安装根证书。
CA可用根证书为其下级以及网络实体签发数字证书。系统对用根证书签发的数字证书都表示信任,从技术上说就是建立起一个证书信任链。
用户验证各网络实体数字证书的有效性时,实际上只要验证为其颁发数字证书CA的根证书。用户信任可信第三方颁发的根证书,也就信任了网络实体获得的数字证书。
在Windows系统中运行“certmgr.msc”可以打开证书控制台,看到此根证书。
🕤 4.4.2 组成
- 注册授权中心RA是负责证书注册任务的可信机构(或服务器),负责建立和确认用户身份。
- 认证授权中心CA是PKI中存储、管理、发布数字证书的可信机构(或服务器)。
- 数字证书库是存储数字证书的部分。
🕤 4.4.3 步骤
1)用户A为了使用PKI认证,首先需要获取一个数字证书。因此,向RA发出注册请求。用户A向RA出示身份标识信息,如用户A的公钥KA、电话号码等。
2)RA收到用户A的身份信息,对其进行验证。RA将用户A的请求转发给CA。
3)CA根据用户的身份信息以及用户的公钥创建用户A的数字证书。将用户A的数字证书通过安全信道发送给用户A,并将证书存入数字证书库。私钥/公钥对可由CA或A的计算机产生,这取决于系统的配置。如果由CA产生,那么就要通过安全的通道将私钥发送给A。
用户B的数字证书也可采用上述类似过程申请获得。接下来,若A想与用户B通信,继续完成以下步骤:
4)用户A向第三方认证机构请求用户B的证书。
5)第三方认证机构查看数字证书库,发送用户B的数字证书发给用户A。
6)用户A验证数字证书并提取出用户B的公钥KB。使用该公钥KB加密一个会话密钥Key。会话密钥Key是用于加密用户A和用户B的通信内容的密钥。用户A将加密的会话密钥EKB(Key)和包含自己公钥的证书一起发送给用户B。
7)用户B收到用户A的证书,查看证书中的CA签名是否来自可信CA。如果是可信的CA,则认证成功。用户B用自己的私钥解密获得会话密钥,然后用户A就可以使用该会话密钥Key与B进行通信。用户B也可以通过完成上述过程对A进行认证。
🕤 4.4.4 信任模型
信任模型产生的目的就是为了对不同的CA和不同的环境之间的相互关系进行描述。目前主要有以下4种信任模型:
🕤 4.4.5 安全性分析
PKI提供的安全服务具体包括:
- 可认证性
- PKI利用数字证书、可信CA确认发送者和接收者的真实身份。
- 不可抵赖性
- PKI基于公钥密码体制及可信第三方CA,确保发送方不能否认其发送消息
- 机密性
- PKI将用户的公钥和数字证书绑定,数字证书上都有可信CA的数字签名,保证了公钥不可伪造
- 数据完整性
- PKI用公钥对会话密钥进行加密,确保数据在传输过程中不能被修改,保证了数据完整性
PKI的机制非常成熟,符合网络服务和用户的需求:
- PKI中的数字证书可以由用户自主验证
- 这种管理方式突破了过去安全验证服务必须在线的限制,这也使得PKI的服务范围不断扩张,使得PKI成为服务广大网络用户的基础设施。
- PKI提供了证书的撤销机制,有了这种意外情况下的补救措施,用户不用担心被窃后身份或角色被永远作废或被他人恶意盗用。
- PKI具有极强的互联能力。
PKI机制的不足:
- 资源代价高。PKI的机制非常成熟,但作为基础设施,它需要可信任的第三方认证机构参与,并且认证的过程和数字证书的管理都比较复杂,消耗的资源代价高。
- 私钥的安全性。PKI中,用户需要保存好自己的私钥,它是证明用户身份的重要信息。如果用户对私钥的保存不够安全,则可能被木马盗窃,PKI中并没有对用户的私钥存储提出明确、安全的措施。
🕤 4.4.6 案例拓展:早期12306网站数字证书的问题
解决浏览器拦截报警的方法:安装根证书
因为SRCA的身份不被系统自带的任何一个根证书所信任,因此12306.cn网站所用的证书默认也不会被任何一个系统所信任。
因而铁道部要求安装根证书的原因,就是让访客将这个证书手工添加到“受信任的根证书颁发机构”节点下。
潜在的安全威胁:
- 强行安装根证书不是一个安全操作。根证书颁发机构应该是得到广泛(系统)认可的CA,应当让用户对其专业技术和信誉度有信心。
- 如果SRCA被攻击,被用来签发恶意网站的数字证书,将轻易骗取用户的信任。
- 由于SRCA签发的证书无法吊销,无法进入系统吊销证书列表进行拦截。
安全建议:
- 在“受信任的根证书颁发机构”节点下将SRCA的根证书删除
🕒 5. 访问控制的概念
- 身份认证:你是谁?你是否是你声称的身份?
- 访问控制:你做什么?你有什么样的权限?
- 基本目标:防止非法用户进入系统和合法用户对系统资源的非法使用
- 做法:以用户身份认证为前提,在此基础上实施各种访问控制策略来控制和规范合法用户在系统中的行为
🕘 5.1 三要素
- 主体(Subject):主体是访问操作的主动发起者,它请求对客体进行访问。
- 客体(Object):客体通常是指包含被访问信息或所需功能的实体。
- 安全访问规则:用以确定一个主体是否对某个客体拥有某种访问权力。
🕘 5.2 引用监视器和安全内核
访问控制机制的理论基础是引用监视器(Reference Monitor),由J.P.Anderson于1972年首次提出。
在引用监视器思想的基础上,J.P.Anderson定义了安全内核的概念。安全内核是实现引用监视器概念的一种技术。安全内核可以由硬件和介于硬件与操作系统之间的一层软件组成。
🕘 5.3 访问控制模型和访问控制方案
访问控制模型是规定主体如何访问客体的一种架构,它使用访问控制技术和安全机制来实现模型的规则和目标。
访问控制模型主要包括:自主访问控制、强制访问控制和基于角色的访问控制。
访问控制模型内置在不同操作系统的内核中,也内置于一些应用系统中。
访问控制模型的应用范围很广,它涵盖了对计算机系统、网络和信息资源的访问控制。
🕒 6. 访问控制模型
🕘 6.1 访问控制基本模型
🕤 6.1.1 访问控制矩阵
访问控制矩阵(Access Control Matrix,ACM)模型的基本思想就是将所有的访问控制信息存储在一个矩阵中集中管理。当前的访问控制模型都是在它的基础上建立起来的。
🕤 6.1.2 访问控制表
访问控制表机制实际上是按访问控制矩阵的列实施对系统中客体的访问控制。每个客体都有一张ACL,用于说明可以访问该客体的主体及其访问权限。对某个共享客体,系统只要维护一张ACL即可。
🕤 6.1.3 能力表
能力表保护机制实际上是按访问控制矩阵的行实施对系统中客体的访问控制。每个主体都有一张能力表,用于说明可以访问的客体及其访问权限。
主体不仅应该能够创立新的客体,而且还能制定对这些客体的操作权限。
- 允许用户创建文件的同时,允许用户指定对文件的读、写、执行操作
假设主体对客体的能力包括转授的访问权限,具有这种能力的主体客体把自己的能力复制传递给其他主体。
🕘 6.2 自主访问控制模型
🕤 6.2.1 概念
由客体的属主对自己的客体进行管理,由属主自己决定是否将自己客体的访问权或部分访问权授予其他主体,这种控制方式是自主的,称之为自主访问控制(DAC,Discretionary Access Control)。
在自主访问控制下,一个用户可以自主选择哪些用户可以共享他的文件。
🕤 6.2.2 安全性分析
DAC机制虽然使得系统中对客体的访问受到了必要的控制,提高了系统的安全性。
缺点:
- 权利的多次转授后,一旦转授给不可信主体,那么该客体的信息就会泄漏。
- 无法抵御特洛伊木马的攻击。
- 还没有一般的方法能够防止木马程序利用共享客体或隐通道把信息从一个进程传送给另一个进程。
🕘 6.3 强制访问控制模型
🕤 6.3.1 概念
强制访问控制最早出现在20世纪70年代,是美国政府和军方源于对信息保密性的要求以及防止特洛伊木马之类的攻击而研发的。
MAC是一种基于安全级标签的访问控制方法,通过分级的安全标签实现信息从下向上的单向流动,从而防止高密级信息的泄露。
在MAC中,对于主体和客体,系统为每个实体指派一个安全级,安全级由两部分组成:
- 保密级别(Classification,或叫做敏感级别或级别)。
绝密>机密>秘密>公开 - 范畴集(Categories):该安全级涉及的领域。
在一个系统中实现MAC机制,最主要的是要做到两条:
- 对系统中的每一个主体与客体,都要根据总体安全策略与需求分配一个特殊的安全级别。
- 当一个主体访问一个客体时,调用强制访问控制机制,比较主体和客体的安全级别,从而确定是否允许主体访问客体。
MAC模型分为以加强数据保密性为目的和以加强数据完整性为目的两类。
🕘 6.4 基于角色的访问控制模型
🕤 6.4.1 产生
20世纪90年代以来,随着对在线的多用户、多系统的研究不断深入,角色的概念逐渐形成,并逐步产生了基于角色的访问控制RBAC(Role-Based Access Control)模型,这一访问控制模型已被广为应用。
基于角色访问控制的核心思想是:将权限同角色关联起来,而用户的授权则通过赋予相应的角色来完成,用户所能访问的权限由该用户所拥有的所有角色的权限集合的并集决定。
当用户机构或权限发生变动时,可以很灵活地将该用户从一个角色移到另一个角色来实现权限的协调转换,降低了管理的复杂度
在组织机构发生职能性改变时,应用系统只需要对角色进行重新授权或取消某些权限,就可以使系统重新适应需要。
🕤 6.4.2 概念
角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色。
用户与客体无直接联系,他只有通过角色才享有该角色所对应的权限,从而访问相应的客体。
RBAC与DAC的根本区别在于:用户不能自主地将访问权限授给别的用户。
RBAC与MAC的区别在于:MAC是基于多级安全需求的,而RBAC则不是。
🕘 6.5 基于PMI的授权与访问控制模型
🕤 6.5.1 产生
仅仅能确定“他是谁”已经不能满足需要,安全系统要求提供一种手段能够进一步确定“他能做什么”。
解决上述问题的一种思路是,利用X.509公钥证书中的扩展项来保存用户的属性信息,由CA完成权限的集中管理。
🕤 6.5.2 概念
PMI指能够支持全面授权服务、进行权限管理的基础设施,它建立在PKI提供的可信身份认证服务的基础上,以属性证书(Attribute Certificates,AC)的形式实现授权的管理。PMI授权技术的核心思想是,将对资源的访问控制权统一交由授权机构进行管理,即由资源的所有者来进行访问控制管理。
PMI的核心内容是实现属性证书的有效管理,包括属性证书的产生、使用、作废、失效等。
PMI主要围绕权限的分配使用和验证来进行。
PMI基本模型中包含3类实体:授权机构(属性管理中心SOA或属性认证机构AA)、权限持有者和权限验证者。基本模型描述了在授权服务体系中主要三方之间的逻辑联系,以及两个主要过程:权限分配和验证。
🕒 7. 案例分析:学习通信息泄露事件
2022年6月21日,据安全行业业界内消息,大学生学习软件”超星学习通 “的数据库信息,被公开售卖。其中泄露的数据包含含学校/组织名,姓名,手机号,学号/工号,性别,邮箱等信息达1亿7273万条。学习通官方微博发布声明回应称,到目前为止还未发现明确的用户信息泄露证据。已经向公安机关报案,公安机关已经介入调查。如果这一消息确为事实,意味着海量学生个人信息遭到泄露,其后果不堪设想。
🕒 8. 案例拓展:基于口令的用户身份认证过程及安全性增强
用户U在系统登录界面中选择相应的用户名,输入对应口令,认证系统S检查用户账户数据库,确定该用户名和口令组合是否存在,如果存在,S向U返回认证成功信息,否则返回认证失败信息。
图示的认证机制的优点是简单易用,在安全性要求不高的情况下易于实现。但是该机制存在着严重的安全问题,主要包括:
- 用户信息安全意识不高,口令质量不高。例如采用一些有意义的字母、数字来作为密码,攻击者可以利用掌握的一些信息运用密码字典生成工具,生成密码字典然后逐一尝试破解。
- 攻击者运用社会工程学,冒充合法用户骗取口令。目前这种“网络钓鱼”现象层出不穷。
- 在输入密码时被键盘记录器等盗号程序所记录。
- 口令在传输过程中被攻击者嗅探到。一些信息系统对传输的口令没有加密,攻击者可以轻易得到口令的明文。但是即使口令经过加密也是难于抵抗重放攻击,因为攻击者可以直接使用这些加密信息向认证服务器发送认证请求,而这些加密信息是合法有效的。
- 数据库存放明文口令,如果攻击者成功访问数据库,则可以得到整个用户名和口令表。即使数据库中的口令进行了加密,仍面临破解等威胁。
如何提高口令质量?
- 增大口令空间。计算口令空间的公式: S = A M S = A^M S=AM
- 选用无规律的口令
- 多个口令
- 用工具生成口令
保护输入口令:
- 安全控件(如各网上银行的安全控件)
- 验证码(包含文字、图形、音频等)
- 手机/邮箱动态验证码
- 动态口令牌
OK,以上就是本期知识点“身份与访问安全”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页