信息安全之Tickets和Kerberos协议

360影视 动漫周边 2025-05-28 18:07 3

摘要:在信息安全领域,"tickets"(票据)通常指的是一种短期的、加密的电子凭证,用于证明用户或服务的身份和授权,以便安全地访问网络资源或服务。它们最核心的作用是实现安全的身份认证和授权委托。

Tickets和Kerberos协议

在信息安全领域,"tickets"(票据)通常指的是一种短期的、加密的电子凭证,用于证明用户或服务的身份和授权,以便安全地访问网络资源或服务。它们最核心的作用是实现安全的身份认证和授权委托。

这个概念最常见于 Kerberos 网络认证协议中,这也是理解"tickets"含义的关键场景:

作用: 这是用户登录后获得的主票据。它证明用户已经成功通过了初始身份验证(例如输入了正确的用户名/密码)。

获取方式: 用户向认证服务器提供凭据(如密码),认证服务器验证成功后,生成并返回一个加密的 TGT。

内容: 通常包含用户身份信息、会话密钥、有效期时间戳等,并使用票据授予服务自己的密钥进行加密(用户无法解密)。

使用: 用户需要访问某个具体服务时,会将 TGT 发送给票据授予服务。TGS 能用自己的密钥解密 TGT,验证其有效性(用户身份、时间戳是否过期等)。验证通过后,TGS 才会为用户颁发访问该特定服务的 Service Ticket。

作用: 这是用于访问特定网络服务(如文件服务器、邮件服务器、数据库)的凭证。

获取方式: 用户向票据授予服务提供 TGT 和想要访问的服务标识符(如服务主体名称)。TGS 验证 TGT 有效后,生成并返回一个针对该特定服务的 Service Ticket。

内容: 包含用户身份信息、会话密钥、有效期时间戳等,并使用目标服务的密钥进行加密(只有目标服务能解密)。

使用: 用户将 Service Ticket 发送给目标服务。目标服务用自己的密钥解密票据,验证其有效性(用户身份、时间戳是否过期等)。验证通过后,服务允许用户访问。

加密: Tickets 的核心信息都是加密的,TGT 用 TGS 的密钥加密,ST 用目标服务的密钥加密。这确保了只有合法的 TGS 和目标服务才能读取票据内容,防止伪造和窃听。

有限生命周期: Tickets 都有明确的有效期(通常几分钟到几小时)。过期后必须重新申请。这限制了票据被截获后滥用的时间窗口。

防重放: 通常包含时间戳或其他防重放机制,防止攻击者截获票据后重复使用。

委托: TGT 允许用户在不重新输入密码的情况下,从 TGS 获取访问各种服务的 ST,实现了认证的委托。

1. 单点登录: 在更广泛的单点登录系统中,成功登录后获得的“令牌”有时也被称为 "ticket"。它允许用户访问多个关联系统而无需重新登录。

2. 票据认证系统: 某些访问控制系统可能使用“票据”作为进入特定区域或使用特定资源的短期凭证。

3. 漏洞赏金/事件响应: 在这些领域,"ticket" 更常指代一个工单,用于跟踪特定的漏洞报告或安全事件的处理流程(例如 Jira Ticket, ServiceNow Ticket)。

在信息安全的核心领域,尤其是身份认证和访问控制方面,"ticket" 主要指 Kerberos 协议中使用的加密凭证(TGT 和 ST)。它的核心价值在于:

安全地传递身份证明: 用户无需在网络中传输密码。

实现单点登录: 用户登录一次(获取 TGT)即可访问多个服务(通过申请 ST)。

授权访问特定资源: ST 明确授权用户访问某个特定服务。

通过加密和时间限制增强安全性: 防止凭证窃取和滥用。

因此,当你在信息安全上下文中听到 "tickets" 时,首先要联想到的就是 Kerberos 协议及其提供的安全认证机制。

Kerberos 是一种网络身份认证协议,由 MIT 在 20 世纪 80 年代开发,旨在为客户端/服务器应用提供强身份验证。其名称来源于希腊神话中守护地狱之门的三头犬,象征着协议的核心设计目标:严密守护网络入口的安全。

核心目标与作用

1. 安全身份验证:

