2009年4月10日星期五

好文转:访问控制Access Control专业术语详解1

原文:http://butian.org/security/server/133.html
参考文献:
All in One 3rd Edition
CISSP Prepare Guide 2nd Edition
Information Security Management handbook, 5th Edition
以下内容,我做了笔记:

访问控制是控制主体(比如用户或者系统进程)如何访问客体(资源)并且与之交互的安全机制。访问控制是保证系统的Availability, Integrity和Confidentiality必须的一种手段。

Availability就是保证用户可以及时地、不中断地访问信息系统。
Integrity就是要达到以下的三个目标:
1、 防止信息被非授权用户所修改
2、 防止信息被授权用户做非授权修改
3、 保证信息内部(Internal Consistency)和外部(External Consistency)的一致性。比如,在数据库中,表A中存放公司所有的打印机数量,另外的表B,C,D中存放各部门所有的打印机数量。内部一致性是指数据库中各部门所有打印机的总和应该与公司所有的打印机的数目相同外部一致性是指数据库中存放的打印机数量和实际公司所有的打印机数量一致。
Confidentiality就是防止信息泄露给非授权用户。
--我的理解: 
availability 保证的是有效
integrity   不能随便修改
confidentiality  保密
开始的时候肯定是confidentiality  , 知道的人多了就要integrity 知道的人更多了就要availability了

我们先明确以下概念:
Vulnerability or weakness: Vulnerability就是信息系统中的不足之处
Threat:就是利用Vulnerability,来对信息系统进行破坏
Threat的发生就是Exposure
Risk:就是Threat发生的概率。
因此,Threat Agent利用Vulnerability来对信息系统产生Threat,这种Threat发生的概率就是Risk.

Identification, Authentication, and Authorization, Accountability
Identification是用户用来向系统声明自己身份的一种方法(我的理解是识别),比如UserID, Account,(identification)是Authentication和Authorization的前提。

Authentication是向系统证明自己就是所声明的身份的验证方法(我的理解是验证),可以通过Password, PassPhrase, Personal Identification Number(PIN), 生物识别等方法实现。

Authorization就是系统授予用户或者进程访问系统资源的权限的过程(我的理解是授权)。

Identification和Authentication是系统建立Accountability的基础。Audit Trails和系统Logs都可以记录用户的认证信息,通过这些信息,可以将系统中进行的活动和相应的用户联系起来。

Authentication可以通过something you know, something you have and something you are三种方式实现。Something you know包括Password, PassPhrase, Personal Identification Number(PIN)等,这是最容易实现以及最常见的一种认证方法。但是这些信息很容易泄露,因此,也是最不安全的一种方法。Something you have是现实生活中存在的东西,比如钥匙,Smart Card, Badge(标识,徽章)等。由于这些东西很容易被复制或者丢失,因此也是一种不太安全的方法。最有效的认证方法是Something you are,这种方式是采用用户本身所具有的生物学特征 (Biometrics)或行为特征来认证的,因此非常安全。

双因子认证Two-factor Authentication:通过两种或者两者以上的认证手段来对主体进行认证的方法。也就是说可以通过Something you know, Something you have和Something you are的组合来对主体进行认证。

Least Privilege & Authorization Creep
就是只赋予用户以完成工作所必须的权力。当一个用户在公司内部在部门之间进行轮换时,为了完成不同的工作,由于没有回收他原来的权力,就会得到越来越多的权力。这种情况就叫做Authorization Creep

Default to No Access
就是说访问控制默认情况下应该设置为不能访问。也就是说,如果没有明确的说明允许访问,则应该为禁止访问。

Need to Know
和Least-Privilege相似,就是说只允许用户访问需要完成工作所必须知道的信息

Biometrics认证
Biometrics是Something you are的一种认证方式,它是通过识别用户本身所具有的一种生物学特性Physical Attributes或者行为特征behavior来验证用户的身份(记得是两种一个是自身,一个是行为),是最有效和安全的一种用户认证方法。

Biometrics认证中,从生物学特征信息提取最能反映差别的特征存储起来,以提高效率和减少存储空间。这些最能代表主体的特征被称为Match Points。这些match points被整理成一种被称为Template的相同的格式。以后的比较就是将新取样的特征信息与Template比较而进行认证。当Biometrics作为Identification时,one-to-many matching,也叫negative matching。在作为Authentication使用时,是one-to-one matching,也叫positive matching。
可以作为biometrics的生物学特征必须具有普遍性universal和不变性permanence。Universal是必须是所有的人都具有的特征。Permanence是这个特征在人的一生中是不变的。

