存档

文章标签 ‘Kerberos’

Kerberos原理

2015年3月15日 1 条评论

---

前些日子为了搞清楚Kerberos原理,把MIT的Kerberos经典对话看了几遍,终于有了一个稍微清晰的认识,这里稍微记录下,因为Kerberos是使用传统加密技术实现的一个认证机制,所以顺便备忘下关于加密的一些知识概念。本文组织如下:

===关于Kerberos===

===认证授权===

===加密术语===

===单点登录===

===Kerberos术语===

===Kerberos原理===

===经典对话手记===

==============================================================

关于Kerberos

什么是Kerberos?

一句话,Kerberos是一种认证机制。

它的目的:通过密钥系统为客户端/服务器应用程序提供强大的认证服务:保护服务器防止错误的用户使用,同时保护它的用户使用正确的服务器,即支持双向验证

Kerberos协议的整个认证过程实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。说白了, Kerberos通过传统的加密技术(共享密钥)实现了一种可信任的第三方认证服务。

认证授权

认证授权(Anthentication and Authorization)是系统权限管理经常需要考虑的问题,也是一个很复杂的问题,至少我是这样觉得的。

认证:系统识别某个个体/请求的身份时,称为认证;即辨别身份真伪,解决“你是谁”的问题。

授权:系统赋予某个个体从事某种行动的权利,叫做授权;即解决“你能做什么”的问题。

感觉应该说清楚了,认证未必授权,授权必须认证。

加密术语

上面说过,Kerberos是网络服务的认证机制,使用加密技术实现认证,这里再啰嗦下它们之间的关系。

加密:给数据加密,目的是保护数据,强调的是安全性

认证:判断身份的真实性,目的是辨真伪,强调的是真实性

授权:根据不同的身份给予不同的授权;所以认证(authentication)与授权(authorization)往往是相伴而生。

阅读全文...

Kerberos KDC 备份方案

2015年3月15日 2 条评论

---

写在前面:

真是好久好久好久木有更新博客了,工作了确实就忙了,尤其是在小米这样的公司;发现学的很多东西当时不沉淀,再回头就需要大量的时间和精力捡起来,真是取不得取不得;能记点就记点,能沉淀点就沉淀点吧,吾当努力而为之;

最近在搞一个Kerberos账号管理系统,出发点是鉴于Kerberos kdc本身没有多机房同步的功能,所以我们打算自己搞一个假同步。本文简单说下我们的同步方案,后面就是笔记了,记录备忘。组织如下:

===KDC同步方案===

===KDC搭建-配置-使用===

===常用命令===

================================================

KDC同步方案

简单来说,我就利用mysql db的实时replication来达到kdc db的同步;

首先,我们有一个基于mysql的Kerberos账号管理系统:Kerberos account management system(简称KAS),管理公司所有的Kerberos账号(具体数据结构就不细说了,视用途而定),账号信息都存储在mysql当中;

其次,不同的机房(包括海外机房)分别部署一个KAS,并部署mysql db主备实时同步;

第三,每个KAS的系统所在的机器都对应部署着KDC的服务器,KAS后面都有一个程序专门check mysql中的账号信息,并将mysql中的账号信息(包括增删改等)同步到KDC server,以此来保证KDC的同步方案;

第四,我们对mysql db replication,kas,以及实施mysql和kdc db同步的script都设置监控报警、自动拉起等配套方案。

下图就是KDC同步方案的架构图:

通过KAS,我们可以对Kerberos账号有一个非常方便的管理,例如:基本的增删改查;同一个账号为不同用户设置不同权限;提供接口查询一个账号都有哪些owner;提供接口给用户导出keytab文件等等;最重要的是通过KAS,我们完成了对Kerberos账号权限管理资源管理

阅读全文...