MS WORD加密及破解原理分析

pflk3672 8年前發布 | 42K 次閱讀 加密解密 加密/解密軟件包

加密的WORD文檔遭遇“秒破”,密碼形同虛設,這在多年前是一件神奇而不可思議的事情,其真相和原理如何?如今高版本的WORD文件是否同樣的不堪一擊?這里對MS WORD加密及破解原理進行詳細分析,以科學嚴謹的態度,全面深入探究WORD加密原理以及“秒破”真相!

一、調研對象

1、調研對象

(1)針對Microsoft Office Word簡體中文版;

(2)針對Word文檔的打開密碼;

(3)除個別語言版本外,調研結論理論上均適用;

2、術語說明

(1)密碼:用戶為Word文檔設置的打開密碼;

(2)密鑰:加密算法所使用的Key,本文檔所指的RC4 密鑰由用戶輸入的密碼經過特定的變換得到;

(3)字典破解:逐一使用指定字典中的密碼進行破解;

(4)暴力破解:窮舉所有可能的密碼進行破解,在本文檔中字典破解亦視為暴力破解;

(5)查表破解:枚舉指定長度下所有可能的密鑰,對特定的明文進行加密,保存所有的密文-密鑰對構成一個表,直接在該表中查找密文即可得到可能的密鑰;

3、Word密碼破解方式對比

二、調研結論

1 、沒有直接或間接證據,證明 Word 存在 “ 保存用戶密碼 ” 等明顯后門;

2 、使用 Office Password Recovery Toolbox ( 推測 基于查表技術)等工具,可以快速得到 Word 2003 / 2007 / 2010 生成的受保護的 doc 文件的加密密鑰,通過解密恢復出對應的明文文件;

3 、使用基于暴力猜解的破解工具,如破解成功,可以得到用戶設置的原始密碼;

4 、快速破解工具原理猜測:利用 doc 文檔加密強度低( RC4 加密算法、 40 位長度的密鑰)的脆弱點,通過在密文 - 密鑰對表中查找密文得到加密密鑰,不涉及用戶設置的原始密碼;

5 、從存儲和算力兩個方面證明了查表破解的可行性;

三、破解工具調研

1、可快速移除打開密碼的情況

2、Word 2007 / 2010快速破解場景說明

(1)將已經設置打開密碼保護的docx文檔另存為97-2003格式的doc文檔,會提示“是否要通過轉換為Office Open XML格式來提高安全性?”;

(2)將新建的Word文檔保存為97-2003格式的doc文檔,對doc文檔設置密碼保護,也會給出同樣的提示;

(3)如果選擇“是”,則會彈出另存為對話框,默認格式為docx;

(4)如果選擇“否”,則直接保存,對應的doc文檔可以被Office Password RecoveryToolbox / Word Password Recovery Master等工具所快速破解;

3、現有破解工具及其適用范圍

Passware Password Recovery Kit上傳的數據經過加密處理,根據WORD文檔大小的不同上傳不同大小的數據,實驗測試發現: 20KB 的文檔上傳了 15KB 的加密數據, 100KB 的文檔上傳了 30KB 的加密數據。

四、破解原理分析

1、Word加密原理簡介

密鑰生成:隨機生成16字節的Salt數據,連同用戶輸入的密碼字符串,經過特定的變換后,得到40位長度(5字節)的RC4密鑰;

2、Word加密相關字段

(1) Salt 隨機生成的16字節數據,結合用戶輸入的密碼經過特定變換后生成RC4密鑰;

(2) FreshNumber 隨機生成的16字節數據;

(3) FreshNumberMD5 FreshNumber經過變換后,對其計算得到的MD5哈希值(16字節數據);

當文檔被加密時,各字段的存儲方式

(1)Salt字段明文存儲;

(2)FreshNumber字段經過RC4 單獨加密 后存儲;

(3)FreshNumberMD5字段經過RC4 單獨加密 后存儲;

說明: 對RC4加密算法而言,同樣的明文位于不同的位置,加密后的密文是不一樣的。

3、打開受保護的Word文檔時,如何驗證密碼是否正確?

(1)將用戶輸入的密碼和Salt經過變換后計算得到RC4密鑰;

(2)解密得到FreshNumber明文,計算出FreshNumber的MD5哈希值;

(3)解密得到FreshNumberMD5明文,如果與計算出來的MD5相同,則認為密碼正確,否則認為密碼錯誤;

4、密碼驗證過程

5、針對Office Password Recovery Toolbox工具進行了原理分析,推測其使用“查表”技術聯網破解;

工具特點為:

