VOD 系统的特点及简单安全协议

发表于:2007-06-23来源:作者:点击数: 标签:
一、引言 随着计算机多媒体技术、通信的分组交换技术、数字与光纤传输技术的日益成熟,视频点播(VOD:Video On Demand)系统也发展起来。在VOD系统使用日益广泛的今天,建立一个 安全 的VOD系统也是非常迫切的要求。 VOD系统通过安全协议交换控制信息,能够

   
  一、引言
  随着计算机多媒体技术、通信的分组交换技术、数字与光纤传输技术的日益成熟,视频点播(VOD:Video On Demand)系统也发展起来。在VOD系统使用日益广泛的今天,建立一个安全的VOD系统也是非常迫切的要求。

VOD系统通过安全协议交换控制信息,能够保证连接的安全性。因为多媒体数据量很大,所以,对所有的多媒体数据进行加密传输是不现实的,而且即使加解密速度达到了要求,服务器也不可能、也完全没有必要承受如此大的计算量。所以,解决的办法是对客户和服务器之间的控制信息进行加密,而不对多媒体数据流进行加密。因为控制信息加密了,完全能够保证整个系统的安全性。
  
  随着社会经济的发展和技术进步,人们对数据、图像业务,特别是多媒体业务方面的需求也与日俱增,开拓新型的宽带业务成为信息业的重要目标。视频点播业务是宽带业务中的最有代表性的典型应用。通过VOD系统,用户可以自由地从远端视频节目库中选择需要观看的电视节目,就像使用家中的录像机一样。
  
  视频点播技术是在计算机多媒体技术、通信的分组交换技术、数字与光纤传输技术日益成熟的条件下发展起来的。计算机技术的进步,尤其是Web技术的发展,改变了信息基础设施的结构,包括信息的生成、存储、传送和表现形式等方面。目前,文本、图像以及窄带视频信号已经数字化,并通过网络存储、传送和再现;但是,这些传统手段不能充分满足当今社会对高质量、连续多媒体(如高保真音频和电视质量视频)的应用要求。VOD系统覆盖广泛的领域,如影视点播、卡拉OK、远程教学、公司培训、广告亭、智能小区等。同时,将这样的媒体引入信息基础建设对计算机开发带来了新的挑战,因为它们自身的固有属性,包括对流量数据存储和连续播放的要求。它们要求大容量存储设备,要求宽带网络环境,最主要的是必须保证实时传输。传统的技术不能满足严格的实时性和大容量要求,其技术瓶颈特别反映在网络带宽、文件系统和存储设备I/O性能这3个方面。为此,许多解决方案应运而生,其中一些方案使用专用硬件平台或超级计算机作为多媒体服务器。然而,依赖硬件解决方案不仅代价昂贵,而且会给今后的扩展、升级和维护带来问题。另一些方案则以低带宽连接为目标,用于传送低质量、小屏幕的视频内容,例如,我们通过拔号上网收看的一些“节目”,这些方法只能局限于某些应用,无法保证高质量视频点播的要求。
  
  随着人们对信息需求的不断深化,多媒体信息服务,特别是对视频和音频信息的点播服务引起了人们的极大兴趣;而存储技术、通信技术和视频压缩技术的高速发展,使得通过高速网络进行视频点播服务成为可能。VOD的实质是信息使用者根据自己的需要主动获得多媒体信息,它与信息发布和广播的区别在于主动性和交互性。这种信息服务方式符合人们对信息资源更深层次的需要,它改变了广播式的被动灌输方式。
  
  VOD服务有许多种吸引人的应用,例如点播电影、卡拉OK、可视杂志、计算机辅助教学或培训等。但是视频业务的数据量是非常大的,要实时传输需要巨大的带宽,如640×480点阵、64K彩色(16bit)、25帧/秒的电视数据要求的传输带宽是122.88Mbit/s,以前的PSTN(共同交换电话网)和N-ISDN(窄带综合业务数字网)等是以电路交换为基础的窄带网络。PSTN只能提供14.4kbit/s或28.8kbit/s的数据速率;N-ISDN的BRI(基本速率接口)是2B+D、PRI(主速率接口)为30B+D,其中B为64kbit/s。在这种低速网络中是无法实现实时视频业务传输的。近年来,随着MPEG-1和MPEG-2等高压缩比的压缩方法的出现和以ATM为基本传输方式的B-ISDN通信技术和高速以太网的发展,视频服务及其技术逐渐成为人们研究的热门课题。
  
  二、典型的VOD系统
  一个典型的VOD系统结构示意图参见《中国多媒体视讯》第七期。该系统包括:
  
  (1)服务器媒体服务模块:提供多媒体和服务信息。
  
  (2)服务器应用服务模块:接受用户请求,下载各种用户终端应用,完成与用户终端的交互工作。
  
  (3)网络传输设备:网络可以是采用局域网方式,甚至是广域网方式。
  
  (4)服务器管理模块:负责整个系统的运行,记录有关信息。
  
  (5)用户终端:可以用个人计算机、专用机顶盒来实现。对性能较高的个人计算机完全可以通过装载软件来实现,对于性能较低的个人计算机可以通过解压卡来完成解码。使用专用的机顶盒可以配合电视来收看。
  
  (6)基于Web的管理系统:管理员可以在任何位置、通过任何终端经认证后即可对系统进行管理。
  
  (7)节目制作系统:一般情况下用户可以直接将VCD节目加载到视频服务器中,如果需要将录像带、LD等存储介质中的模拟视频节目加载到视频库中,则需要通过节目制作系统来完成。
  
  三、VOD系统的安全协议
  用户在使用VOD系统的时候,需要和服务器交换各种各样的信息,这些信息中有很多是需要严格保密的,比如用户输入的用户名和密码等等。VOD的运行商就需要这些信息来记录用户的使用情况,并根据这些情况进行收费。而用户也必须能够确信使用的是正确的服务器,而不是假冒的。这样用户才能够放心地输入自己的用户名和密码等信息。所有这些,都必须建立在一个安全的连接基础上,如果没有这个安全的连接,建立起来的VOD系统是完全不可靠的。
  
  我们知道目前正在使用的TCP/IP是没有考虑到安全性的,所以,如果建立这样的一个没有安全性的VOD系统,就很可能出现假冒的用户,而且真正的用户的密码也是很容易被监听的。这样的VOD系统是不能够实际使用的,所以要建立一个实用的VOD系统,必须要考虑到安全性,使用户能够放心地使用,并且不能抵赖其使用。
  
  下面,为了实现一个安全协议,在参考Web安全性中使用的SSL/STL协议的基础上,设计了一个简化的、专门用于VOD系统的一个协议,当然,这个协议也可以用于多媒体传输的其他一些方面,比如视频会议(Video Conference)等。协议的流程图参见《中国多媒体视讯》第七期。协议的设计使得服务器和客户能够互相鉴别对方的身份、协商加密和MAC算法以及用来保护发送的数据的加密密钥。也就是为两个通信个体之间提供保密性和完整性(身份认证),并且要实现互操作性、可扩展性、相对效率要高。
  
  协议由一系列在客户和服务器之间交换的报文组成。图中显示了在客户与服务器间建立逻辑连接所需要的初始交换,流程为:
  
  (1)交换Hello消息,对于算法、交换随机值等协商一致;
  
  (2)交换必要的密码参数,以便双方得到统一的前主密钥;
  
  (3)交换证书和相应的密码信息,以便进行身份认证;
  
  (4)产生主密钥;
  
  (5)检验双方是否已经获得同样的安全参数。
  
  这个交换可以看成是具有4个阶段。
  
  1.建立起安全能力属性
  
  这个阶段用于客户端和服务器端开始逻辑连接并且建立和这个连接关联的安全能力。客户发起这个交换,发送具有下述参数的client_hello报文。
  
  (1)版本:客户能够使用的最高的协议版本,加入这个字段的目的是为了以后便于扩展协议。
  
  (2)随机数:客户生成的随机数,由32位时间戳和安全随机数生成器生成的28字节随机序列。这些值是为了在密钥交换之间用来防止重放攻击的。
  
  (3)密文族:客户所支持的密码算法列表(CipherSuite),按照优先级递减的次序排列。列表的每个元素(每个密文族)定义了密钥的交换算法和加密说明。
  
  (4)压缩方法:客户支持的压缩方法列表。
  
  在发送了client_hello报文后,客户等待与client_hello报文具有同样参数的服务器的server_hello报文。服务器发送server_hello消息参数有如下的约定。
  
  (1)版本字段包含客户建议的最低版本以及服务器支持的最高版本
  
  (2)随机数字段由服务器生成,独立于客户的随机数字段。
  
  (3)密文字段包含服务器从客户建议的密码算法中挑出的一套加密方法。
  
  (4)压缩字段包含服务器从客户建议的压缩方法中挑出的一个压缩方法。
  
  密文族参数的第一个元素是密钥交换算法(即用于常规加密与MAC加密密钥的交换方法)。下面是一些支持的密钥交换方法。
  
  (1)RSA:使用接收者的RSA公开密钥对密钥进行加密。接收者的密钥的公开密钥证书必须提供。
  
  (2)Diffie-Hellman密钥交换:可以是固定的Diffie-Hellman密钥交换和短暂的Diffie-Hellman密钥交换或者是匿名的Diffie-Hellman密钥交换。
  
  如果要完善系统,可以支持更多的密钥交换算法,这样,安全性能显著提高。这里为了讨论方便,就采用国际上已经广泛采用的RSA公钥系统。
  
  密钥交换方法定义之后是加密方法,我们知道,使用公钥加密是不现实的,因为计算量大,速度慢,所以我们一般采用的是公钥来交换密钥,真正的加密使用的加密算法还是分组加密算法,可以使用的算法很多,可以是RC系列、DES、IDEA、AES等等。这里,需要指出的是,协议的实现要支持尽可能多的加密算法,让客户和服务器有更多的选择,这样,安全性才能得到很好的保证。
  
  2.服务器认证和密钥交换
  
  服务器需要被鉴别,这样用户才知道是连接的正确的服务器,这需要服务器发送自己的证书给用户,这里使用国际标准的X.509证书(关于X.509的资料请查相关的国标,这里限于篇幅就不详细介绍了),这样消息就包含一个X.509证书。上面我们采用的是RSA公钥系统进行讨论的,所以服务器不需要发送server_key_exchange消息,但是如果以其他的方式,就可能需要发送server_key_exchange消息了。然后,服务器发送certificate_request消息,指出公开密钥算法和使用方法。最后,服务器发送server_hello_done,然后等待客户应答。这个报文没有任何参数。
  
  3.客户认证和密钥交换
  
  客户收到服务器的server_done消息后,根据需要检查服务器提供的证书,并判断server_hello的参数是否可以接受,如果都没有问题的话,发送以下一个或多个消息给服务器。
  
  (1)如果服务器请求了客户端证书的话,则客户首先发送一个certificate消息,若客户没有证书,则发送一个no_certificate警告。这个步骤一般是需要的,因为服务器要知道是合法的用户在点播VOD系统,并且作为客户使用了VOD系统的不可抵赖的依据。
  
  (2)然后客户发送client_key_exchange消息,消息的内容取决于密钥交换的类型,这里,我们只讨论RSA公钥系统,客户生成48字节的预先主密码,并且使用服务器证书的公钥对其进行加密。
  
  (3)最后,客户发送一个certificate_verify消息,其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名。这样做的目的是对客户提供明确的验证。这样,如果有人想假冒某个合法用户进行VOD点播的话,他不可能发出这个消息,也就不能假冒成功。
  
  4.结束
  
  第4阶段完成一个安全的连接的建立。
  
  (1)客户发送一个change_cipher_spec消息,并且把协商得到的密钥拷贝到当前连接的状态之中。
  
  (2)然后,客户用新的算法、密钥参数发送一个finished消息,这条消息可以检查密钥交换和认证过程是否已经成功。其中包括一个校验值,对所有往来的消息进行校验。
  
  (3)服务器同样发送change_cipher_spec消息和finished消息。整个过程完成,客户和服务器已经协商了一个安全的密钥,并且建立了安全的连接,这样客户和服务器就可以安全地交换数据和控制字了。

原文转自:http://www.ltesting.net