Java/C# Kerberos 互操作可能吗?

发布于 2024-08-08 09:58:34 字数 384 浏览 2 评论 0原文

我已经使用 Java 中的套接字实现了 Kerberos 服务器/客户端,其中客户端将其服务 TGT 发送到服务器,并且服务器知道客户端是可信的。

我主要担心的是窥探的“中间人”攻击。有人可以捕获 TGT,并冒充客户端。

在纯 Java 实现中,这没有问题,因为进一步的通信是使用服务会话密钥(GSSContext.wrap()/GSSContext.unwrap())加密的,而窥探者没有这些密钥。

但客户端应用程序需要用 C# 重新编写。

我认为保持通信加密的两个选项是:

  1. 在 C# 中编写自己的 wrap() 和 unwrap() 方法
  2. 使用 SSL/TLS。

在我考虑使用 SSL 之前,选项 1 可行吗?

I have implemented a Kerberos server/client using sockets in Java, where the client sends his service-TGT to the server, and the server knows the client is authentic.

My main concern is the snooping 'man-in-the-middle' attack. Someone could capture the TGT, and pretend to be the client.

In a pure Java implementation, this is no problem, as further communication is encrypted with the service session keys (GSSContext.wrap()/GSSContext.unwrap()), which the snooper does not have.

But the client app needs to be re-written in C#.

I figure my two options for keeping communication encrypted are:

  1. Write my own wrap() and unwrap() methods in C#
  2. Use SSL/TLS.

Is option 1 possible, before I look into SSL as an option?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慈悲佛祖 2024-08-15 09:58:34

选项 1 涉及一些繁重的代码移植,您可能有时间也可能没有时间去做。
选项 2 听起来不错。

有选项 3,这取决于您的限制,使用私有加密 TCP 通道,它应该比 SSL/TLS 更快,但正如我所说可能不适用。它可以使用对称加密,并通过会话密钥(这是秘密的)进行初始化

Option 1 involves some heavy code porting which you may or not may have time to do.
Option 2 sounds good.

There is option 3 which depends on your constraints, use a private encrypted TCP channel, which should be faster than SSL/TLS, but as I said may not be applicable. It could use symmetric encryption, having initialized by the session keys (which are secret)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文