冰解的破-kerberos

kerberos

Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。支持SSO。

学习整理:

  • 理解kerberos在spark/hadoop体系下的应用:

说道安全,可能是整个大数据体系中最晦涩难懂的一部分了(确实看了很多也不能很快上手),会涉及到系统中组件的方方面面,这里将最基本最核心的kerberos稍微梳理一下。
一.基本概念:

kerberos:地狱三头犬,三头分别指代client、server和KDC。

Princal(安全个体):被认证的个体,有一个名字和口令。

KDC(key distribution center ) : 是一个网络服务,提供ticket 和临时会话密钥,并在本地数据库(Account Database)存有各通信节点的master key,KDC=AS+TSG。

AS (Authentication Server): 认证服务器。

TSG(Ticket Granting Server): 许可证服务器。

Long-term Key:用户长期内保持不变的密码,以及其派生key,不应该在传输中使用。

Master Key:用户原始密码进行Hash运算所得hash code,其目的是保护用户密码不被管理员所遇见,也属于Long-term Key。

Short-term Key/Session Key:kdc分发用于加密传输数据,避免网络间使用Long-term Key。

SKDC-Client:KDC与Client之间的session key,与TGT关联,Client Log off会导致SKDC-Client的失效,所以也称Logon Session Key。

SKDC-Server:KDC和Server之间通讯用的session key。

SServer-Client:Client和Server之间通讯用的session key。

Authenticator:client发送的证明自身的信息,包括客户标识(Client Info)和时间戳(Timestamp)。

Session Ticket:一个记录,客户用它来向服务器证明自己的身份,包括SServer-Client(session key)、Client name & realm(Domain name\Client)和End time(Ticket的到期时间),最终通过SKDC-Server加密。

TGT(Ticket Granting Ticket):Ticket的认购权证,包括Session Key(SKDC-Client:Logon Session Key)、Client name & realm(Domain name\Client)和End time(TGT到期的时间)

KRB_AS_REQ(Authentication Service Request):包括Pre-authentication data(client master key加密过的时间戳)、Client name & realm(Domain name\Client)和Server Name(Ticket Granting Service的Server Name)

KRB_AS_REP(Authentication Service Response):包括Client的Master Key加密过的Session Key(SKDC-Client:Logon Session Key)和被自己(KDC)加密的TGT

KRB_TGS_REQ(Ticket Granting Service Request):包括TGT(被KDC的master key 加密的kdc-client 和 kdc-server的TGT)、Authenticator(被Session Key(SKDC-Client:Logon Session Key)加密)、Client name & realm(Domain name\Client)和Server name & realm(Domain name\Server,Client试图访问的那个Server)

KRB_TGS_REP(Ticket Granting Service Response):包括SServer-Client session key(Logon Session Key(SKDC-Client)加密)和Ticket(Skdc-server加密)

KRB_TGT_REQ:client请求获取sever与kdc间TGT。

KRB_TGT_REP:server返回kdc和server间TGT,包含kdc-server的TGT。

KRB_AP_REQ(Application Service Request):包括Authenticator(SServer-Client加密)、Ticket(Skdc-server加密)和Flag(表示Client是否需要进行双向验证)

KRB_AP_REP(Application Service Response): 若需要双向验证则返回,包括Timestamp(Authenticator中提取,并由SServer-Client加密)

双向认证(Mutual Authentication): 不但server可以对client认证,client也可以对server认证。client向server发送SServer-Client加密的Authenticator和Session Ticket,成功认证之后,若Credential中设置有需要认证的Flag,server会SServer-Client解密Authenticator,把其中的Timestamp提取出来SServer-Client加密后返回给client,若发送和接受的Timestamp一致则认为对方是自己试图访问的server。

二.工作流程:


kerberos工作流程

kerberos认证一共分为5阶段,对应4种Sub-protocol:

  1. ASExchage阶段(Sub-protocol:Authentication Service Exchange),client向AS发送KRB_AS_REQ,AS收到KRB_AS_REQ之后先从Account Database中取得client的master-key对KRB_AS_REQ中的Pre-authentication data解密,若得到一个合法的timestamp,则通过验证,返回KRB_AS_REP(SKDC-Client+ kdc-client-TGT)。
  2. Server-TGT获取阶段(Sub-protocol:User2User Sub-Protocol),client向server发送KRB_TGT_REQ以获取server-kdc的TGT。收到请求后server返回包含TGT的KRB_TGT_REP,若server本地没有TGT则会与KDC进行ASExchange,缓存获得的Skdc-server和用KDC的master key加密的server-kdc的TGT。
  3. TGSExchage阶段(Sub-protocal:Ticket Granting Service Exchange),client向TGS发送KRB_TGS_REQ,TGS收到后先用自己的master-key对其中kdc-client和kdc-server的TGT解密以获取Skdc-client和Skdc-server。用Skdc-client将KRB_TGS_REQ中的Authenticator解密获取其中Client-Info与时间戳,对比时间戳(晚于系统的维护的可用client认证表中可接受时间,一般为5min)和对比Client-Info通过后,将Sserver-client通过Skdc-server加密后放入KRB-TGS-REP,返回给client。
  4. CSExchange阶段(Sub-Protocal:Client/Server Exchange),client向server发送KRB_AP_REQ,server收到后先用从ASExchage获得的Skdc-server对KRB_AP_REQ中的Ticket解密获取Sserver-client和ClientInfo,再使用Sserver-client对KRB_AP_REQ中Authenticator解密获取其中的ClientInfo和timestamp,若比对ClientInfo和timestamp通过,则client得到验证,若flag为ture,则返回KRB_AP_REP。
  5. 双向验证阶段,client收到KRB_AP_REP,通过SServer-Client解密得到timestamp,比对是否是之前发送的KRB_AP_REQ 中Authenticator的timestamp,若是则server得到验证。

三. kerberos优点:

  1. 效率高,client得到ticket之后通信不再通过kdc。
  2. 实现了双向验证。
  3. 实现对delegation的支持。
  4. 互操作性,得到业界广泛接受的共同标准,不同平台可互相操作。

四. kerberos在yarn上应用:


yarn任务提交过程

处于性能考虑,kerberos只在用户与服务之间通信起作用以及服务与服务之间通信起作用,当用户认证之后,任务执行、访问服务、数据读写均使用特定服务(如:NameNode、Resource Manager)的token传递实现。

参考:
kerberos详细介绍:https://blog.csdn.net/wulantian/article/details/42418231
kerberos和hadoop:http://xuexi.edu360.cn/460.html
hadoop安全认证案例:https://my.oschina.net/drl/blog/676084
yarn中安全机制概述:http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-security/
kerberos入门到放弃:https://ieevee.com/tech/2016/06/07/kerberos-1.html
https://ieevee.com/tech/2016/06/11/kerberos-2.html
https://ieevee.com/tech/2016/06/21/kerberos-3.html

TO BE CONTINUED ......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容