(1)脫機無法使用,需要聯網;

(2)客戶端向服務器發送用于破解的數據;

(3)服務器返回解密所需的密鑰,客戶端執行解密操作;

(4)破解速度極快,但無法得到用戶設置的原始密碼;

6、Office Password Recovery Toolbox原理推測

(1)枚舉所有的40位長度(個數為240)的RC4密鑰,對DOC文檔特定數據塊進行加密,并提取其中特定位置的5字節密文(該5字節數據明文均為0×00);

(2)服務器端存儲的表項保存了所有的密文-密鑰對;

(3)客戶端從受保護的DOC文件讀取特定位置的5字節密文,向服務器查詢后得到對應的RC4密鑰;

(4)客戶端接收服務器返回的RC4密鑰對DOC文件進行解密;

上傳數據分析 :協議版本、程序名稱等無關數據;

Engine_data數據分析:

用于驗證密鑰是否正確 Salt明文占用16字節;FreshNumber密文占用16字節;FreshNumberMD5密文占用16字節;

用于在表中查找密鑰:特定位置的密文占用5字節

作用暫不明確:GUID以及sevdo_num_old字段占用68字節;

返回數據分析: result=2,表示處理的結果類型;key為解密需要的密鑰(5字節);

7、密鑰沖突處理

(1)給定密文,查表得到的RC4密鑰可能不止一個;

(2)實際測試時在224空間內找到123對碰撞(兩個不同的Key對同一段明文進行加密,特定位置上的密文是一樣的);

(3)使用Salt / FreshNumber /FreshNumberMD5驗證密鑰的正確性;

8、特定位置的5字節密文數據選取

(1)5個字節位于WordDocument數據塊中,為其中的FibRgFcLcb97結構體成員;

(2)這5個結構體成員類型均為unsigned int,表示相對于Table數據塊的偏移值;

(3)3字節最大可表示0x00FFFFFF,Table數據塊不存儲Word正文,3字節足夠表示大小,所以對4字節而言最高字節為0×00;

五、破解成本分析

1、成本估算

(1) 時間估算 :采用Intel Core i7-3770 3.4GHz處理器(四核八線程)全負荷計算,需要100小時;

(2) 空間估算 :密碼一共有240=1T個,存儲5字節(40位)RC4密鑰、5字節密文數據,需要10TB存儲空間;

(3) 實驗結論 :完全可行

2、DOC格式正被逐漸取代

(1)查表破解僅對Word 2003/2007/2010保存的doc文件有效;

(2)Word 2007開始默認新建文檔格式為docx;

(3)無法破解最新版本的Word 2013保存的doc文件;

3、價值估算

(1)當前這些收費軟件仍然存在,說明有一定的市場;

(2) 未來使用doc加密文件破解服務的用戶數量肯定會越來越少 。

DOC文檔的加解密原理,多年前已有詳細技術分析,本文在前輩們研究的基礎上,進行了歸納總結和進一步的分析驗證。本文最初的目的是內部學習交流,現在分享出來,供有興趣的同學研究。

在此,ArkTeam向以下參考文章的作者們表示感謝和敬意!

參考資料:

【1】   復合文檔文件格式研究,

http://club.excelhome.net/thread-227502-1-1.html

【2】   doc文件word格式,

http://blog.chinaunix.net/uid-21323988-id-1827840.html

【3】   Office文件的奧秘——.NET平臺下不借助Office實現Word、Powerpoint等文件的解析,

http://www.cnblogs.com/mayswind/archive/2013/03/17/2962205.html

【4】  微軟OFFice復合文檔,

http://blog.csdn.net/zhulinfeiba/article/details/5870408

【5】   規劃 Office 2013 的加密技術和加密設置(MS官方文檔),

http://technet.microsoft.com/zh-cn/library/cc179125.aspx

【6】   OpenOffice.org’sDocumentation of the Microsoft Compound Document File Format,

http://www.openoffice.org/sc/compdocfileformat.pdf

【7】   RC4流密碼與微軟Office文檔安全分析,

http://www.ecice06.com/CN/article/downloadArticleFile.do?attachType=PDF&id=11111

【8】   MSWord加密算法弱點利用

http://wenku.baidu.com/link?url=zFmMuLwkTq9yqpei47QDm4_n67bKM1JGBMH6Qa9ZWuJkywpPi_Hjk7Uxt_JVfuqmPhbfDA0HncaU7rq5ZDe8mS10jjy5w03rqtX8i4uLvL7

 

來自: http://www.tuicool.com//articles/bMNnaqm

 

 本文由用戶 pflk3672 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!