首页
社区
课程
招聘
[转帖]freegate 6.2的加密算法及安全性分析 by Team509
发表于: 2006-12-7 20:10 9205

[转帖]freegate 6.2的加密算法及安全性分析 by Team509

2006-12-7 20:10
9205
原文链接

作者:doublelee(doublelee[at]gmail.com)

这是一个HTTP加密代理软件,其中包含了如下一些算法

1,RC4,这个不用多说,最常见的流加密算法一个,几乎可以默写出来了

2,变形的base64,把base64的码表简单替换为abcdefghijklmnopqrstuvwxyz-=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,并且没有结尾的填充字符。大家知道标准base64是用一个等号作填充的。

3,一个针对字母的替代算法,定义'a'=0,'b'=1,...'z'=25和一个恺撒加法即可,比如'a'+'b'='b', 'z'+'b'='a',注意保持左元的大小写

前三个算法用来处理请求

4,一个输出反馈的序列密码,密码表只有8字节,初始化常数是"365d98ae54b26c3f",用密钥简单处理后开始工作。每次输出一个字符后,用简单的异或算法更新该表,用密文更新指针。
for(i=c=0; i<datalen; i++)
{
  key[c] ^= (i|i>>4)&0xFF;
  data[i] ^= key[c];
  c ^= data[i]&7;
}
此算法用来处理数据部分

5,一个4字节整数置换算法,用来转化一个整数为另外一个整数
f(a1.a2.a3.a4)=b1.b2.b3.b4
b1=(a1>>1)^0xAA
b2=b1^a2
b3=b1^a3
b4=b1^a4
如果b1属于(0xC0,0x0A,0xAC,0x00,0x7F,0x01)之一,则需要再置换一次,这个算法用于某些DNS结果的转化

6,一个简单的校验算法,用于校验一个至少2字节的随机字符串。校验和有两个字节,第一个字符是前两个字符的恺撒和,第二个字符则是所有字符恺撒和取反再加上一个常数

密钥的生成和交换
密钥有三部分,一部分随机生成,第二部分由硬盘号生成,一般随主机固定,最后一个是32字节的常数,无需交换
十分可惜,密钥的交换几乎完全是明文的,所以这个加密代理其实没有任何保密性可言。

结论:这个加密代理不安全。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
非常经典的分析
可见总结性的语句大过大量静态代码的动态解说
2006-12-7 21:00
0
雪    币: 452
活跃值: (72)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
3
不错,言简意赅
2006-12-8 08:59
0
游客
登录 | 注册 方可回帖
返回