Kerberos aes-256 加密不起作用

2023-12-04

服务器是RHEL7,Kerberos是AD(Windows)。我只是KDC的客户。

Arcfour-hmac 工作正常,但是当我将加密类型更改为 aes-256 并设置新的密钥表时,kinit 仍然可以工作,但 kvno 不能。即使用户似乎拥有有效的票证(在 klist 中),他也无法再启动服务。

我无权访问 Kerberos AD,但它似乎已正确配置为使用 aes-256,因为最终用户(在 Windows 计算机上)已经请求此加密类型的票证。

我的 krb5.conf :

[libdefaults]
default_realm = TOTO.NET
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
default_tkt_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc
default_tgs_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc
permitted_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc

[realms]
TOTO.NET = {
  kdc = kdc1.toto.net
  kdc = kdc2.toto.net
  admin_server = kdc1.toto.net
}

[domain_realm]
.toto.net = TOTO.NET
toto.net = TOTO.NET

这是当我尝试使用 kvno 获取票证时遇到的错误:

[2477332] 1493147723.961912: Getting credentials [email protected] -> nn/[email protected] using ccache FILE:/tmp/krb5cc_0 
[2477332] 1493147723.962055: Retrieving [email protected] -> nn/[email protected] from FILE:/tmp/krb5cc_0 with result: -1765328243/Matching credential not found (filename: /tmp/krb5cc_0) 
[2477332] 1493147723.962257: Retrieving [email protected] -> krbtgt/[email protected] from FILE:/tmp/krb5cc_0 with result: 0/Success 
[2477332] 1493147723.962267: Starting with TGT for client realm: [email protected] -> krbtgt/[email protected] 
[2477332] 1493147723.962274: Requesting tickets for nn/[email protected], referrals on 
[2477332] 1493147723.962309: Generated subkey for TGS request: aes256-cts/17DF 
[2477332] 1493147723.962363: etypes requested in TGS request: aes256-cts, aes128-cts 
[2477332] 1493147723.962504: Encoding request body and padata into FAST request 
[2477332] 1493147723.962575: Sending request (1716 bytes) to TOTO.NET 
[2477332] 1493147723.962725: Resolving hostname kdc1.TOTO.NET 
[2477332] 1493147723.963054: Initiating TCP connection to stream ip_of_kdc1:88 
[2477332] 1493147723.964205: Sending TCP request to stream ip_of_kdc1:88 
[2477332] 1493147724.3751: Received answer (329 bytes) from stream ip_of_kdc1:88 
[2477332] 1493147724.3765: Terminating TCP connection to stream ip_of_kdc1:88 
[2477332] 1493147724.3846: Response was not from master KDC 
[2477332] 1493147724.3879: Decoding FAST response 
[2477332] 1493147724.3965: TGS request result: -1765328370/KDC has no support for encryption type

klist - 获取我的密钥表

Keytab name: FILE:nn.service.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   1 01/01/1970 01:00:00 nn/[email protected] (aes256-cts-hmac-sha1-96)
   1 03/22/2017 16:34:55 nn/[email protected] (aes256-cts-hmac-sha1-96)

感谢您的帮助


我最近刚刚遇到这个问题并且能够解决它。

对于我们来说,AD 使用的盐与 Kerberos 客户端默认使用的盐不同。

也就是说,使用 ktutil 时: 加号-密码-p[电子邮件受保护]-k 4 -e arcfour-hmac 密码为[电子邮件受保护]:

生成一个 keytab 文件,我可以用它来 kinit 作为该主体。然而:

ktutil:加号-密码-p[电子邮件受保护]-k 1 -e aes256-cts-hmac-sha1-96 密码为[电子邮件受保护]:

未生成允许成功 kinit 的密钥表文件。 (预授权失败)。

我必须这样做:

ktutil:加号-密码-p[电子邮件受保护]-k 1 -e aes256-cts-hmac-sha1-96 -f 密码为[电子邮件受保护]:

