蘭陵N梓記

一指流沙,程序年华


  • 首页

  • 归档

  • 关于

  • 搜索
close

4A技术概览

时间: 2017-07-30   |   分类: 技术   笔记     |   阅读: 2995 字 ~6分钟

什么是4A

4A是指:账号Account、认证Authentication、授权Authorization、审计Audit,中文名称为统一安全管理平台解决方案。即将身份认证、授权、审计和账号(即不可否认性及数据完整性)定义为网络安全的四大组成部分,从而确立了身份认证在整个网络安全系统中的地位与作用。(来源百度百科)

账号Account

为用户提供统一集中的帐号管理,包括:用户身份信息的集中存储与统一管理。参考AWS等系统,涉及到概念包括:

  • 主账号:一般指管理资源的唯一身份标识,他为资源付费。也是自然人在4A中的唯一身份标识,一个用户只会有一个主账号,唯一标识了他的身份。
  • 从账号:一般指资源访问的账号,如虚拟机的访问用户,数据库的访问用户等。
  • 用户:实现操作资源的人员,对应物理存在的人,它由账号分配。
  • 群组:一般对应企业的组织,把用户归属到一个群组里,用户可以自动获得这个群组所具有的权限。对于大型的企业,组织可能分为人员组织与业务组织。对于用户来说,群组也是为提供分级管理能力。

用户身份信息,主要包括名称与密码。对于不同的系统,其它信息各不相同,比如互联网中用户信息,一般包括昵称,邮箱,电话,爱好等信息。从账号身份信息,主要包括名称与密码。不同的资源形态身份也不相同,像AWS中,API访问还有AK/SK,虚拟机访问还有SSH证书。

账号与用户的信息身份都是敏感信息,需要完整的安全控制。密码类一般采用密码策略管理,如密码长度,字符限定,过期时间等,密码存储一般采用不可逆加密保存。

目前安全的不可逆加密算法有:PBKDF2,bcrypt。但在一些场景下,由于政策或法规原因,要求可以掌握用户密码,存储也需要加密,但它是可逆的。一般采用非对称加密,采用私钥/公钥对,公钥用于加密密码存储,私钥用于解密,私钥的存储在物理上与系统隔离,以防私钥泄漏。

认证Authentication

根据用户应用的实际需要,为用户提供不同强度的认证方式。认证的方式一般有以下几种:

  • 静态口令:如基于用户与密码;
  • 动态口令令牌:如手机验证码;
  • 数字证书:如早期的银行USB盾,其实USB中存储即发放给用户的PKI(Public Key Infrastructure)证书;
  • USB令牌:如工商银行的USB盾,USB动态生成令牌。

这些认证是可以组合使用的,其中重要说明的PKI,一个有效的PKI系统必须是安全的和透明的,用户在获得加密和数字签名服务时,不需要详细地了解PKI的内部运作机制。

PKI发展的一个重要方面就是标准化问题,它也是建立互操作性的基础。目前,PKI标准化主要有两个方面:一是RSA公司的公钥加密标准PKCS(Public Key Cryptography Standards),它定义了许多基本PKI部件,包括数字签名和证书请求格式等;二是由Internet工程任务组IETF(Internet Engineering Task Force)和PKI工作组PKIX(Public Key Infrastructure Working Group)所定义的一组具有互操作性的公钥基础设施协议。PKI产品的生产厂家很多,比较有代表性的主要有VeriSign和Entrust。

对于一个复杂的系统、大型网站,他们内部会划分多个子系统。则用户认证需要统一管理,为用户提供统一的认证门户,实现单点登录(Single Sign On,简称SSO)。单点登录与认证服务常见的标准有:

  • CAS:Central Authentication Service,由Yale 大学发起的一个开源项目,是目前最为常见,简单实效的SSO实现。
  • OpenID:用户在多个网站注册,需要注册并记住多个用户名密码,OpenID希望帮用户提供一个身份ID,可以在多个网站用来登录。登录网站时,用户选择用其身份ID登录,跳转到身份ID颁发的网站输入用户名、密码进行身份认证,然后跳转会网站实现登录。
  • OAuth:比如用户通过第三方照片打印应用打印在某个网站存储的照片,而不希望泄露照片网站的用户名、密码等信息给第三方的照片打印应用。使用OAuth来授权给第三方应用访问照片资源,也会跳转到照片资源所在网站,要求输入用户名、密码进行身份认证并授权,然后跳转会打印应用网络。注意:OAuth1有安全漏洞,现在都是使用OAuth2协议。
  • SAML:Security Assertion Markup Language,是一个基于XML的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。

