即时通信系统的安全目标摘要:即时通信系统(IMS,InstantMessagingSystem),也叫做在场与即时通信系统(presenceandInstantMessagingSystem),它有两个基本的特征,一是用户之间可以订阅彼此的在场信息(presenceinformation),这样当其状态发生变化(如由“在线”变为“离开”)时系统会通知对方;二是用户之间可以实时地交换消息。本文分析即时通信系统在互联网中所面临的安全威胁,最后,给出即时通信系统所应该具备的安全目标。关键词:即时通信系统安全威胁安全目标1即时通信系统的安全威胁为了设计出适用于即时通信系统的安全机制,我们首先需要弄清楚,在当前的互联网环境中,即时通信系统所面临的风险是什么。通过对以往攻击形式的总结,以及对现有系统缺陷的分析,本文中将列出针对即时通信系统的最主要的安全威胁。(1)不安全的连接。大部分的即时通信系统使用客户机一服务器模型来进行通信,使用PZP连接来进行辅助。由于因特网的开放性和当前网络协议的不安全特性,从客户机到服务器,以及客户机到客户机之间的连接是非常脆弱的,攻击者完全有可能切断、假冒这些连接或窃听连接中传输的数据。目前大多数的即时通信系统除了在登陆时需要口令外,在其他时候的连接都缺乏认证以及机密性和完整性保护,这个缺陷还可能引起假冒,拒绝服务攻击,中间人攻击和重放攻击等。比如,攻击者通过截获并接管用户同其联系人的连接,就可以任意向其发送消息,不管攻击者是否在该用户的联系人列表中。(2)服务器假冒。使用类似QH0sts一1的木马可以修改受害者系统中的网络设置,使其指向错误的DNs服务器。攻击者利用这一点可以使用户连接到假冒的IM服务器。由于即时通信系统在用户登陆时只有服务器对用户的认证,而没有用户对服务器的认证机制,攻击者可以利用假冒的服务器来发动中间人攻击,进而收集用户的帐户信息,窃听用户的通信,或冒充用户等。(3)身份假冒。攻击者至少有两种方式来假冒系统中的合法用户。一种是窃取用户的登陆口令,另一种是当用户登陆到服务器后,攻击者捕获并接管用户到服务器的连接。另外,如果连接没有加密的话,通过中间人攻击很容易假冒连接的双方。(4)蠕虫传播。蠕虫是指可以在网络上扩散传播的恶意代码,其传播有可能需要借助人类的辅助,也可能不需要。即时通信系统的文件传送功能非常容易帮助蠕虫的传播。通常,当一个用户收到自己的好友发送的文件时,不会产生怀疑。很多蠕虫都利用这一点,通过假冒发送者而达到了扩散的目的。同电子邮件中的地址簿类似,蠕虫可以通过受感染者的在线好友列表来感染更多的用户,而且,由于即时通信的实时特性,使得蠕虫传播的速度远远快于它在电子邮件中的传播速度。(5)注册表和消息存档。在即时通信客户端软件中有很多关于安全的选项,用户可以根据需要来进行设置。很多客户端软件将这些设置保存在Windows的注册表中,保存在注册表中的设置有可能包括:加密的口令,用户名,收到文件后是否进行病毒扫描以及防病毒软件的路径,被其他用户加为好友时是否需要允许,是否任何人都可以向其发送消息,是否与其他人共享文件以及共享文件的路径,当修改安全相关的设置时是否需要输入口令。任何对Windows比较熟悉的用户都可以阅读注册表中的信息,有管理员权限的用户还能够对注册表进行修改。因此,一个攻击者通过木马就可以获取或修改受害者主机中的这些信息。通过修改某些安全设置,可以使其对该用户的攻击变的容易。获取到用户加密的口令之后,也可以使用某些网络上的工具(如AIMPR)来得到明文的口令。(6)恶意链接。指向恶意网页的链接可以包含在普通的文本消息中进行传送,在ICQ中有一个选项,可以设置是否接收含有超级链接的消息。在AIM中,用户可以在消息中创建的超级链接,它的文字所显示的地址和它实际指向的地址是完全不同的,这很容易使得收到消息的用户在不知情的情况下访问某些恶意网址。2即时通信系统的安全目标在设计即时通信的安全机制时,需要达到的安全目标。同时,我们还要讨论所设计的安全机制和IM系统的衔接,以及它对系统用户所产生的影响。这些都是非常重要的,如果一种安全机制需要IM系统修改大量的代码才能够实现,或是给用户的使用带来很多的不方便,那么这种安全机制很难会得到接纳和采用,更不用说用它来保证系统的安全了。即时通信系统在安全方面应该达到的目标有如下这些:(1)用户和服务器之间的双向认证。在即时通信系统中,一个用户的ID和他的口令一起,标识了这个用户的身份。用户登陆时使用自己的ID和口令,向服务器认证自己的身份,但是绝大多数的即时通信系统中,都不存在用户对服务器的认证机制。由于这个缺陷可能给系统带来的风险,在设计即时通信的安全机制时,必须考虑用户和服务器对彼此身份的认证。(2)用户和服务器之间所传送的信息的安全性。在因特网中的连接由于其开放性,使得攻击者可以对连接中传送的信息进行窃听和修改,为了保证信息的安全性,必须使用密码算法来提供机密性和完整性保护。(3)用户和用户之间所传送的信息的安全性。用户和用户之间的连接有两种情况,一是直接连接,这时同样需要保证连接中信息的机密性和完整性。第二种情况是间接连接,也就是说消息由服务器转发。在用户和服务器之间的连接的安全性得到保证的情况下,不采取额外措施也可以保证信息对系统外的攻击者的保密性,但是却不能保证信息对服务器的保密性,因此这两种情况下都应该采取措施来保证用户之间所传送信息的安全。(4)完善前向保密和可否认性。完善前向保密是指,即使在密钥协商协议中所使用的长期私钥在某个时间点泄露了,在该时间点以前所建立的会话密钥的安全性也不会受到影响。(5)抵抗重放攻击。抵抗重放攻击也就是要能够保证信息的新鲜性,在用户和服务器通信,或是用户和用户通信时,他们都应该能够确定对方发给自己的消息确实是新生成的真实的消息,而不是攻击者发来的以前截获的消息。(6)限制蠕虫的传播。即时通信的实时性使它非常有利于蠕虫的传播,设计者需要采取多方面的措施,来尽可能地限制蠕虫的传播。(7)对用户使用的影响。如果为了做到安全,IM系统给用户增加很大的负担,或者影响到他们的使用习惯,比如,需要用户亲自处理数字证书的申请,分发,撤消等操作,或是限制用户只能在某一台电脑上使用系统的服务,那么这种系统恐怕很难会获得用户的支持。在设计安全机制时必须考虑到这一点,才能最终达到想要的安全目标。(8)对客户端软件和服务器代码的影响。设计安全机制时要考虑的另一个问题,就是这个安全机制和IM系统之间的衔接。有些第三方软件是完全独立的,不需要对用户所使用的IM系统做任何改动,那么它的使用就比较方便。但是有些协议需要嵌入到原来的IM系统的代码之中,它可能需要IM服务器和客户端的代码都做一些修改。这种情况下当然是对原有系统的改动越少越好,最好是只牵涉到接口的部分,如果是需要IM系统的内部做很大改动,那么这种安全机制的代价就太大了,有可能会影响到它的使用。