zoukankan      html  css  js  c++  java
  • 对Siri的破解,协议分析你了解么?

    这是Iphone4s上让人热议的Siri功能协议破解的相关报道:http://iphone.tgbus.com/news/class/201111/20111117142824.shtml 借此文章,讨论一下对协议的反向工程问题。

    对协议进行反向工程,目的是研究通信主机之间数据的加密、传输、应答方式。因此对数据抓包分析是必不可少的环节。

    一、本地直接抓包

    对本地直接抓包通常是通过Wireshark、Sniffer Pro等工具。这些工具能够截获底层的原始数据包,并能够通过分析原始数据包的数据特征,判断出所使用的协议类型、加密方式等信息。

    截图1

    这种在本地直接捕获的数据包的方式优点在于捕获的数据包含的有用信息多、总信息量不算庞大。但是,在很多客观条件的作用下,是很难完成本地数据包的直接捕获的。比如Siri的破解,iOS没有强大如Wireshark的本地数据包的捕获软件,更不可能先将Siri安装到Windows上再进行捕获,因此,在这种情况下,最好是能够实现对数据的间接捕获。

    二、间接抓包

    间接抓包的方式比较灵活,比如利用局域网中的ARP嗅探、利用DNS欺骗重定向到第三方主机、与前者原理相近的应用网关(代理服务器)数据包分析。这些间接抓包方式都是让自己成为通信双方的中间人,通信双方的数据都流经自己。

    1、arp嗅探

    利用局域网ARP协议的不合理性,把自己冒充成为网关,因此,网络通信的数据流都流向自己。自己再通过软件设置,将流向自己的数据流转发到真正的网关。自己编个ARP欺骗的程序,再配合Wireshark,有很好的效果。

    2、DNS欺骗

    网络上实际的访问不是通过域名的,而是通过IP地址。然而,我们访问网站,的的确确是通过域名!!起到把域名转换成IP作用的就是DNS服务器了。比如我们通过IE访问Google,我们在地址栏上输入www.google.com并敲下回车后,我们的机器首先将www.google.com这条消息发送到DNS服务器,DNS服务器再将之转换成IP地址发送回我们的机器,我们的机器再通过IP地址访问谷歌的网站。这个过程的前提,是DNS服务器是真正的DNS服务器!

    图2

    冒充DNS,捕获DNS域名解析请求,然后发送给DNS请求方一个与域名无关的IP地址。这时候主机只会将数据发送到这个IP地址的服务器上,而这个服务器当然是我们专门用来做捕获数据包的服务器。剩下的工作,先请出Wireshark把一些底层可以识别的协议识别出来,然后应用层的协议,可需要自己一步一步分析了。

    3、应用网关

    应用网关又叫代理服务器,是专门介于通信双方的一个服务器。如果通信的其中一方不想让对方知道自己的真实身份,或者通信一方不能通过自己的IP直接访问另一方服务器,那么通过代理服务器是一个不错的选择。代理服务器最重要的功能就是数据的转发。好吧,明白了吧?如果我们在代理服务器上做数据的捕获工作的话…………

    协议被破解是很正常的,网络上的通信协议大多都是透明的。但是破解不代表就能够利用。比如QQ通信时跑的协议,网上很多资料都有介绍,但是协议破解后并不能盗QQ号,因为协议用的加密算法TEA没有被破解。Siri的通信协议被破解,但是协议头中有硬件的唯一标示符,也很难去模仿。因此,抓包分析,获取的协议信息只有很小一部分,我们这是能够通过这项工作了解通信时双方是如何应答的。如果想把协议移植到一个未授权的设备上,还需要破解协议的加密解密机制,而这项工作论其复杂程度、难度指数,都是抓包分析协议所不可比拟的。

    在通信协议中,SSL(安全套接字)是很常见的,在接下来的文章中,我会简单的阐述一下SSL的原理与应用,以及如何利用SSL模拟SSL通信以达到协议分析的目的。

  • 相关阅读:
    匈牙利算法(二分图匹配)
    匈牙利算法(二分图匹配)
    Redis 笔记与总结6 Redis 高级应用之 事务处理、持久化操作、pub_sub、虚拟内存
    大数据的五大误区及其破解之道
    大数据的五大误区及其破解之道
    统计之 - 协方差_数据分析师
    统计之 - 协方差_数据分析师
    数据挖掘之七种常用的方法_数据分析师
    数据挖掘之七种常用的方法_数据分析师
    方差分析一般线性模型
  • 原文地址:https://www.cnblogs.com/raymon/p/2256001.html
Copyright © 2011-2022 走看看