它告诉 ktutil 从 AD DC 获取盐信息。然后它使用正确的盐。这会生成一个允许成功 kinit 的密钥表文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kerberos aes-256 加密不起作用 的相关文章

  • 不需要 UserProvider 的自定义身份验证

    我在网上寻找适合我的配置的解决方案 但找不到满足我需求的东西 到目前为止 我已经为此工作了整整三天 但我无法使其正常工作 我确信有几件事我不明白 我正在分支 2 1 上开发我的 symfony 应用程序 为了让这个简短 我有一个网络服务 我
  • 可以从自定义 LoginModule 访问远程 EJB 吗?

    我发现了一些关于如何编写自定义领域和登录模块的好提示 我想知道是否可以在自定义登录模块中访问远程 EJB 就我而言 我有远程 EJB 提供对用户实体的访问 通过 JPA 我可以使用它们吗 例如通过 EJB 注释 好吧 我自己找到了答案 工作
  • 如何在 PHP 中实现 Google OpenID 身份验证并在本地主机上测试

    我是 OpenID 新手 想在我的网站上实施 Google OpenID 身份验证 我找不到任何例子 任何人都可以建议我一些好的教程 一步一步 或任何带有代码的工作示例 以使用 PHP 实现 Google OpenID 身份验证 我建议使用
  • iOS:获取 iPhone 密码以生成用于加密的对称密钥

    我正在开发一个 iOS 应用程序 该应用程序分发到所有用密码锁定的设备 有没有办法获取设备密码 或其某种形式 来动态生成对称密钥 例如使用 PBKDF2 来加密 解密数据 否 没有 API 可以确定是否设置了设备密码或获取密码 如果已设置
  • 在节点上生成 AES 密钥

    我正在处理一个使用自定义协议来加密通信的遗留应用程序 随机 AES 密钥在旧版 Java 应用程序中生成 如下所示 keygen KeyGenerator getInstance AES keygen init 128 keygen gen
  • ASP.Net-Core 中的自定义身份验证

    我正在开发一个需要与现有用户数据库集成的网络应用程序 我仍然想使用 Authorize 属性 但我不想使用身份框架 如果我确实想使用身份框架 我会在startup cs文件中添加类似的内容 services AddIdentity
  • AES加密结果只有部分数据正确(使用mcrypt lib)

    我从以下位置下载了 AES 加密的示例代码https gist github com 2436364 https gist github com 2436364我修改了部分源代码以满足我的项目要求 如下 include
  • 解密后缺少几个字符

    这是我原来的xml table table
  • ASP.NET MVC 5 基于用户角色自定义 Bootstrap 导航栏

    我正在使用 ASP NET MVC 5 内置身份验证方法 我想根据用户所处的角色显示和隐藏链接 在菜单导航栏中 有人达到这个目的了吗 从哪里开始 只需将您的链接包含在 if User IsInRole SomeRole
  • 如何对URL参数传输的秘密数据进行编码/加密?

    故事是这样的 我必须将一些机密信息从一个脚本传递到另一个脚本 在第一个脚本中 我需要先加密数据 然后再加密have to将加密数据附加到 GET 请求中并将其发送到另一个脚本 URL 看起来像这样 http mydomain com mys
  • 在 php 中进行 AES 加密,然后用 Javascript (cryptojs) 解密

    我正在寻找一种对简单文本 5 到 6 个数字和 或字符 进行双向加密的方法 问题是我想在 php 中进行加密 然后通过 Javascript 解密 对于 php 我已经使用 mcrypt encode 进行了测试并使其正常工作 因此当我尝试
  • 在 Postman 中的后续请求中使用身份验证令牌

    我的应用程序 API 需要通过身份验证令牌进行身份验证 简而言之 我们向 authentication端点 它使用包含令牌的 JSON 对象进行响应 例如 token xxxxxxxxxxxxxxxxxxxxxx 我们应用程序中的每个其他
  • AngularJS + Laravel 5 身份验证

    在使用 AngularJS 构建 SPA 时 我想在 AngularJS 网站中实现用户身份验证 但是 我不知道从哪里开始以及最佳实践是什么 基本上我有一个确定可以担任一个或多个角色 我寻找了一些例子 这样我就可以对如何正确处理这个问题有一
  • 如何使用 LDAP 进行 Ruby on Rails 身份验证? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个网络应用程序 并且我有一个使用的身份验证方法bcrypt gem它工作正常 但我想将身份验
  • 基于资源的访问控制与基于角色的访问控制

    我正在学习 Apache Shiro 发现了这篇文章 新的 RBAC 基于资源的访问控制 http www stormpath com blog new rbac resource based access control 作者说 您可以将
  • JWT Web 令牌加密 - SecurityAlgoritms.HmacSha256 与 SecurityAlgoritms.HmacSha256Signature

    用于基于令牌的身份验证Microsoft IdentityModel Tokens提供了可用于创建的安全算法列表SigningCredentials string secretKey MySuperSecretKey byte keybyt
  • Django 自定义 UserManager 中的 self.model()

    所以 我对 Django 还很陌生 尽管我的代码在遵循 Django 文档 在 Django 中自定义身份验证 之后工作 但我不明白他们的示例中的 self model 实际如何工作 它来自哪里以及它如何与 自己 这是在文档底部找到的示例
  • 如何验证最终用户经过身份验证的令牌(使用 Firebase 身份验证)来调用 google cloud run 端点?

    请帮助使用 firebase 身份验证在云运行中进行最终用户身份验证 简短的介绍 我从 firebase 函数提交 Authorization Bearer idToken 标头 并使用电子邮件 密码 firebase 用户进行身份验证的
  • 如何使用 keycloak 强制每个客户端登录(最佳实践?)

    我们目前正在实施 keycloak 但我们面临着一个问题 我们不确定解决它的最佳方法是什么 我们有不同的网络应用程序使用单点登录 并且运行良好 我们遇到的问题是 当我们在一个 Web 应用程序中使用 sso 登录 然后在另一个 Web 应用
  • 使用 Wordpress 验证 Flask API

    我有两个网站 一个托管大部分内容的 WordPress 博客 我还用 Flask 编写了一个 API 我想在 Wordpress 受密码保护的页面 中使用 API 但我需要在 Flask 响应之前验证请求是否经过身份验证 当我收到对 Fla

