1

我已经使用 Java 中的套接字实现了一个 Kerberos 服务器/客户端,客户端将他的 service-TGT 发送到服务器,并且服务器知道客户端是真实的。

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

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

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

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

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

在我将 SSL 作为一个选项之前,选项 1 是否可能?

4

1 回答 1

3

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

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

于 2009-10-20T14:56:42.013 回答