Biometrics通过以下的三个参数来表明其性能
False Rejection Rate(FRR),也就是第一类错误,Type I Error这个参数表明Biometrics系统错误地拒绝合法用户通过认证进入系统的概率。
False Acceptance Rate(FAR):第二类错误Type II Error这个参数表明系统允许非法用户通过认证进入系统的概率。
Crossover Error Rate或者Equal Error Rate: (CER/EER):这个参数是真正可以表明Biometrics系统准确性优劣的参数这个参数越低,表明系统性能越好。在Biometrics认证系统中,FRR和FAR是反比关系,即FRR高,则意味着FAR低因此Biometrics系统的可以通过CER来对比选择在实际生活中,对FRR和FAR的要求和具体的使用环境有关。高安全性的环境中,则会要求极低的FAR,但对FRR的要求就比较宽松。
FRR,FAR,CER三者之间的关系如下图:


影响Biometrics的的主要有三个指标:User Acceptance, Throughput和Enrollment Time。Throughput说的是系统在进行身份验证时的吞吐量,也就是系统的工作效率,一般要求Throughput在每分钟10个左右(也就是说单个不高于 10 seconds)Enrollment Time说的是在用户初次登记入系统的时间,一般在2分钟以内。

Biometrics包括以下几种类型:
Fingerprints指纹
Signature Dynamics动态签名
Keyboard Dynamics
Retina scans眼底扫描
Iris scans虹膜扫描
Facial scans 脸部扫描
Palm scans掌形扫描
Hand geometry手形
Voice声音
Vein Pattern 血管模式
DNA匹配

Password密码:
密码是字母,数字和一些符号的组合,最常见的用户身份验证方式。由于其简单,方便,因此是最容易被用户接受的方式,但由于密码很容易被窃取,因此也是最不安全的一种方式。采用密码认证的系统要采用复杂和一定长度的密码才可以保证系统不会被很容易破解。一般要求有8位长度字母、数字和特殊字符的组合。系统可以为用户产生很复杂的密码,但非常难以记忆,用户会写在某个地方,反而会引起密码的泄露,影响系统的安全性。因此很多系统都允许用户自主选择密码,但此时需要有Password Checker来检查用户输入的密码是否符合系统的复杂性要求

如果每次认证的密码都一样,就是Static Password,如果每次认证使用的密码是不同的,则为动态密码Dynamic Password.

针对密码的攻击主要有以下几种:
Sniff or monitor: 通过监听网络上传送的数据来获得用户的密码。如果用户的密码没有经过加密处理,非法用户就可以很容易的获得合法用户的密码,从而可以使用获得的密码进入信息系统。
--意思就是说如果是明文,这个攻击是有效的

Dictionary Attack: 就是字典攻击。通过一些工具和网络上的常用密码字典来对获得的密码进行破解。由于目前用户的密码一般都经过加密或者哈西算法(hash)处理,在很多情况下,通过网络监听获得的用户密码并不是用户真正的密码。这种方法也是比较常见的一种方法。

Brute Force: 也就是我们常说的暴力破解。这种方法是利用某些工具按照一定的规则来产生各种密码的组合,比如首先生成aaa,然后aab,aac…..一直试探下去直至找到正确的密码。理论上来说,所有的密码都可以通过此种方法破解。这也是最耗时、最笨的一种方法。

Social Engineer: 这种方法是利用人性的弱点来获得合法用户的密码或者其他的信息。比如,非法用户通过和你拉关系等等方法骗取你的信任从而获得所需要的信息。

Cognitive Password

Cognitive Password是一种基于个人事实或者个人经历的一种验证用户身份的方法。这种密码对于除了用户本人之外的其他人会很难记忆,但对于用户本人确非常容易。比如,用户本人的父母,大学时的上下铺同学等等。

One-Time Password
也叫动态密码Dynamic Password
。这种密码只使用一次,不会使用第二次,因此是最安全的用户身份验证方法。一般使用Token产生。比较著名的有RSA公司的SecureID。

Token是一种带有LCD显示屏的信用卡大小的手持式电子设备,用来产生一次性密码。分为同步式Synchronous和非同步式Asynchronous两种。同步式的Token又分为Time Based的TokenCounter-Synchronous两种。Time based token在时间上严格与认证服务器同步, 用户使用 token上显示的值作为一次性口令进行身份验证。Counter-Synchronous token在使用前要先与认证服务器进行初始化,然后才可以使用。使用Token的密码满足了Something you have的认证方式。如果在使用Token之前,用户要先向Token输入口令验证自己身份,则也同时满足了Something you know,因此就是two-factor authentication.


没有评论:

发表评论