随机推荐

  • Javascript:显示大数字时如何避免科学记数法

    基于 为了可读性 JavaScript使用科学记数法来显示非常大的数字 大于或等于1021的绝对值 例如 写入语句 document write 1000000000000000000000000 会产生输出 1e24 我可以避免显示科学记
  • 如何使用text strip()函数?

    我可以删除数字 但不能删除字母字符 gt gt gt text 132abcd13232111 gt gt gt text strip 123 abcd 为什么以下不起作用 gt gt gt text strip abcd 132abcd1
  • PDFBox - 直线/矩形提取

    我正在尝试从 PDF 中提取文本坐标和行 或矩形 坐标 The TextPosition班级有getXDirAdj and getYDirAdj 根据相应 TextPosition 对象表示的文本片段的方向转换坐标的方法 根据 mkl 的评
  • 使用和不使用 pytest-mock 来模拟标准库函数

    出于测试目的 我想模拟 Shutil which Python 3 5 1 它在简化方法 find foo 中调用 def find foo self gt Path foo exe which foo path None if foo e
  • 在python中循环遍历json数组

    我在一个数组中有 JSON 我正在将其导入到我的脚本中 ip address 192 168 0 1 192 168 0 2 192 168 0 3 我正在加载 JSON 并声明一个名为 ip address 的变量 data yaml l
  • 获取每天的总浏览次数,包括没有记录的一天留下“0 浏览次数”

    我正在创建一个图表 我可以在其中获得特定范围内每天的总观看次数 或者只要它可以返回 我遇到的问题是填写默认数量0当某一天没有浏览量时 有些日子可能一天中绝对没有浏览量 所以我需要MySQL返回默认值0当没有找到时 我不知道该怎么做 这是我用
  • 如何替换视图控制器(或从导航堆栈中删除)而不是推送segue?

    I have 一个小的 iPhone 应用程序 它使用导航控制器显示 3 个视图 此处全屏 首先 它显示社交网络列表 Facebook Google 等 然后它会显示一个 OAuth 对话框 要求提供凭据 并且 之后 在同样的UIWebVi
  • Angular HttpClient 错误处理困难

    有关新 HttpClient 的 Angular 文档https angular io guide http有一个 获取错误详细信息 部分 其中显示了如下所示的示例 我已修改评论以记录我的观察结果 哪些基本错误类最终出现在哪里 http g
  • APC值随机消失

    我使用 APC 来存储类名到类文件路径的映射 我在自动加载函数中像这样构建地图 class paths apc fetch class paths If the class path is stored in application cac
  • 为什么我无法访问此类的成员? [复制]

    这个问题在这里已经有答案了 我有以下三个类定义 class String public String String const char class ClassA public ClassA const String class Class
  • 语法错误:“导入”和“导出”可能仅与“源类型:模块”一起出现 - Gulp

    考虑以下两个文件 app js import Game from game game import React from react import ReactDOM from react dom export default absPath
  • php函数返回null而不是字符串[重复]

    这个问题在这里已经有答案了 我有一个数组 其中存储了所有类别 allCatArray array departments outdoor 123123 gt stdClass Object i gt 1 id gt departments
  • jQuery UI 日期选择器显示无操作

    是否可以显示 jQuery UI 日期选择器而无需单击任何内容 我希望日期选择器在窗口加载时可见 或者这是不可能的 如果没有 是否还有其他插件 或者最好自己创建一个新插件 您可以做的一件事是将焦点放在输入上 以便日期选择器显示 datepi
  • 将 String 或 Char 转换为 Keys 对象

    如果我使用以下代码 for int i 0 i lt text Length i char c text i Keys k Keys byte c MessageBox Show c ToString k ToString 我只能对大写字母
  • 模板化 Maven 原型

    我正在创建自己的 Maven 原型 这是我使用的项目的通用模板 在该模板中 我有许多 exec maven plugin 块 实际上每个项目都有所不同 这意味着在一个项目中我可能有 2 个 exec maven plugin 块 而在另一个
  • 创建一个基于 libreoffice 文本的数据源并使用 java 设置设置

    我需要在 Java 中创建一个 LibreOffice 基于文本的数据源 我的需求是向用户提供一个包含标题行和 n 个值行的 csv 文件 此 csv 文件是执行邮件合并作业的数据源 如果我使用 LibreOffice 向导手动创建数据源来
  • 通过 Asmack 发送 Image 时创建消息

    我在通过 XMPP 发送图像时遇到一个问题 下面是我完成的代码片段 我不知道代码有什么问题 Message msg new Message emailId Message Type chat ImageTransferExtension t
  • x86,BYTE 和 BYTE PTR 之间的区别

    这两行有什么区别 这里 PTR 发生了什么变化 first mov BYTE ecx 0 second mov BYTE PTR ecx 0 概括 NASM YASM 要求word ecx 当另一个操作数未隐含操作数大小时 否则 ecx i
  • CodeIgniter Upload 类 PDF 文件类型不允许

    在本地工作 但在我尝试过的两台服务器上显示相同的错误消息 使用 Codeigniter 2 1 3 private function upload file config upload path uploads config allowed
  • Kerberos aes-256 加密不起作用

    服务器是RHEL7 Kerberos是AD Windows 我只是KDC的客户 Arcfour hmac 工作正常 但是当我将加密类型更改为 aes 256 并设置新的密钥表时 kinit 仍然可以工作 但 kvno 不能 即使用户似乎拥有