允许用户/客户端在不通过网络传输密码的情况下,向服务器证明自己的身份。

2. 单点登录(SSO):

用户登录一次即可访问多个受信任的服务(如文件服务器、邮件系统),无需重复输入密码。

3. 防止窃听与重放攻击:

通过加密票据和时间戳机制,阻止攻击者截获凭证后冒充用户。

Kerberos 系统依赖三个关键角色:

1. 客户端(Client):

需要访问服务的用户或应用程序。

2. 服务端(Server):

用户要访问的资源(如文件服务器、数据库)。

3. 密钥分发中心(KDC - Key Distribution Center):

Kerberos 的核心大脑,由两部分组成:

- 认证服务器(AS):验证用户初始身份,发放 TGT。

- 票据授予服务器(TGS):根据 TGT 发放服务票据(ST)。

1. Alice 输入用户名和密码登录客户端。

2. 客户端向 AS 发送身份请求(仅含用户名)。

3. AS 验证用户名存在后:

- 生成一个 会话密钥(Session Key A) 用于 Alice 与 TGS 的通信。

- 创建 TGT(票据授予票据),包含:

- Alice 的用户名

- TGS 会话有效期

- 会话密钥 A(Session Key A)

- TGT 使用 TGS 的密钥加密(客户端无法解密)

- 向客户端发送:

- 用 Alice 密码派生的密钥加密的会话密钥 A

- 加密后的 TGT

> ✅ 关键点:客户端用 Alice 的密码解密获得 会话密钥 A,但无法解密 TGT(需 TGS 的密钥)。

4. 当 Alice 需要访问文件服务器时:

- 客户端向 TGS 发送请求:

- 服务名(如 `fileserver@company.com`)

- 加密的 TGT

- 认证器(Authenticator):用 会话密钥 A 加密的客户端时间戳(防重放)。

5. TGS 收到请求后:

- 用 TGS 密钥 解密 TGT,获取 会话密钥 A 和 Alice 的身份。

- 用 会话密钥 A 解密认证器,验证时间戳是否有效(防重放)。

- 验证通过后:

- 生成一个新的 服务会话密钥(Session Key B) 用于 Alice 与文件服务器通信。

- 创建 服务票据(ST),包含:

- Alice 的用户名

- ST 有效期

- 会话密钥 B

- ST 使用 文件服务器的密钥加密(客户端无法解密)

- 向客户端发送:

- 用 会话密钥 A 加密的 会话密钥 B

- 加密后的 ST

6. 客户端向文件服务器发起请求:

- 发送 加密的 ST

- 发送新的 认证器(用 会话密钥 B 加密的时间戳)。

7. 文件服务器收到后:

- 用 自己的密钥 解密 ST,获取 会话密钥 B 和 Alice 身份。

- 用 会话密钥 B 解密认证器,验证时间戳。

- 验证通过后,允许 Alice 访问资源。

对称加密:所有票据和会话密钥均使用 AES 等对称加密算法保护(如 AES-256)。 时间戳:认证器包含加密时间戳,有效防止票据被截获后重放(通常容忍 5 分钟时间偏差)。

有限有效期:TGT 和 ST 均有短暂有效期(通常几小时),超时需重新认证。

双重加密防护:用户密码从未在网络传输;票据内容仅服务方或 KDC 可解密。

实际应用场景

- 企业 Active Directory 域:

Windows 域认证的核心协议,域用户登录后自动获取 TGT,访问域内资源(共享文件夹、打印机等)无需重复输入密码。

- UNIX/Linux 系统:

通过 MIT Kerberos 或 Heimdal 实现跨平台认证。

- Hadoop 安全认证:

Kerberos 用于保护大数据集群内部服务通信。

- 数据库访问控制:

如 PostgreSQL、MySQL 支持 Kerberos 认证。

Kerberos 的本质是通过可信第三方(KDC)签发加密票据(TGT/ST),代替密码在网络中传递身份凭证。它解决了传统密码传输的安全风险,成为企业内网身份认证的基石。理解其核心流程(AS → TGS → Service)和票据(TGT/ST)的双层结构,是掌握 Kerberos 的关键。

来源:法律联讯

相关推荐