Articles of kerberos

如果一个成员的时间偏差很大,什么时候在Windows域中破解?

大多数IT人员认为,在Windows域中,如果成员服务器的时钟与其域控制器的时钟相差超过5分钟(或者您已经configuration了多长时间),则login和身份validation将失败。 但是这不一定是真的。 至less不是所有版本Windows上的所有身份validation过程。 例如,我可以设置我的时间在我的Windows 7客户端被倾斜到所有哎呀 – 注销/login仍然正常工作。 会发生什么是我的客户端发送一个AS_REQ(与他的时间戳)到域控制器,和DC响应与KRB_AP_ERR_SKEW。 但神奇的是,当DC响应上述的Kerberos错误时,DC还包括他的时间戳,客户端用来调整自己的时间并重新提交AS_REQ,然后被批准。 这种行为不被视为安全威胁,因为通信中仍然使用encryption和秘密。 这也不仅仅是微软的事情。 RFC 4430描述了这种行为。 所以我的问题是有人知道这个改变了吗? 为什么其他的东西都失败了? 例如,如果我的时钟开始漂移太远,Office Communicator会将我踢开。 我真的希望有更多的细节。 编辑:这里是我谈论的RFC 4430的一点: 如果服务器时钟和客户端时钟closures的不止 策略确定的时钟偏移限制(通常5分钟),服务器 必须返回一个KRB_AP_ERR_SKEW。 可选客户的时间在 KRB-ERROR应该填写完整。 如果服务器通过保护错误 添加Cksum字段并返回正确的客户端时间 客户端应该计算两者之间的差异(以秒为单位) 时钟基于包含在客户端和服务器中的时间 KRB-ERROR消息。 客户端应该存储这个时钟差异,并用它来调整后续消息中的时钟。 如果错误是 不受保护,客户端不得使用差异进行调整 随后的消息,因为这样做会允许攻击者 构build可用于安装重放攻击的身份validation器。

Kerberos NFS4权限被拒绝

**编辑:**我不再使用Sabayon Linux,并且在其他发行版本上没有发生此问题。 我build议closures这个问题。 更新:我意识到由于主机文件不好,两台机器都将其本地名称parsing为127.0.0.1,而不是其局域网IP地址。 一旦我改变它并尝试挂载,客户端显示: mount.nfs4: timeout set for Sun Mar 31 10:33:38 2013 mount.nfs4: trying text-based options 'sec=krb5,addr=192.168.10.200,clientaddr=192.168.10.103' mount.nfs4: mount(2): Permission denied mount.nfs4: access denied by server while mounting shakuras.darwinia.lan:/ 查看客户端的系统日志: rpc.gssd[13067]: dir_notify_handler: sig 37 si 0x7fffcfa36cb0 data 0x7fffcfa36b80 rpc.idmapd[13036]: New client: 1a rpc.gssd[13067]: dir_notify_handler: sig 37 si 0x7fffcfa321f0 data 0x7fffcfa320c0 rpc.gssd[13067]: handling gssd […]

是否有可能通过sssd使用TLS通过TLS?

背景 我试图以我在AWS Directory Services Simple AD中创build的用户身份login(通过SSH,运行到运行sssd的Amazon Linux EC2实例)。 我使用Kerberos进行身份validation,并使用LDAP(通过sssd )来识别用户。我通过ELB通过多个代理服务器连接到简单AD。 问题 当我将ELBconfiguration为使用TLS作为Kerberos端口时, sssd无法连接到Kerberos服务器,login失败。 没有TLS,它工作得很好,一旦我login没有TLS的证书caching和login继续工作时,我再次打开TLS。 RFC 6251介绍了如何通过TLS传输Kerberos V5,所以假设这应该是可能的,对吗? 我不确定我是否没有正确地执行此操作,或者如果sssd不支持通过TLS的Kerberos。 谷歌search没有产生任何成果,手册页没有任何看似与他们有关的东西。 请注意,我的LDAPS通过ELB完美工作,所以我至less知道我并不完全偏离轨道。 TL; DR如何回答我的问题 告诉我: 在通过TLS或Kerberos设置Kerberos时,我所做的是错误的 sssd不支持通过TLS的Kerberos 错误信息 这是从sssd的输出。 请注意,我编辑了IP地址。 (Thu Dec 31 18:36:43 2015) [[sssd[krb5_child[2780]]]] [sss_child_krb5_trace_cb] (0x4000): [2780] 1451587003.307171: Sending request (218 bytes) to MYTEAM.MYCOMPANY.INTERNAL (Thu Dec 31 18:36:43 2015) [[sssd[krb5_child[2780]]]] [sss_child_krb5_trace_cb] (0x4000): [2780] 1451587003.307390: Initiating […]

