首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TACACS+加密到底是如何工作的?

TACACS+加密到底是如何工作的?
EN

Security用户
提问于 2017-11-14 08:29:27
回答 1查看 9.3K关注 0票数 2

我试图了解TACACS+加密是如何工作的。我读过思科的TACACS+ RFC草案,但它太技术性了,不太容易理解。我的问题是:

  1. 在发送任何请求之前,TACACS+设备(客户端)是否对服务器进行身份验证?它是否使用任何挑战响应技术,哪些算法被用来加密质询/响应数据包?
  2. 当用户试图使用TACACS+登录到设备时会发生什么?请求是如何发送的?包括用户名+密码在内的整个数据包是否被加密,以及使用了哪种加密算法?
EN

回答 1

Security用户

回答已采纳

发布于 2017-11-14 08:46:29

TACACS+要求配置一个预共享密钥(密钥长度限制为63个字符)。这是设备如何对服务器进行身份验证的方式。这不是“挑战-回应”。

此预共享密钥用于设置加密,对整个数据包进行加密,这意味着用户名和密码从一开始就受到保护。

如何加密在“主体加密”一节中解释了在RFC。这是一次性护垫的版本。

在这种情况下,包体是用异或加密的,它是以字节为单位的,带有伪随机垫。加密的{ data } ==数据^ pseudo_pad通过连接一系列MD5哈希(每个16字节长)并截断到输入数据的长度来生成。无论何时在本文档中使用,MD5都会引用3.中指定的“. MD5 Message-Digest算法”。pseudo_pad = {MD5_1 [,MD5_2 .,MD5_N]}截断为len(data)第一个MD5哈希是通过连接session_id、密钥、版本号和序列号来生成的,然后在该流上运行MD5。所有这些输入值都可以在数据包报头中使用,但秘密密钥除外,它是TACACS+客户机和守护进程之间的共享秘密。版本号是主版本号和次要版本号的一个字节组合。会话id按其出现在TACACS+头中的字节顺序使用。(即按网络字节顺序,而不是主机字节顺序)。随后的散列是通过使用相同的输入流生成的,但是在输入流的末尾连接上一个散列值。MD5_1 = MD5{session_id,key,version,seq_no} MD5_2 = MD5{session_id,key,version,seq_no,MD5_1} .MD5_n = MD5{session_id,key,version,seq_no,MD5_n-1}

这里描述了用户身份验证过程:

https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus5000/sw/configuration/guide/cli/CLIConfigurationGuide/sec_tacacsplus.html

更新01.03.2018:

思科似乎已经更新了TACACS+,用户现在可以在使用新的高性能交换机时使用用码128加密密码。到目前为止,这只是加密密码。它不会更改TACACS+协议的有效负载的加密。但这是有意义的。注意,并不是所有的产品都能利用这一点。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/173445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档