首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密难题/如何为远程协助票证创建PassStub

加密难题/如何为远程协助票证创建PassStub
EN

Stack Overflow用户
提问于 2010-04-03 07:15:30
回答 1查看 524关注 0票数 2

我正在尝试为远程协助创建票证。其中一部分需要创建一个PassStub参数。截至文档发布时:

http://msdn.microsoft.com/en-us/library/cc240115(PROT.10).aspx

PassStub:加密的新手计算机的密码字符串。当远程协助连接字符串以文件形式通过电子邮件发送时,为了提供更高的安全性,口令为used.<16>

在第16部分中,他们详细介绍了如何创建为PassStub。在Windows XP和Windows Server2003中,当使用密码时,会使用PROV_RSA_FULL预定义的加密提供程序和MD5哈希以及CALG_RC4 ( RC4流加密算法)对密码进行加密。

因为PassStub在文件中如下所示: PassStub="LK#6Lh*gCmNDpj“

如果您想自己生成一个远程协助,请在Vista中运行msra.exe,或者在WinXP中运行远程协助工具。

文档说这个存根是函数CryptEncrypt的结果,该函数使用从密码派生的密钥,并使用会话id加密(这些密钥也在票证文件中)。

问题是CryptEncrypt产生的二进制输出比15字节的PassStub大得多。此外,PassStub没有以我以前见过的任何方式进行编码。

关于PassStub编码的一些有趣的事情。在进行统计分析后,第三个字符始终是:!#$&()+-=@^。唯一随处可见的符号是:*_。否则,有效字符为0-9 A-Z a-z。总共有75个有效字符,它们始终是15个字节。

使用相同的密码运行msra.exe总是会生成一个不同的PassStub,这表明它不是直接哈希,而是像他们所说的那样包含了rasessionid。

我的另一个想法是,它不是CryptEncrypt的直接结果,而是MD5散列中的rasessionid的结果。在MS-RA (http://msdn.microsoft.com/en-us/library/cc240013(PROT.10).aspx."PassStub新手“是简单的十六进制编码,看起来是正确的长度。问题是我不知道如何从任何散列转换成PassStub的样子。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-10 17:02:49

我很好奇,你有没有:

  • 考虑过使用ISAFEncrypt::EncryptString(bstrEncryptionkey, bstrInputString)作为直接使用CryptEncrypt完成所有繁琐工作的更高级别的替代方案?( tlbhlpsvc.exe中)
  • 查看了c:\WINDOWS\pchealth\helpctr\Vendors\CN=Microsoft Corporation,L=Redmond,S=Washington,C=US\Remote Assistance\Escalation\Email\rcscreen9.htm (WinXP)内部,以了解当您选择将邀请另存为文件(高级)选项并提供密码时发生了什么?(您可以随意在OnSave())

中添加alert()调用

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

https://stackoverflow.com/questions/2569678

复制
相关文章

相似问题

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