我正在嘗試爲遠程協助創建票證。其中一部分需要創建PassStub參數。由於文檔:加密難題/如何爲遠程協助票證創建PassStub
http://msdn.microsoft.com/en-us/library/cc240115(PROT.10).aspx
PassStub:加密的新手電腦的密碼字符串。當通過電子郵件將遠程支持連接字符串作爲文件發送時,爲了提供額外的安全性,將使用密碼 。 < 16>
在第16部分,他們詳細介紹瞭如何創建PassStub。 在Windows XP和Windows Server 2003中,當使用密碼時,它使用 加密PROV_RSA_FULL預定義加密提供程序與MD5哈希和CALG_RC4,RC4 流加密算法。
由於PassStub看起來像這樣的文件: PassStub =「#LK * 6Lh gCmNDpj」
如果你想生成一個自己運行msra.exe在Vista或運行在WinXP的遠程協助工具。
該文檔說這個存根是CryptEncrypt函數的結果,該函數使用從密碼派生的密鑰並使用會話標識進行加密(這些也在ticket文件中)。
問題是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的樣子。
謝謝,我幾天前才發現。事實證明,PassStub根本不是加密密碼,但顯然只是一個隨機字符串。 MS真的應該更新關於此的MS-RAI文檔。 – 2010-04-11 22:02:33