- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
Skype为什么难以监测
围绕Skype的问题
许多企业的网络管理工程师们害怕把Skype引入到他们的企业。Skype通话是否会被外人窃听到?那些狡猾的黑客是否可以在Skype通话中嵌入病毒?Skype要消耗多少网络带宽,我 们可以控制它吗?这些实际的问题不仅对企业的网络系统,而且对那些宽带运营商电信公司都造成了巨大的隐忧。
安全性
根据Skype创始人的声明,Skype在网络上的传输内容都是通过加密的。虽然大家都相信Skype对普通的窃听手段是安全的,但是我们并不清楚如果碰到那些顶级黑客的攻击会怎么样。
任何经过加密传输的数据,其安全性也是由许多因素决定的,包括具体加密算法的使用以及密钥怎么选择和交换(即密钥管理)。另外一个关键的因素是使用加密算法的协议,或者算法和协议这两者是如何运用的。根据Skype客户端之间数据包传输的分析表明:用户在网络上登录,搜索联络人和拨打电话等系一列的过程中,以一个 多种协议组合的形式出现。
Skype声明它的系统是应用RSA加密标准进行密钥交换和256-bit AES作为主要加密算法。但是Skype并没有公布他们的密钥交换算法和网络传输协议具体资料。尽管很多人多次要求公布,Skype还是拒绝解释他们在证书、授权系统或者加密应用方面的所使用的根本设计原理,所以这样也就无法去验证Skype关于他们加密方式的声明。 我们知道一个应用得不好的RSA 算法虽然可以提供加密,但是并不能保证真正的安全性。
为了逃避检测,许多的P2P软件包括Skype,经常改变它们在启动时候所使用的端口。结果就是没有像"SIP端口"或者"SMTP端口"那样标准的"Skype端口"。此外,为了穿透企业网络防火墙,Skype特别采用了"端口跳跃"的方式。通过UPD、TCP甚者TCP上的80端口连接,Skype通常能够成功穿透那些典型的防火墙。一旦进入网络,它就会有意和其他Skype用户连接并一直保持这种连接,维持着一个"虚拟电路"。如果网络里面的Skype用户端一个被感染病毒,则和这个用户保持连接的电脑在没有防火墙保护 的情况下也可能被感染。由于Skype的"端口跳跃"方式,检测这些恶意的行为和通过设置网络安全设备来阻止这种病毒传播就变得非常困难。
就像他们的前一个共享软件Kazaa一样,Skype应用了一个P2P的网络。在这个网络里面有两种类型的节点,普通主机和超级节点。一个普通的主机只是一个可以用来拨打电话,发送即时信息等功能的Skype应用程序。一个超级节点是Skype网络中普通主机的终点,意味着任何一个普通主机必须先和超级节点连接和从Skype的登录服务器上取得授权。任何一个拥有足够CPU,内存和网络带宽的公共IP地址的节点都有可能成为超级节点—包括那些企业网络里面的节点。由于Skype超级节点的创建是动态的,并且可以欺骗他们来消耗尽可能多的带宽,所有企业里面的IT工程师们认为这些超级节点对他们的企业网络带来了巨大的风险。
隐私与授权
当你开始一个Skype通话时,你又怎样来确定真正与你通话的人就是你想要通话的那个人?每个Skype用户有一个用户名和密码。不过好像用户名和密码的验证程序是通过Skype服务器来进行,但是又不清楚它是怎么这样运作的。例如,Skype网络上的主机可以通过超级节点中转他们的用户名和密码到Skype服务器进行验证,如果这样的话,他们也可以通过超级节点中转一个错误的用户名和密码组合到Skype服务器进行验证。如果Skype网络的确涉入到这个过程,那么就存在几种攻击的可能:
1: 一个恶意的Skype客户端可能得到那些注册用户的用户名和密码
2:如果一个Skype用户是通过一个恶意的宽带网络运营商(如电信公司)提供的网络来连接Skype网络,那么ISP(宽带网络运营商)可能会把用户的Skype资料传送到一个恶意的节点上。那么ISP就有可能知道所有他们用户的Skype用户名和密码。
3:一个恶意的节点可能会伪装成一个合法的节点来进行授权,允许用户用一个独特的用户名和甚至错误的登陆密码进行登陆。
当我们用Skype进行语音交流的时候,用户经常能过通过对方的声音来辨别对方是不是自己想拨打的人。但是,如果用户只是用Skype来发送即时消息和传送文件,我们却不知道怎么去确认对方身份,正是这个问题迫使许多的网络提供者们希望找到一种准确的方法去检测Skype(和其他P2P协议程序)。一方面许多的电信公司营销部门非常想知道他们的宽带用户有多少比例在使用Skype以决定他们是否需要推出自己的网络电话服务。在另一方面,不可预测的带宽占用以及安全问题被许多的企业IT管理者们所担忧,在遇到这种情况的时候他们通常会阻止Skype的使用。
Skype数据传输为什么这么难以监测?
根据以上所述,Skype数据传输难以检测的原因可以归纳为以下四点:
Skype并没有运行在任何一个标准的端口上. Skype随机地选择一个端口来运行他的软件,然后通过TCP或者UDP或者同时应应用TCP和UDP来进行数据的交流。Skype使用过程中所使用的协议也决定于它是否位于Proxy/NAT后面或者是否有公开的IP地址。
所有通过Skype的数据交换都是加密的. 这也意味着那些通过Skypeout所拨打的电话号码或者其他数据都是经过加密的。从许多方面来看,在两个终端Skype用户之间并没有直接的数据连接,所有的数据通过网络中间的节点进行,而这些节点在每次通话过程中又会变得不一样。
Skype是一个P2P协议的软件. 这意味着Skype所连接的那些对等网络用户很多而且这个网络是动态的,这样那些对等网络用户以及他们的IP地址都时刻发生变化
Skype同时提供语音、即时信息、文件传输和视频服务. 所有这些服务的数据好像都是一起经过的,这样使得把语音从即时消息,视频中等服务中区分开来就显得很困难。
看来我们需要更先进的检测方法或者等着Skype公布它使用协议的方式或者加密算法才能更准确地控制Skype在网络上的数据传输。不知道对Skype公司进行逆向破解的中国公司进展怎么样了?也许他们会为我们解决Skype这个问题提供一个方法。