使用智能卡与Windows 10joinAD域

我的Windows“以域为中心”的公司已经突然决定从Windows 7切换到Windows 10,而我们的工作就是使我们的准备好的映像join我们的基于智能卡/令牌的身份validation系统。 这对于Windows 7来说是一个问题,但是,通过构build证书信任链可以很容易地解决这个问题。 我并不负责在Windows 7上完全设置它,所以我不确定整个Kerberos进程的内部工作情况。 但对于Windows 10来说,这是一场噩梦。 我已经把我的整个过程从7个镜像到10个,包括所有缺less的证书(我们使用netdom通过命令行添加/ securepasswordprompt),但是不pipe我做什么,我的电脑都不会用智能卡join域。 他们添加没有问题使用用户名/密码(没有2FA),但与智能卡,我收到以下错误: The KDC certificate for the domain controller does not contain the KDC Extended Key Usage (EKU): 1.3.6.1.5.2.3.5: Error Code 0xc0000320. The domain administrator will need to obtain a certificate with the KDC EKU for the domain controller to resolve this error. When using […]

更改系统时间后,需要花费时间重新validation身份

我们的一个域控制器的时钟漂移方式与networking的其他部分不同步(这要归功于我忘记closuresVMWare的时间同步),这导致了一大堆服务器失去了身份validation的能力,因为Kerberos需要closures时间服务器之间的同步 我手动login,将时钟固定在正确的时间,但是authentication需要15分钟以上才能重新开始工作(这是一个问题,因为这是一群terminal服务器,有人在等待开始工作)。 进一步的信息:虽然时钟不同步,用户得到“有时间差异”的消息,他们的login被拒绝。 然而,在同步时间之后,这个消息就消失了,但是没有密码的人可能会工作,他们只是被拒绝为无效的。 等待15分钟使他们都再次工作。 如果再次发生这种情况,我怎么能加快时钟恢复同步和再次正常authentication之间的时间?

无缝SSO与Kerberos,IE浏览器,Firefox,LDAP活动目录

Alias /students /var/www/students <Location /students> KrbServiceName HTTP KrbMethodNegotiate On KrbMethodK5Passwd On KrbSaveCredentials off KrbAuthRealms DOMAIN.LOCAL Krb5KeyTab /etc/httpd/keytab KrbAuthoritative off AuthType Kerberos AuthName "Please Login" AuthBasicProvider ldap AuthzLDAPAuthoritative on AuthLDAPURL "ldap://dc.domain.local:389/OU=Domain Users,DC=domain,DC=local?userPrincipalName?sub?(objectClass=*)" AuthLDAPBindDN "CN=ldapsearchuser,CN=Users,DC=domain,DC=local" AuthLDAPBindPassword ldapsearchuserpass require ldap-group CN=Students,CN=Users,DC=domain,DC=local require ldap-group CN=Staff,CN=Users,DC=domain,DC=local </Location> 这允许所有属于学生/职员AD组的成员的用户访问http:// intranetsite / students后面的页面,而不必指定login凭证,只要他们的IE / Firefoxconfiguration正确。 使用userPrincipalName而不是sAMAccountName,因为kerberos模块正在将用户名@ REALM传递给ldap模块。 现在我遇到了这样的问题,如果有人没有被授权,他们会得到: 需要授权此服务器无法validation您是否有权访问请求的文档。 要么提供了错误的凭据(例如错误的密码),要么您的浏览器不知道如何提供所需的凭据。 有谁知道如何让它popup一个用户名/密码对话框,以便他们可以尝试备用凭据? 获得授权失败后,我可以要求凭据的唯一方法是清除我的caching。 […]

Kerberos KDC在获取证书时不支持encryptiontypes

