1. 概述
- 身份认证:系统审查用户身份,确定该用户是否具有对某种资源的访问、使用权限
- AAA/3A:Authentication(认证)、Authorization(授权)、Accounting(审计)
- 认证:指确定一个用户(实体)是否被允许访问特定的资源
- 授权:指当用户(实体)的身份被确定为合法后,赋予该用户的系统访问或资源使用权限
- 审计:指所有的试图通过身份认证获得授权的尝试的记录
2. 口令(密码)认证
- 一次性口令OTP(One Time Password)在登录过程中加入不确定因素,使每次登录时计算的密码都不相同。(避免重放攻击)
- 动态口令:种子-认证服务器为用户分配的一个非密文的字符串、序号-指单向散列函数的迭代次数、通行短语-仅用户知道的值
2.1 动态认证-时间同步
- 用户的登录时间作为随机数+用户的通行短语=生成一个口令
- 对客户端和认证服务器时间准确度的要求高,在分式环境下对不同设备的时间同步难度较大
2.2 动态认证-事件同步
- 用户触发登录事件同时系统根据登录事件产生口令,相比时间同步更适用于复杂的网络环境
2.3 动态认证-挑战/应答
- C端发起登录请求——认证服务器验证身份,生成挑战信息给C端——C端加入通行短语生成应答——认证服务器计算比较,通知认证结果
- 不用考虑同步的问题,使用者输入额外信息,操作复杂。
2.4 一次性口令-S/Key认证系统
3. 生物特征认证
3.1 指纹识别
3.2 虹膜认证
3.3 人脸识别
* 零知识证明身份认证
- 指证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。
4. 身份认证协议
4.1 Kerberos协议
4.1.1 特点
- 基于TCP/IP、C/S模式下执行、依赖可信赖的第三方KDC(密钥分配中心、双方都信任的)实现用户身份认证、对称加密
4.1.2 组成
- 用户端(用户账户、设备地址)
- 资源服务器(访问前需要认证)
- 密钥分配中心KDC(Key Distribution Center):为用户提供对称密钥(密钥只有User和KDC保存),实现身份认证
- 认证服务器AS(Authentication Server)
- 在KDC中,AS为用户提供身份认证
- AS将用户的密码保存在KDC的数据库中
- 当用户进行身份认证时,AS在收到密钥后与数据库中的密码进行比对;比对通过,AS将向用户发放票据许可票据。
- 票据分配服务器TGS(Ticket Granting Server)
- 在KDC中提供TGS(避免用户每次访问服务器资源时AS每次都要向用户发放票据)。
- TGS的作用:向已经通过AS认证的用户发放服务许可票据(用于访问资源服务器)
- AS发放票据许可票票据Tickettgs——用户向TGS出示Tichettgs获取服务许可票据Tickettv——用户拿Tickettv访问资源服务器
-
时间戳:票据中时间戳——用户知道票据的有效性
4.1.3 认证过程-5
-
客户向AS发送认证信息(用户名、资源服务器名、生成KC密钥)
-
AS验证生成KGS密钥(C与TGS通信用),AS用KC密钥加密KGS构造KCGS+Tickettgs一起发送给C端;
-
客户输入密码生成KC,并用KC解密KCGS生成KGS密钥+Tickettgs,并向TGS发送KC密钥+Tickettgs(用KGS加密)
-
TGS解密获得KC,并从资源服务器获得KS并用KC生成KCS+Tickettv发送给客户
-
客户使用Tickettv访问资源服务器获取资源
4.2 SSL协议
4.2.1 特点
- 点对点,面向TCP、UDP,使用对称密钥、公开密钥技术
4.2.2 组成
- SSL协议分为上下两部分:上层为SSL握手协议,下层为SSL记录协议。
- SSL握手协议:用来建立客户机与服务器之间的连接,并协商密钥
- 而SSL记录协议:定义数据的传输格式。
4.2.3 SSL握手协议过程-4
- 客户机发送Client Hello——服务器应答Server Hello(协商协议版本、加密算法、会话的ID、压缩方法和初始随机数等)
- 服务器发送数字证书、公钥证明身份,同时发起验证请求(Sever Hello Done)
- 客户机发送数字证书、公钥证明身份,发起私钥签名证书(Certificate Verify),证明是证书持有者
- 客户机、服务器分别发送修改密码格式消息(ChangeCipherSpec),完成密钥交换,并相互发送完成消息(finished),完成认证过程
4.2.4 SSL记录协议过程-5
- 数据分块(16x1028B)+压缩+添加MAC(消息认证码)+加密(Delta<1024B)+在加密后的数据头部添加SSL记录头
- 数据分块;将应用层的数据分解为大小为16×1024B(字节)或更小的数据块。
- 数据压缩(可选);压缩必须是无损的,压缩后的数据长度未必比压缩前的数据短,但增加的内容长度不能超过1024B。在SSLv3中,系统默认不进行压缩。
- 计算并添加MAC(消息认证码;对压缩后的数据,采用单向Hash函数计算MAC,并添加到压缩后的数据后面。
- 加密;对压缩数据和MAC进行加密,加密对数据长度的增加不能超过1024B。
- 添加SSL记录头;在加密后的数据头部添加一个SSL记录协议头,使数据形式一个完整的SSL记录
4.3 RADIUS协议
4.3.1 概述
- 远程认证拨号用户服务RADIUS(Remote Authentication Dial-In User Server)
- 应用于分布式环境的C/S架构的信息交互协议,常用于对安全性要求较高且允许远程用户访问的网络环境中
- 通用的认证计费协议——应用最广泛的AAA协议
- RADIUS在AAA架构中的应用:
- NAS作为RADIUS客户端,向远程接入用户提供接入并与RADIUS服务器交互的服务
- RADIUS服务器上存储着用户的身份信息、授权访问信息,对用户进行认证、授权和审计服务
4.3.2 工作原理
- 用户接入NAS,NAS使用Access-Require报文向RADIUS服务器提交用户信息(用户名、密码等,MD5加密,双方使用共享密钥,这个密钥不经过网络传输)
- RADIUS服务器对用户名和密码的合法性进行检验,(提出一个挑战要求进一步对用户/NAS认证);
- 不合法返回Access-Reject报文,拒绝用户访问
- 合法:给NAS返回Access-Accept报文,NAS向RADIUS服务器发送计费请求Account- Require报文,RADIUS服务器以Account-Accept报文作为响应,对用户的计费开始,同时用户可以进行自己的相关操作
4.3.3 工作过程
- 用户输入账户密码接入NAS
- RADIUS/C根据用户信息向RADIUS/S请求,RADIUS/S进行DB比对,认证响应Access-Accept给RADIUS/C(失败响应为Access-Reject)
- RADIUS/C向RADIUS/S发送Accounting-Request+status-type(start)=开始计费,RADIUS/S返回Accounting-Response报文
- RADIUS/C向RADIUS/S发送Accounting-Request+status-type(stop)=停止计费,RADIUS/S返回Accounting-Response报文
- RADIUS客户端——RADIUS服务器之间认证消息的交互通过共享密钥完成(不通过网络传输),RADIUS协议用共享密钥对RADIUS报文中的密码进行加密,防止用户密码被窃取。
- 统一身份认证技术:SAML推拉方式、基于OAuth2.0的身份认证、基于OpenID的身份认证
5. 名词解释
- 社会工程学:一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行的诸如欺骗、伤害等危害手段,取得自身利益的手法;
- 按键记录软件:一种间谍软件,它以木马方式植入到用户的计算机后偷偷地记录下用户的每次按键动作,并按预定的计划把收集到的信息通过电子邮件等方式发送出去;
- 搭线窃听:攻击者通过专线窃听网络数据,如果密码使用明文传输,可被非法获取;
- 暴力破解:使用的字典是字符串的全集,对可能存在的所有组合进行猜测,直到得到正确的信息为止;
- 字典攻击:攻击者用户可能选取的密码(用户名、生日等)列举出来生成一个文件,当攻击者得到了一些与密码有关的可验证信息后,就可以结合字典进行一系列的运算,来猜测用户可能的密码,并利用得到的信息来验证猜测的正确性;
- 窥探:攻击者利用与被攻击系统接近的机会,安装监视设备或亲自窥探合法用户输入的账户和密码。窥探还包括攻击者在用户计算机中植入的木马;
- 垃圾搜索:攻击者通过搜索被攻击者的废弃物(如硬盘、U盘、光盘等),得到与待攻击系统有关的信息;
- 双因素认证:在身份认证过程中至少提供两个认证因素。
PKI
1.概念
- PKI公钥基础设施是利用密码学中的公钥概念和加密技术为网上通信提供的符合标准的一整套安全基础平台。
2.系统特点、组成
1.安全服务器:提供证书申请、浏览、证书撤销列表(CRL)以及证书下载等安全服务。采取SSL加密方式,但不需要对用户进行身份认证。
2.CA服务器:负责证书的签发。CA首先产生自身的私钥和公钥(密钥长度至少为1024位),然后生成数字证书,并且将数字证书传输给安全服务器。
3.注册机构RA:一方面向CA转发安全服务器传输过来的证书申请请求;另一方面向LDAP服务器和安全服务器转发CA颁发的数字证书和证书撤销列表。
4.LDAP服务器:LDAP服务器提供目录浏览服务,负责将注册机构服务器传输过来的用户信息以及数字证书加入服务器上。
5.数据库服务器:用于认证机构中数据(如密钥和用户信息等)、日志等统计信息的存储和管理。
3. 证书签发、撤销过程
3.1 在线签发
- 用户使用浏览器访问安全服务器,安全服务器转发给RA
- RA审核用户并访问RA服务器获取签名
- RA向CA传输用户申请+数字签名,CA输出证书
- RA下载证书,并转发到指定站点
- 用户使用浏览器下载
(1)用户申请。用户使用浏览器访问安全服务器,下载CA的数字证书(根证书)。用户填写个人信息,浏览器生成私钥和公钥对,安全服务器将用户的申请信息转发给RA服务器;
(2)RA审核。用户向RA人员证明自己身份,RA操作员严格访问(验证RA操作员数字证书、IP地址)RA服务器,并提供数字签名;
(3)CA发放证书。RA向CA传输用户的证书申请与操作员的数字签名,CA操作员查看用户的详细信息,并且验证操作员的数字签名,输出证书;
(4)RA证书转发。RA操作员从CA服务器得到新的证书,首先将证书输出到LDAP目录服务器以提供目录浏览服务,再提供给用户下载站点。
(5)用户获取证书。用户使用申请证书时的计算机浏览器(该证书相应的私钥去验证)到指定的站点下载由RA转发的证书。
3.2 证书撤销
(1)RA向CA提出撤销申请(证书序列号+撤销理由)。
(2)CA将撤销证书的序列号签发到CRL中。
(3)系统通过数据库或LDAP目录等方式发放新的CRL,并且提供用户在线查询。
“我欲乘风破浪,踏遍黄沙海洋,也要与你无悔一场、不负勇往。”
——Created By 是羽十八ya