导航:首页 > 文档加密 > sip信令加密需要网关标识和密钥

sip信令加密需要网关标识和密钥

发布时间:2022-08-15 17:25:11

1. sim卡和usim卡卡号上有什么区别,怎么通过卡号来看,谁能帮我看一下卡号是89860113498

SIM卡(Subscriber Identity Mole) ,即用户识别卡,是全球通数字移动电话的一张个人资料卡。它采用A 级加密方法制作,存储着用户的数据、鉴权方法及密钥,可供GSM系统对用户身份进行鉴别。同时,用户通过它完成与系统的连接和信息的交换。
移动电话只有装上SIM卡才能使用。“SIM卡”有大小之分,功能完全相同,分别适用于不同类型的GSM移动电话。SIM卡可以插入任何一部符合GSM规范的移动电话中,而通话费则自动计入持卡用户的帐单上,与移动电话无关。

SIM卡的使用,有效的防止了盗用、并机和通话被窃听,使用户的正常通信得到了可靠的保障。

为了保证您的移动电话丢失后不被盗用,每张SIM卡都可设置一组个人密码(PIN码)来对SIM卡上锁,它是由用户自己设定的。只有正确输入密码后,手机才会进入正常的使用状态。连续三次输入错误的个人密码,手机即会将SIM卡锁住。发生这种情况,请您立即关机并携机及SIM卡到无线局营业厅解锁。如果此时您还继续操作,将引起SIM卡的自动封毁,给您造成不必要的损失。

USIM卡就是第三代手机卡
USIM: Universal Subscriber Identity Mole(全球用户识别卡)
全球用户身份模块(USIM),也叫做升级 SIM ,是在 UMTS 3G 网络的一个构件。
很多人认为在3G时代,绝大部分应用只能由手机实现,卡片上的有限资源只需实现认证功能就可以了。的确,3G的应用十分复杂,大部分的应用都不能通过STK卡来单独完成。但USIM卡并不是只能做单纯的认证功能,事实证明它正在逐步向移动商务平台、乃至最后的多应用平台过渡,在手机上实现电子钱包、电子信用卡、电子票据等其它应用已不再是难事。这一特点使USIM卡成为了不同行业跨领域合作、相互渗透经营的媒介,如银行可以参与电信的经营,反之亦然。

除能够支持多应用之外,USIM卡还在安全性方面对算法进行了升级,并增加了卡对网络的认证功能,这种双向认证可以有效防止黑客对卡片的攻击。同时,USIM卡的电话簿功能更为强大,最多可存入500个电话号码,并且针对每个电话,用户还可以选择是否录入其它信息,如电子邮件、别名、其它号码等。

尽管步履蹒跚,但3G还是向我们一步步走来。高额的3G牌照费用也许是许多运营商徘徊不前的原因之一,更重要的是它们对3G应用持以观望的态度。而且实现基于USIM卡上的多应用还有很多问题亟待解决,如相关的规范不够完善,缺乏支持这种多应用的手机,更重要的是运营商和相关的企业或政府机构的多方协调会加大这种应用的难度。无论怎样,第三代移动通信卡片在这方面已经做好了技术准备,相信基于USIM卡的多应用也终会在3G时代得到广泛使用。
TD-SCDMA的USIM卡在非TD-SCDMA手机上的使用问题,我们经过测试,在其它3G手机上,如WCDMA的机型,USIM卡可以作为一张普通的SIM卡使用,进行GSM网络的通话和信息功能,而在非2G手机上,则显示“SIM卡”注册失败。可见USIM卡本身就是一张TD-SCDMA和GSM 的双模卡(在USIM卡卡身上亦有说明),但是只能使用在3G手机如K850i、E51或有“3G版本”存在的行货手机如N73、N95上。

WCDMA和GSM之间的国际漫游分析
【摘要】文章介绍了GSM和WCDMA系统中不同制式的终端和不同类型用户标识模块(SIM、USIM、ISIM)之间的兼容关系。主要讨论了WCDMA和GSM系统之间实现国际漫游的两种不同操作模式,分析了不同模式下具体的呼叫信令流程和不同的加密方式。
【关键词】2G/3G互操作 WCDMA GSM 国际漫游 鉴权加密
1 引言
我们知道GSM和WCDMA都是基于GSM-MAP核心网,GSM网络可以平滑演进到WCDMA系统。目前欧洲、亚洲、非洲有很多国家已经建立WCDMA系统。所谓的WCDMA和GSM之间的国际漫游是指GSM(或者WCDMA)用户漫游到国外的WCDMA(GSM)网络,利用拜访地WCDMA(GSM)网络来为其提供业务服务。
由于各个国家发展的情况存在一定的差异,例如有的国家只存在GSM网络(比如中国),而有的国家则只建设了WCDMA网络(例如日本),而没有GSM网络。为此3GPP TS 22.100规范指出,WCDMA终端应该可以支持通过GSM的SIM卡来访问WCDMA网络。当然此时WCDMA网络只能为用户所提供象GSM系统所能提供的那些业务(WCDMA的特有业务,例如视频、高速数据通信无法提供)。用户是否可以通过GSM的SIM卡来访问WCDMA网络由该WCDMA网络运营商控制。同时3GPP TS 22.101规范指出UMTS(Universal Mobile Telecommunications System)系统应该允许WCDMA用户通过GSM终端来访问GSM网。下面我们就这个问题来分析一下要在这两个系统之间实现国际漫游需要什么条件以及一些关键流程。
2 移动终端中的UICC卡
我们知道在3GPP终端设计中一个重要的环节就是通用集成电路卡(UICC,Universal Integrated Circuit Card)的设计。UICC卡是一种可移动智能卡,它用于存储用户信息、鉴权密钥、电话簿、短消息等信息。
在GSM和3GPP规范中,用户想正常的使用各种业务都必须依靠终端中的UICC卡。如果终端中没有UICC卡,那么用户只能使用紧急呼叫业务(例如110、119)。
用户只需要将UICC卡从一部终端取出并插入到另一部终端中便可以轻松的将用户的签约信息(包括电话簿)从一部终端转移到另一部终端中。
UICC是定义了物理特性的智能卡的总称,UICC和终端的接口都是标准的。
UICC可以包括多种逻辑应用,例如用户标识模块(SIM,Subscriber Identity Mole)、通用用户标识模块(USIM,Universal Subscriber Identity Mole)、IP多媒体业务标识模块(ISIM,IP Multimedia Service Identity Mole)。当然UICC还可以包括其它应用(电子钱包等)。
2.1 GSM中的SIM
SIM卡是GSM网络中移动终端所使用的智能卡,它用于存储各种参数和相关用户信息,例如用户签约信息、鉴权密钥、用户的优选信息、以及短信息。应当注意的是尽管我们经常会把UICC和SIM这两个术语互换,其实UICC是指物理卡,而SIM是指UICC卡上存储GSM用户签约信息的一个应用。SIM广泛应用于GSM系统中。
SIM中包括下列信息:
◆国际移动用户标识(IMSI,International Mobile Subscriber Identity):用户身份标识,用于接入鉴权。
◆移动用户ISDN号码(MSISDN,Mobile Subscriber ISDN Number):移动用户的手机号码。
◆密钥Ki、加密算法A3、A8:用于鉴权。
◆移动国家码(MCC,Mobile Country Code)、归属PLMN的移动网络码(MNC,Mobile Network Code):网络标识。
SIM应用在GSM的早期阶段就已经进行了标准化。在3GPP中继续继承了这些规范(参阅3GPP TS 11.11和3GPP TS 51.011)。
2.2 WCDMA中的USIM
USIM(参阅3GPP TS 31.102)是UICC卡上的另外一种应用。USIM提供了不同于SIM的另外一组参数,它包括用户签约信息、鉴权信息、付费方式、用户短消息等。USIM用于通用移动通信系统(UMTS,Universal Mobile Telecommunication System)网络中,即WCDMA网络中。
当终端(包括电路交换功能和分组交换功能)要使用WCDMA业务时,必须使用USIM。很明显,SIM和USIM可以共存于同一张UICC卡中。
除了其它信息外,USIM包括下列信息:
◆国际移动用户标识(IMSI,International Mobile Subscriber Identity):IMSI是分配给每个用户的唯一标识,该标识对用户来说是不可见的,而对网络来说是可见的。IMSI作为用户标识用于鉴权目的。在IP多媒体子系统(IMS,IP Multimedia Subsystem)中其私有用户标识等价于IMSI。
◆移动用户ISDN号码(MSISDN,Mobile Subscriber ISDN Number):在该域中存储了分配给用户的一个或者多个电话号码。在IMS中其公共用户标识等价于MSISDN。
◆加密密钥(CK,Cipher Key)和完整性密钥(IK,Integrity Key):这些密钥用于空中接口中数据的加密和完整性保护。USIM单独存储在电路域和分组域使用的密钥。
◆短消息(SMS,Short Message Service):USIM可以存储短消息以及相关的数据,例如发送者、接收者、状态等。
◆短消息参数:该域用于存储与SMS业务有关的配置数据,例如SMS中心地址、支持的协议等等。
◆多媒体消息业务(MMS,Multimedia Message Service)用户连接性参数:该域用于存储与MMS业务相关的配置数据,例如MMS服务器地址、MMS网关地址。
◆MMS用户优选信息:该域用于存储与MMS业务有关的用户优选信息,例如发送报告标志、优先级、到期信息等。
USIM卡和SIM卡相比有如下特点:
◆相对于SIM卡的单向鉴权(网络鉴权用户),USIM卡鉴权机制采用双向鉴权(除了网络鉴权用户外,用户也鉴权网络),有很高的安全性。
◆于SIM卡电话薄相比,USIM卡电话薄中每个联系人可以对应多个号码或者昵称。
◆相对SIM卡机卡接口速率,USIM卡机卡接口速率大大提高(230kbps)。
◆相对SIM卡对逻辑应用的支持,USIM可以同时支持4个并发逻辑应用。
2.3 3GPP IMS中的ISIM
在UICC中还可以实现ISIM应用(参阅3GPP TS 31.103)。ISIM仅用于3GPP IMS系统中。它包括了在IMS系统中用于用户标识、用户鉴权和终端配置的有关参数。ISIM可以跟单独与SIM或USIM共存于一张UICC卡上,当然也可以同时与SIM和USIM共存于一张UICC卡上。
在ISIM中包括的主要参数有:
◆私有用户标识(Private User Identity):在ISIM中只能有一个私有用户标
◆公共用户标识(Public User Identity):在ISIM中可以存储一个或者多个公共用户标识的SIP(Session Initiation Protocol) URI。
◆归属网络域URI:ISIM中存储了包括归属网络域名的SIP URI,用于在注册过程中找到其归属网络的地址。在ISIM中只能存储一个归属网络域名URI。
◆长期加密(Long Term Secret):用于鉴权目的,用于计算终端和网络之间使用的完整性密钥和加密密钥。IMS终端利用完整性密钥来保护IMS终端和代理呼叫会话控制功能(P-CSCF,Proxy-Call Session Control Function)之间SIP信令的完整性。如果信令需要保密,那么IMS终端将利用加密密钥来对IMS终端和P-CSCF之间的SIP信令进行加密和解密。
除了ISIM外,使用USIM也可以访问3GPP IMS网络,但是需要对终端的软件进行适当的修改。由于SIM应用的安全等级较低,所以3GPP IMS系统不允许通过SIM来访问。
2.4 小结
目前UICC卡一般同时包括USIM和SIM两个模块,此时称为复合USIM卡(它可以兼容GSM终端和WCDMA终端),如果UICC中只包括USIM模块,那么称为纯USIM卡。
WCDMA终端在机卡接口上具备后向兼容性,兼容USIM卡(复合USIM卡和纯USIM卡)和GSM的SIM卡。
GSM终端兼容GSM的SIM卡和WCDMA的复合USIM卡,不兼容纯USIM卡。
WCDMA双模终端无论插入SIM卡或者USIM卡(复合USIM卡或者纯USIM卡)都可以接入GSM无线网络或者WCDMA无线网络。
GSM终端插入SIM卡或复合USIM卡只能接入GSM无线网络。
SIM卡可以应用于GSM、WCDMA、TD-SCDMA系统中。
USIM卡可以应用于GSM、WCDMA、TD-SCDMA系统中。
如果用户想使用IMS业务,那么在UICC卡中必须同时包括USIM和ISIM,如果只有USIM的话,可以通过修改终端中的软件来实现对IMS的访问(Release 5),在将来的标准中不排除在UICC卡中只需要ISIM即可访问IMS。
3 WCDMA和GSM的空中接口
WCDMA是从GSM系统演进而来,它们使用相同的核心网,但是其空中接口部分却有巨大差别,图2是WCDMA R4网络结构图,从图中可以看出GERAN和UTRAN公用同样的核心网。
表1列举了WCDMA和GSM在空中接口上一些最主要的差别:
表1 WCDMA和GSM空中接口关键参数对比



