为了防止在网络中传输的音视频数据被恶意藏取或修改,我们采用了基于XML安全的传输方式,对RTSP命令数据中的关键部分进行了加密处理,对青视频数据的RTP包头和内容进行了加密保护,在对音视频性能影响较小的前提下有效的保护了数据的安全。
一、XML加密工作原理
1、XML加密特点
XML的加密特点不同于一些Internet安全协议,但是解决加密的工作原理是相似的。相对于常用的加密协议需对数据信息中的所有内容加密,而不能对特定数值信息加密,使得加密粒度过粗,XML可以加密结构化数据信息中的选定的子集,而对其它非必要信息不进行加密操作;XML还可以对多个访问信息的结构化数据存储进行加密,另外XML也可以理解成SOAP(simpleobject access protocol)的安全性扩展,使用XML数据的嵌入加密方法,获得应用层中的信息加密方法。当然在XML加密信息中,必须按照《XML Encryption Syntax andP rocessing》的操作规范使用,采取标准的XML标记语法表示数据密钥、算法及加密数据信息。XML加密可分为对称算法和非对称算法两种,前者采用数据信息批量加密方法,后者使用交换对称密钥方法。粒度加密的3种类型分别是整个文档加密、加密文档中的元素与加密元素内容。
2、XML加密流程
XML流程中首先将XML明文信息理解为文档对象模型(DOM),抽取对象的信息数值,依据约定加密密钥和加密算法采取信息加密,加密后的数据仍以XML数据格式给出,替换原来的XML信息。XML加密流程如图1所示。
接收数据获得一个非对称密钥对,一个是公钥使用,一个用作私钥,发送方获取接收方的公钥,获得秘密的对称密钥信息,利用对称密钥加密XML文档中的预定数据,并使接收方的公钥加密,发送方保留加密的数据、加密的对称密钥以及可选信息结合,生成新的XML文档,之后将加密的XML文档发送到接收方;接收方抽取加密的数据,加密的对称密钥和任何附加可选数值信息,利用非对称算法和私钥解密对称密钥,然后解密XML文档中被加密的信息。
二、XML加密语法规范
XML编程语言使用的命名空间与传统语言规则相似,也使用命名空间规则。XML提供了全局范围内的通用名,有效解决了命名空间名称冲突的问题。XML的每个语法标记都规范了一组元素和属性标记,此类标记(tag)被命名为XML加密语法的标记词汇表。XML程序将处理在多种语法规范中的加密数据,XML语法命名空间都规范了独特的语法标记词汇表,所以在标记词汇差异分类之间就会发生名字信息冲突的问题。解决方法是在独有的命名空间中规范标记词汇信息表,可以有效避免名字冲突的问题。
三、音频视频监控系统中的XML加密
XML加密和数字签名技术简单易用,因此在监控系统中受到了大量的应用。
1、XML安全在RTSP(Real Time StreamingProtocof)中的应用
RTSP协议是音视频建流过程中的标准协议,由option、describe、setup、play、pause、teardown等命令组成,视频源端和视频接收端通过上述的命令过程来完成流的协商、建立、播放、暂停及终止。RTSP协议采用的是明文传输,在传输数据中包含了音视频编解码的约定,会话session值的确定以及接收数据端口的约定,因此这些敏感数据极可能被恶意获取,然后假冒去向设备源获取数据,或者假冒设备源向视频接收端发送恶意数据或者大量的垃圾数据,导致视频接收端的网络带宽被严重占用不能接收正确的数据。视频源端和接收端可以把传输命令由XML承载,通过XML的加密技术,对关键数据进行加密,以保证传输命令的正确。在本系统中采用非对称加密,RTSP建立以前要首先通过带外传输密钥对。请求端和响应端分别拥有公钥/私钥对,请求方首先用公钥加密关键数据,用私钥做数字签名,响应方接收到数据后,用公钥解除数字签名,然后验证数据的完整性,然后用私钥解密数据中加密部分,再用公钥加密响应数据中的关键部分,用私钥对加密后的数据做数字签名,发送给请求方。其Setup建流请求语句:
加密前的XML语句:
rtsp://192 {-168.22. 105:5454/vO/streamid=0 RTSP/'1.0< /URL>
3< /CSeq>
RTP/AVP/TCP; unicasti
Basic YWRta W46YWRta W4A
加密后的XML语句:
< \SETUP>
A23845C 564587'3RTP/AVP/TCP.unicast.B asic YWRtaW46YWRtaW4A
源端响应语句:
XML加密前:
RTSP/1.0 2000K3ThuOct 20 06:26:532011 GMT
< Session >3b6ec39c3fOef524
RTP/AVP/TCP.inter-leaved=0-1
507FEE09
< /RESPONSE>
.XML对session和SSRC加密后:
< RESPONSE>
< VERSION>RTSP,/I.0 200 0K< /VERSION>
< CSeq> 3
< DATE> Thu Oct 20 06:26:53 2011 GMT
< C. j p h e r V a I u e >
dcdaefca8ddgs52p9a3
RTP/AVP/TCP,inter-leaved-0-1
< EncryptedData Type= ' http ://www.w3 . org/2001/04Amlenc#Elementr xnOns= 'http ://www..w3 .org/2001/04/xmlenc# '> 。
gsdf rwisdfbnrisvne34uqe
2、视频数据传输中的加密过称
音视频数据的传输在业界均采用标准的RTP/RTCP协议,RTP包的格式采用的12个字节的RTP包头,包头后面是具体的音视频数据,包头表示了RTP协议的版本,包的序号以及包的标志(一般用来表示是否一帧数据的结束)。以及帧的时间戳,和流的SSRC(用来区分流的类型),在本系统中采用的安全措施是用XML结构对RTP进行承载,对RTP包头进行加密,扩充RTP包头,添加12个字节,表示3个整形数字,整形数字的前两个字节表示位置,后两个字节表示垃圾数据的长度。源端采集数据后对原始数据封装成RTP包,然后构造XML结构,对数据中的随机位置插入垃圾数据,并把位置和长度保存在包头,最后对包头用对称密钥进行加密(对称密钥加密和解密速度快)。接收端接收到数据后,首先对包头进行解密,然后清除垃圾数据,最后对数据进行实时播放或者存储。
包头结构定义如下:
typedef struct
{
/**//*byte 0*/
unsigned char csrc_len:4;/**//* expect 0*1
urx~gned char extension:l; /**//expect 1,see RTP_OP below中/
unsigned char padding:l /**//* expect 0*1
Lmsigned char version:2* /**//*expect 2*//**//*byte1*/‘unsigned char payload:*;/**//*.RTP_PAYLOAD_RTSP-.*/。
unsigned char marker:li/
**//* expect I */
/**//* rDytes 2, 3 * /
unsigned short seq_no r
/**.//* bytes 4-7 *1
unsigned long timestamp;
/**//* bytes 8-JI */
unsigned long ssrc-l/
**//* 'stream number is used here. */
char expandfield[12]4
/expand head for store bad data pos andlength
z RT P_FIXED_HEADER*(如图2)
四、实验数据显示
本系统曾用在各种复杂的网络环境中,下面是采用XML安全处理和通常模式的实验比较。
两组实验的软硬件环境相同,具体如下:
硬件环境:Dell Optiple 330 2台,一台做服务器,一台做客户端。
携远天成Topwe5 000车载终端100台
软件环境:Winxp SP3
实验结果比较(未采用加密)(如表1)
从上面的实验数据分析,使用XML加密对音视频的质量并没有明显的影响,PC机本身的系统资源占用率高。
小知识之监控系统
典型的电视监控系统主要由前端监视设备、传输设备、后端控制显示设备这三大部分组成,其中后端设备可进一步分为中心控制设备和分控制设备。前、后端设备有多种构成方式,它们之间的联系(也可称作传输系统)可通过电缆、光纤或微波等多种方式来实现。