后二种也包含授权能力定义,授权先要认证。单系统身份认证,根据使用场景和技术特点,选择OpenID、OAuth、或者SAML。如果不是单系统,不仅涉及身份认证,而是涉及众多系统需要单点登录,则需要选择CAS+认证方案(OpenID/OAuth/SAML)来实现的。其中OAuth2也涵盖了CAS的功能,也可以单点登录(如采用密码模式/客户端模式)。

在非WEB领域,不得不提一下的是GSSAPI(Generic Security Services Application Program Interface),它是提供了程序能够访问安全服务的一个应用程序接口,可用于完成认证。它是一个框架,不负责具体的安全机制。

授权Authorization

对用户的资源访问权限进行集中控制。授权/鉴权系统中涉及到概念主要有:

  • 权限:对资源功能、数据进行访问的范围或程度;
  • 角色:资源中若干访问权限的集合;
  • 角色组:角色构成的集合。

授权关系应包括三个元素,授权主体、授权客体、授权关系:

  • 授权主体:主帐号、用户,用户群组;
  • 授权客体:角色、角色组、权限以及三者的组合;
  • 授权关系:应任意主体对客体的授权。

授权方式常见包括如下:

  • UBAC:Userbased Access Control,基于用户的授权,也有称IBAC,I:identity;
  • RBAC:Role-based Access Control,基于用户角色的授权;
  • ABAC:Attribute-based Access Control,基于资源的授权ABAC。

前面提到的SAML,其采用访问者、被请求资源、被请求行为和环境属性来描述策略,是一个典型的在ABAC环境下的策略描述语言。如AWS的IAM的策略(Policy)描述,它更加的灵活,可以涵盖UBAC,RBAC与ABAC的功能。策略是用JSON来描述的,主要包含Statement,也就是这个policy拥有的权限的陈述,一言以蔽之,即:谁在什么条件下能对哪些资源的哪些操作进行处理。也就是所谓的撰写Policy的PARCE原则:

  • Principal:谁;
  • Action:哪些操作;
  • Resource:哪些资源;
  • Condition:什么条件;
  • Effect:怎么处理(Allow/Deny)。

在操作系统,设备系统,数据系统中,权限控制还提供简单的访问控制列表ACL(Access Control List)。ACL的认证鉴权主要分为:

  • 登陆认证鉴权:在用户登陆的时候,进行信息认证。根据用户标识,加载上来该用户所拥有的权限模块;
  • 即时认证鉴权:是用户对某一模块或记录是否有增删改查的权限。

审计Audit

为了能做到有效的监督,监督各类管理员的日常的管理行为。系统将对管理员的每个操作做出日志记录,并且分类进行整理。提供相关的报表和查询功能。以方便对管理员工作的审计。

审计功能主要实现安全审计功能,包括:

  • 用户帐号合法性;
  • 访问行为审计和合规审计。

参考:
[1] 统一安全管理平台解决方案
[2] PKI系统深入介绍
[3] 基于SAML的单点登录介绍
[4] cas sso oauth openid saml的联系与区别
[5] GSS-API 介绍
[6] 理解OAuth 2.0
[7] 深入了解IAM和访问控制

#安全#
[转]DNS扫盲系列
云设计模式
微信扫一扫交流

标题:4A技术概览
作者:兰陵子
关注:lanlingthink(览聆时刻)
声明:自由转载-非商用-非衍生-保持署名(创作共享3.0许可证)

  • 文章目录
  • 站点概览
兰陵子

兰陵子

Programmer & Architect

164 日志
4 分类
57 标签
GitHub 知乎
    • 什么是4A
    • 账号Account
    • 认证Authentication
    • 授权Authorization
    • 审计Audit
© 2009 - 2022 蘭陵N梓記
Powered by - Hugo v0.101.0
Theme by - NexT
0%