-
-
对360通信录加密方式的技术分析
-
发表于: 2015-6-25 09:38 1244
-
新闻链接:7ddK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3k6J5k6h3g2T1N6h3k6Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7Y4c8A6j5$3I4W2M7#2)9J5c8Y4c8W2M7X3#2A6L8X3q4D9i4K6u0r3y4K6l9^5x3o6u0Q4x3X3g2Z5N6r3#2D9
新闻时间:2015-06-25
新闻正文:受到David Auerbach[1]的启发,我们分析了360通信录,发现了一些非常有趣的安全问题,这里我们谈谈它传输加密方面的问题。360通信录可以在奇虎的官方网站上下载[2]。这个应用提供了垃圾短信识别、来电号码识别等功能。下面是关于这个应用的一些基本信息。
App: 360 contact
Version: 2.1.2
Package: com.qihoo360.contacts
MD5: 024d2b182fcadf19dc31457e7612c297
SHA-1: de0c0d41dfae8d9803d898ba8955691dc7dffdf7
找备份的密钥
这个应用在设置选项中,还有一个备份的功能,使用这个功能,用户可以将通讯录备份到云上。我们先来看看用户备份时传输的数据:
从传输的数据我们可以看出,1、这个app使用了http协议来传输数据;2、传输数据被加密了。为了查清这个应用如何对数据进行加密,我们转向到这个app的代码。通过代码,我们发现,这个app使用了des加密算法来加密待传输的数据(Figure 2)。而加密密钥来自原生代码(Figure 3)。
接下来,我们转向原生代码,Figure 4是对应的,提供解密密钥的接口函数。其中的sub_758164B4()函数负责生成密钥。请注意,这个函数被调用时,携带的第二个参数是个常量。
随后,我们进入到函数sub_758164B4。分析发现,解密密钥来自于这个函数的第二个参数,其生成算法非常简单,即第二个参数所指向的字符串中的每个字符减13,就得到最后的解密密钥。前面我们提到,这个函数的第二个参数是个固定的字符串。
由此,我们得出,通过http协议传输的数据的解密密钥也是固定的,这个值为:*#13o-69!
解密数据
为了解密数据,我们又回到了java代码(Figure 8),通过分析,我们弄清楚了这段传输的数据(Figure 1)的具体含义:
接下来的工作应该来说就比较简单了,我们随后写了段简单的代码来验证了我们的结论。
参考
1.Auerbach, D. The encryption app NQ Mobile Vault uses laughably crackable encryption. It's not the only app that should make you nervous.; Available from: 8ddK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4D9j5i4c8W2i4K6u0W2j5$3!0E0i4K6u0r3j5i4u0@1K9h3y4D9k6i4y4Q4x3V1k6@1k6h3y4Z5L8X3!0D9L8$3N6&6i4K6u0r3j5X3W2@1N6$3W2K6k6g2)9J5c8U0t1H3x3e0g2Q4x3V1j5H3y4q4)9J5c8X3&6I4i4K6g2X3L8h3!0T1K9h3I4W2i4K6g2X3N6X3q4#2L8s2c8Q4y4h3k6@1K9r3g2Q4y4h3k6H3L8%4m8#2L8r3q4J5i4K6g2X3k6h3&6U0M7Y4W2H3N6r3W2G2L8W2)9#2k6X3q4H3M7q4)9#2k6X3S2S2M7#2)9#2k6X3I4S2N6h3N6Z5j5h3u0D9P5g2)9#2k6X3y4J5j5h3y4C8j5h3u0D9k6g2)9#2k6X3g2F1j5%4u0&6M7s2c8A6L8$3&6Q4x3X3g2Z5N6r3#2D9i4K6u0W2
2.qihu. 360 contact. Available from: aa5K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8^5L8q4)9J5k6e0x3$3x3q4)9J5k6h3y4F1i4K6u0r3i4K6u0W2
新闻时间:2015-06-25
新闻正文:受到David Auerbach[1]的启发,我们分析了360通信录,发现了一些非常有趣的安全问题,这里我们谈谈它传输加密方面的问题。360通信录可以在奇虎的官方网站上下载[2]。这个应用提供了垃圾短信识别、来电号码识别等功能。下面是关于这个应用的一些基本信息。
App: 360 contact
Version: 2.1.2
Package: com.qihoo360.contacts
MD5: 024d2b182fcadf19dc31457e7612c297
SHA-1: de0c0d41dfae8d9803d898ba8955691dc7dffdf7
找备份的密钥
这个应用在设置选项中,还有一个备份的功能,使用这个功能,用户可以将通讯录备份到云上。我们先来看看用户备份时传输的数据:
从传输的数据我们可以看出,1、这个app使用了http协议来传输数据;2、传输数据被加密了。为了查清这个应用如何对数据进行加密,我们转向到这个app的代码。通过代码,我们发现,这个app使用了des加密算法来加密待传输的数据(Figure 2)。而加密密钥来自原生代码(Figure 3)。
接下来,我们转向原生代码,Figure 4是对应的,提供解密密钥的接口函数。其中的sub_758164B4()函数负责生成密钥。请注意,这个函数被调用时,携带的第二个参数是个常量。
随后,我们进入到函数sub_758164B4。分析发现,解密密钥来自于这个函数的第二个参数,其生成算法非常简单,即第二个参数所指向的字符串中的每个字符减13,就得到最后的解密密钥。前面我们提到,这个函数的第二个参数是个固定的字符串。
由此,我们得出,通过http协议传输的数据的解密密钥也是固定的,这个值为:*#13o-69!
解密数据
为了解密数据,我们又回到了java代码(Figure 8),通过分析,我们弄清楚了这段传输的数据(Figure 1)的具体含义:
接下来的工作应该来说就比较简单了,我们随后写了段简单的代码来验证了我们的结论。
参考
1.Auerbach, D. The encryption app NQ Mobile Vault uses laughably crackable encryption. It's not the only app that should make you nervous.; Available from: 8ddK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4D9j5i4c8W2i4K6u0W2j5$3!0E0i4K6u0r3j5i4u0@1K9h3y4D9k6i4y4Q4x3V1k6@1k6h3y4Z5L8X3!0D9L8$3N6&6i4K6u0r3j5X3W2@1N6$3W2K6k6g2)9J5c8U0t1H3x3e0g2Q4x3V1j5H3y4q4)9J5c8X3&6I4i4K6g2X3L8h3!0T1K9h3I4W2i4K6g2X3N6X3q4#2L8s2c8Q4y4h3k6@1K9r3g2Q4y4h3k6H3L8%4m8#2L8r3q4J5i4K6g2X3k6h3&6U0M7Y4W2H3N6r3W2G2L8W2)9#2k6X3q4H3M7q4)9#2k6X3S2S2M7#2)9#2k6X3I4S2N6h3N6Z5j5h3u0D9P5g2)9#2k6X3y4J5j5h3y4C8j5h3u0D9k6g2)9#2k6X3g2F1j5%4u0&6M7s2c8A6L8$3&6Q4x3X3g2Z5N6r3#2D9i4K6u0W2
2.qihu. 360 contact. Available from: aa5K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8^5L8q4)9J5k6e0x3$3x3q4)9J5k6h3y4F1i4K6u0r3i4K6u0W2
赞赏
赞赏
雪币:
留言: