互联网即时通讯和聊天协议研究
即时通信(IM)和网络聊天较过去已有了巨大的改变。即时通信是两用户之间的私人网络,而聊天会话是两个或多个用户之间的网络通信。聊天会话可以是私有的,每个用户被邀请加入会话,或公有的,任何人都可以加入会话。在次序上一亿 Internet 中 IM 用户,其中一位用户是被定义为有关主要公共 IM 网络之一的独特的名字 - AOL 瞬间信使 ( 目标 ) 目标, Microsoft 信使 (MSN),或 Yahoo!信使 (YMSG)。迄今,没有关于被这些系统使用的网络协议被记载过。协议不被标准化和很多是是私人的,他们通过被涉及的公司在这商业甚至被视为控制点。这被演示所作被重复把用户关在外面的 IM 服务的尝试其他系统,试图保密他们的客户。然而,足够信息是可为所用决定这些系统的广阔的特征。我们也使用 IM 交通的包裹追查以收集详情到这些协议和系统中。
在这篇文章中我们存在 IM 协议的一篇概述如被三个受欢迎的系统例证:目标, MSN, YMSG.当每个单独被策划和实施了时,总体团体展览类似特征具联网的尊敬和系统建筑。例如,所有 IM 协议中用一台中央服务器允许验证,从事私人消息,在公共聊天中谈话房间。此外,一些 IM 系统允许文件转移,网络凸轮使用,使用隐私控制,维持伙伴列表,声音聊天会议,其他选项。我们讨论这些主题更详细地在接踵而来的部分。我们分析大多数最近可提供的 IM 客户,和改为协议在常规的基础上发生。
就像所有联网的申请, IM 和聊天协议一样有一段大潜在设计空间。这次调查有用使暴露一些尺寸可为一名协议设计师所用和多现有 IM 系统选择使他们决定。如有可能,我们描述优势和每个设计的不利条件选择,尤其选择影响安全时。
特征和功能
多数 IM 系统,包括三那我们于此分析,使用一种客户服务器的建筑。IM 供应商通常招待客户登录的一套服务器和交换消息具。被 IM 服务提供商面对的一个基本问题,因此协议的设计师,是系统将怎样攀升跟大量用户一起。在理想状况下,每家供应商渴望到有被登录的数百万客户他们的在每个的系统时间。这依次要求机构有一个系统可以跟用户数量一起攀升的建筑。二方法在这里提供:对称和不对称。在对称的建筑,每台服务器执行完全相同的事物 func tions,以便一位客户不必辨别那服务器它从事一次活动的联系具。在不对称方法,每台服务器这样地致力于一次特别的活动作为登录,在网络上发现其他用户,维持一个聊天室或促进一则即时消息。
客户服务器的建筑允许 IM 服务提供商保管对他们的用户的几度的控制。在肯定的边上,帮助与来回移动相关战胜一些技术问题防火墙那客户经常是在后面。自从控制和数据路径,在负面边上检查中央服务器,将服务提升到数百万用户是困难的。可扩展性问题尤其对声音聊天会议来说是件难事。当 IM 服务在开始支持声音聊天的交流,对等数据路径被在使用。
目标在正常的操作方面使用一种客户服务器的建筑但是使用对于创始人直接跟收件人谈话的声音聊天的会议的一种对等方法在调整之后通过系统。两位客户直接因此交流,无使用一项私人的声音协议,使用一个聊天室。YMSG 也在正常的操作以及声音聊天的服务方面使用一种客户服务器的建筑。YMSG 声音交通通过一台被聚集的声音聊天的服务器被传送。客户首先联系一台设置服务器然后到主持服务器的声音聊天修正客户的“vc.yahoo.com”。 YMSG 的一种好处聚集声音服务器方法是它在相同声音聊天的会议内可以支持多个用户和每位用户用根据他们的网络速度的中央声音服务器可以指定他们的自己的声音规格。MSN 在正常的操作方面使用一种客户服务器的建筑和对等对声音聊天的交流。MSN 声音聊天会议也在两位用户之间被限制。
所有三项服务提供一系列行政和管理功能。多数 IM 系统为朋友的维持列表有机制(,甚至敌人)。这些是通常打电话给“伙伴列表,允许列表,阻挡列表。”这些列表被维持作为服务器上的持久的州,客户同步具他们什么时候登录。列表用于若干目的。伙伴列表标识一位用户想监测出席的人(例如,被通知他们登录时)。布洛克列表标识一位用户希望被隔离的人从,以便用户不被那些人打扰或困扰。布洛克列表是一种列入黑名单;一些系统有补充的特征一 白名单允许列表,指定那唯一的人上列表可能与用户联络。目标, YMSG, MSN 都有伙伴列出和阻挡列表。目标和 MSN 也有允许列表。MSN 甚至“向前有反面列表,”那告知你有你的那些用户上他们的转交(允许)列表。目标有指定的一种其他的特征阻挡的颗粒,叫一个警告。警告被发送在对客户发现讨厌的被收到的消息的答复或不适当。警告消息被有被降低的他们的寄给比率处罚的收件人。警告水平随着时间的流逝缓慢地降低。
一些 IM 系统提供的一种可用性特征是表示那的 metamessages 在一届 IM 会议中的其他用户是输入。这改善交互性,允许用户知道那其他聚会在组成一则消息的过程中以及很可能在自己的输入上推迟。“输入” 消息因此,是在 IM 协议方面的一种消息类型。目标, YMSG, MSN 有这样的消息类型。目标甚至有三个颗粒:输入,不输入,输入但是被清除。一个选项 YMSG 向那提供另外的不是送 IM 的能力对不当前被记录的用户而言上到系统。系统保存消息上持久存储,然后在那个人登录服务时将他们递交给收件人。
被目标提供的一种有趣的特征是能力到通过加密 IM 东南从事安全通信 sion.客户从 AOL 可以获取公共钥匙,以及对应证书确认他们。安全瞬间 mes 德高望重的人使用 SSL 完成和二把同等的人公众钥匙。安全聊天室使用一被分享的 256 位的 AES 被创造被聊天室创建者选择的秘密的钥匙;邀请到聊天室包括秘密的钥匙。YMSG 和 MSN 不有任何类似能力。对等文本通信也使用直接 TCP 连接被一些系统提供在客户之间,有时叫“边聊天。”目标和 YMSG 有这种特征,但是 MSN 没有。
系统构造
所有三个商业系统使用服务器为可扩展性群集。目标和 MSN 采用不对称的方法。目标定义几种服务器:注册, BOS(基本奥斯卡服务),图标,用户搜索,聊天室设置,招待的聊天室。 MSN 定义三种类型:急件,通知,开关板。我们说明这些服务器怎样用于更多详细信息在下边。
相比之下, YMSG 采用对称的方法。客户仅需要联系一种服务器,然后路线所有类活动中虽然那台特别的服务器。例如, YMSG 连接至一台随便的服务器在 cs##.msg.dcn.yahoo.com 域,其中 ## 是二位数十进制数字。所有后续通信被传送通过那台服务器。
会话分配
我们现在详细地调查怎样不同系统分发在回应不同行动的服务器另一边的会议。
目标系统建筑在fig被描述。1.在目标中,客户利用主要证明服务器登录后(在fig中的第 1 步骤。1),客户被指引到一台 BOS 服务器。客户打开与 BOS 服务器的一种单个的 TCP 联系(步骤 2),有效地是控制渠道。最后续通信在这连接上出现,例如基本原理即时消息。持久的连接也是给予电子邮件服务器(步骤 3) 和用户兴趣服务器(步骤 4)。新服务(检查电子邮件状态,查找一位用户,等等)要求将服务请求送往 BOS 服务器,回复具一个新 IP 地址和 TCP 端口号联系对那特别的服务。新连接然后按那制作 serv 哦。例外是一位用户什么时候想加入或创造一次聊天房间会议。在此情况下,客户首先联系 BOS 获得存取权到聊天室设置服务器的服务器(步骤 5),那授予一个聊天室许可。证书从聊天室设置服务器然后被介绍给 BOS 服务器(步骤 6),以致将客户指向一次特别的聊天房间服务器(步骤 7)。每届聊天室会议被维持使用一种个别的 TCP 联系。与聊天的连接房间设置服务器坚持直到所有聊天后几分钟房间会议被终止。BOS 服务器可以强迫一位客户到切换到另一台 BOS 服务器通过一则移植消息。
在 1998 年, AOL 购买 Mirabilis 股份有限公司,创建者 ICQ 即时通信软件,将目标网络转换为使用 ICQ 奥斯卡协议的一个版本。奥斯卡,那为通信代表开放系统在即时,有点在起误导作用,由于 AOL 没有出版过协议的规格。有一些区别在被 ICQ 支持的特征之间以及目标但是总的说来位于协议之下是相同。
Figure 1. AIM system architecture.
MSN 系统建筑在fig被显示。2.MSN 也有一种不对称的建筑,但是具仅仅三种服务器:急件,通知,开关板。一位客户最初联系著名的急件服务器(在fig中的第 1 步骤。2) 如果它不知道任何通知服务器。急件服务器然后修正客户到一台通知服务器。客户然后打开与通知服务器的一种单个的联系(步骤 2) 和维持这连接长达客户是被登录到系统。这是控制渠道在 MSN 建筑。通知服务器维持用户在系统中的出席,将客户指向个人开关板的服务器当一则新即时消息或聊天会议被创造(步骤 4) ;第 3 步骤将讨论在下一个子部分。开关板的服务器持续聊天会议和到其他客户的即时消息被使用;这不同于在那个 MSN 治疗瞬间的其他服务报信和私人聊天室同样地。即时消息实际上是聊天室在两位用户之间建立哪里其他的用户可能是受邀聊天室。TCP 联系到开关板为聊天或到其他客户的 IM 通信的一生是公开的。开关板的服务器也汉对于文件的 dles 邀请转移,视频,声音。当 MSN 没有一种明确移民机制,通知服务器可以结束客户连接,强迫客户重新开始。
YMSG,另一方面由于其符号是很简单的公制建筑,在fig被显示。3.相同 connec tion 用于所有即时消息和聊天会议。
很多公司环境雇用防火墙放映不需要的交通,以共同默认允许 HTTP 交通。因为这,很多 IM 系统允许过来凿隧道 HTTP 作为在这些附近的一种方法防火墙。有趣地,三商业 IM 系统都使用在 HTTP 上被挖时的相同对称的建筑;即,客户仅利用单个的 HTTP 前端服务器互相影响。本地 IM 协议有效地在 HTTP 之上被压缩,具被 多路传输的在 HTTP 连接上的指令和答复。目标使用两 HTTP 连接;用于 同时提交请求的一个,以及其他那阻挡等侯答复。YMSG 使用一单个的 同步的连接,以便每请求阻挡直到一个答复是从网络被收到。MSN 也使用单个的连接,但是也 不同时和提交请求收到一个答复或对于取决于类型的一个答复的大选请求。
用户验证
头一件事用户在他们登录一个 IM 网络时做是到系统验证自己。再次,一些方法在这里是可能的,带着清楚的暗示对于安全。一些 IM 系统不检查在其他内容中完成的全部证明过程(例如, SSL/TLS [1]),自从用户和系统股份一把秘密的钥匙被知道仅仅到所有二个他们:用户的名字和密码。当最初系统签约时通常完成使用 HTTP 保护通过 SSL/TLS,曾经名字和密码是被决定,注册证明通常通过交换完成被分享的秘密的杂乱信号。因此,密码不是被传输在清楚在网络上,虽然是用户名字。瞄准和 YMSG 工作因此。优势到这种方法是那昂贵的 crypto 操作是被回避,例如 RSA 公众钥匙或被分享的 AES 主要加密。相反,相对更廉价的证明算法根据 MD5 和/或 SHA 被使用。不利条件是那机密性不被提供;观察员可能监测包裹交换和确定谁登录了,甚至如果他们不能确定密码。由于杂乱信号算法著名,以及挑战和杂乱信号结果是被送在清楚,系统易受字典伤害攻击。用户因此必须使用很难变哑的密码。此外,实行交换在清楚可以导致连接拦路抢劫;例如,目标使用作为被发送的一本证书被登录服务器返回的小甜饼在对 BOS 服务器来说显而易见。这本证书必须被使用在 30 秒内或连接将被终止所作 BOS 服务器。这建议有一名对手可以监测对话的机会的一扇窗口,捕获cookie,使用它扮演受害者到 BOS 服务器。
Figure 2. MSN system architecture.
MSN 使用 Microsoft 护照系统。在一位客户之后标识本身到 MSN 通知服务器,它被修正到护照注册服务器(在fig中的第 3 步骤。2),其中证明在 SSL 期间被实行。注册服务器然后提供有担任证书到 MSN 通知服务器的若干加密饼干的客户。当内部 crypto 算法不公开被记载时,加密饼干被发送在清楚。因此一个攻击者可能试图在扮演方面使用饼干以及人在中间攻击 [2, 3]。
数据转移
在任何 IM 的其中一个主要问题或聊天协议是协议标题和有效载荷被怎样编码。代表这数据可以送两种形式。在历史上,很多网络协议使用了在网络中的数据的二进制代表字节次序;例子包括 TCP 和 IP。申请层协议例如 HTTP 和 SMTP 有助于使用一种基于文本的方法。主要优势跟二进制代表是它做出空间的最有效使用上网络。基于文本的方法的优势是那代表更接近方法人类见解信息,因此调试是更容易的。
目标和 YMSG 使用二进制代表他们的标题。目标使用一种二种水平二进制结构,叫轻拍以及在fig被说明的 SNAC 包裹。4.轻拍包裹有固定长度标题和可变长度的数据;SNAC 包裹是子型包括一些的轻拍包裹中其他接着是一个可变的数据的固定长度地组件。
YMSG,相比之下,如fig所示接着是可变长度的数据有固定长度地的一种单一水平的结构。 5.数据巧妙的回答是一系列主要价值对,其秘钥钥作为可变长度的 ASCII 数字被代表。
目标和 YMSG 有将头编码的不同方法哦信息。目标有利于将那编码的一可变长度是更有效地写道的一定空间中;YMSG 有是更简单的一种更固定的结构解析和解码。
不象目标和 YMSG, MSN 标题是被设立的文本,如在fig被显示。6.MSN 标题采取<command 的形式, transactionID, parametreList, \ r\n>,其中指挥是将其编码的三封信, transactionID 是一个整数数字, parametreList 取决于指挥。图 7 显示在注册阶段期间的一些 MSN 消息的例子,哪里不同协议和操纵版本被指定以及客户被转到一台通知服务器。VER 表示什么本地协议版本支持所作客户。CVR 表示现场身份证,操作系统输入,操作系统版本,平台建筑,客户类型,客户版本,固定字符串接着是护照身份证的“MSMSGS 中。”XFR 被送所作表示 IP 地址的服务器和移植新通知服务器中接着是 0 的 NS 和旧 IP 地址和端口。
Figure 3. YMSG system architecture.
IM 服务提供商的一个潜在问题是用户那以极快的速率发送数据,淹没网络中无用的传输和 不方便其他用户。当 TCP 通过拥塞控制提供对这的一些保护,一些 IM 供应商显然决定了那这是不足够。因此,若干系统提供某种比率防止他们的网络中的垃圾邮件或服务的否认的控制。目标有有不同比率的一种相对复杂算法限制根据消息类型。比率依据一个时期的窗口(一转眼)。如果客户超过比率,用户将被警告,如果糟糕的行为坚持,服务器将开始扔下消息,并将甚至最终断开客户。YMSG 有三 IMs 的一个静态的限制每秒,被客户执行。这意味着那比率限制可以被第三方客户智胜(例如 gaim 或 xchat)那不执行限制MSN,上其他手,没有任何限制比率的控制。
IM 系统将其减到最少的另一种方法负荷上他们的网络通过摆脱空闲的客户。空闲的客户导致通过消耗记忆在系统装货(例如连接州),甚至 CPU 周期(通过计时器管理)。因此,每个系统维持继续活着心跳消息;如果客户不提供心跳或对查询的答复,连接可能被终止。在目标的情况下,客户必须送信继续活着每分钟到服务器。YSMG 有二心跳的类型请求,一次初选和一位代理人,那服务器生成和客户必须应答。清楚立即不是为什么二种一段时间的超时被使用。典型值是对于初选的 60 分钟以及对于代理人的 13 分钟。MSN 有两个都客户以及服务器心跳。客户发出砰的声音时,服务器以客户应该等候多久回答直到紧接着发出砰的声音。服务器发出砰的声音时,它是一项挑战到 clienta,必须然后以 MD5 杂乱信号回答挑战和客户身份证。
Figure 4. AIM FLAP and SNAC packet formats
Figure 5. YMSG packet format.
将来方向
最近, IETF 从事了一种努力使标准化 IM 和聊天协议。二项竞争标准是被开发:一个根据简单 [4] 和第二一个设立在 XMPP[5]。
SIMPLE是一段时间的开始协议是扩大(SIP) [6]thst 加即时通信和出席。SIP是用于建立多媒体的基于文本控制飞机的协议会议例如画外音 IP。吸吮可以过来被传输 UDP, TCP 或 SSL/TLS。SIP/SIMPLE的工作组为了报信定义两个模型和聊天会议:传呼机模型和一段时间的模型。传呼机模型是适当的一位用户想发送少数短信时。一段时间的模型适用于广泛对话,例如聊天团体。
SIP/SIMPLE传呼机隐喻是类似于的双向传呼机或 SMS 允许手机;没有概念有明确开始和终止的一届会议,也没有消息之间的任何明确协会。IM 有效载荷被运载中通过一种新消息方法SIP包裹。简单因此使用吸吮传送基础架构将消息递交给终点末端。从那以后SIP在运送控制消息方面主要被策划SIP用,有对交通拥塞来说的潜力中SIP基础架构什么时候SIP消息容纳 IM 有效载荷。帮助处理这问题, IM 有效载荷被限制在 1300 字节在简单那允许它被运载在 1500 年字节以太网包裹。
在SIMPLE的会议模特中,有与一个空旷的起点和终端的一次明确对话。IM 有效载荷不是被运载在SIP消息,但是在被建立的媒体会议所作SIP,使用消息会议运送接力协议 (MSRP)[7]。一段时间的模型是很多建筑群比传呼机模式,但是有一些好处 [8].自从 IM 消息有效载荷,在 MSRP 中不被运送使用SIP标志着基础架构,消息被送可能是很大的。
MSRP 可以建立两个都 IM 和发表会议同时;也允许终点末端到创造本地 IM 服务器和邀请同等的人进入那台服务器的聊天/声音会议。这些特征使其变得更容易的带着意见集成 IM 申请和因此,是很称心的在无线承运人和网络供应商中(表 1)。
XMPP,可延展报信和出席协议,是一项选择到简单。基本原理 XMPP 的语法和语义学被发展最初在快而含糊不清的话内开放资源的社区 [9]。当 XMPP 提供一种被一般化的,可延展的结构用于交换 XML 数据时,是为了建造 IM 主要被打算和出席申请。IETF 包租 XMPP 有使是合适的快而含糊不清的话协议适应的目标 2002 年的工作组如 IETF 即时通信和出席技术。XMPP 这样更完全被开发和被使用,以当前估计超过在快而含糊不清的话系统中的 200,000 位被注册的用户 [9]。当 XMPP 不绑在一种特定建筑上时,当前按类似于 IRC 的一种 clientserver 方式被在使用 [10] 或网络邮件 (SMTP)。XMPP 支持即时消息和聊天室,依赖 TCP 拥塞控制。XMPP 允许,但是不要求, SSL/TLS 的使用作为一种方法对于保护溪免于损害和偷听。
XMPP 从快而含糊不清的话享受了支持开放资源的社区。简单,在另一个手,获得了行业支持(例如, Microsoft 信使, IBM 同时)。显著,简单以及 XMPP 可以获益于彼此和好象在周旋于那方向。快而含糊不清的话社区表示了愿望使用吸吮落下在通知会议上。简单工作团体在利用用于消息运输的 XML(例如,允许用户的 XCAP 修改 IM 和出席信息易接近政策)。
总结
很少被了解技术方面商业 Internet IM 和聊天协议,由于关闭这些系统的私人的自然。我们赠送了被大多数支持的不同特征和功能的一 taxonomy 共同系统,即, AOL 瞬间信使 ( 目标 ), Yahoo 信使 (YMSG), MSN Messenger(MSN)。我们也审查了系统建筑和协议那种力量这些系统。在所有系统外,目标支持大多数起重要作用,因此是最复杂的网络 IM 协议。这可能是目标有的事实的一个结果三个系统的最大用户基础。我们简要地也讨论处理 IM 的可能将来方法和聊天使用 IETF 的通信使协议标准化例如简单和 XMPP.似乎那 IM 和 Internet 聊天在这里是到停留,将继续随着时间的流逝发展。