【问题标题】:Method to calculate 'mechListMIC' for SPNEGO GSS-API(NTLMSSP_AUTH) accept-completed(0) state计算 SPNEGO GSS-API(NTLMSSP_AUTH) 接受完成(0) 状态的“mechListMIC”的方法
【发布时间】:2012-11-03 20:42:33
【问题描述】:

我正在尝试学习和实施 SMB2 服务器。我非常有兴趣学习GSS-API (NTLMSSP, NTLMSSP_AUTH)里面。所以,我正在用我自己的 GSS-API 组件做实验。我在 RFC4178 & RFC2478 中阅读了 mechListMIC 的描述。但我不明白如何计算 'SessionSetup Response, Unknown message type' 响应的 mechListMIC

其实我可以为‘NegotiateProtocol Response’的negTokenInit阶段生成mechListMIC。但问题是,当客户端发送 'SessionSetup Request, NTLMSSP_AUTH, User: Domain\Administrator, Unknown message type' 请求时,我无法理解它是如何生成 'mechListMIC: 01 00 00 00 78 1E E9 4A DB 99 7F E9 00 00 00 00' 以及我应该如何在 'SessionSetup Response, Unknown message type' 中用相应的 mechListMIC 发回响应strong> 基于之前的 SessionSetup 请求。

我尝试了以下信息: SMB2.CSessionSetup.securityBlob.GSSAPI.InitialContextToken.InnerContextToken.SpnegoToken.NegTokenInit.MechTypes ,十六进制数据 = 30 0C 06 0A 2B 06 01 04 01 82 37 02 02 0A

SMB2.CSessionSetup.securityBlob.GSSAPI.NegotiationToken.NegTokenResp.MechListMic,十六进制数据 = 01 00 00 00 78 1E E9 4A DB 99 7F E9 00 00 00 00

SecBuffer SignBuffers[2];

SignBufferDesc.ulVersion = SECBUFFER_VERSION; // SECBUFFER_VERSION = 0

SignBufferDesc.cBuffers = 2;

SignBufferDesc.pBuffers = SignBuffers;

SignBuffers[0] = 30 0C 06 0A 2B 06 01 04 01 82 37 02 02 0A;

SignBuffers[1] = 01 00 00 00 78 1E E9 4A DB 99 7F E9 00 00 00 00;

SignBuffers[0].BufferType = SECBUFFER_DATA; // SECBUFFER_DATA = 1

SignBuffers[1].BufferType = SECBUFFER_TOKEN; // SECBUFFER_TOKEN = 2



谁能告诉我我需要在 HMAC-MD5 (key, data) 算法中使用哪些信息来生成 mechListMIC for SessionSetup Response 以及如何使用?

如果可以使用我的测试用例创建一个分步示例来计算 'SessionSetup Response, Unknown message type' 响应的 mechListMIC,那将对我很有帮助。如果您需要任何进一步的信息,请告诉我。


谢谢,
希希尔

【问题讨论】:

    标签: smb cifs spnego


    【解决方案1】:
    猜你喜欢
    • 2016-05-31
    • 2012-05-14
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多