网络安全——身份认证
身份认证1、Kerberos认证系统1.1、Kerberos认证系统的基本功能1.2、Kerberos认证系统的组成1.3、Kerberos认证过程1.4、Kerberos认证系统的安全性2、X.509认证服务2.1、简单认证2.2、强认证2.3、密钥及证书管理3、数字证书3.1、数字证书的功能3.2、X.509数字证书的内容3.3、数字证书的管理和使用3.4、基于数字证书的身份认证4、常用实体认证方法4.1、用户名/密码认证4.2、主体特征认证4.3、USB Key认证4.4、IC卡认证4.5、动态密码也称动态口令身份认证是指用户进入系统或访问不同保护级别的系统资源时确认该用户身份是否真实、合法和唯一的过程。基于网络工作原理一切网络信息包括用户的身份信息均通过一组特定数据表示系统仅能识别用户的数字身份所有授权操作均针对数字身份完成。如何保证以数字身份操作的操作者与数字身份的合法拥有者一致即物理身份与数字身份的绑定是网络安全研究的核心问题之一。目前已形成系列成熟的认证技术与措施包括Kerberos认证交换协议、X.509目录认证服务、数字证书以及其他实体认证技术。1、Kerberos认证系统Kerberos是为TCP/IP网络设计的可信第三方认证交换协议其核心定位是网络中的“可信仲裁者”可提供安全的在线认证服务支持用户访问网络中不同主机资源。同时Kerberos认证系统也是密钥分配中心KDC的核心实现在密钥分配过程中通常采用AES、DES等对称密码算法保障密钥安全。当前广泛应用的是Kerberos认证交换协议的第5个版本Kerberos V5。1.1、Kerberos认证系统的基本功能Kerberos名称源于希腊神话中“三头犬”的传说——作为地狱入口的守护者。设计者以“三头犬”象征其三大核心功能鉴别、记账与审计。在开放分布式网络环境中用户通过客户机访问服务器时面临多重安全挑战其一客户机可能冒充其他用户操作其二用户可通过修改客户机地址等方式伪装成其他客户机其三攻击者可窃听并重放他人信息非法获取服务访问权或中断服务器运行其四假冒服务器可能骗取用户机密信息。Kerberos的设计目标正是针对这些威胁提供安全、可靠、透明且可扩展的认证服务具体表现为安全。确保网络窃听者无法获取伪装所需的关键信息。可靠。所有依赖Kerberos访问控制的服务若客户机未通过Kerberos服务器认证则无法获取所需服务。透明。用户仅需输入口令无须了解鉴别过程的具体细节。可伸缩。用模块化客户机/服务器架构支持大规模用户与服务器接入。Kerberos认证系统支持单点登录SSO用户仅需完成一次身份认证即可凭借获取的票据访问多个服务。系统通过在客户机与服务器间建立共享密钥保障在线认证服务的安全性。1.2、Kerberos认证系统的组成Kerberos认证系统由认证服务器AS、票据授予服务器TGS、应用服务器及客户机共同构成。认证服务器Authentication Server, AS。作为密钥分配中心Key Distribution Center, KDCAS负责用户注册、账号与密钥分配并完成用户身份确认及用户与TGS间会话密钥的发布。票据授予服务器Ticket Granting Server,TGS。TGS负责发放服务器票据并提供用户与服务器间的会话密钥。Kerberos将用户认证与会话票据发放分离——尽管AS仅需完成用户身份的一次性认证但用户需多次与TGS交互以获取不同服务器的票据。应用服务器。为用户提供具体服务。此外Kerberos认证系统维护一个包含所有客户机与服务端秘密密钥的数据库即KDC。通过存储各实体的秘密密钥Kerberos能够生成消息以验证实体身份同时系统可生成仅用于客户机与服务器或客户机间通信的会话密钥加密双方通信内容通信结束后即销毁该密钥。1.3、Kerberos认证过程Kerberos认证系统的组成及认证流程如图所示该系统为计算机系统间的认证提供了标准化技术支撑。客户机通过明文向Kerberos即认证服务器AS、KDC发起请求申明自身身份。经AS认证通过后客户机方可与票据授予服务器TGS建立联系。AS在其密钥数据库KDC中检索客户机实体信息生成会话密钥并使用基于用户口令哈希值生成的加密密钥对该会话密钥加密最终生成允许客户机访问TGS的票据。该票据包含客户机身份信息实体名、地址、TGS名、时间戳、有效时限与会话密钥。随后AS将加密后的票据发送至客户机。客户机利用自身秘密密钥解密获得会话密钥生成包含客户机实体名、地址、时间戳的认证凭证并使用会话密钥对该凭证加密随后向TGS发送请求申请接入目标应用服务器的许可票据。TGS解密接收的消息获取会话密钥通过该密钥解密认证凭证以验证有效性并检查票据的有效期确保未过期。同时TGS比对用户标识、网络地址与AS认证的用户信息是否一致。若验证通过TGS向客户机返回许可票据与前述票据结构完全一致。客户机代表用户向目标应用服务器发起服务请求发送包含用户标识与许可票据的报文。应用服务器解密票据通过验证标识信息确认解密有效性并检查票据有效期确保未过期。同时应用服务器比对用户标识、网络地址与TGS认证的用户信息是否一致。若一致则向用户提供所需服务。1.4、Kerberos认证系统的安全性Kerberos认证交换协议为网络实体提供了集中、统一的认证管理机制但仍存在潜在安全弱点例如旧的会话密钥可能被存储重用尽管时间戳机制可防范此类攻击但在票据有效期内仍存在风险此外跨组织系统中单一认证服务器无法完成所有用户注册需部署多台认证服务器分别管理不同用户与服务器。因此Kerberos支持跨域认证需满足以下条件Kerberos服务器需在数据库中存储所有用户标识及参与用户的口令哈希密钥且所有用户已完成注册Kerberos服务器需与每个应用服务器共享保密密钥且所有应用服务器已完成注册不同域的Kerberos服务器之间需共享保密密钥并实现相互注册。Kerberos认证协议不仅能实现用户身份认证还可提供数据机密性、完整性及密钥管理等安全服务能力。但需注意其单次认证过程需至少交互6个报文在代理服务器等对认证效率要求较高的场景中Kerberos的应用可能受限。2、X.509认证服务为在开放网络系统中实现远程用户身份认证国际电信联盟ITU于1988年制定了认证体系标准——《开放系统互连—目录服务认证体制X.509》X.509。此处的“目录”指维护用户信息数据库的服务器或分布式服务器集群存储内容包括用户名到网络地址的映射及其他用户属性。X.509定义了X.500目录向用户提供认证服务的框架其核心功能是存储用户公钥证书。X.509规定了“简单认证”与“强认证”两种不同安全等级的认证方式并详细描述了公钥证书格式、证书管理、证书路径处理、目录数据树结构、密钥生成以及认证中心间交叉认证证书的目录存储等问题。2.1、简单认证X.509定义了安全强度较低的简单认证方式与UNIX系统常见的基于口令的认证机制类似。其通过用户提供的用户ID和仅收发双方知晓的用户口令PASSWD来实现低安全级认证。最基础的认证过程如下见图客户机将用户ID及口令以明文形式发送至接收端服务器接收端服务器将接收的口令与用户ID提交至目录服务器比对目录中存储的用户口令目录服务器返回响应指示服务器是否接受该客户机为合法用户服务器最终向客户机反馈认证结果。此方式的主要缺陷在于用户ID与口令以明文传输存在安全隐患。改进后的简单认证流程为客户机将用户ID、口令、随机数及/或时间戳经单向哈希函数处理后传输至接收端服务器或进一步将上述哈希结果与另一组随机数/时间戳再次哈希后传输。2.2、强认证X.509定义了高安全强度的强认证机制其认证流程基于公钥密码技术实现通信双方的身份识别。强认证分为单向、双向及三向三种模式提供不同层次的安全保障。标准中对公钥证书的使用进行了详细规范以强化认证能力。2.3、密钥及证书管理X.509以公钥密码体制和数字签名为基础但未明确规定具体采用的密码体制推荐RSA也未指定数字签名中使用的哈希函数。X.509还定义了基于公钥证书的认证协议。其证书结构与认证协议已广泛应用于S/MIME安全多用途互联网邮件扩展、IPSec互联网安全协议、SSL/TLS安全套接层/传输层安全及SET安全电子交易等场景。3、数字证书数字证书Digital Certificate又称数字标识DigitalID或公钥证书是互联网环境中用于身份认证的电子凭证。其本质是由权威机构证书认证中心CA审核签发的电子数据文件包含证书持有者的身份信息、公钥及相关认证信息功能上类似于现实生活中的居民身份证但以数字化形式存在属于结构化数据。数字证书广泛应用于电子商务、电子政务等场景为网络空间的身份可信性提供基础支撑。3.1、数字证书的功能作为互联网环境中各类终端实体与最终用户的身份证明数字证书通过集成对称密码体制与公钥密码体制等加密技术构建了严格的身份认证系统主要实现以下核心功能。身份认证数字证书的核心内容包括证书持有者的 个人信息如名称、组织、公钥、公钥有效期、颁发机构CA信息及CA的数字签名。交易双方通过网络验证对方数字证书的有效性后可确认对方身份的真实性从而放心开展信息交互或资源访问授权。其中CA作为权威、可信、公正的第三方机构专门负责数字证书的签发与管理服务。加密传输信息数字证书支持加密传输功能可保障各类数据如文件、批文、合同、票据、协议、标书等在互联网传输中的机密性。具体流程为发送方使用接收方的公钥对原始报文进行加密生成密文接收方通过仅自己持有的私钥对密文解密还原得到明文。数字签名抗否认数字证书通过数字签名技术实现“抗否认”功能其原理与现实中的公章、手写签名类似但以数字化方式呈现。数字签名并非书面签名的数字图像而是发送方使用私钥对报文内容进行加密生成的签名值。接收方可通过验证该签名值的合法性确认报文的完整性与发送方的不可抵赖性。3.2、X.509数字证书的内容国际电信联盟ITU-T制定的X.509标准定义了认证服务的框架其中数字证书是该标准的核心内容。遵从X.509标准的数字证书称为X.509数字证书。一个标准的X.509数字证书包含以下内容版本号标识证书采用的X.509标准版本版本1、版本2或版本3。版本号会影响证书的字段定义当前通用版本为版本3。序列号用于唯一标识证书的整数由CA为每张证书分配的唯一标识符。签名算法标识符由对象标识符OID及相关参数构成用于说明证书采用的数字签名算法例如SHA-1与RSA的组合标识该签名通过RSA算法对SHA-1哈希值加密生成。认证机构的数字签名CA通过私钥生成的数字签名用于确保证书在签发后未被篡改。认证机构证书颁发机构的可识别名称X.500名称即签发该证书的CA在X.500目录中的唯一标识。使用证书即表示信任该签发机构。有效期证书的有效时间范围起始日期与终止日期现行通用证书通常采用UTC时间格式。主体信息证书持有人的唯一标识其命名遵循X.500格式规则确保在互联网上的唯一性。公钥信息包含证书持有人的公钥、算法标识符及其他相关密钥参数。颁发者唯一标识符仅在版本2和版本3中要求的可选字段用于唯一标识证书颁发机构。扩展域版本3新增的字段为包含多个扩展项的集合如密钥用途、证书策略等。X.509中若认证机构Y为用户X颁发证书可表示为Y; Y对信息I的签名表示为YI。例如CA颁发给用户A的X.509证书可以表示为其中V为版本号SN为证书序列号A1为算法标识符TA为有效期AP为A的公钥信息。3.3、数字证书的管理和使用在数字证书的生命周期中认证中心CA作为权威、可信、公正的第三方机构负责互联网交易实体数字证书的发放、管理与监督。数字证书的获取、颁发与撤销需严格遵循管理规定。1数字证书的获取通常用户可从CA直接获取数字证书。数字证书经CA签名具备不可伪造性。可信CA会为每个用户分配唯一名称并签发包含该名称与用户公钥的证书。因此CA无需对证书进行额外特殊保护仅需将其存储于公共目录中用户可直接从该目录下载所需证书。若通信双方如甲、乙均持有同一CA签发的数字证书可直接从公共目录下载对方证书。除公共目录下载外数字证书也可由用户直接发送给通信对象。若通信双方甲、乙不属于同一CA则需通过CA间的信任关系获取对方证书。具体流程为甲需从CA树状分层结构的底层CA向上层CA逐级查询直至找到共同信任的CA即双方信任的根CA。认证中心通常采用多层树状分级结构组织CA的树状结构可映射为证书链见下图。例如用户U1与U2安全通信时需涉及3个证书链U1、U2、CA1若U1与U3通信则需涉及5个证书链U1、CA1、RootCA、CA3、U3。跨域证书认证还可通过交叉认证机制实现该机制能缩短信任路径提升效率。一般场景下若用户A的证书由认证中心X颁发用户B的证书由认证中心Y颁发且X与Y相互信任即交换数字证书则A获取B证书的流程如下A获取X为Y颁发的证书表示为X从中提取Y的公钥。A获取Y为B颁发的证书表示为Y从中提取B的公钥。A获取B的数字证书的证书链可以表示为XYYB。同理B获取A的数字证书的证书链可以表示为YXXA。X.500对证书链的长度没有限制就是说可以有任意多个CA参与证书链。例如X1, X2…Xn是一系列CA则X1的用户A可以通过以下证书链获取Xn的用户B的证书2数字证书的颁发用户生成自身密钥对并将公钥及部分个人身份信息提交至认证中心CA。CA核实用户身份后完成认证确认请求者为真实用户。CA向用户颁发数字证书证书包含用户个人信息、公钥信息及CA的数字签名。3数字证书的撤销数字证书可存储于网络数据库用户可通过网络交互证书。因私钥丢失、证书不再使用或CA证书泄露等原因需在证书过期前撤销。为保障安全性与完整性每个CA需通过证书废止列表CRL记录所有已撤销但未过期的数字证书并对外发布供其他CA查询。证书被撤销后将从证书目录中移除但签发该证书的CA仍保留副本以备纠纷处理。若用户密钥或CA密钥受损也会触发证书撤销。每个CA必须维护最新的CRL用户接收新证书时需先通过CRL检查其是否已被撤销。3.4、基于数字证书的身份认证数字证书通过数字签名技术能够保障信息传输的真实性、完整性与不可否认性。由于签名使用发送方私钥生成接收方通过发送方公钥验证签名有效性即可确认发送方身份因此数字证书还可提供身份认证功能。X.509标准定义了以下3种身份认证机制单向身份认证发送方A向接收方B单方面提供认证消息以申明自身身份。接收方B收到认证消息后通过发送方A的公钥验证消息签名的有效性并核对消息中包含的一次性随机数、时间戳等信息无须核对接收方自身身份即可完成对发送方A的身份认证。双向身份认证在单向认证基础上增加接收方B的响应环节。发送方A通过验证接收方B的响应信息如B对A发送的随机数的签名实现对接收方B的身份认证最终实现通信双方的身份互认。三向身份认证作为双向认证的增强模式适用于通信双方无法同步时钟的场景。完成双向认证后发送方A对接收方B发送的一次性随机数RB进行数字签名并回传给B。此时双方无须依赖时间戳仅需验证对方回传的一次性随机数即可检测重放攻击。4、常用实体认证方法认证是对抗身份假冒与消息源伪造的基础技术。为应对身份假冒问题研究者提出了多种身份认证协议——通过网络协议实现通信主体身份认证的技术规范。不同协议对窃听、串扰、重放、冒充等攻击的防御能力各有侧重。当前应用较为广泛的认证协议包括密码认证协议Password Authentication Protocol, PAP、质询-握手认证协议Challenge Handshake AuthenticationProtocol, CHAP、Kerberos认证协议、X.509数字证书标准以及基于共享密钥的认证与基于公钥的认证。其中基于共享密钥与基于公钥的认证是目前最常用的实体认证方法。一般而言实体身份认证在具体实现中主要通过以下3种方式完成告知已知信息如口令展示所具有的特性如指纹、网络地址等证明掌握某物来鉴别身份如USBKey、IC卡等。基于这3种方式对抗身份假冒的几种实体认 证方法如下。4.1、用户名/密码认证网络上最基础、最常用的身份认证方式是通过“用户名密码”组合标识用户身份。这种认证机制的核心逻辑是用户与操作系统通过“用户名密码”建立信任关系——用户需先以系统管理员权限注册账号或由管理员创建账号中存储用户的唯一标识如用户名与密码后续登录时用户输入的用户名与密码需与系统中存储的账号信息完全匹配方可获得系统访问权限。然而这种方式存在显著安全隐患许多用户为避免遗忘密码常使用生日、电话号码等易被猜测的有意义字符串作为密码或将其记录在纸质文件、未加密的电子文档中极易导致密码泄露。即使密码未泄露其静态特性也决定了认证信息在验证过程中需在内存和网络中传输而每次验证使用的认证信息完全相同易被内存驻留木马或网络监听设备截获。因此用户名/密码认证是一种安全性较低的身份认证方式。其典型安全威胁包括外部泄露、口令猜测、线路窃听、重放攻击等。其中重放攻击是指攻击者截获合法用户的通信数据后重复发送这些数据以冒充合法用户欺骗系统完成非法操作。为防范重放攻击验证方需判断接收的数据是否为首次接收通常通过引入非重复值Non-Repeating Value, NRV实现如时间戳、序列号或随机数。但由于NRV管理复杂实际应用中更常用一次性口令One-Time Password, OTP技术——验证方与声称方同步生成临时有效的NRV参与口令认证过程。由于攻击者无法生成当前有效的NRV值重放攻击将因此失效。4.2、主体特征认证主体特征认证是通过自动化技术利用人体固有的生理特征或行为动作实现身份识别与验证的技术主要分为生理特征认证与行为特征认证两类。研究表明人体的指纹、掌纹、面孔、发音、虹膜、视网膜、骨骼结构等生理特征具有唯一性和稳定性——每个个体的生理特征独立存在且终生不变可作为身份识别的依据。同时个体的生活环境、行为习惯、知识结构等差异使其书写习惯、肢体运动方式、表情动作等行为特征也具备稳定性和不可复制性。基于这些特性已发展出指纹识别、虹膜识别、面部识别、发音识别、笔迹识别等多种主体特征认证技术。主体特征认证的核心流程包括采集人体物理/行为特征→将特征转换为数字信息→存储于网络系统中→通过可靠匹配算法完成身份认证。以指纹识别为例其处理过程包含指纹图像采集→图像预处理与特征提取→特征值比对与匹配。所有主体特征认证系统均需完成“采集-处理-比对-匹配”的完整链路最终实现对个人身份的精准识别。4.3、USB Key认证USB Key通用串行总线密钥是一种基于USB接口的智能存储设备可存储用户密钥或数字证书。其采用软硬件结合的强双因子认证模式一次一密通过物理设备与密码信息的双重验证实现用户身份认证。USB Key外形小巧、便于携带可直接插入计算机USB接口使用。4.4、IC卡认证IC卡集成电路卡由专用设备生产通常包含微处理器、存储器及输入/输出接口。微处理器内置唯一的用户标识ID、私钥及数字证书其硬件特性决定了不可复制性可有效防止用户身份被仿冒。为避免IC卡遗失或被窃多数系统要求IC卡与身份识别码PIN配合使用——仅持有IC卡但无PIN码时无法登录系统。用户登录时需将IC卡插入专用读卡器系统读取其中信息以验证身份。但需注意IC卡读取的数据仍为静态信息通过内存扫描或网络监听等技术仍可能截获认证信息因此静态认证模式仍存在安全隐患。4.5、动态密码也称动态口令动态密码技术通过时间或使用次数动态生成一次性密码OTP每个密码仅使用一次。该技术采用“一次一密”机制可有效提升用户身份认证的安全性。未来身份认证技术将向更安全、易用、多技术融合的方向发展动态口令因其易用性优势有望成为重要发展方向之一。