我正在configuration一个带有Kerberos的AD的apache / SSO身份validation。 我的http服务器是Debian Wheezy,AD是Windows Server 2012。 我使用kpass命令为kpass的每种encryptiontypes生成了WS2012上的keytabs文件。 当我尝试用kinit打开与用户[email protected]的会话时,它可以工作。 当我尝试用HTTP/[email protected]打开会话时,我收到以下消息: kvno HTTP/[email protected] kvno: KDC has no support for encryption type while getting credentials for HTTP/[email protected] 另外,当我检查用于[email protected]时,我有: root@SERVER:~# klist -e Ticket cache: FILE:/tmp/krb5cc_0 Default principal: [email protected] Valid starting Expires Service principal 03/04/2015 12:48:21 03/04/2015 22:48:17 krbtgt/[email protected] renew until 04/04/2015 12:48:21, Etype (skey, tkt): arcfour-hmac, arcfour-hmac 我试图用我的/etc/krb5.conf来定制: […]

SAML与Kerberos的相对安全性

有没有人有关于SAML与Kerberos的相对安全性的任何信息/链接。 我相信我掌握了两者之间的差异,以及它们对于我的特定应用意味着什么,但是要在两者之间作出决定,知道哪一个更安全,哪一个才是有价值的信息。

跟踪哪个进程/程序导致Kerberos预authentication错误(代码0x18)

我们有一个域帐户,通过2个服务器中的1个被locking。 内置的审计只能告诉我们很多(从SERVER1,SERVER2locking)。 帐户在5分钟内被locking,似乎每分钟约有1个请求。 我最初尝试运行procmon(从sysinternals)来查看是否有任何新的PROCESS START在我解锁帐户后产生。 没有可疑的事情出现。 在我的工作站上运行procmon并升级到UAC shell(conscent.exe)后,在尝试对AD进行authentication时(不确定), ntdll.dll和rpct4.dll似乎从堆栈中被调用。 有没有办法缩小哪个进程导致我们的DCauthentication请求? 它总是相同的DC,所以我们知道它必须是在该网站的服务器。 我可以尝试寻找wireshark的电话,但我不确定这将缩小哪个过程实际上触发它。 没有服务,驱动器映射或计划的任务正在使用该域帐户 – 所以它必须是具有存储域的信誉的东西。 在任何服务器(我们选中)都没有与该域帐户开放的RDP会话。 进一步说明 是,在问题DC上启用“成功/失败”login审计 – 在帐户实际被locking之前,不logging失败事件。 进一步挖掘显示,一旦帐户被解锁, LSASS.exe就会向有问题的DC发出KERBEROS呼叫。 它的前面(通常)是由java似乎被vpxd.exe调用,这是一个vCenter进程。 但是,当我看着另一个“server2”账户locking可以(也)发生时,我从来没有看到一个调用lsass.exe ,只有apache进程正在产生。 两者唯一的关系是SERVER2是SERVER1的vSphere集群(server1是vSphere OS)的一部分。 DC上的错误 所以,AD似乎所有我会告诉的是,这是一个预先authentication的Kerberos错误。 我查了一下,没有klist门票,为了以防万一。 仍然不知道是什么导致这个kerberos错误。 Index : 202500597 EntryType : FailureAudit InstanceId : 4771 Message : Kerberos pre-authentication failed. Account Information: Security ID: S-1-5-21-3381590919-2827822839-3002869273-5848 Account Name: USER Service Information: […]

如何在Apple KDC上启用DESencryption的密钥?

我们在OS X 10.10 Yosemite上运行一个KDC,我们已经添加了一个远程访问(传统)主机的服务主体: $ kadmin add -r host/abcd@REALM 由于主机只支持des-cbc-crc密钥encryption,所以我们尝试(不成功)添加: $ kadmin add_enctype -r host/abcd@REALM des-cbc-crc kadmin: bad enctype "des-cbc-crc" 考虑到默认情况下DES(非常明显)被禁用,我们尝试在allow_weak_crypto=true的[libdefaults]部分放置allow_weak_crypto=true并重新启动kdc进程,但无济于事。 花了好几个小时,却没有结果。 当然,苹果公司还没有编译过的Kerberos没有任何 DES的支持? 我们如何解决这个问题?