Encryption Kerberos krb5p如何进行加密?

Encryption Kerberos krb5p如何进行加密?,encryption,kerberos,Encryption,Kerberos,全部, 我正在尝试将NAS驱动器装载到Linux虚拟机。 我需要对传输中的数据进行加密,即我希望在传输时对数据进行加密 它是从Linux写入NAS dribe的 根据上述链接,krb5p提供数据加密。 krb5p:Kerberos身份验证、数据完整性和数据隐私,方法是在通过网络发送数据之前对数据进行加密。数据加密需要额外的 我了解Kerberos相互身份验证的工作原理,但一旦授予服务访问权(在我的案例中是NAS驱动器),传输到NAS的数据将如何加密。 是否有人可以提供有关“加密”如何与krb

全部,

我正在尝试将NAS驱动器装载到Linux虚拟机。 我需要对传输中的数据进行加密,即我希望在传输时对数据进行加密 它是从Linux写入NAS dribe的

根据上述链接,krb5p提供数据加密。 krb5p:Kerberos身份验证、数据完整性和数据隐私,方法是在通过网络发送数据之前对数据进行加密。数据加密需要额外的

我了解Kerberos相互身份验证的工作原理,但一旦授予服务访问权(在我的案例中是NAS驱动器),传输到NAS的数据将如何加密。 是否有人可以提供有关“加密”如何与krb5p一起工作的其他详细信息或文档? 我找不到任何其他细节

根据: 使用krb5p时: NFS数据包将使用Kerberos配置中指定的加密类型进行加密

但是可以指定的可用类型是什么

我附上了一个图表,试图解释与服务器KDC客户端相关的消息流
Kerberos允许客户端和KDC、KDC和服务以及客户端和服务之间的相互身份验证。这是通过各方之间的关键协议实现的

客户机和KDC证明了共享密钥的知识,KDC和服务证明了不同共享密钥的知识,因此客户机和服务可以生成另一个随机密钥并彼此一致

换句话说,当客户端将票据发送到服务时,它包含一个密钥,在身份验证成功后,双方可以使用该密钥加密数据。在这种情况下,密钥是用来保护NFS流量的


选择的enctype有些未定义。这取决于所有三方就其中一个达成一致意见,并且每一方都有机会改变它。但实际上,最终决定权在服务部门。它应该是它认为客户端可以处理的最强大的算法。这通常意味着RC4、AES128或AES256。

Kerberos只提供加密密钥,但它本身并不会神奇地执行加密,这必须由NFS客户端和NFS服务器自己完成。他们知道krb5p已协商,并将在需要时调用相应的加密/解密函数。(更具体地说,它发生在构建NFS的SunRPC层中。)


当Kerberos KDC向您发出“nfs/yourserver.example.com”的票证时,该票证包括随机生成的会话密钥的两个副本:一个副本可由您解密,另一个副本可由该服务器解密

KDC将使用最佳enctype标记此会话密钥,该enctype在您的票证请求中指示的内容和服务器主体持有的长期密钥之间是通用的。通常这将是AES256-CTS,但如果服务密钥在很长一段时间内没有更改,则可能是RC4(ARC4)

比如说,

  • “nfs/yourserver.example.com”主体具有aes256-cts-sha1-96、aes128-cts-sha1-96、arcfour hmac、des3 cbc的长期密钥
  • 您的客户发出AS_请求表示支持aes256-cts-sha384、aes128-cts-sha256、aes256-cts-sha1-96、aes128-cts-sha1-96
  • KDC选择aes256-cts-sha1-96作为会话密钥的最佳加密类型
此指示存储在票据本身中。如果客户端使用MIT Krb5软件,您可以使用
kvno
手动请求服务票证(如果您还没有),然后
klist-e
查看为该票证设置的enctype—“skey”表示会话密钥要与之一起使用的enctype

因此,从KDC收到票据后,作为RPCSEC_GSS身份验证过程的一部分,将其发送到NFS服务器,现在您和服务器都拥有会话密钥的副本。(只要服务票证有效,同一会话密钥将保持使用状态–通常为10小时。)


这套标准是:

  • aes256-cts-hmac-sha384-192
    aes128-cts-hmac-sha256-128
    :新的,大多数实现还不支持(而且大多数服务也不会有这种类型的密钥)
  • aes256-cts-hmac-sha1-96
    aes128-cts-hmac-sha1-96
    :得到所有Kerberos实现的广泛支持
  • camellia256 cts cmac
    camellia228 cts cmac
    :AES的不错替代品,但在实践中很少使用
  • arcfour hmac
    (RC4):已弃用,但仍偶尔使用。从Linux5.10中消失
  • des3-cbc-sha1
    :已弃用,但仍在实施
  • des-cbc-md5
    des-cbc-crc
    :完全过时。希望你永远不会看到这些

(不要相信网页上说Linux NFS客户端只支持DES,这在2010年的v2.6.35版本中得到了修复,现在完全支持AES。)

Hi,这一点不清楚:“KDC将使用最佳enctype标记此会话密钥,该enctype在您的票证请求中指示的内容和服务器主体持有的长期密钥之间是通用的。”在我的示例中,KDC是Active Directory域控制器。“enctype”也是“我必须在广告中设置某种类型的参数?因此,身份验证完成后,从我的Limux VM到NAS文件服务器的后续通信是否也会使用与服务器和客户端共享的相同对称服务会话密钥?@user2595169:对于AD DC,它是使用用户帐户或计算机帐户上的属性设置的。(如果未设置,则仅假设为RC4。)对于具有SPN的用户对象,您可以在dsa.msc中的“高级”视图中看到与此对应的复选框,例如“此帐户支持AES256加密”。几分钟前我刚刚将一个帐户从RC4升级到AES256。(对于计算机对象,通常在连接时设置正确的值。)@user2595169:身份验证完成后