kafka kerberos原理 kafka kerberos认证原理_安全


1.什么是kerberos?

kafka kerberos原理 kafka kerberos认证原理_分布式_02

Kerberos(/ˈkərbərəs/)是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。Kerberos的扩展产品也使用公开密钥加密方法进行认证。

当有N个人使用该系统时,为确保在任意两个人之间进行秘密对话,系统至少保存有它与每个人的共享密钥,所需的最少会话密钥数为N
个。
协议内容:
AS(Authentication Server)= 认证服务器
KDC(Key Distribution Center)= 密钥分发中心
TGT(Ticket Granting Ticket)= 票据授权票据,票据的票据
TGS(Ticket Granting Server)= 票据授权服务器
SS(Service Server)= 特定服务提供端

2.什么是sasl?

kafka kerberos原理 kafka kerberos认证原理_kafka kerberos原理_03

简单认证与安全层 (SASL) 是一个在网络协议中用来认证和数据加密的构架。它把认证机制从程序中分离开,理论上使用SASL的程序协议都可以使用SASL所支持的全部认证机制。认证机制可支持代理认证,这让一个用户可以承担另一个用户的认证。SASL同样提供数据安全层,这提供了数据完整验证和数据加密。 DIGEST-MD5提供了数据加密层,这是机制中的一个例子。支持SASL的应用程序通常也支持传输层安全(TLS)作为对SASL提供的服务的补充。

在1997年John Gardiner Myers在卡内基梅隆大学时写下了最初的SASL说明文件(RFC 2222)。在2006年Alexey Melnikov和Kurt Zeilenga写的RFC 4422取代了那个文件。
SASL是IETF的标准规格协议,而且也是截至2016年互联网标准中的一项。
SASL机制:
“EXTERNAL”,认证信息在内容中(例如已经使用IPsec或传输层安全的协议)
“ANONYMOUS”,对与未认证的客户端的访问
“PLAIN”,一个简单明文密码机制,PLAIN取代了LOGIN 机制
“OTP”,一个临时密码机制,OTP取代了SKEY机制
“SKEY”,一个S/KEY机制
“CRAM-MD5”,一个简单的基于HMAC-MD5的询问应答机制
“DIGEST-MD5”,是一个HTTP兼容的,基于MD5的询问应答机制,DIGEST-MD5提供了数据层安全
“NTLM”,一个NT LAN Manager认证机制。
“GSSAPI”,通过通用安全服务应用程序层的Kerberos V5协议的安全认证,GSSAPI 提供了数据安全层
GateKeeper,Microsoft为Windows Live Messenger开发的一个询问应答机制。

3.指令

/usr/hdp/kafka/bin/kafka-console-consumer.sh --bootstrap-server phmkafka:9092 --topic pwtsdata --from-beginning --security-protocol SASL_PLAINTEXT

4.注意事项

1.添加对应sasl安全认证的参数
正常指令后边添加参数:--security-protocol SASL_PLAINTEXT

2.使用命令前要刷新keberos票据

指令:kinit -kt ./clientkafka.service.keytab kafka-user@PHMBIGDATA.COM 注意:该指令后面参数需要对应集群配置,去找集群运维要相应的key文件和用户。

3.如果还是运行不了怎么解决?
去找运维工程师,一些私密的配置必须运维提供给你,建议不要自己去猜指令,针对kerberos和sasl认证,运维也会有不同的安全配置策略。