SIP中的隐私机制——RFC3323

1 SIP消息有很多地方能够透露出发送者的身份,中间网络组件添加的头域也可能透露出发送者的消息(具体等待细化);

2 本隐私机制遵循两个重要的原则:允许用户隐藏他们的身份以及相关信息,但也允许中间网络组件(proxy等)或该请求的目的方拒绝接收不能确认身份的消息;

3 一般来说,身份就是绑定到某一个特定注册服务器上的AOR。
4 匿名的情况有:发送一个消息,对最终目标隐藏身份信息,但对中间网络组件不隐藏;发送一个消息,最中间网络组件隐藏身份信息,但对最终目标不隐藏;对最终目标和中间网络组件都隐藏消息。

 5 在一个Dialog中,可能需要对一个请求和响应都隐藏信息,譬如一个响应中的Contact头域。

6 该文档说明了三种级别的隐私:一种是user-provided级别的隐私,两种是network-provided级别的隐私(头域隐私和会话隐私)。

7 用户代理有三种方法来隐藏身份信息:置换泄露用户信息的头域值;请求网络上隐私服务(privacy service);针对头域和消息体加密(不在本文档讨论范围)。

8 直接或间接透露用户身份信息的头域:From, Contact, Reply-To, Via, Call-Info,User-Agent, Organization, Server, Subject, Call-ID, In-Reply-To and Warning。首先,用户代理不能包含泄露个人信息的可选头域;其次,用户带来应该更改整个消息中的相关URI;最后,用户需要请求联网的隐私服务。
9 From头域中显示名部分使用假设的名称——一般使用Anonymous。
10 From头域中URI尽量使用不透露出用户个人消息的字眼,譬如jon.peterson@neustar.biz就透露出用户名及其公司信息,而a0017@anoymous-sip.com就泄露很少的信息。SIP规范推荐From头域中的URI的用户部分使用“anoymous”。在某些头域,譬如Contact头域,可以忽略用户名,譬如,sip:anonymous-sip.com。
11 有时仅仅更改用户的名字是不足够的,用户的服务提供商名也会透露出该用户的信息(譬如公司域名或其他小域名)。如果要隐藏域名信息,那么域名一般使用“anonymous.invalid”,譬如From头域中,完整的形式应该是:
From:"Anonymous" <sip:anonymous@anonymous.invalid>;tag=1922887766

12 对于路由一个请求有关的头域,譬如Contact的URI不应该被UA修改,而是通过向proxy等请求隐藏。
13 为了能够请求proxy等服务器隐藏某些头域,RFC3323定义了如下头域:
Privacy-hdr = "Privacy" HCOLON priv-value *(";" priv-value)
priv-value = "header" / "session" / "user" / "none" / "critical"
/ token
当一个proxy或其他服务器由于用户代理的要求可以添加上Privacy头域。如果一个用户代理的消息中添加了Privacy头域并且值指定为none,那么任何intermediary都不能对其做更改。

header: 用户请求隐私服务(a privacy service)模糊一些头域,这些头域如果没有proxy等服务器的协助的话是不能够隐藏用户的身份信息的(譬如Via和Contact)。另外,该隐私服务不会添加不必要的且会泄露请求的发起者的信息的头域。

session: 用户请求隐私服务提供这个消息初始化的会话的匿名(例如SDP消息体)。这将掩饰该会话中的原始发起IP。当session privacy被请求的时候,用户代理不应该对SDP部分进行加密。如果是在非端到端的会话中请求session privacy将会导致严重的安全问题。

user: 这个级别的privacy通常是由intermediaries设置的,用户代理一般不能够提供这个设置。用户只能设置“REGISTER”请求的privacy为'user'级别。

none: 对于该消息,不管之前有任何的Privacy设置,都不要应用任何Privacy服务。

critical: 如果没有提供Privacy服务,那么该请求将被拒绝。对于响应来说,这个级别的服务很难被管理。

posted @ 2010-12-21 20:44  茫茫深海一条鱼  阅读(2325)  评论(0)    收藏  举报