WCDMA

GSM

多址方式

CDMA

TDMA

载波带宽

5MHz

200kHz

调制方式

QPSK(前向)、BPSK(反向)

GMSK

分集方式

多径分集(RAKE接收机)

慢跳频

频率复用因子

1

1~18

语音编码

AMR

RPE-LTP-LPC

信道编码

卷积码、Turbo码

卷积码

3.1 多址方式
从表中可以看出WCDMA采用码分多址方式,用户和信道都是通过不同的码子来区分,也就是说不同的用户可以在相同的频率、相同的时隙中同时进行通信。GSM系统采用时分多址方式,用户和信道是通过不同的时隙来区分,也就是说在某一时刻,一个时隙只能分配给一个用户使用。
在WCDMA中分别用到了信道化码和扰码,其信道化码采用正交可变扩频因子(OVSF,Orthogonal Variable Spreading Factor)来实现,OVSF具有很好的互相关性,即不同码子之间是完全正交的。而其扰码则通过伪随机序列来实现,伪随机序列具有良好的自相关性,即同步时会有很大的峰值。
3.2 载波带宽
在WCDMA中其扩频码片速率是3.84Mbps,所以经过调制后其信号带宽为5MHz。WCDMA是码分多址(CDMA,Code Division Multiple Access)频分双工(FDD,Frequency Division Duplex)系统,所以上下行总共占用10MHz带宽。这也是WCDMA称为宽带CDMA的原因。对GSM来说,信息经过信道编码后的最终速率为270.8Kbps,经过高斯最小移频键控(GMSK,Gaussian Minimum Shift Keying)后其信号带宽为200KHz,GSM是时分多址(TDMA,Time Division Multiple Access)频分双工系统,所以上下行总共占用400KHz的带宽。
3.3 调制方式
WCDMA系统采用了二进制移相键控(BPSK,Binary Phase Shift Keying)和四进制移相键控(QPSK,Quadrature Phase Shift Keying),对于BPSK来说就是将每个比特(0或者1)映射成相位0或者π,而QPSK则将两个比特分别映射成相位0、π/4、π/2、3π/4。此时调制信号的频率保持不变。
GSM系统采用的是GMSK调制方式,GMSK属于连续相位调制,是在MSK调制之前加入高斯滤波器,其目的是使调制信号的主瓣滚降的更快。该调制信号的频率是变化的。
3.4 分集方式
分集(Diversity)是为了提高通信系统的可靠性。在WCDMA系统中,利用CDMA固有的抗多径衰落能力,将从不同方向反射过来的多径信号通过RAKE接收机进行最大比合并(MRC,Maximal Ratio Combining),从而将本来对通信可靠性有害(多径信号会造成多径衰落,即频率选择性衰落)的多径信号变成对通信有益的信号。
在GSM系统中采用了慢跳频技术,通俗点说就是将信息分别在不同的频率上进行传输,这样便可以克服由于某一频率一直处于深衰落对信号的影响。
3.5 语音编码和信道编码
语音编码和信道编码一直是信息论中研究的重点,语音编码就是在可以听懂的基础上编出尽可能低的比特速率。而信道编码是通过增加冗余比特从而保证信息传输的可靠性。
WCDMA系统中的语音编码器采用的是自适应多速率(AMR,Adaptive Multi-Rate)编码技术。WCDMA系统中的信道编码包括卷积码和Turbo(1993年提出)码,Turbo码由于具有较大的交织深度(导致传输延时增加)和超强纠错能力,所以通常用在数据通信环境下。
GSM的语音编码器采用的是规则脉冲激励长期预测线性预测编码(RPE-LTP-LPC,Regular Pulse Excited-Long Term Prediction-Linear Predictive Coding)技术。GSM中的信道编码采用的是卷积码。
3.6 小结
通过上面的叙述,可以得出很简单的结论,即当终端处于某种蜂窝网络的覆盖范围内时,终端要想正常工作,其前提条件就是终端必须跟基站必须是同一制式。也就是说当终端处于WCDMA基站覆盖时,该终端必须是WCDMA终端(WCDMA/GSM双模终端当然没有问题);当处于GSM基站覆盖时,该终端必须是GSM终端(WCDMA/GSM双模终端显然没有问题)。
4 WCDMA和GSM实现国际漫游的两种方式
目前WCDMA和GSM之间实现国际漫游的方式主要有两种:一是在国内办理租机租卡呼转漫游业务;二是自备双模终端到国外实现GSM和WCDAM之间的自动漫游。下面我们将分别以中国和日本之间的GSM、WCDMA国际漫游为例进行分析。
4.1 租机租卡呼转漫游
当中国GSM用户要漫游到日本时,由于日本是WCDMA网络,所以用户在国内开通了租机租卡呼转漫游业务,在营业厅租用的手机是日本的WCDMA手机,同时将用户的GSM手机号呼转到租用的手机上,这种呼转属于无条件呼转。
假设用户A要去日本,办理了租机租卡呼转漫游业务,其号码呼转到了终端B上,当国内用户C呼叫用户A。
(1) MSC接收到被叫用户号码A后,通过7号信令网向A的HLR发送send_routing_info消息。
(2)在HLR中可以看到用户A已经呼转到了终端B上,此时HLR通过send_routing_info消息将B号码返回给MSC。
(3) MSC分析得知该号码是国际号码后通过向TSMC发送IAM消息,并通过ISC、国际话务中转商送达日本TMSC。
(4) 日本TMSC收到IAM消息后,通过7号信令向终端B的HLR发送send_routing_info消息。
(5)终端B的HLR已知目前为终端B提供服务的MSC,随后向该MSC发送provide_roaming_num消息获取终端B的MSRN。
(6) MSC将终端B的MSRN通过provide_roaming_num_ack消息返回给HLR。
(7) 随后终端B的HLR通过send_routing_num_ack消息将B的MSRN发送给TMSC。
(8) 获知了终端B的MSRN后,TMSC便通过IAM消息进行随后的话务接续。
同理可得当日本WCDMA用户漫游到中国GSM网络时,也可以在其国内办理该业务。
4.2 自备WCDMA终端实现GSM到WCDMA的国际漫游
GSM用户通过WCDMA终端访问日本WCDMA网络的简单鉴权、加密过程:
中国用户到达日本开机后,首先发起位置更新过程,日本WCDMA MSC收到中国用户的位置更新请求后,便通过国际7号信令网和中国7号信令网向用户的HLR发起位置更新请求。随后HLR通过鉴权请求消息向日本WCDMA MSC发送Triplets(Kc,RAND,SRES)。此时的鉴权过程跟GSM系统的鉴权一样,即MSC将Kc和RAND下发给终端后,终端利用RAND、Ki通过A3算法得到SERS,并将该SERS返回给MSC,MSC将比较HLR送来的SERS跟终端送来的是否一致。若一致则鉴权通过,HLR会向日本WCDMA MSC/VLR插入中国用户的相关数据,同时将这些信息从旧MSC/VLR中删除。若不一致,则用户被拒绝。
其实在鉴权完毕后紧接着应该进行空中接口加密过程,不过我们国内没有采用。在GSM系统中空中接口的加密是通过Kc和A5算法来完成的,然而当用户漫游到日本后,如上图,对于WCDMA终端和WCDMA MSC都会按照相应的转换函数将收到的Kc转换成CK、IK,从而实现加密和完整性保护,可以看出其传输的安全性提高了。
4.3 自备GSM终端实现WCDMA到GSM的国际漫游
日本的WCDMA用户漫游到中国后只需更换一部GSM终端就可以了,无需换USIM复合卡。如果用户使用的是WCDMA/GSM双模终端则可以实现自动漫游。我们简单的看看该场景中的鉴权和加密过程。
当日本用户漫游到中国开机后,首先进行位置更新过程,中国GSM MSC收到日本用户的位置更新请求后,便通过7号信令网向用户的HLR发起位置更新请求。注意此时日本的HLR是WCDMA HLR,其存储的是鉴权五元组(Quintets)(RAND,CK,IK,XRES,AUTN),它必须将其转换为三元组(Triplets),即通过CK、IK计算出Kc,通过XRES计算出SERS。随后HLR通过鉴权请求消息向中国MSC发送Triplets(Kc,RAND,SRES)。MSC收到Triplets后通过GSM BSS将RAND发送给GSM终端,终端利用该RAND可以计算出CK、IK和RES,随后终端利用不同的转换函数分别将CK、IK转换成KC,将RES转换成SRES。然后终端将SERS返回给MSC,MSC将从HLR中收到的SRES和从终端收到的SRES进行比较,若一致,则鉴权通过,HLR将用户相关信息插入到GSM MSC/VLR中,并从旧的VLR中删除用户相关信息。完成位置更新过程。若比较结果不一致,则拒绝用户。虽然我国GSM系统空中接口没有进行加密,其实在规范中鉴权完毕后由加密过程,即终端和GSM BSS之间通过Kc进行加密操作。
5 结束语
通过上面的分析我们可以看出由于WCDMA和GSM有着相同的核心网,所以只要运营商相互开通WCDMA和GSM之间的业务,用户只需要更换原来的终端就可以实现自动漫游,不同的是在空中接口加密过程中需要对鉴权组中的参数进行相应的转换以适合空中接口的需要。

