网络文件系统认证过程

当客户机想要与服务器谈话时,它随机生成一个密钥,用于加密时间戳记。 此密钥称为对话密钥CK)。

客户机使用 DES 公共密钥 (如 认证需求中所述) 对对话密钥进行加密,并在第一个 RPC 事务中将其发送到服务器。 下图说明了此过程:

图 1。 认证过程。 此图说明了认证过程。
comma9 的艺术品

此图显示连接到服务器 B 的客户机 A。 术语 K(CK) 表示 CK 是使用 DES 公用密钥 K 加密的。 在其第一个请求中,客户机 RPC 凭证包含客户机名称 (A) ,对话密钥 (CK) 以及使用 CK加密的名为 win (窗口) 的变量。 (缺省窗口大小是 30 分钟。) 第一个请求中的客户机验证器包含指定窗口 win + 1 的加密时间戳记和加密验证器。 窗口验证器使猜测正确的凭证变得更加困难,并增加安全性。

认证客户机之后,服务器将以下各项存储在一个凭证表中:

  • 客户机名称, A
  • 对话密钥,CK
  • 窗口
  • 时间戳记

服务器只接受按时序上大于上次见到的时间戳记的一个时间戳记,因此任何重放事务一定会被拒绝。 服务器在验证符中向客户机返回一个凭证表的索引标识,还有客户机时间戳记减 1(用 CK 加密)。 客户机知道只有服务器才能发送这样一个验证符,因为只有服务器知道客户机发送的时间戳记是什么。 从时间戳记中减去 1 的原因是确保它无效且不能作为客户机验证符再次使用。 在首次 RPC 事务后,客户机仅发送其标识和加密的时间戳记到服务器,而服务器返回由 CK 加密的减去 1 后的客户机时间戳记。