kerberos认证体系的安全问题

因为,最近要做大数据组件的安全认证,需要涉及到kerberos这个组件,记录相关资料,后续查看。 Kerberos 是一种网络认证协议,它采用了传统的共享密钥的方式,实现了在网络环境不一定保证安全的环境下,client和server之间的通信,适用于client/server模型。用户只需输入一次身份验证信息,就可凭借此验证获得的票据授予票据(ticket-granting

因为,最近要做大数据组件的安全认证,需要涉及到kerberos这个组件,记录相关资料,后续查看。

Kerberos 是一种网络认证协议,它采用了传统的共享密钥的方式,实现了在网络环境不一定保证安全的环境下,client和server之间的通信,适用于client/server模型。用户只需输入一次身份验证信息,就可凭借此验证获得的票据授予票据(ticket-granting ticket)访问多个接入Kerberos的服务。

  

图 1.1 Kerberos认证

Kerberos角色概念:

  1. AS(Authentication Server):认证服务器。KDC的一部分。通常会维护一个包含安全个体及其秘钥的数据库,用于身份认证
  2. KDC(Key Distribution Center):密钥分发中心。,是一个提供票据(tickets)和临时会话密钥(session keys)的网络服务。KDC服务作为客户端和服务器端信赖的第三方,为其提供初始票据(initial ticket)服务和票据授予票据(ticket-granting ticket)服务,前半部分有时被称为AS,后半部分有时则被称为TGS。
  3. TGT(Ticket Granting Ticket):票据授权票据,票据的票据。包含客户端ID、客户端网络地址、票据有效期以及client/TGS会话密钥(TGT是和Server无关的)
  4. TGS(Ticket Granting Server):票据授权服务器。KDC的一部分,根据客户端传来的TGT发放访问对应服务的票据
  5. SS(Service Server):特定服务提供端
  6. Principal:被认证的个体。(client principal/server principal: 分别表示客户端和服务器的名字,命名规则:主名称+实例+领域。例如:admin/[email protected]
  7. Ticket:票据,客户端用它访问对应服务。包含:用户名,IP,时间戳,有效期,会话秘钥
  8. Session key:会话密钥,指两个安全个体之间使用的临时加密秘钥,其时效性取决于单点登录的会话时间长短
  9. Keytab:以文件的形式呈现,存储了一个或多个Principal的长期的key。用途和密码类似,用于kerberos认证登录(让用户不需要明文的存储密码,和程序交互时不需要人为交互来输入密码)

认证过程

开启安全认证后的认证方式有两种:

  • 使用密码认证:

使用用户密码通过kinit认证, 获取到的TGT存在本地凭证缓存当中, 供后续访问服务认证使用。一般在交互式访问中使用。

  • 使用 keytab 认证:

用户通过导出的keytab 可以免密码进行用户认证, 后续步骤一致。一般在应用程序中配置使用。

Kerberos的认证过程可细分为三个阶段:初始验证、获取服务票据和服务验证:

第一阶段主要是客户端KDC中的AS发送用户信息,以及请求TGT

  • 客户端向KDC发送自己身份,即提供用户名密码(避免频繁使用用户名密码,可以使用keytab这个密码本);
  • AS收到请求后,随机生成一个密码Session Key,简称为SK1(使用客户端的Master Key自己的Master Key进行加密),并返回给客户端两条消息:a)一个给客户端,b)另一个给TGS
  • 客户端通过自己的Master Key对第一部分进行解密获得SK1之后,以及TGS的密钥加密的TGT 。

TGT大体又包含以下的内容:

  • SK1:只在一段时间内有效的Short-term Key
  • End time: TGT到期的时间。
  • Client name & realm: 简单地说就是Domain name\Client;

  

1.2初始验证流程图

第二阶段客户端拿到之前获得的TGT(一个TGT可以从KDC获得基于不同Server的Ticket)向KDC中的TGS请求访问某个服务的票据

  1. 客户端在获得自己和KDC的SK1之后,生成自己的A       uthentication以及要访问的Server名称,并使用Session Key进行加密,连同TGT一同发送给KD
知秋君
上一篇 2024-08-04 20:12
下一篇 2024-08-04 19:48

相关推荐