2. 毕业设计 SIP协议的实现

我们先进行一个简单的纯SIP信令(不带语音连接建立)的UAC的SIP终端的程序开发的试验(即一个只能作为主叫不能作为被叫的的SIP软电话模型),我们创建一个MFC应用程序,对话框模式,照上面的说明,设置工程包含我们上面得到的oSIP的相关开发库及SDK的一些开发库,并且由于默认LIBC的冲突,需要排除MSVCRT[D]开发库(其中D代表Debug模式下,没有D表示Release模式下),直接使用eXosip的几个主要函数就可以创建一个基本的SIP软电话模型。

其主要流程为:
初始化eXosip库-启动事件监听线程-向SIP Proxy注册-向某SIP终端(电话号码)发起呼叫-建立连接-结束连接

初始化代码:
int ret = 0;

ret = eXosip_init ();
eXosip_set_user_agent("##YouToo0.1");

if(0 != ret)
{
AfxMessageBox("Couldn't initialize eXosip!\n");
return false;
}

ret = eXosip_listen_addr (IPPROTO_UDP, NULL, 0, AF_INET, 0);
if(0 != ret)
{
eXosip_quit ();
AfxMessageBox("Couldn't initialize transport layer!\n");
return false;
}

启动事件监听线程:
AfxBeginThread(sip_uac,(void *)this);

向SIP Proxy注册:
eXosip_clear_authentication_info();
eXosip_add_authentication_info(uname, uname, upwd, "md5", NULL);

real_send_register(30); /* 自定义函数代码请见源码 */

发起呼叫(构建假的SDP描述,实际软电话使用它构建RTP媒体连接):
osip_message_t *invite = NULL; /* 呼叫发起消息体 */
int i = eXosip_call_build_initial_invite (&invite, dest_call, source_call, NULL, "## YouToo test demo!");
if (i != 0)
{
AfxMessageBox("Intial INVITE failed!\n");
}

char localip[128];
eXosip_guess_localip (AF_INET, localip, 128);
snprintf (tmp, 4096,
"v=0\r\n"
"o=josua 0 0 IN IP4 %s\r\n"
"s=conversation\r\n"
"c=IN IP4 %s\r\n"
"t=0 0\r\n"
"m=audio %s RTP/AVP 0 8 101\r\n"
"a=rtpmap:0 PCMU/8000\r\n"
"a=rtpmap:8 PCMA/8000\r\n"
"a=rtpmap:101 telephone-event/8000\r\n"
"a=fmtp:101 0-11\r\n", localip, localip, "9900");

osip_message_set_body (invite, tmp, strlen(tmp));
osip_message_set_content_type (invite, "application/sdp");

eXosip_lock ();
i = eXosip_call_send_initial_invite (invite);
eXosip_unlock ();

挂断或取消通话:
int ret;
ret = eXosip_call_terminate(call_id, dialog_id);
if(0 != ret)
{
AfxMessageBox("hangup/terminate Failed!");
}

3. sip协议是什么,sip协议的功能及其应用

