Upload
lykien
View
336
Download
5
Embed Size (px)
Citation preview
MS WORD加密及破解调研报告
2016年6月1日
报告内容
调研对象
调研结论
破解工具调研
破解原理分析
破解成本分析
附录
调研对象
调研对象
针对Microsoft Office Word简体中文版;
针对Word文档的打开密码;
除个别语言版本外,调研结论理论上均适用;
调研对象
术语说明
密码:用户为Word文档设置的打开密码;
密钥:加密算法所使用的Key,本文档所指的RC4密钥由用户输入的密码经过特定的变换得到;
调研对象
术语说明(续)
字典破解:逐一使用指定字典中的密码进行破解;
暴力破解:穷举所有可能的密码进行破解,在本文档中字典破解亦视为暴力破解;
查表破解:枚举指定长度下所有可能的密钥,对特定的明文进行加密,保存所有的密文-密钥对构成一个表,直接在该表中查找密文即可得到可能的密钥;
Word密码破解方式对比
破解类型 时间消耗 空间消耗
暴力破解 时间超长 只需MB级别空间存储字典
查表破解 时间极短 需要TB级别空间存储密文-密钥对表
报告内容
调研对象
调研结论
破解工具调研
破解原理分析
破解成本分析
附录
调研结论
调研结论
没有直接或间接证据,证明Word存在“保存用户密码”等明显后门;
使用Office Password Recovery Toolbox(推测基于查表技术)等工具,可以快速得到Word 2003 / 2007 / 2010生成的受保护的doc文件的加密密钥,通过解密恢复出对应的明文文件;
使用基于暴力猜解的破解工具,如破解成功,可以得到用户设置的原始密码;
调研结论
调研结论(续)
快速破解工具原理猜测:利用doc文档加密强度低(RC4
加密算法、40位长度的密钥)的脆弱点,通过在密文-密
钥对表中查找密文得到加密密钥,不涉及用户设置的原始密码;
从存储和算力两个方面证明了查表破解的可行性;
报告内容
调研对象
调研结论
破解工具调研
破解原理分析
破解成本分析
附录
破解工具调研
可快速移除打开密码的情况
Word版本
文件格式
加密算法
密钥长度
加密说明 可否移除
2003
doc RC4 40
默认RC4加密算法且密钥长度40位,有其他加密算法以及密钥长度可选
√ 2007 加密强度不可选
2010 加密强度不可选
2007 docx AES
128 加密强度不可选 ╳
2010 docx AES
2013 doc RC4
2013 docx AES
破解工具调研
Word 2007 / 2010快速破解场景说明
将已经设置打开密码保护的docx文档另存为97-2003格式的doc文档,会提示“是否要通过转换为Office Open XML格式来提高安全性?”;
将新建的Word文档保存为97-2003格式的doc文档,对doc
文档设置密码保护,也会给出同样的提示;
破解工具调研
Word 2007 / 2010快速破解场景说明(续)
如果选择“是”,则会弹出另存为对话框,默认格式为docx;
如果选择“否”,则直接保存,对应的doc文档可以被Office Password Recovery Toolbox / Word Password
Recovery Master等工具所快速破解;
破解工具调研
现有破解工具及适用范围
工具名称 国家 形式 破解方式
返回密码
适用范围 数据上传监测
Office Password Recovery Toolbox http://www.rixler.com/
俄罗斯 客户端
查表破解
否 Word 2003 - 2010,doc格式,40位RC4
上传几百字节必要的信息
Word Password Recovery Master http://www.rixler.com/
俄罗斯 客户端 上传几百字节必要的信息
www.password-find.com http://www.password-find.com/
美国 网页版 上传整个WORD文档
Passware Password Recovery Kit http://www.lostpassword.com/
美国 客户端 进行查表破解时存在可疑上传行为
暴力破解
是 Word 2003 - 2013,doc/docx格式
Word Password Unlocker http://www.passwordunlocker.com/
中国 客户端 未发现上传行为
Advanced Office Password Recovery http://www.elcomsoft.com/
俄罗斯 客户端 未发现上传行为
Passware Password Recovery Kit上传的数据经过加密处理,根据WORD文档大小的不同上传不同大小的数据,实验测试发现:20KB的文档上传了15KB的加密数据,100KB的文档上传了30KB的加密数据。
报告内容
调研对象
调研结论
破解工具调研
破解原理分析
破解成本分析
附录
破解原理分析
Word加密原理简介
密钥生成:随机生成16字节的Salt数据,连同用户输入的密码字符串,经过特定的变换后,得到40位长度(5字节)的RC4密钥;
用户输入密码
加盐&哈希变换
RC4/AES密钥
破解原理分析
Word加密相关字段
Salt:随机生成的16字节数据,结合用户输入的密码经过特定变换后生成RC4密钥;
FreshNumber:随机生成的16字节数据;
FreshNumberMD5:FreshNumber经过变换后,对其计算得到的MD5哈希值(16字节数据);
当文档被加密时,各字段的存储方式
Salt字段明文存储;
FreshNumber字段经过RC4单独加密后存储;
FreshNumberMD5字段经过RC4单独加密后存储;
对RC4加密算法而言, 同样的明文位于不同的位置, 加密后的密文是不一样的。
破解原理分析
打开受保护的Word文档时,如何验证密码是否正确?
将用户输入的密码和Salt经过变换后计算得到RC4密钥;
解密得到FreshNumber明文,计算出FreshNumber的MD5哈希值;
解密得到FreshNumberMD5明文,如果与计算出来的MD5相同,则认为密码正确,否则认为密码错误;
破解原理分析
密码验证过程 读取
FreshNumber密文 读取Salt明文
读取用户输入密码 读取
FreshNumberMD5密文
计算得到RC4密钥
RC4解密
计算得到MD5
RC4解密
相同
不同
密码正确
密码错误
破解原理分析
针对Office Password Recovery Toolbox工具进行了原理分析,推测其使用“查表”技术联网破解;
工具特点
脱机无法使用,需要联网;
客户端向服务器发送用于破解的数据;
服务器返回解密所需的密钥,客户端执行解密操作;
破解速度极快,但无法得到用户设置的原始密码;
破解原理分析
Office Password Recovery Toolbox原理推测
枚举所有的40位长度(个数为240)的RC4密钥,对DOC文档特定数据块进行加密,并提取其中特定位置的5字节密文(该5字节数据明文均为0x00);
服务器端存储的表项保存了所有的密文-密钥对;
客户端从受保护的DOC文件读取特定位置的5字节密文,向服务器查询后得到对应的RC4密钥;
客户端接收服务器返回的RC4密钥对DOC文件进行解密;
破解原理分析
原始上传数据
变换后的数据
protocol_version=1.2&program_name=WPRM&program_version=3.5.0.2&command=1&decryption_mode=1®_code=58596163&engine_data=a768c248e30d18994f3505839867b3a45688777e10765f956b5bcf5829f7291ecf125c6a1ef85d57a2319d550508ea2f326ce029b17b897d7851484a484d47464b5641594b4d5641484d5a49414d47444a4157464a4d554b4c4b474a56443a8487798a78837382898173838078514a49484745464b794a4b3a&check_sum=MW
protocol_version=1.2&program_name=WPRM&program_version=3.5.0.2&command=1&decryption_mode=1®_code=58596163&engine_data=9354ae34cff904853b21f16f84539f904274636afc624b815747bb4415e3150abbfe48560ae449438e1d8941f1f4d61b1e58cc159d677569643d34363439333237422d453739422d343946352d393330362d4332363941373837333642302670736576646f5f6e756d5f6f6c643d3635343331323765363726&check_sum=MW
破解原理分析
上传数据分析
协议版本、程序名称等无关数据;
protocol_version=1.2&program_name=WPRM&program_version=3.5.0.2&command=1&decryption_mode=1®_code=58596163&engine_data=9354ae34cff904853b21f16f84539f904274636afc624b815747bb4415e3150abbfe48560ae449438e1d8941f1f4d61b1e58cc159d677569643d34363439333237422d453739422d343946352d393330362d4332363941373837333642302670736576646f5f6e756d5f6f6c643d3635343331323765363726&check_sum=MW
protocol_version=1.2&program_name=WPRM&program_version=3.5.0.2&command=1&decryption_mode=1®_code=58596163&engine_data=9354ae34cff904853b21f16f84539f904274636afc624b815747bb4415e3150abbfe48560ae449438e1d8941f1f4d61b1e58cc159d677569643d34363439333237422d453739422d343946352d393330362d4332363941373837333642302670736576646f5f6e756d5f6f6c643d3635343331323765363726&check_sum=MW
破解原理分析
Engine_data数据分析
Salt明文占用16字节;
FreshNumber密文占用16字节;
FreshNumberMD5密文占用16字节;
特定位置的密文占用5字节
GUID以及sevdo_num_old字段占用68字节;
engine_data Salt明文 = {93,54,AE,34,CF,F9,04,85,3B,21,F1,6F,84,53,9F,90} FreshNumber密文 = {42,74,63,6A,FC,62,4B,81,57,47,BB,44,15,E3,15,0A} FreshNumberMD5密文 = {BB,FE,48,56,0A,E4,49,43,8E,1D,89,41,F1,F4,D6,1B} 特定位置的密文 = {1E,58,CC,15,9D} guid=4649327B-E79B-49F5-9306-C269A78736B0&psevdo_num_old=6543127e67&
用于在表中查找密钥
用于验证密钥是否正确
作用暂不明确
破解原理分析
原始返回数据
变换后的数据
返回数据分析
result=2,表示处理的结果类型;
key为解密需要的密钥(5字节);
result=2&key=754a454779467847467a
result=2&key=61363133653264333266
result=2&key={0xA6, 0x13, 0xE2, 0xD3, 0x2F}
破解原理分析
密钥冲突处理
给定密文,查表得到的RC4密钥可能不止一个;
实际测试时在224空间内找到123对碰撞(两个不同的Key对同一段明文进行加密,特定位置上的密文是一样的);
使用Salt / FreshNumber / FreshNumberMD5验证密钥的正确性;
Key1
Key2
破解原理分析
特定位置的5字节密文数据选取
5个字节位于WordDocument数据块中,为其中的FibRgFcLcb97结构体成员;
这5个结构体成员类型均为unsigned int,表示相对于Table数据块的偏移值;
3字节最大可表示0x00FFFFFF,Table数据块不存储Word正文,3字节足够表示大小,所以对4字节而言最高字节为0x00;
结构体成员 文件绝对偏移值 (动态解析确定)
数据(低→高) 明文数据选取
fcPlcfandRef 0x2BA XX XX XX 00 00(0x2BD)
lcbPlcfandRef 0x2BE XX XX XX 00 00(0x2C1)
fcPlcfandTxt 0x2C2 XX XX XX 00 00(0x2C5)
lcbPlcfandTxt 0x2C6 XX XX XX 00 00(0x2C9)
fcPlcfSed 0x2CA XX XX XX 00 00(0x2CD)
破解原理分析
用户输入密码 加盐 & 哈希
变换 RC4密钥(低版本) AES密钥(高版本)
RC4加密,40位密钥
doc密文 ①读取特定5字节 密文0xABEF0123FF
②上传数据 0xABEF0123FF
240大小的密文-密钥表
③查找0xABEF0123FF
④返回0xFFFFFFFFFD ⑤返回RC4密钥 0xFFFFFFFFFD
doc明文
⑥解密还原出Word明文
报告内容
调研对象
调研结论
破解工具调研
破解原理分析
破解成本分析
附录
破解成本分析
成本估算
时间估算:采用Intel Core i7-3770 3.4GHz处理器(四核八线程)全负荷计算,需要100小时;
空间估算:密码一共有240=1T个,存储5字节(40位)RC4密钥、5字节密文数据,需要10TB存储空间;
实验结论:完全可行
指标 估计值 可行性
时间成本 100小时 √
空间成本 10TB字节 √
破解成本分析
DOC格式正被逐渐取代
查表破解仅对Word 2003/2007/2010保存的doc文件有效;
Word 2007开始默认新建文档格式为docx;
无法破解最新版本的Word 2013保存的doc文件;
价值估算
当前这些收费软件仍然存在,说明有一定的市场;
未来使用doc加密文件破解服务的用户数量肯定会越来越少。
报告内容
调研对象
调研结论
破解工具调研
破解原理分析
破解成本分析
附录
附录(数据对比)
Word文档修改后变化差别大
大小:19968字节 匹配:19478字节 差异: 490字节
文件内容:12345 文件内容:12346
附录(数据对比)
同一个Word文档,使用不同的打开密码
大小:20992字节 匹配:12574字节 差异: 8418字节
打开密码:123 打开密码:456
附录(数据对比)
不同Word文档,使用相同的打开密码
大小:19968字节 匹配:13753字节 差异: 6215字节
打开密码:asdf 打开密码:asdf
谢谢!
www.arkteam.net
欢迎关注ArkTeam!