分析StrongDisk加密磁盘的文件格式(一)

        一直使用StrongDisk创建加密磁盘来保存我的个人文件。使用了2年多,非常稳定,速度也挺快的。而且安全性也挺高的,据作者说了,如果用户忘记密码,作者也恢复不出其中的文件,只有爆破。以前我曾经有此忘了密码的惨痛经历,那事放了好长时间的假,没摸电脑,回来死活想不起来它的密码。最后也只好不了了之了。
        前些天心血来潮,忽然想分析一下它的加密磁盘的文件格式,了解加密流程后写个暴力破解工具,万一忘了密码,可以跑一下(我的密码设的不长,长了是跑不动的)。没搞过类似的,只好采用苯办法,对加密磁盘的创建参数,只选一个变化,别的不变,再用UltraEdit的文件比较功能,看那里不同。
        看作者的帮助,软件将用户的密码通过HASH算法转化为20字节的串,而这个串就是加密文件内容的密钥,但这个穿是不是明文存在文件中的,而是通过密钥加密算法加密后,存在磁盘中的。作者所选取的算法,都是国际上通用的一些算法,这些加密算法的强弱依赖于密钥,也就是说,密钥的加密算法也需要密钥,因为这个密钥不能固定不表,所以我猜测密钥加密算法的密钥也是用户输入密码通过某种变化的来的。下面是加密磁盘创建过程:
       用户密码-----(HASH算法)-----〉数据加密密钥KD
       用户密码-----(某种变化)-----〉密钥加密密钥KK
       数据加密密钥KD-----(密钥加密算法+Kk)-----〉KE
       数据文件-----(数据加密算法+KD)-----〉数据加密文件
下面是用户验证过程:
       用户密码-----(HASH算法)-----〉数据加密密钥KD1
      
用户密码-----(某种变化)-----〉密钥加密密钥KK1
       数据加密密钥KD1-----(密钥加密算法+Kk1)-----〉KE1
      
如果KE1与KE相等则正确,否则错误。
    
下面是部分分析结果:
测试目的
测试条件
测试数据
测试结论
确定磁盘
大小:
(Size)
钥匙加密算法(k):Blowfish-448
数据加密算法(d):AES-128
哈希算法(h):SHA/哈希算法
文本密码:00000000
文件格式:NTFS
文件大小变化:
01aH-01cH
3M(23)
4 M (31)
5 M (39)
11 M (87)
1234M(268fH)
确定01aH-01cH代表磁盘大小:
公式Size=(X+1)/8
确定单位
钥匙加密算法(k):Blowfish-448
数据加密算法(d):AES-128
哈希算法(h):SHA/哈希算法
文本密码:00000000
文件格式:FAT16
文件大小:1024K ,2345K
01aH-01Dh
1024K(07FFH) 2345K(1251H)

综合大小和单位,确定01aH-01dH代表磁盘大小,公式为:Size=(X+1)/2 K

确定密钥
加密算法
(K)
数据加密算法(d):AES-128
哈希算法(h):SHA/哈希算法
文本密码:00000000
文件格式:NTFS
文件大小:3M
钥匙加密算法(k)变化
21H,23H
Blowfish-448(0FH,16H)
3DES(02H,16H)
AES-256(11H,1eH)
Gost256(0Bh,16H)
21h,23H确定密钥加密算法:
Blowfish-448(0FH,16H)
3DES(02H,16H)
AES-256(11H,1eH)
Gost256(0Bh,16H)
确定数据
加密算法
(D)
钥匙加密算法(k):Blowfish-448
哈希算法(h):SHA/哈希算法
文本密码:00000000
文件格式:NTFS
文件大小:3M
数据加密算法(d)变化
 
 这里还没结果
确定哈希算法(H)
钥匙加密算法(k):Blowfish-448
数据加密算法(d):AES-128
文本密码:00000000
文件格式:NTFS
文件大小:3M
哈希算法(h)变化
13H,24H-25H
MD5(caH,3163H)
SHA(cbH,c59fH)
GOST(ceH,fdc0H)
 这里虽然发现的变化,但感觉没什么规律。

      

        现在只确定了部分格式,之所以把没有完成的贴出了,一方面是因为本人水平有限,想起个抛砖引玉的作用,欢迎高手给出更好的思路;另一方面最近比较忙,怕万一没时间搞,忘了的话就不好了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章