SIP是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以好似Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。
SIP是类似于HTTP的基于文本的协议。SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义。
使用 SIP,服务提供商可以随意选择标准组件。不论媒体内容和参与方数量,用户都可以查找和联系对方。SIP 对会话进行协商,以便所有参与方都能够就会话功能达成一致以及进行修改。它甚至可以添加、删除或转移用户。
SIP它既不是会话描述协议,也不提供会议控制功能。为了描述消息内容的负载情况和特点,SIP 使用 Internet 的会话描述协议 (SDP) 来描述终端设备的特点。SIP 自身也不提供服务质量 (QoS),它与负责语音质量的资源保留设置协议 (RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议 (LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。
SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。
对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。
SIP 独立于传输层。因此,底层传输可以是采用 ATM 的 IP。SIP 使用用户数据报协议 (UDP) 以及传输控制协议 (TCP),将独立于底层基础设施的用户灵活地连接起来。SIP 支持多设备功能调整和协商。如果服务或会话启动了视频和语音

4. sip alg是什么

SIP ALG(SIP Application Layer Gateways):SIP应用层网关。

其主要作用就是帮助NAT下的私网终端设备,在不做任何改动的情况下能够与公网上的SIP软交换进行正常的数据交互。

由于其仅是简单的消息数据修改,类似于一种透明代理,并没有事务层相关概念,同时在现网使用中兼容性等问题,导致ALG在解决NAT私网穿越方面并没有得到很好的应用。

SIP,H323,RTSP都是通信协议,可以查看RFC或者3GPP。l2tp是网协,ipsec是网加密的一种。

(4)sip信令加密需要网关标识和密钥扩展阅读

通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。

通信协议主要由以下三个要素组成:

语法:即如何通信,包括数据的格式、编码和信号等级(电平的高低)等。

语义:即通信内容,包括数据内容、含义以及控制信息等。

定时规则(时序):即何时通信,明确通信的顺序、速率匹配和排序。

特点

通信协议具有层次性、可靠性和有效性。

5. 如何在voip中使用rc4对udp收发函数进行加密

qutecom 一个开源的voip客户端
asterisk 开源的ippbx
rc4加密算法简单,快速,据说是比DES算法快10倍。sip 信令本身就属于明文方式传输的,之所以要加密,是为了防止运营商的干扰,使用一个弱的加密算法,是要能防止串改就满足要求了。
rc4 算法可以google原来,用密钥来生成一个256长度的box, 然后box与明文异或操作得到密文,密文再次异或就恢复明文。
下面实现了 qutecom 到asterisk 信令的当向加密,反向的目前还没弄完,等完工了在来补充。

rc4.h
/*
*RC4 functions for HTMLDOC.
*
* Original code by Rob Earhart
* Copyright 1999 by Carnegie Mellon University, All Rights Reserved
*
* Permission to use, , modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above right notice appear in all copies and that
* both that right notice and this permission notice appear in
* supporting documentation, and that the name of Carnegie Mellon
* University not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission.
*
* CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR
* ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#ifndef _RC4_H_
# define _RC4_H_

# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */

/*
* RC4 context...
*/

typedef struct
{
unsigned char sbox[256]; /* S boxes for encryption */
int i, j; /* Current indices into S boxes */
} rc4_context_t;

/*
* Prototypes...
*/

extern void rc4_init(rc4_context_t *context, const unsigned char *key,
unsigned keylen);
extern void rc4_encrypt(rc4_context_t *context, const unsigned char *input,
unsigned char *output, unsigned len);

# ifdef __cplusplus
}
# endif /* __cplusplus */

#endif /* !_RC4_H_ */

rc4.c
/*
* RC4 functions for HTMLDOC.
*
* Original code by Tim Martin
* Copyright 1999 by Carnegie Mellon University, All Rights Reserved
*
* Permission to use, , modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above right notice appear in all copies and that
* both that right notice and this permission notice appear in
* supporting documentation, and that the name of Carnegie Mellon
* University not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission.
*
* CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR
* ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Contents:
*
* rc4_init() - Initialize an RC4 context with the specified key.
* rc4_encrypt() - Encrypt the given buffer.
*/

#include "rc4.h"

/*
* 'rc4_init()' - Initialize an RC4 context with the specified key.
*/

void
rc4_init(rc4_context_t *text, /* IO - Context */
const unsigned char *key, /* I - Key */
unsigned keylen) /* I - Length of key */
{
int i, j; /* Looping vars */
unsigned char tmp; /* Temporary variable */

/*
* Fill in linearly s0=0, s1=1, ...
*/

for (i = 0; i < 256; i ++)
text->sbox[i] = i;

for (i = 0, j = 0; i < 256; i ++)
{
/*
* j = (j + Si + Ki) mod 256
*/

j = (j + text->sbox[i] + key[i % keylen]) & 255;

/*
* Swap Si and Sj...
*/

tmp = text->sbox[i];
text->sbox[i] = text->sbox[j];
text->sbox[j] = tmp;
}

/*
* Initialized counters to 0 and return...
*/

text->i = 0;
text->j = 0;
}

/*
* 'rc4_encrypt()' - Encrypt the given buffer.
*/

void
rc4_encrypt(rc4_context_t *text, /* I - Context */
const unsigned char *input, /* I - Input buffer */
unsigned char *output, /* O - Output buffer */
unsigned len) /* I - Size of buffers */
{
unsigned char tmp; /* Swap variable */
int i, j; /* Looping vars */
int t; /* Current S box */

/*
* Loop through the entire buffer...
*/

i = text->i;
j = text->j;

while (len > 0)
{
/*
* Get the next S box indices...
*/

i = (i + 1) & 255;
j = (j + text->sbox[i]) & 255;

/*
* Swap Si and Sj...
*/

tmp = text->sbox[i];
text->sbox[i] = text->sbox[j];
text->sbox[j] = tmp;

/*
* Get the S box index for this byte...
*/

t = (text->sbox[i] + text->sbox[j]) & 255;

/*
* Encrypt using the S box...
*/

*output++ = *input++ ^ text->sbox[t];
len --;
}

/*
* Copy current S box indices back to context...
*/

text->i = i;
text->j = j;
}

修改exosip项目中的 jcallback.c 在函数cb_udp_snd_message 中修改,加入rc4加密部分
....

if( 1 )
{
rc4_context_t context;
char * key = "*****";
unsigned char * out = NULL;
int i=0;
out = osip_malloc (length);
if (out == NULL)
return -1;
rc4_init(&context,key,16);
rc4_encrypt(&context,message,out,length);

rc4_message = osip_malloc(length+4);
if(rc4_message != NULL)
{
rc4_message[0] = 'R';
rc4_message[1] = 'C';
rc4_message[2] = '4';
rc4_message[3] = ':';
for(i=0;i<length;i++)
{
rc4_message[i+4] = out[i];
}
}
osip_free(out);
}

// Really send the packet over network
if(rc4_message == NULL)
{
i = owsip_send (account, (const void*) message, length, 0, address, OWSL_ADDRESS_SIZE);
}
else
{
i = owsip_send (account, (const void*) rc4_message, length+4, 0, address, OWSL_ADDRESS_SIZE);
osip_free(rc4_message);
}
....

在asterisk 中的chan_sip.c 修改函数 sipsock_read, 添加 接受信令rc4解密代码
.....
if(res>4 && req.data[0]=='R' && req.data[1]=='C' && req.data[2]=='4' && req.data[3]==':')
{
rc4_context_t context;
char * key = "********";
unsigned char * out = NULL;
int i=0;
out = malloc(res-4);
rc4_init(&context,key,16);
rc4_encrypt(&context,req.data+4,out,res-4);
for(i=0;i<res-4;i++)
{
req.data[i] = out[i];
}
free(out);
req.data[res-4] = '/0';
res = res-4;
req.len = res;
}
.....

6. 请问什么是SIP协议

SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。广泛应用于CS(Circuit Switched,电路交换)、NGN(Next Generation Network,下一代网络)以及IMS(IP Multimedia Subsystem,IP多媒体子系统)的网络中,可以支持并应用于语音、视频、数据等多媒体业务,同时也可以应用于Presence(呈现)、Instant Message(即时消息)等特色业务。可以说,有IP网络的地方就有SIP协议的存在。[1-2] SIP是类似于HTTP。SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的远意义。中文名会话初始化协议外文名Session Initiation Protocol出现时间二十世纪九十年代中期发布机构IETF发布时间1999年目录1会话协议
压缩机制▪ 应用
2发展历程
3通信要求
4会话构成
▪ 用户代理▪ 注册服务器▪ 代理服务器▪ 重定向服务器
5常用消息
6协议比较
▪ 标准应用目标▪ 标准体系结构▪ 系统组成结构▪ 实现难易性▪ 总 结
7相关技术▪ 开源项目▪ 5Java1会话协议SIPSIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议[3] 、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。SIP与负责语音质量的资源预留协议(RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。SIP 独立于传输层。因此,底层传输可以是采用 ATM 的 IP。SIP 使用用户数据报协议(UDP) 以及传输控制协议(TCP),将独立于底层基础设施的用户灵活地连接起来。SIP 支持多设备功能调整和协商。如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能。通信提供商及其合作伙伴和用户越来越渴求新一代基于 IP 的服务。如今有了 SIP(The Session Initiation Protocol 会话启动协议),一解燃眉之急。SIP 是不到十年前在计算机科学实验室诞生的一个想法。它是第一个适合各种媒体内容而实现多用户会话的协议,如今已成了 Internet 工程任务组 (IETF) 的规范。今天,越来越多的运营商、CLEC(竞争本地运营商)和 ITSP(IP 电话服务商)都在提供基于 SIP 的服务,如市话和长途电话技术、在线信息和即时消息、IP Centrex/Hosted PBX、语音短信、push-to-talk(按键通话)、多媒体会议等等。独立软件供应商 (ISV) 正在开发新的开发工具,用来为运营商网络构建基于 SIP 的应用程序以及 SIP 软件。网络设备供应商 (NEV) 正在开发支持 SIP 信令和服务的硬件。如今,有众多 IP 电话、用户代理、网络代理服务器、VOIP网关、媒体服务器和应用服务器都在使用 SIP。SIP 从类似的权威协议--如 Web超文本传输协议(HTTP) 格式化协议以及简单邮件传输协议(SMTP) 电子邮件协议--演变而来并且发展成为一个功能强大的新标准。但是,尽管 SIP 使用自己独特的用户代理和服务器,它并非自成一体地封闭工作。SIP 支持提供融合的多媒体服务,与众多负责身份验证、位置信息、语音质量等的现有协议协同工作。SIP 较为灵活,可扩展,而且是开放的。它激发了 Internet 以及固定和移动 IP 网络推出新一代服务的威力。SIP 能够在多台 PC 和电话上完成网络消息,模拟 Internet 建立会话。与存在已久的国际电信联盟(ITU) SS7 标准(用于呼叫建立)和 ITU H.323 视频协议组合标准不同,SIP 独立工作于底层网络传输协议和媒体。它规定一个或多个参与方的终端设备如何能够建立、修改和中断连接,而不论是语音、视频、数据或基于 Web 的内容。SIP 大大优于现有的一些协议,如将 PSTN 音频信号转换为 IP 数据包的媒体网关控制协议(MGCP)。因为 MGCP 是封闭的纯语音标准,所以通过信令功能对其进行增强比较复杂,有时会导致消息被破坏或丢弃,从而妨碍提供商增加新的服务。而使用 SIP,编程人员可以在不影响连接的情况下在消息中增加少量新信息。例如,SIP 服务提供商可以建立包含语音、视频和聊天内容的全新媒体。如果使用 MGCP、H.323 或 SS7 标准,则提供商必须等待可以支持这种新媒体的协议新版本。而如果使用 SIP,尽管网关和设备可能无法识别该媒体,但在两个大陆上设有分支机构的公司可以实现媒体传输。而且,因为 SIP 的消息构建方式类似于 HTTP,开发人员能够更加方便便捷地使用通用的编程语言(如 Java)来创建应用程序。对于等待了数年希望使用 SS7 和高级智能网络(AIN) 部署呼叫等待、主叫号码识别以及其他服务的运营商,现在如果使用 SIP[4] ,只需数月时间即可实现高级通信服务的部署。这种可扩展性已经在越来越多基于 SIP 的服务中取得重大成功。Vonage 是针对用户和小企业用户的服务提供商。它使用 SIP 向用户提供 20,000 多条数字市话、长话及语音邮件线路。Deltathree 为服务提供商提供 Internet 电话技术产品、服务和基础设施。它提供了基于 SIP 的 PC 至电话解决方案,使 PC 用户能够呼叫全球任何一部电话。Denwa Communications 在全球范围内批发语音服务。它使用 SIP 提供 PC 至 PC 及电话至 PC 的主叫号码识别、语音邮件,以及电话会议、统一通信、客户管理、自配置和基于 Web 的个性化服务。某些权威人士预计,SIP 与 IP 的关系将发展成为类似 SMTP 和 HTTP 与 Internet 的关系,但也有人说它可能标志着 AIN 的终结。迄今为止,3G 界已经选择 SIP 作为下一代移动网络的会话控制机制。Microsoft 已经选择 SIP 作为其实时通信策略并在 Microsoft XP、Pocket PC 和 MSN Messenger 中进行了部署。Microsoft 同时宣布 CE dot net 的下一个版本将使用基于 SIP 的 VoIP 应用接口层,并承诺向用户 PC 提供基于 SIP 的语音和视频呼叫。另外,MCI 正在使用 SIP 向 IP 通信用户部署高级电话技术服务。用户将能够通知主叫方自己是否有空以及首选的通信方式,如电子邮件、电话或即时消息。利用在线信息,用户还能够即时建立聊天会话和召开音频会议。使用 SIP 将不断地实现各种功能。压缩机制SIP 压缩机制主要是通过改变 SIP 消息的长度来降低时延。典型的 SIP 消息的大小由几百到几千字节,为了适合在窄带无线信道上传输,IMS对SIP进行了扩展,支持SIP消息的压缩。当无线信道一定时, 一条SIP消息所含帧数 k仅取决于消息大小。从时延模型可以看出,不仅影响 SIP 消息传输时延, 还影响SIP重传的概率, 对自适应的定时器来说,k还成了影响定时器初值的关键因素。[5] 应用google 发布世界上首个开源的Html5 sip 客户端HTML5 SIP客户端是一款开源的,完全利用JavaScript编写的集社交(FaceBook,Twitter,Google+),在线游戏,电子商务等应用于一体。无扩展,无插件或是必备的网关,视频堆栈技术依赖于WebRTC。如同主页

目前,SIP是类似于HTTP的基于文本的协议。SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义。

市场上几乎所有的IP语音相关产品都遵循了ITU-T组织所公布的H.323协议。虽然这些产品的开发和制作都将H.323标准作为了实际的制作标准,但是由于H.323主要是是对局域网中的数据传输进行了描述,但是其中很少有设计IP电话方面的描述,并且各个厂商在实际的开发与实现过程中,所选取的H.323协议中的内容也并不相同,也就是说虽然各大厂商都遵循H.323协议,但是所遵循的协议并不相同。因此,也导致了各大厂商之间的IP电话并不能够进行相互之间的通话。导致了企业内部IP语音通信系统在进行设计时就必须选取同一个厂商生产的网关等设备。这对IP语音通信系统的发展产生了很大的制约。目前,大家都己经认识到了这个问题,并且都纷纷要求能够有一个真正统一的一个标准,并且,各大厂商都进行了一定程度的联盟,来研究IP语音通信系统真正标准的制定。

7. TCP/IP、SIP协议

TCP/IP协议 (传输控制协议/网间协议)

TCP/IP 协议集确立了 Internet 的技术基础。TCP/IP 的发展始于美国 DOD (国防部)方案。 IAB (Internet 架构委员会)的下属工作组 IETF (Internet 工程任务组)研发了其中多数协议。 IAB 最初由美国政府发起,如今转变为公开而自治的机构。IAB 协同研究和开发 TCP/IP 协议集的底层结构,并引导着 Internet 的发展。TCP/IP 协议集记录在请求注解(RFC)文件中,RFC 文件均由 IETF 委员会起草、讨论、传阅及核准。所有这些文件都是公开且免费的,且能在 IETF 网站上列出的参考文献中找到。
TCP/IP 协议覆盖了 OSI 网络结构七层模型中的六层,并支持从交换(第二层)诸如多协议标记交换,到应用程序诸如邮件服务方面的功能。TCP/IP 的核心功能是寻址和路由选择(网络层的 IP/IPV6 )以及传输控制(传输层的 TCP、UDP)。

IP (网际协议)

在网络通信中,网络组件的寻址对信息的路由选择和传输来说是相当关键的。相同网络中的两台机器间的消息传输有各自的技术协定。LAN 是通过提供6字节的唯一标识符(“MAC”地址)在机器间发送消息的。SNA 网络中的每台机器都有一个逻辑单元及与其相应的网络地址。DECNET、AppleTalk 和 Novell IPX 均有一个用来分配编号到各个本地网和工作站的配置。

除了本地或特定提供商的网络地址,IP 为世界范围内的各个网络设备都分配了一个唯一编号,即 IP 地址。IPV4 的 IP 地址为4字节,按照惯例,将每个字节转化成十进制(0-255)并以点分隔各字节。IPV6 的 IP 地址已经增加到16字节。关于 IP 和 IPV6 协议的详细说明,在相关文件中再另作介绍。

TCP (传输控制协议)

通过序列化应答和必要时重发数据包,TCP 为应用程序提供了可靠的传输流和虚拟连接服务。TCP 主要提供数据流转送,可靠传输,有效流控制,全双工操作和多路传输技术。可查阅 TCP 部分获取更多详细资料。

在下面的 TCP/IP 协议表格中,我们根据协议功能和其在 OSI 七层网络通信参考模型的映射关系将其全部列出。然而,TCP/IP 并不完全遵循 OSI 模型,例如:大多数 TCP/IP 应用程序是直接在传输层协议 TCP 和 UDP 上运行,而不涉及其中的表示层和会话层。

主要协议表

IP TCP UDP IPsec HTTP POP3 SNMP MPLS DNS SMTP

应用层(Application Layer)

--------------------------------------------------------------------------------

BOOTP:引导协议 (BOOTP:Bootstrap Protocol)
DCAP:数据转接客户访问协议 (DCAP:Data Link Switching Client Access Protocol)
DHCP:动态主机配置协议 (DHCP:Dynamic Host Configuration Protocol)
DNS:域名系统(服务)系统 (DNS:Domain Name Systems)
Finger:用户信息协议 (Finger:User Information Protocol)
FTP:文件传输协议 (FTP:File Transfer Protocol)
HTTP:超文本传输协议 (HTTP:Hypertext Transfer Protocol)
S-HTTP:安全超文本传输协议 (S-HTTP:Secure Hypertext Transfer Protocol)
IMAP & IMAP4:信息访问协议 & 信息访问协议第4版 (IMAP & IMAP4:Internet Message Access Protocol)
IPDC:IP 设备控制 (IPDC:IP Device Control)
IRCP/IRC:因特网在线聊天协议 (IRCP/IRC:Internet Relay Chat Protocol)
LDAP:轻量级目录访问协议 (LDAP:Lightweighted Directory Access Protocol)
MIME/S-MIME/Secure MIME:多用途网际邮件扩充协议 (MIME/S-MIME/Secure MIME:Multipurpose Internet Mail Extensions)
NAT:网络地址转换 (NAT:Network Address Translation)
NNTP:网络新闻传输协议 (NNTP:Network News Transfer Protocol)
NTP:网络时间协议 (NTP:Network Time Protocol)
POP&POP3:邮局协议 (POP & POP3:Post Office Protocol)
RLOGIN:远程登录命令 (RLOGIN:Remote Login in Unix)
RMON:远程监控 (RMON:Remote Monitoring MIBs in SNMP)
RWhois:远程目录访问协议 (RWhois Protocol)
SLP:服务定位协议 (SLP:Service Location Protocol)
SMTP:简单邮件传输协议 (SMTP:Simple Mail Transfer Protocol)
SNMP:简单网络管理协议 (SNMP:Simple Network Management Protocol)
SNTP:简单网络时间协议 (SNTP:Simple Network Time Protocol)
TELNET:TCP/IP 终端仿真协议 (TELNET:TCP/IP Terminal Emulation Protocol)
TFTP:简单文件传输协议 (TFTP:Trivial File Transfer Protocol)
URL:统一资源管理 (URL:Uniform Resource Locator)
X-Window/X Protocol:X 视窗 或 X 协议(X-Window:X Window or X Protocol or X System)

表示层(Presentation Layer)

--------------------------------------------------------------------------------

LPP:轻量级表示协议 (LPP:Lightweight Presentation Protocol)

会话层(Session Layer)

--------------------------------------------------------------------------------

RPC:远程过程调用协议 (RPC:Remote Procere Call protocol)

传输层(Transport Layer)

--------------------------------------------------------------------------------

ITOT:基于TCP/IP 的 ISO 传输协议 (ITOT:ISO Transport Over TCP/IP)
RDP:可靠数据协议 (RDP:Reliable Data Protocol)
RUDP:可靠用户数据报协议 (RUDP:Reliable UDP)
TALI:传输适配层接口 (TALI:Transport Adapter Layer Interface)
TCP:传输控制协议 (TCP:Transmission Control Protocol)
UDP:用户数据报协议 (UDP:User Datagram Protocol)
Van Jacobson:压缩 TCP 协议 (Van Jacobson:Compressed TCP)

网络层(Network Layer)

--------------------------------------------------------------------------------

路由选择(Routing)
BGP/BGP4:边界网关协议 (BGP/BGP4:Border Gateway Protocol)
EGP:外部网关协议(EGP:Exterior Gateway Protocol)
IP:网际协议 (IP:Internet Protocol)
IPv6:网际协议第6版 (IPv6:Internet Protocol version 6)
ICMP/ICMPv6:Internet 信息控制协议 (ICMP/ICMPv6:Internet Control Message Protocol)
IRDP:ICMP 路由器发现协议 (IRDP:ICMP Router Discovery Protocol)
Mobile IP: 移动 IP (Mobile IP:IP Mobility Support Protocol for IPv4 & IPv6)
NARP:NBMA 地址解析协议 (NARP:NBMA Address Resolution Protocol)
NHRP:下一跳解析协议 (NHRP:Next Hop Resolution Protocol)
OSPF:开放最短路径优先 (OSPF:Open Shortest Path First)
RIP/RIP2:路由选择信息协议 (RIP/RIP2:Routing Information Protocol)
RIPng:路由选择信息协议下一代 (RIPng:RIP for IPv6)
RSVP:资源预留协议 (RSVP:Resource ReSerVation Protocol)
VRRP:虚拟路由器冗余协议 (VRRP:Virtual Router Rendancy Protocol)

组播(Multicast)
BGMP:边界网关组播协议 (BGMP:Border Gateway Multicast Protocol)
DVMRP:距离矢量组播路由协议 (DVMRP:Distance Vector Multicast Routing Protocol)
IGMP:Internet 组管理协议 (IGMP:Internet Group Management Protocol)
MARS:组播地址解析服务 (MARS:Multicast Address Resolution Server)
MBGP:组播协议边界网关协议 (MBGP:Multiprotocol BGP)
MOSPF:组播OSPF (MOSPF:Multicast OSPF)
MSDP:组播源发现协议 (MSDP:Multicast Source Discovery Protocol)
MZAP:组播区域范围公告协议 (MZAP:Multicast Scope Zone Announcement Protocol)
PGM:实际通用组播协议 (PGM:Pragmatic General Multicast Protocol)
PIM-DM:密集模式独立组播协议 (PIM-DM:Protocol Independent Multicast - Dense Mode)
PIM-SM:稀疏模式独立组播协议 (PIM-SM:Protocol Independent Multicast - Sparse Mode)

MPLS 协议(MPLS Protocols)
CR-LDP:基于路由受限标签分发协议 (CR-LDP: Constraint-Based Label Distribution Protocol)
GMPLS:通用多协议标志交换协议 (GMPLS:Generalized Multiprotocol Label Switching)
LDP:标签分发协议 (LDP:Label Distribution Protocol)
MPLS:多协议标签交换 (MPLS:Multi-Protocol Label Switching)
RSVP-TE:基于流量工程扩展的资源预留协议 (RSVP-TE:Resource ReSerVation Protocol-Traffic Engineering)

数据链路层(Data Link Layer)

--------------------------------------------------------------------------------

ARP and InARP:地址转换协议和逆向地址转换协议 (ARP and InARP:Address Resolution Protocol and Inverse ARP)
IPCP and IPv6CP:IP控制协议和IPV6控制协议 (IPCP and IPv6CP:IP Control Protocol and IPv6 Control Protocol)
RARP:反向地址转换协议 (RARP:Reverse Address Resolution Protocol)
SLIP:串形线路 IP (SLIP:Serial Line IP)

SIP
介绍

新一代的服务

历史回顾

SIP 的优点:类似 Web 的可扩展开放通信

SIP 会话构成

介绍

通信提供商及其合作伙伴和用户越来越渴求新一代基于 IP 的服务。现在有了 SIP(会话启动协议),一解燃眉之急。SIP 是不到十年前在计算机科学实验室诞生的一个想法。它是第一个适合各种媒体内容而实现多用户会话的协议,现在已成了 Internet 工程任务组 (IETF) 的规范。

今天,越来越多的运营商、CLEC(竞争本地运营商)和 ITSP(IP 电话服务商)都在提供基于 SIP 的服务,如市话和长途电话技术、在线信息和即时消息、IP Centrex/Hosted PBX、语音短信、push-to-talk(按键通话)、多媒体会议等等。独立软件供应商 (ISV) 正在开发新的开发工具,用来为运营商网络构建基于 SIP 的应用程序以及 SIP 软件。网络设备供应商 (NEV) 正在开发支持 SIP 信令和服务的硬件。现在,有众多 IP 电话、用户代理、网络代理服务器、VOIP 网关、媒体服务器和应用服务器都在使用 SIP。

SIP 从类似的权威协议--如 Web 超文本传输协议 (HTTP) 格式化协议以及简单邮件传输协议 (SMTP) 电子邮件协议--演变而来并且发展成为一个功能强大的新标准。但是,尽管 SIP 使用自己独特的用户代理和服务器,它并非自成一体地封闭工作。SIP 支持提供融合的多媒体服务,与众多负责身份验证、位置信息、语音质量等的现有协议协同工作。

本白皮书对 SIP 及其作用进行了概括性的介绍。它还介绍了 SIP 从实验室开发到面向市场的过程。本白皮书说明 SIP 提供哪些服务以及正在实施哪些促进发展的方案。它还详细介绍了 SIP 与各种协议不同的重要特点并说明如何建立 SIP 会话。

返回页首

新一代的服务

SIP 较为灵活,可扩展,而且是开放的。它激发了 Internet 以及固定和移动 IP 网络推出新一代服务的威力。SIP 能够在多台 PC 和电话上完成网络消息,模拟 Internet 建立会话。

与存在已久的国际电信联盟 (ITU) SS7 标准(用于呼叫建立)和 ITU H.323 视频协议组合标准不同,SIP 独立工作于底层网络传输协议和媒体。它规定一个或多个参与方的终端设备如何能够建立、修改和中断连接,而不论是语音、视频、数据或基于 Web 的内容。

SIP 大大优于现有的一些协议,如将 PSTN 音频信号转换为 IP 数据包的媒体网关控制协议 (MGCP)。因为 MGCP 是封闭的纯语音标准,所以通过信令功能对其进行增强比较复杂,有时会导致消息被破坏或丢弃,从而妨碍提供商增加新的服务。而使用 SIP,编程人员可以在不影响连接的情况下在消息中增加少量新信息。

例如,SIP 服务提供商可以建立包含语音、视频和聊天内容的全新媒体。如果使用 MGCP、H.323 或 SS7 标准,则提供商必须等待可以支持这种新媒体的协议新版本。而如果使用 SIP,尽管网关和设备可能无法识别该媒体,但在两个大陆上设有分支机构的公司可以实现媒体传输。

而且,因为 SIP 的消息构建方式类似于 HTTP,开发人员能够更加方便便捷地使用通用的编程语言(如 Java)来创建应用程序。对于等待了数年希望使用 SS7 和高级智能网络 (AIN) 部署呼叫等待、主叫号码识别以及其他服务的运营商,现在如果使用 SIP,只需数月时间即可实现高级通信服务的部署。

这种可扩展性已经在越来越多基于 SIP 的服务中取得重大成功。Vonage 是针对用户和小企业用户的服务提供商。它使用 SIP 向用户提供 20,000 多条数字市话、长话及语音邮件线路。Deltathree 为服务提供商提供 Internet 电话技术产品、服务和基础设施。它提供了基于 SIP 的 PC 至电话解决方案,使 PC 用户能够呼叫全球任何一部电话。Denwa Communications 在全球范围内批发语音服务。它使用 SIP 提供 PC 至 PC 及电话至 PC 的主叫号码识别、语音邮件,以及电话会议、统一通信、客户管理、自配置和基于 Web 的个性化服务。

某些权威人士预计,SIP 与 IP 的关系将发展成为类似 SMTP 和 HTTP 与 Internet 的关系,但也有人说它可能标志着 AIN 的终结。迄今为止,3G 界已经选择 SIP 作为下一代移动网络的会话控制机制。Microsoft 已经选择 SIP 作为其实时通信策略并在 Microsoft XP、Pocket PC 和 MSN Messenger 中进行了部署。Microsoft 同时宣布 CE.net 的下一个版本将使用基于 SIP 的 VoIP 应用接口层,并承诺向用户 PC 提供基于 SIP 的语音和视频呼叫。

另外,MCI 正在使用 SIP 向 IP 通信用户部署高级电话技术服务。用户将能够通知主叫方自己是否有空以及首选的通信方式,如电子邮件、电话或即时消息。利用在线信息,用户还能够即时建立聊天会话和召开音频会议。使用 SIP 将不断地实现各种功能。

返回页首

历史回顾

SIP 出现于二十世纪九十年代中期,源于哥伦比亚大学计算机系副教授 Henning Schulzrinne 及其研究小组的研究。Schulzrinne 教授除与人共同提出通过 Internet 传输实时数据的实时传输协议 (RTP) 外,还与人合作编写了实时流传输协议 (RTSP) 标准提案,用于控制音频视频内容在 Web 上的流传输。

Schulzrinne 本来打算编写多方多媒体会话控制 (MMUSIC) 标准。1996 年,他向 IETF 提交了一个草案,其中包含了 SIP 的重要内容。1999 年,Shulzrinne 在提交的新标准中删除了有关媒体内容方面的无关内容。随后,IETF 发布了第一个 SIP 规范,即 RFC 2543。虽然一些供应商表示了担忧,认为 H.323 和 MGCP 协议可能会大大危及他们在 SIP 服务方面的投资,IETF 继续进行这项工作,于 2001 年发布了 SIP 规范 RFC 3261。

RFC 3261 的发布标志着 SIP 的基础已经确立。从那时起,已发布了几个 RFC 增补版本,充实了安全性和身份验证等领域的内容。例如,RFC 3262 对临时响应的可靠性作了规定。RFC 3263 确立了 SIP 代理服务器的定位规则。RFC 3264 提供了提议/应答模型,RFC 3265 确定了具体的事件通知。

早在 2001 年,供应商就已开始推出基于 SIP 的服务。今天,人们对该协议的热情不断高涨。Sun Microsystems 的 Java Community Process 等组织正在使用通用的 Java 编程语言定义应用编程接口 (API),以便开发商能够为服务提供商和企业构建 SIP 组件和应用程序。最重要的是,越来越多的竞争者正在借助前途光明的新服务进入 SIP 市场。SIP 正在成为自 HTTP 和 SMTP 以来最为重要的协议之一。

返回页首

SIP 的优点:类似 Web 的可扩展开放通信

使用 SIP,服务提供商可以随意选择标准组件,快速驾驭新技术。不论媒体内容和参与方数量,用户都可以查找和联系对方。SIP 对会话进行协商,以便所有参与方都能够就会话功能达成一致以及进行修改。它甚至可以添加、删除或转移用户。

不过,SIP

不是万能的。它既不是会话描述协议,也不提供会议控制功能。为了描述消息内容的负载情况和特点,SIP 使用 Internet 的会话描述协议 (SDP) 来描述终端设备的特点。SIP 自身也不提供服务质量 (QoS),它与负责语音质量的资源保留设置协议 (RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议 (LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。

SIP 规定了以下基本的通信要求:

1. 用户定位服务

2. 会话建立

3. 会话参与方管理

4. 特点的有限确定

SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着 SIP 可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。

下面是 SIP 在新的信令协议中出类拔萃的一些其他特点

SIP 消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。

SIP 如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。

SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。

对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。

SIP 独立于传输层。因此,底层传输可以是采用 ATM 的 IP。SIP 使用用户数据报协议 (UDP) 以及传输控制协议 (TCP),将独立于底层基础设施的用户灵活地连接起来。

SIP 支持多设备功能调整和协商。如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能。

返回页首

SIP 会话构成

SIP 会话使用多达四个主要组件:SIP 用户代理、SIP 注册服务器、SIP 代理服务器和 SIP 重定向服务器。这些系统通过传输包括了 SDP 协议(用于定义消息的内容和特点)的消息来完成 SIP 会话。下面概括性地介绍各个 SIP 组件及其在此过程中的作用。

SIP 用户代理 (UA) 是终端用户设备,如用于创建和管理 SIP 会话的移动电话、多媒体手持设备、PC、PDA 等。用户代理客户机发出消息。用户代理服务器对消息进行响应。

SIP 注册服务器是包含域中所有用户代理的位置的数据库。在 SIP 通信中,这些服务器会检索参与方的 IP 地址和其他相关信息,并将其发送到 SIP 代理服务器。

SIP 代理服务器接受 SIP UA 的会话请求并查询 SIP 注册服务器,获取收件方 UA 的地址信息。然后,它将会话邀请信息直接转发给收件方 UA(如果它位于同一域中)或代理服务器(如果 UA 位于另一域中)。

SIP 重定向服务器允许 SIP 代理服务器将 SIP 会话邀请信息定向到外部域。SIP 重定向服务器可以与 SIP 注册服务器和 SIP 代理服务器同在一个硬件上。

以下几个情景说明 SIP 组件之间如何进行协调以在同一域和不同域中的 UA 之间建立 SIP 会话:

在同一域中建立 SIP 会话

下图说明了在预订同一个 ISP 从而使用同一域的两个用户之间建立 SIP 会话的过程。用户 A 使用 SIP 电话。用户 B 有一台 PC,运行支持语音和视频的软客户程序。加电后,两个用户都在 ISP 网络中的 SIP 代理服务器上注册了他们的空闲情况和 IP 地址。用户 A 发起此呼叫,告诉 SIP 代理服务器要联系用户 B。然后,SIP 代理服务器向 SIP 注册服务器发出请求,要求提供用户 B 的 IP 地址,并收到用户 B 的 IP 地址。SIP 代理服务器转发用户 A 与用户 B 进行通信的邀请信息(使用 SDP),包括用户 A 要使用的媒体。用户 B 通知 SIP 代理服务器可以接受用户 A 的邀请,且已做好接收消息的准备。SIP 代理服务器将此消息传达给用户 A,从而建立 SIP 会话。然后,用户创建一个点到点 RTP 连接,实现用户间的交互通信。

1.呼叫用户 B

2.查询捻没?B 在哪里??br> 3.响应捻没?B 的 SIP 地址?br> 4.挚�顶呼叫

5. 响应

6. 响应

7. 多媒体通道已建立

返回页首

在不同的域中建立 SIP 会话

本情景与第一种情景的不同之处如下。用户 A 邀请正在使用多媒体手持设备的用户 B 进行 SIP 会话时,域 A 中的 SIP 代理服务器辨别出用户 B 不在同一域中。然后,SIP 代理服务器在 SIP 重定向服务器上查询用户 B 的 IP 地址。SIP 重定向服务器既可在域 A 中,也可在域 B 中,也可既在域 A 中又在域 B 中。SIP 重定向服务器将用户 B 的联系信息反馈给 SIP 代理服务器,该服务器再将 SIP 会话邀请信息转发给域 B 中的 SIP 代理服务器。域 B 中的 SIP 代理服务器将用户 A 的邀请信息发送给用户 B。用户 B 再沿邀请信息经由的同一路径转发接受邀请的信息。

1. 呼叫用户 B 2. 询问撑胰绾谓油ㄓ?B 中的用户 B?? 3. 响应挚�砜刂破鞯挠虻刂窋 4. 挚�顶呼叫域 B 的 SIP 代理 5. 查询捻没?B 在哪里?? 6. 用户 B 的地址 7. 代理呼叫 8. 响应 9. 响应 10.响应 11.多媒体通道已建立

无缝、灵活、可扩展:展望 SIP 未来

SIP 能够连接使用任何 IP 网络(有线 LAN 和 WAN、公共 Internet 骨干网、移动 2.5G、3G 和 Wi-Fi)和任何 IP 设备(电话、PC、PDA、移动手持设备)的用户,从而出现了众多利润丰厚的新商机,改进了企业和用户的通信方式。基于 SIP 的应用(如 VOIP、多媒体会议、push-to-talk(按键通话)、定位服务、在线信息和 IM)即使单独使用,也会为服务提供商、ISV、网络设备供应商和开发商提供许多新的商机。不过,SIP 的根本价值在于它能够将这些功能组合起来,形成各种更大规模的无缝通信服务。

使用 SIP,服务提供商及其合作伙伴可以定制和提供基于 SIP 的组合服务,使用户可以在单个通信会话中使用会议、Web 控制、在线信息、IM 等服务。实际上,服务提供商可以创建一个满足多个最终用户需求的灵活应用程序组合,而不是安装和支持依赖于终端设备有限特定功能或类型的单一分散的应用程序。

通过在单一、开放的标准 SIP 应用架构下合并基于 IP 的通信服务,服务提供商可以大大降低为用户设计和部署基于 IP 的新的创新性托管服务的成本。它是 SIP 可扩展性促进本行业和市场发展的强大动力,是我们所有人的希望所在。

8. IMS的问题分析

IP多媒体子系统(IMS)是3GPP在R5规范中提出的,旨在建立一个与接入无关、基于开放的SIP/IP协议及支持多种多媒体业务类型的平台来提供丰富的业务。它将蜂窝移动通信网络技术、传统固定网络技术和互联网技术有机结合起来,为未来的基于全IP网络多媒体应用提供了一个通用的业务智能平台,也为未来网络发展过程中的网络融合提供了技术基础。IMS的诸多特点使得其一经提出就成为业界的研究热点,是业界普遍认同的解决未来网络融合的理想方案和发展方向,但对于IMS将来如何提供统一的业务平台实现全业务运营,IMS的标准化及安全等问题仍需要进一步的研究和探讨。
1、IMS存在的安全问题分析
传统的电信网络采用独立的信令网来完成呼叫的建立、路由和控制等过程,信令网的安全能够保证网络的安全。而且传输采用时分复用(TDM)的专线,用户之间采用面向连接的通道进行通信,避免了来自其他终端用户的各种窃听和攻击。
而IMS网络与互联网相连接,基于IP协议和开放的网络架构可以将语音、数据、多媒体等多种不同业务,通过采用多种不同的接入方式来共享业务平台,增加了网络的灵活性和终端之间的互通性,不同的运营商可以有效快速地开展和提供各种业务。由于IMS是建立在IP基础上,使得IMS的安全性要求比传统运营商在独立网络上运营要高的多,不管是由移动接入还是固定接入,IMS的安全问题都不容忽视。
IMS的安全威胁主要来自于几个方面:未经授权地访问敏感数据以破坏机密性;未经授权地篡改敏感数据以破坏完整性;干扰或滥用网络业务导致拒绝服务或降低系统可用性;用户或网络否认已完成的操作;未经授权地接入业务等。主要涉及到IMS的接入安全(3GPP TS33.203),包括用户和网络认证及保护IMS终端和网络间的业务;以及IMS的网络安全(3GPP TS33.210),处理属于同一运营商或不同运营商网络节点之间的业务保护。除此之外,还对用户终端设备和通用集成电路卡/IP多媒体业务身份识别模块(UICC/ISIM)安全构成威胁。
2、IMS安全体系
IMS系统安全的主要应对措施是IP安全协议(IPSec),通过IPSec提供了接入安全保护,使用IPSec来完成网络域内部的实体和网络域之间的安全保护。3GPP IMS实质上是叠加在原有核心网分组域上的网络,对PS域没有太大的依赖性,在PS域中,业务的提供需要移动设备和移动网络之间建立一个安全联盟(SA)后才能完成。对于IMS系统,多媒体用户也需要与IMS网络之间先建立一个独立的SA之后才能接入多媒体业务。
3GPP终端的核心是通用集成电路卡(UICC),它包含多个逻辑应用,主要有用户识别模块(SIM)、UMTS用户业务识别模块(USIM)和ISIM。ISIM中包含了IMS系统用户终端在系统中进行操作的一系列参数(如身份识别、用户授权和终端设置数据等),而且存储了共享密钥和相应的AKA(Authentication and Key Agreement)算法。其中,保存在UICC上的用户侧的IMS认证密钥和认证功能可以独立于PS域的认证密钥和认证功能,也可和PS使用相同的认证密钥和认证功能。IMS的安全体系如图1所示。
图1中显示了5个不同的安全联盟用以满足IMS系统中不同的需求,分别用①、②、③、④、⑤来加以标识。①提供终端用户和IMS网络之间的相互认证。
②在UE和P-CSCF之间提供一个安全链接(Link)和一个安全联盟(SA),用以保护Gm接口,同时提供数据源认证。
③在网络域内为Cx接口提供安全。
④为不同网络之间的SIP节点提供安全,并且这个安全联盟只适用于代理呼叫会话控制功能(P-CSCF)位于拜访网络(VN)时。
⑤为同一网络内部的SIP节点提供安全,并且这个安全联盟同样适用于P-CSCF位于归属网络(HN)时。
除上述接口之外,IMS中还存在其他的接口,在上图中未完整标识出来,这些接口位于安全域内或是位于不同的安全域之间。这些接口(除了Gm接口之外)的保护都受IMS网络安全保护。
SIP信令的保密性和完整性是以逐跳的方式提供的,它包括一个复杂的安全体系,要求每个代理对消息进行解密。SIP使用两种安全协议:传输层安全协议(TLS)和IPSec,TLS可以实现认证、完整性和机密性,用TLS来保证安全的请求必须使用可靠的传输层协议,如传输控制协议(TCP)或流控制传输协议(SCTP);IPSec通过在IP层对SIP消息提供安全来实现认证、完整性和机密性,它同时支持TCP和用户数据报协议(UDP)。在IMS核心网中,可通过NDS/IP来完成对网络中SIP信令的保护;而第一跳,即UE和P-CSCF间的信令保护则需要附加的测量,在3GPP TS 33.203中有具体描述。
3、IMS的接入安全
IMS用户终端(UE)接入到IMS核心网需经一系列认证和密钥协商过程,具体而言,UE用户签约信息存储在归属网络的HSS中,且对外部实体保密。当用户发起注册请求时,查询呼叫会话控制功能(I-CSCF)将为请求用户分配一个服务呼叫会话控制功能(S-CSCF),用户的签约信息将通过Cx接口从HSS下载到S-CSCF中。当用户发起接入IMS请求时,该S-CSCF将通过对请求内容与用户签约信息进行比较,以决定用户是否被允许继续请求。
在IMS接入安全中,IPSec封装安全净荷(ESP)将在IP层为UE和P-CSCF间所有SIP信令提供机密性保护,对于呼叫会话控制功能(CSCF)之间和CSCF和HSS之间的加密可以通过安全网关(SEG)来实现。同时,IMS还采用IPSec ESP为UE和P-CSCF间所有SIP信令提供完整性保护,保护IP层的所有SIP信令,以传输模式提供完整性保护机制。
在完成注册鉴权之后,UE和P-CSCF之间同时建立两对单向的SA,这些SA由TCP和UDP共享。其中一对用于UE端口为客户端、P-CSCF端口作为服务器端的业务流,另一对用于UE端口为服务器、P-CSCF端口作为客户端的业务流。用两对SA可以允许终端和P-CSCF使用UDP在另一个端口上接收某个请求的响应,而不是使用发送请求的那个端口。同时,终端和P-CSCF之间使用TCP连接,在收到请求的同一个TCP连接上发送响应;而且通过建立SA实现在IMS AKA提供的共享密钥以及指明在保护方法的一系列参数上达成一致。SA的管理涉及到两个数据库,即内部和外部数据库(SPD和SAD)。SPD包含所有入站和出站业务流在主机或安全网关上进行分类的策略。SAD是所有激活SA与相关参数的容器。SPD使用一系列选择器将业务流映射到特定的SA,这些选择器包括IP层和上层(如TCP和UDP)协议的字段值。
与此同时,为了保护SIP代理的身份和网络运营商的网络运作内部细节,可通过选择网络隐藏机制来隐藏其网络内部拓扑,归属网络中的所有I-CSCF将共享一个加密和解密密钥。
在通用移动通信系统(UMTS)中相互认证机制称为UMTS AKA,在AKA过程中采用双向鉴权以防止未经授权的“非法”用户接入网络,以及未经授权的“非法”网络为用户提供服务。AKA协议是一种挑战响应协议,包含用户鉴权五元参数组的挑战由AUC在归属层发起而发送到服务网络。
UMTS系统中AKA协议,其相同的概念和原理被IMS系统重用,我们称之为IMS AKA。AKA实现了ISIM和AUC之间的相互认证,并建设了一对加密和完整性密钥。用来认证用户的身份是私有的身份(IMPI),HSS和ISIM共享一个与IMPI相关联的长期密钥。当网络发起一个包含RAND和AUTN的认证请求时,ISIM对AUTN进行验证,从而对网络本身的真实性进行验证。每个终端也为每一轮认证过程维护一个序列号,如果ISIM检测到超出了序列号码范围之外的认证请求,那么它就放弃该认证并向网络返回一个同步失败消息,其中包含了正确的序列号码。
为了响应网络的认证请求,ISIM将密钥应用于随机挑战(RAND),从而产生一个认证响应(RES)。网络对RES进行验证以认证ISIM。此时,UE和网络已经成功地完成了相互认证,并且生成了一对会话密钥:加密密钥(CK)和完整性密钥(IK)用以两个实体之间通信的安全保护。
4、IMS的网络安全
在第二代移动通信系统中,由于在核心网中缺乏标准的安全解决方案,使得安全问题尤为突出。虽然在无线接入过程中,移动用户终端和基站之间通常可由加密来保护,但是在核心网时,系统的节点之间却是以明文来传送业务流,这就让攻击者有机可乘,接入到这些媒体的攻击者可以轻而易举对整个通信过程进行窃听。
针对2G系统中的安全缺陷,第三代移动通信系统中采用NDS对核心网中的所有IP数据业务流进行保护。可以为通信服务提供保密性、数据完整性、认证和防止重放攻击,同时通过应用在IPSec中的密码安全机制和协议安全机制来解决安全问题。
在NDS中有几个重要的概念,它们分别是安全域(Security Domains)、安全网关(SEG)。
4.1安全域
NDS中最核心的概念是安全域,安全域是一个由单独的管理机构管理运营的网络。在同一安全域内采用统一的安全策略来管理,因此同一安全域内部的安全等级和安全服务通常是相同的。大多情况下,一个安全域直接对应着一个运营商的核心网,不过,一个运营商也可以运营多个安全域,每个安全域都是该运营商整个核心网络中的一个子集。在NDS/IP中,不同的安全域之间的接口定义为Za接口,同一个安全域内部的不同实体之间的安全接口则定义为Zb接口。其中Za接口为必选接口,Zb接口为可选接口。两种接口主要完成的功能是提供数据的认证和完整性、机密性保护。
4.2安全网关
SEG位于IP安全域的边界处,是保护安全域之间的边界。业务流通过一个SEG进入和离开安全域,SEG被用来处理通过Za接口的通信,将业务流通过隧道传送到已定义好的一组其他安全域。这称为轮轴-辐条(hub-and-spoke)模型,它为不同安全域之间提供逐跳的安全保护。SEG负责在不同安全域之间传送业务流时实施安全策略,也可以包括分组过滤或者防火墙等的功能。IMS核心网中的所有业务流都是通过SEG进行传送,每个安全域可以有一个或多个SEG,网络运营商可以设置多个SEG以避免某独立点出现故障或失败。当所保护的IMS业务流跨越不同安全域时,NDS/IP必须提供相应的机密性、数据完整性和认证。
4.3基于IP的网络域安全体系[2]
NDS/IP体系结构最基本的思想就是提供上从一跳到下一跳的安全,逐跳的安全也简化了内部和面向其他外部安全域分离的安全策略的操作。
在NDS/IP中只有SEG负责与其他安全域中的实体间进行直接通信。两个SEG之间的业务被采用隧道模式下的IPSec ESP安全联盟进行保护,安全网关之间的网络连接通过使用IKE来建立和维护[3]。网络实体(NE)能够面向某个安全网关或相同安全域的其他安全实体,建立维护所需的ESP安全联盟。所有来自不同安全域的网络实体的NDS/IP业务通过安全网关被路由,它将面向最终目标被提供逐跳的安全保护[5]。其网络域安全体系结构如图2所示。
4.4密钥管理和分配机制[5]每个SEG负责建立和维护与其对等SEG之间的IPSec SA。这些SA使用因特网密钥交换(IKE)协议进行协商,其中的认证使用保存在SEG中的长期有效的密钥来完成。每个对等连接的两个SA都是由SEG维护的:一个SA用于入向的业务流,另一个用于出向的业务流。另外,SEG还维护了一个单独的因特网安全联盟和密钥管理协议(ISAKMP)SA,这个SA与密钥管理有关,用于构建实际的对等主机之间的IPSec SA。对于ISAKMP SA而言,一个关键的前提就是这两个对等实体必须都已经通过认证。在NDS/IP中,认证是基于预先共享的密钥。
NDS/IP中用于加密、数据完整性保护和认证的安全协议是隧道模式的IPSec ESP。在隧道模式的ESP中,包括IP头的完整的IP数据包被封装到ESP分组中。对于三重DES加密(3DES)算法是强制使用的,而对于数据完整性和认证,MD5和SHA-1都可以使用。
4.5IPSec安全体系中的几个重要组成和概念[5]
1)IPSec:IPSec在IP层(包括IPv4和IPv6)提供了多种安全服务,从而为上层协议提供保护。IPSec一般用来保护主机和安全网关之间的通信安全,提供相应的安全服务。
2)ISAKMP:ISAKMP用来对SA和相关参数进行协商、建立、修改和删除。它定义了SA对等认证的创建和管理过程以及包格式,还有用于密钥产生的技术,它还包括缓解某些威胁的机制。
3)IKE:IKE是一种密钥交换协议,和ISAKMP一起,为SA协商认证密钥材料。IKE可以使用两种模式来建立第一阶段ISAKMP SA,即主模式和侵略性模式。两种模式均使用短暂的Diffie-Hellman密钥交换算法来生成ISAKMP SA的密钥材料。
4)ESP:ESP用来在IPv4和IPv6中提供安全服务。它可以单独使用或与AH一起使用,可提供机密性(如加密)或完整性(如认证)或同时提供两种功能。ESP可以工作在传送模式或隧道模式。在传送模式中,ESP头插入到IP数据报中IP头后面、所有上层协议头前面的位置;而在隧道模式中,它位于所封装的IP数据报之前。
标准化组织对IMS的安全体系和机制做了相应规定,其中UE和P-CSCF之间的安全由接入网络安全机制提供,IMS网络之上的安全由IP网络的安全机制保证,UE与IMS的承载层分组网络安全仍由原来的承载层安全机制支持。所有IP网络端到端安全基于IPSec,密钥管理基于IKE协议。对于移动终端接入IMS之前已经进行了相应的鉴权,所以安全性更高一些。但是对于固定终端来说,由于固定接入不存在类似移动网络空中接口的鉴权,P-CSCF将直接暴露给所有固定终端,这使P-CSCF更易受到攻击。为此,在IMS的接入安全方面有待于进一步的研究,需要不断完善IMS的安全机制。

阅读全文

与sip信令加密需要网关标识和密钥相关的资料

热点内容
java堆分配 浏览:159
linuxbuiltin 浏览:560
cstpdf 浏览:941
texstudio编译在哪 浏览:352
国家反诈中心app注册登记表怎么注册 浏览:972
加密机默认端口 浏览:101
有哪个网站有免费的python源代码 浏览:304
苹果手机如何导入安卓电话 浏览:915
奥利奥双重解压 浏览:388
安卓账号怎么在苹果手机上玩 浏览:798
画画用什么安卓ipad好 浏览:693
手机怎么用pdf 浏览:697
怎么把多个word合并成一个pdf 浏览:542
电学基础pdf 浏览:726
cad插件怎么编译 浏览:617
网校源码软件 浏览:667
思科常用配置命令 浏览:377
水容易被压缩吗 浏览:753
java项目试题 浏览:316
为什么安卓拍照没有苹果成相快 浏览:516